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.
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
/petmenu, 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.
- 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 come from config, 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.
- Anti-cheat friendly: pets are spawned by the server, not the client.
- Admin:
/petadminlists 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 or plain [E] prompts.
- Pets are companions only: no K9 work and no attacking. One pet is out at a time.
Requirements
- ox_lib
- oxmysql
- Qbox (
qbx_core), or QBCore (qb-core) through the framework bridge - ox_inventory, or QBCore's inventory
- Optional: ox_target (otherwise the shelter and strays use [E] prompts)
- OneSync (on by default on current servers)
Install
- Put the
rr-petsfolder in your resources. - 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.
- In
server.cfg, after ox_lib, oxmysql, your framework and your inventory:
`` ensure rr-pets ``
- Start the server. The two tables (
rr_pets,rr_pet_strays_bond) create themselves.sql/install.sqlis included if you'd rather import them yourself. - 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
| Command | Who | What |
|---|---|---|
/pet | everyone | The pet menu (bind a key to it in Settings > Key Bindings > FiveM) |
/pet call · follow · sit · stay · come · feed · car · home | everyone | Shortcuts for radial menus and key binds |
/petadmin | rr.pets.admin ace | Pets 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().
Config highlights
Config.Shelters: where the shelter worker stands (add more shelters), the worker's model and the blip.Config.Breeds: label, model, price and size (big,smallorcat) for each breed.Config.MaxPets: how many pets a character can own (1 by default).Config.Food,Config.Hunger,Config.Bond: food price and effect, how fast hunger drops, how fast bond grows.Config.Payment: which account pays (cashorbank), with a fallback to the other.Config.Strays: stray spots, which breed each one is, treats needed, cooldown.Config.CarRides: on or off, which seats, and where each size of pet sits.Config.Poses: the sit and lie clips per size, tried in order.Config.UseTarget,Config.AutoSummon,Config.Invincible,Config.Keybind.Config.Text: every message players see, for translating.
Last updated 2026-10-26
Browse scripts