A comprehensive and interactive pet system for RedM (RSG Framework), allowing players to buy, own, name, and care for a variety of domestic dogs and cats.
- Inventory Integration: Pets are items in your inventory! You can own multiple pets. Use the item to summon your companion.
- Pet Shop UI: Beautiful, interactive NUI for purchasing pets with custom icons.
- Persistent Naming: Name your pet! The name is saved to the item itself, so your "Rufus" stays "Rufus" forever.
- Needs System: Pets get hungry and lose health. Feed them to keep them happy.
- Interactions (Third-Eye):
- โค๏ธ Pet: Show some love.
- โ Stay: Tell your pet to wait at a location.
- ๐ถ Follow: Call your pet to your side.
- ๐๏ธ Rest: Have your pet lay down/sleep.
- ๐ Status: Check health, hunger, and age.
- ๐ Feed: Open a menu to feed your pet specific food items.
- ๐๏ธ Rename: Give your friend a unique name.
- ๐ช Flee: Dismiss your pet (despawn) back to the "ether" (it remains in your inventory).
- Consistent Appearance: Pets spawn with fixed coat colorsโno more random changing identities!
- Smart AI: Pets follow you, relax when you stop, and can be whistled for if they get lost.
rsg-corersg-inventoryrsg-targetox_lib
-
Download & Install:
- Place
rsg-petsinto yourresourcesdirectory. - Add
ensure rsg-petsto yourserver.cfg.
- Place
-
Add Items:
- Add the following items to your
rsg-core/shared/items.lua(or database):
-- Pet Items ['foxhound'] = {['name'] = 'foxhound', ['label'] = 'American Foxhound', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_americanfoxhound.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A loyal hound.'}, ['sheperd'] = {['name'] = 'sheperd', ['label'] = 'Australian Shepherd', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_australianshepherd.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'An intelligent herder.'}, ['coonhound'] = {['name'] = 'coonhound', ['label'] = 'Bluetick Coonhound', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_bluetickcoonhound.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Expert tracker.'}, ['catahoulacur'] = {['name'] = 'catahoulacur', ['label'] = 'Catahoula Cur', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_catahoularcur.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Versatile working dog.'}, ['bayretriever'] = {['name'] = 'bayretriever', ['label'] = 'Chesapeake Retriever', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_chesbayretriever.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Excellent swimmer.'}, ['collie'] = {['name'] = 'collie', ['label'] = 'Border Collie', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_collie.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Smartest dog breed.'}, ['hound'] = {['name'] = 'hound', ['label'] = 'Hound Dog', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_hound.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Classic hunter.'}, ['husky'] = {['name'] = 'husky', ['label'] = 'Husky', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_husky.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Strong sled dog.'}, ['lab'] = {['name'] = 'lab', ['label'] = 'Labrador', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_lab.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Friendly companion.'}, ['poodle'] = {['name'] = 'poodle', ['label'] = 'Poodle', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_poodle.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Elegant breed.'}, ['street'] = {['name'] = 'street', ['label'] = 'Street Mutt', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_street.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Tough survivor.'}, ['rufus'] = {['name'] = 'rufus', ['label'] = 'Rufus', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_rufus.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Reliable farm dog.'}, ['lionpoodle'] = {['name'] = 'lionpoodle', ['label'] = 'Lion Poodle', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_dog_lionpoodle.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fancy groomed poodle.'}, ['tabbycat'] = {['name'] = 'tabbycat', ['label'] = 'Tabby Cat', ['weight'] = 0, ['type'] = 'item', ['image'] = 'animal_cat_tabby.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Lovable barn cat.'}, -
- Add the following items to your
-
Images:
- Ensure all pet images (found in
html/img/) are also copied torsg-inventory/html/images/.
- Ensure all pet images (found in
Check config.lua to customize:
- Pets: Define breeds, prices, models, descriptions, and skins (set
skin = 0to fix colors). - Pet Shop Locations: Move the NPC and shop interaction zone.
- Pet Behavior: Adjust follow distance, wandering radius, etc.
- Pet Food: Define what items can be fed to pets and how much they restore.
- Buying: Visit the Pet Shop (blip on map) and talk to the NPC.
- Summoning: Use the pet item in your inventory.
- Dismissing: Target your pet (Left Alt) and select "Flee".
- Interacting: Target your pet to see all options (Feed, Rename, Stay, etc.).
/petwhistle- Call your active pet to your current location (if they are spawned)./petdismiss- Emergency command to despawn your active pet.
- Floating NPC: Ensure
SpawnShopNPChas valid ground snapping logic (already fixed inclient.lua). - Random Colors: Ensure
skin = 0is set inconfig.luafor each pet (already fixed). - Missing Images: Ensure images are in BOTH
rsg-pets/html/img/ANDrsg-inventory/html/images/.
Created for RedM RSG Framework