New releaseRR OS: an in-game computer with 18 programsRR OS is out

Companion Pets

Adopt a dog or a cat at the shelter, or win over a stray with treats. It follows you, rides in your car and is still yours after a restart.

v1.0.0Qbox / QBCore$14.99Store page

Players adopt a dog or a cat at the animal shelter, or win over a stray with treats, and it follows them around. They tell it to sit, stay or come, feed it, rename it and take it for a ride in the car. The pet is saved to the database: it's still theirs after a logout, a server restart or their own death.

No pet-shop MLO needed. Every pet, shelter and stray uses the game's own animals and base-map spots.

Features

  • Shelter with a worker and a map blip: pick a breed, name it, pay the fee. Pet food is sold there too.
  • 6 breeds out of the box: husky, golden retriever, shepherd, westie, pug and cat. Prices and the list are in config.lua.
  • Strays wander at three spots (Grove Street, Sandy Shores, Paleto Bay). Treats build your bond with one; at full bond it's yours for free. Each player's bond is saved.
  • Orders: follow, sit, stay, come, feed, rename, send home, release. From the /pet menu, a key you bind, or shortcuts like /pet sit.
  • Car rides: the pet takes a free passenger seat when you get in while it's following, and hops out with you. Bikes, boats and aircraft are skipped. /pet car seats it in or out by hand. Turn rides off or change seats in Config.CarRides.
  • Hunger and bond: hunger drops while the pet is out; feeding brings it back and builds bond, and so does time together. A starving pet sits and won't follow until it's fed. Nothing dies.
  • Downed owner: the pet lies down beside you until you're back up, then follows again. The menu keeps working after a death.
  • Never lost: a pet that gets left behind or stuck is brought back to you; one that's culled is respawned by the server.
  • Server-authoritative: prices are set on the server, adopting, feeding and treats are distance-checked, names are filtered, and hunger and bond are worked out on the server from the time a pet spends out. The client never sends them.
  • Spawned by the server: pets are created by the server, not by a player's client.
  • Admin: /petadmin lists pets near you, brings one back to its owner, or deletes it.
  • Built and run on Qbox. QBCore is supported through the framework bridge. ox_inventory or the framework's inventory. ox_target is supported but optional for the shelter and strays.
  • Pets are companions only: no K9 work and no attacking. One pet per character.

Requirements

  • ox_lib
  • oxmysql
  • Qbox (qbx_core), or QBCore (qb-core) through the framework bridge
  • ox_inventory, or QBCore's inventory
  • ox_target supported

Install

  1. Put the rr-pets folder in your resources.
  2. Add the pet food item to your inventory:

ox_inventory (ox_inventory/data/items.lua): ``lua ['pet_food'] = { label = 'Pet Food', weight = 200, stack = true, close = true, description = 'A bag of kibble. Dogs and cats both like it.' }, ``

qb-core (qb-core/shared/items.lua): ``lua pet_food = { name = 'pet_food', label = 'Pet Food', weight = 200, type = 'item', image = 'pet_food.png', unique = false, useable = false, shouldClose = true, description = 'A bag of kibble. Dogs and cats both like it.' }, ` Add an image called pet_food.png` to your inventory's image folder if you want one.

  1. In server.cfg, after ox_lib, oxmysql, your framework and your inventory:

`` ensure rr-pets ``

  1. Start the server. The two tables (rr_pets, rr_pet_strays_bond) create themselves. sql/install.sql is included if you'd rather import them yourself.
  2. Optional: give your admins the admin command:

`` add_ace group.admin rr.pets.admin allow ``

The console prints [rr-pets] v1.0.0 ready when it's running, or one line saying what's missing (the framework, or the pet food item).

Commands

CommandWhoWhat
/peteveryoneThe pet menu (bind a key to it in Settings > Key Bindings > FiveM)
/pet call · follow · sit · stay · come · feed · car · homeeveryoneShortcuts for radial menus and key binds
/petadminrr.pets.admin acePets near you: bring one back to its owner, or delete it

Other resources can use exports['rr-pets']:OpenMenu(), exports['rr-pets']:Do('sit') and exports['rr-pets']:GetPet().

How it plays

  • Adopt at the shelter: the worker offers all six breeds, the owner names the pet and pays the fee. One pet per character.
  • Strays: three spots around the map. Treats build bond until the stray is yours for free.
  • Food: pet food is sold at the shelter. Hunger drops while the pet is out and bond grows as you feed it and spend time together.
  • Payment comes from cash or bank, with a fallback to the other account.
  • Questions about setup go in a ticket on our Discord.

Last updated 2026-11-02