For the complete documentation index, see llms.txt. This page is also available as Markdown.

FAQ

How can I add another job to use the K9 pet?


You can add another job by configuring the IsPlayerAllowedToBuyK9 function, which you can find in the file cdev_pets > public > server > api.lua.

Suppose the other job you want to add is named Xerif, then the code will look like this:

PetResourceAPI.IsPlayerAllowedToBuyK9 = function(source)
    local jobName, grade = clib.api.Character.GetCharacterJobFromSource(source)

    if jobName ~= "police" and jobName ~= "Xerif" then
        return false
    end

    return true
end

How stop Dog Attack?


After the pet starts attacking the player or NPC, keep holding the G key until it obeys your command to stop attacking.

Issue with DrawText for players in Asia how Fix it?


To fix the DrawText issue, go to cdev_lib > public > config > config.lua (lines 31 and 32) and change them to match the code below exactly.


How Pet Stamina System Work ?


Stamina represents your pet’s physical energy. It is consumed when the pet performs activities and regenerated only under specific conditions.

📍 Where are stamina settings located?

All stamina-related configuration values can be found here:


⚙️ Stamina Configuration Values


⏱️ How often does stamina update? (AI Tick)

Stamina does not update every second. It updates based on the server’s AI Tick system:

🔎 Meaning:

Stamina is updated only once every 60 seconds (1 minute).

Whether the pet is following, sleeping, or performing an action, stamina will only change at each tick.


😴 How Stamina Regenerates

Stamina increases only when the pet is properly sleeping in its bed.

Regeneration Rate:

State
Stamina Change
Amount

Sleeping in bed

Increase

+2 per minute

⚠️ Important Requirement


📉 Stamina Consumption (Default Config)

Below is a complete list of all actions that reduce stamina.


🐕 Following

Action
Stamina Change
Value

Following the owner

Decrease per tick

–4 per minute


🎾 Fetching (Toy/Ball)

Action
Stamina Change

Fetch a toy

–4 per action


🐺 Attacking

Action
Stamina Change

Attack

–5 per action


🎓 Training Activities

Training stamina costs are configured here:

Training Stamina Costs

Training
Stamina Cost

Cones

–5

Ramp

–7

Dummy (Practice Dummy)

–7

Hoop (Ring)

–7


💤 Tired State (Stamina = 0)

When stamina reaches 0, the pet becomes Tired.

Effects:

  • Cannot attack

  • Cannot train

  • Cannot fetch

  • Cannot perform demanding actions

  • May whine or show tired mood

  • Must sleep to recover stamina


📘 Complete Stamina Overview (Summary Table)

Situation
Change
Amount
Notes

Pet sleeping in bed

+

+2 / minute

Owner must stay close

Pet following owner

–

–4 / minute

Tick = 60s

Fetch toy

–

–4 / action

Instant

Attack

–

–5 / action

Instant

Cones training

–

–5

Requires stamina

Ramp training

–

–7

Requires stamina

Dummy training

–

–7

Requires stamina

Hoop training

–

–7

Requires stamina

Stamina minimum

0

Pet becomes Tired

Cannot perform actions


🛠 Balancing Tips (Optional)

Goal
Change

Faster stamina recovery

Increase StaminaIncreaseWhileSleepingPerTick

Slower stamina drain while following

Lower StaminaDecreaseFollowingPerTick

Faster stat updates

Reduce AI.TickFrequency (use with caution)


💡 Additional Notes

  • Stamina is clamped between 0 and 100.

  • Notifications are sent every time increase.

  • Stamina changes happen at tick intervals, not instantly.

  • The pet must be truly inside the bed’s interaction area to start sleeping.


My K9 dog is not dealing damage to the player it was ordered to attack how fix it?


⚠ Attention: Your K9 will not deal damage to the player because the setting EnableAttackUpdateis enabled in the configuration file: cdev_pets > public > config > config.lua (lines 39–40).

With this setting enabled, only K9 pets are allowed to attack, and they will only target players. However, they will not cause any damage — they will simply knock the player down and immobilize them, making the behavior more realistic, just like a real-life K9 unit.

Now, if you want the pet to deal damage to the player, you will need to make some changes in the file cdev_pets > public > config > config.lua as shown below.

⚠ Attention: Keep in mind that if you disable the EnableAttackUpdate setting, all pets will be able to attack, removing the exclusivity of the K9 pet.

Is it possible to add a pet Add-ON to the Pets system? And How Add ?


Yes, it’s possible to add a pet Add-on or even a some native GTA V animal. However, below you can find a list of functions that will be compatible and others that will not be compatible with Add-on pets or native GTA V animals.

⚠ Attention: You will only be able to add pets (Add-on or native) that belong to the Dog or Cat category. Other pets, such as a_c_chickenhawk, a_c_chimp, a_c_fish, a_c_hen, a_c_pig, a_c_rat, cannot be added — your pet will not have any movements and will also die instantly.

⚠ Attention: Issues with animations related to positioning, Add-on crashes and other problems with added pets (not including ours) are not covered by our support.

Appears
Actions
Accessories
Care

--------------------

Follow, Cuddle, Pet Stats, Animations ✅

Leash, Beds, Bwols, Toys ✅

Food, Liquid, Health ✅

Collar, Clothes, Shoes, Head, Patch, Glasse, Maks ⛔

K9 Functions (Sniff, Training) ⛔

-------------------

--------------------

How install new pet Add-on or retail pet from GTAV

1

Add the animal’s photo to the shop.

⚠ Recommended size: 237 x 168

⚠ To make sure the image works correctly in the shop, please use the WEBP format for the photo.

⚠ The file name (the animal’s photo) must match exactly the KEY variable name defined in cdev_pets > public > config > shop.lua.

Add the photo in the cdev_lib resource under the path: cdev_pets > html > pets > > inventory.

2

Creating the animal

You will add a line by copying from another animal inside the pets.lua file located in the folder cdev_pets > public > config > pets.lua.

Example (Using a native pet from GTAV):

Explanation of the part that needs to be changed:

["a_c_westy"]: Inside the key, instead of a_c_westy, you will put the name of the resource (the pet add-on folder you are adding) Or, if the pet is from GTAV, you should only use the ped name as shown on the website.

Item = "a_c_westy": Here you will enter the spawn name of the ped. For an add-on file, you can find it inside the peds.meta file in the section marked as <Name>a_c_westy</Name>.

Animations = DogAnims["SmallDog"], : In this part, where it says SmallDog, you should choose based on the size and category. There are three options: BigDog (for large dogs), SmallDog (for small dogs), and Cat (for cats).

3

Adding the new created pet for sale in the shop

You will copy the line below and paste it inside the shop.lua file located in the folder cdev_pets > public > config > shop.lua.

Explanation of the part that needs to be changed:

PetShopId = "a_c_westy": Identification name that will be recorded after the purchase in the shop.

key = "a_c_westy": Same name given to the Item variable in thepet.lua file, and it will also be used to retrieve the photo file inside cdev_lib.

label = "Yorkshire GTAV": Animal name displayed in the shop.

description = "A Yorkhire GTAV": Description of the animal that will be sold in the shop.

4

Adding the new animal to items exclusive to certain types and sizes of animals

Some items in the items.lua file located in cdev_pets > public > config > items.lua have exclusivity settings to prevent issues related to the animal’s size and category. For your new animal to be able to purchase these items, you need to add it to the limited variable.

Example item (dogbaga) : ⚠ You will add the name you used in the variable Item = "a_c_westy" located in the file: cdev_pets > public > config > pets.lua. Before add:

After add:

I changed the keybinds in the config, but they didn’t change in-game. How do I fix this?


For anyone who joined before the change, you’ll need to clear the keybinds saved in your FiveM cfg file.

Here’s how:

  1. Press WIN + R, type %appdata%, and open the folder.

  2. Navigate to: AppData/Roaming > CitizenFX > fivem.cfg

  3. Open the fivem.cfg file with a text editor.

  4. Look for any lines with cdev_pets binds and delete them, or remove only the specific bind you want to reset.

Example line to remove:

After clearing these lines, restart FiveM. The new keybinds from your server’s config will then load correctly.

Is it necessary to add the items that are inside the items.lua file to my inventory?


No, and it won’t work if you try to add them. The pet system has its own inventory already integrated with the cdev_pets resource. So regarding the items, you don’t need to do any configuration or add them to your own inventory system, since it is completely separate and has its own inventory system.

The only item you can add to your framework’s inventory if you want is the baseball item. For more information on how to add it, you can read the documentation at the link below.

OX Inventory

Discord Webhook Logs (Pets & Shops)


CDev Pets sends several events to Discord using:

Below you can find a complete list of all available webhook log types, when they are triggered, and which fields are included.

Pet Delete - Permission Denied

When it fires Triggered when a player tries to delete a pet but does not have permission.

Field
Description

Player

Name of the player

Identifier

Character identifier


Pet Deleted

When it fires Triggered when an admin successfully deletes a pet.

Field
Description

Admin

Admin name and server ID

Identifier

Owner character identifier

Pet ID

ID of the deleted pet

Created Shop

When it fires Triggered when a player creates a new shop.

Field
Description

Identifier

Creator’s character identifier

Player

Creator’s character name

Shop Name

Name of the created shop

Shop Location

JSON location / blip data


Deleted Shop

When it fires Triggered when a shop is deleted.

Field
Description

Identifier

Character identifier of the player deleting it

Player

Player who deleted the shop

Shop Name

Deleted shop name

{shop} Added Employee

When it fires Triggered when a new employee is added to a shop.

Field
Description

Identifier

Player performing the action

Player

Player name performing the action

Added Identifier

Identifier of new employee

Added Player

Name of new employee

Role

Employee role (Employee/Boss)


{shop} Fired Employee

When it fires Triggered when an employee is removed.

Field
Description

Identifier

Player performing the action

Player

Player name performing the action

Fired Identifier

Character identifier of removed player

Fired Player

Name of removed employee

[{shop}] Deposited vault money

When it fires Triggered when money is deposited into the shop vault.

Field
Description

Identifier

Player depositing money

Player

Player name

Amount

Deposited amount

New Total Amount

New vault balance


[{shop}] Withdrawn vault money

When it fires Triggered when money is taken out of the vault.

Field
Description

Identifier

Player withdrawing money

Player

Player name

Amount

Withdrawn amount

New Total Amount

New vault balance


[{shop}] Removed vault money

When it fires Triggered when money is removed by a system/admin action.

Field
Description

Identifier

Player removing money

Player

Player name

Amount

Amount removed

New Total Amount

New vault balance

[{shop}] Added stock

When it fires Triggered when items are added to shop inventory.

Field
Description

Identifier

Player adding stock

Player

Player name

Item

Item ID

Amount

Quantity added


[{shop}] Removed stock

When it fires Triggered when items are removed from stock.

Field
Description

Identifier

Player removing stock

Player

Player name

Item

Item ID

Amount

Quantity removed


[{shop}] Bought stock

When it fires Triggered when a player purchases stock for the shop.

Field
Description

Identifier

Player buying stock

Player

Player name

Items

JSON with items and amounts

Price

Total purchase price


[{shop}] Updated stock price

When it fires Triggered when a shop item price is modified.

Field
Description

Identifier

Player updating price

Player

Player name

Item

Item ID

Price

New item price

[{shop}] Updated vet tables

When it fires Triggered when the list of vet tables is updated.

Field
Description

Identifier

Player updating

Player

Player name

Tables Count

New amount of vet tables


[{shop}] Removed vet table

When it fires Triggered when a vet table is removed.

Field
Description

Identifier

Player removing table

Player

Player name


Where is the Pet MLO location?


Is there a way to disable the pet store in the TAB menu?


Yes! You can disable the shop button in the pet bag menu (TAB) by editing the config.lua file:

Path:

Find the line:

and set it to:

How do I change the colors of the menu ?


⚠ Before making any changes, make a full backup of the cdev_lib and cdev_pets folders. If you don't have experience with development or modifying code, it is not recommended that you follow these steps.

Changing Bag Pets Menu cdev_lib > dist > css > app.xxxx.css


(Header) #1f1f22

Formatted CSS Search For

Minified CSS Search For


(Body) #161619

Formatted CSS Search For

Minified CSS Search For


(Footer) #1f1f22

Formatted CSS Search For

Minified CSS Search For


Changing Main Shop Pets Menu cdev_lib > dist > css > app.xxxx.css


(Side Bar Item Menu) Selected #7289da Not Selected #1f1f22

Selected Formatted CSS Search For

Selected Minified CSS Search For

Not Selected Formatted CSS Search For

Not Selected Minified CSS Search For


(Side Bar Background) #d9d9d9

Formatted CSS Search For

Minified CSS Search For


(Background) #161619

Formatted CSS Search For

Minified CSS Search For


(Text Hrizontal menu) Selected #7289da Not Selected #000

Selected Formatted CSS Search For

Selected Minified CSS Search For

Not Selected Formatted CSS Search For

Not Selected Minified CSS Search For


(Background Horizontal Bar)#d9d9d9

Formatted CSS Search For

Minified CSS Search For


(Pagination Menu) Selected #7289da Not Selected No Background

Formatted CSS Search For

Minified CSS Search For


How can i buy a K9 pet and K9 items ?


To buy the K9 pet and the exclusive K9 accessories and items in the shop, you need to have the police job set in your framework.

After that, when you click to buy the pet, if it is a K9 type, you will see an extra checkbox appear in the purchase menu, just like in the example below.

If you want to change the required job or add more jobs allowed to buy the K9 and its accessories, follow this tutorial: Here

How to use the K9 pet's Sniff action ?


⚠ To use the Sniff feature, you first need to have a K9 category pet. You can see how to get a K9 pet HERE.

How to configure the items that the dog will sniff?

Access the file config.lua located in the folder cdev_pets > public > config > config.lua.

First, enable the SearchEnabled function so that everything works correctly on line 382:

Now, go to lines 390 to 398 and configure the items for each category as shown in the example below. These will be the items that the dog will search for and identify as illegal.

How Sniff system work and Sniff Skill Level?

The level determines the chance you have to perform the Sniff action successfully so lets use image bellow to example:

In this case, I have a 20% chance for the K9 dog to successfully find the items. You can change the DefaultLeveland MinLevel in the config.lua file located in the folder cdev_pets > public > config > config.lua (lines 314 and 317), as shown below.

Now lets explain how the Sniff System Works to better understand the Sniff system, here’s a step-by-step explanation:

  1. First – When you trigger the Sniff action near a vehicle, the system will start scanning the DrugItems configuration we set up earlier, regardless of where you clicked to activate Sniff.

    • It will first check the GloveBox, reading the vehicle’s plate and verifying in the database if any of the configured items are stored there.

    • If it finds an item, it will trigger the Try Sniff action, which determines success based on your pet’s level (as explained earlier).

    • If nothing is found in the GloveBox, it will proceed to search the Trunk for the configured DrugItems.

    • If it finds something in the Trunk, the dog will bark and perform a spinning animation.

  2. Second – If no items from the DrugItems list are found, the system will then check the MoneyItems list, following the same process:

    • First, it searches the GloveBox, then the Trunk.

    • If an item is found, the dog will sit and bark.

  3. Third – If no items from either the DrugItems or MoneyItems lists are found, the system will move on to check the WeaponItems list.

  4. Four and final - The system works the same way if you use the Sniff action on a player, but it will only check the player's inventory.


Do you want me to also add formatting for code examples in the documentation so it’s easier for developers to configure the item lists? That would make it even more user-friendly.

Does the VIP system work only for clothes and accessories ?


No, the VIP system works for any item listed in the file: cdev_pets > public > config > shop.lua

Inside this file, you just need to add vip = true to any item you want to make VIP-only. If the item doesn't already have it, here’s an example of how to add VIP to the dogs:

⚠ If you change the isPremiumPackage variable for any pet, I suggest you revert it to avoid potential issues in the future

After I start the assets folder this crash happens how fix ?


This happen because you got limit addons texture or other limit you can have in one server for fix this you have some options

  1. Remove some others texture like cars , new maps , clothes ..

  2. Increase TxdStore inside sever.cfg ( This is not recommend) increase_pool_size "TxdStore" 26000

3.Use different games force build to receive more space for addons we recomended use 3258 sv_enforceGameBuild 3258

You can check more about Game Build here

You can read more inside this documentation and check all limits here

⚠ Changing the gamebuild won’t necessarily free up more space, but it will remove updates, which can help allocate more addons. Keep in mind that by using an older gamebuild version, any GTA V updates included in that build will be lost, and clothing slots as well as other limits in GTA V will change, which can negatively affect other resources on your server.

You can also access the tool that FiveM provides to check how much % is being used in the TxDStore Pool, which is related to textures, by following the image below. Also remember that a large portion, at least 15 to 20%, comes from the default GTA V. The full list of pet assets below uses a total of 8.81% of the TxDStore:

  • cdev_petshop

  • cdev_pets_assets

  • cdev_pets_assets2

  • cdev_dog_pets

  • cdev_cat_pets

Press the F8 key to open the Client console in order to access the tool below.

⚠ If you don’t have this option in the F8 menu, you need to change your FiveM version. Go to the gear icon right after opening FiveM Settings > Game > Update Channel and switch it to Latest (Unstable).

How can I remove some clothes from the stream folder and the store?


Note: It is only recommended to remove them if you are really running out of space in txdStore and want to use the pets.

Category
Component Number
Stream names / Texture

Collar

8

cdev_xxx_xxx^accs_xxx_u.ydd (Model) cdev_xxx_xxx^accs_diff_xxx_x_uni.ytd (Texture)

Mask / Tie (Collar Category)

1 - Maks, 8 - Tie

cdev_xxx_xxx^berd_xxx_u.ydd (Model) cdev_xxx_xxx^berd_diff_xxx_x_uni.ytd (Texture)

Shoes

6

cdev_xxx_xxx^feet_xxx_u.ydd (Model) cdev_xxx_xxx^feet_diff_xxx_x_uni.ytd (Texture)

Head

9

cdev_xxx_xxx^task_xxx_u.ydd (Model) cdev_xxx_xxx^task_diff_xxx_x_uni.ytd (Texture)

Glasses

7

cdev_xxx_xxx^teef_xxx_u.ydd (Model) cdev_xxx_xxx^teef_diff_xxx_x_uni.ytd (Texture)

Clothes

3

cdev_xxx_xxx^uppr_xxx_u.ydd (Model) cdev_xxx_xxx^uppr_diff_xxx_x_uni.ytd (Texture)

Patch

1

cdev_xxx_xxx^berd_002_u.ydd (Model) cdev_xxx_xxx^berd_diff_002_x_uni.ytd (Texture)

1 - Identifying the clothing you want to remove.

1.2 - First, we will open the store and choose an accessory. In this case, I will choose the Red Air One Shoes.

1.3 - Now we will identify which stream represents the Red Air One Shoes. We already know, according to the table above, that it is among the stream files cdev_xxx_xxx^feet_xxx because it belongs to the Shoes category.

So, open the items.lua file located at cdev_pets > public > config > items.lua and search for “Red Air One Shoes.”

1.4 - So we found that the drawable number is 7, which is the model, and the texture is 0, which represents letters. For example: 0 → A, 1 → B, ...

Therefore, the model and texture for the Red Air One Shoes would be:

cdev_dog_rott^feet_007_u.ydd &#xNAN;cdev_dog_rott^feet_diff_007_a_uni.ytd

Where are the images from shop of the pets, clothes, and accessories located ?


All the images that appear in the store menu are located inside the cdev_lib resource:

cdev_lib > nui > dist > pets > inventory

The cdev_lib use the KEY variable inside the file: cdev_pets > public > config > shop.lua to look up the images in the folder mentioned above.

Example:

⚠ The images must have the.webp extension. Any changes inside this folder are not recommended unless you have experience.

Pets not spawning in?


[cdev_pets] (ERROR) Network control timeout for spawning pet, Please Try Again!

After I updated cdev_pets to version 2.9.3 or (Higher), I can no longer open the store manager how can i fix?


✅ Please note: if you’re not yet using the resource on your production server, and it’s not an issue for you to delete all the cdev_pets tables, the best practice is to remove them entirely and recreate the shop. This will fix all existing problems and help avoid any future issues.

List of all tables to delete (Only delete everything if you have no problem losing all previously recorded data.)

  • cdev_pets

  • cdev_pets_petshops

  • cdev_pets_petshops_employees

  • cdev_pets_petshops_sales

  • cdev_pets_petshops_sell_prices

  • cdev_pets_petshops_stock

⚠ This error happens because in the new updates, some items were renamed and problematic items were also removed from the items.lua and shop.lua files. Additionally, we replaced all the images as well. To fix this issue with the store, simply clear the tables in the database listed below and fully restart the server.

List of tables to empty

  • cdev_pets_petshops_sales

  • cdev_pets_petshops_sell_prices

  • cdev_pets_petshops_stock

Example Video using HeidiSQL ( version: 12.10.0.7000)

⚠ In addition to the issue above, it can also happen that when a player opens the /petbag or the TABmenu and tries to spawn certain pets, a similar error will occur. I’ll use the Golden Retriever pet as an example, which had some changes made to it.

This is what happens when you try to spawn a pet whose models were changed or that was removed.

Client Side Error (F8 Console)

Server Side Error (Prompt or TxAdmin Console)

Now I’ll explain how to fix this problem if you updated the version and this is happening to your players who had the old pets.

In the database image below, in the cdev_pets table, you’ll need to modify two columns: the first is the KEY column and the second is the PETSHOPID column, as shown in the image below.

First, let’s find the new names for the Golden Retriever, which we’re using as an example. You’ll start by opening the shop.lua file located in the folder cdev_pets > public > config > shop.lua, and you’ll find the Golden Retriever code just like in the example below.

Now that we have the new strings, we’re going to update them in the database, and the result will look like the image below.

After all the changes, you will shut down and restart the server, and the pet on your client or your player’s client will be working normally.

⚠ Just a reminder: if you don’t have experience, I recommend not modifying the tables to avoid any serious issues with your server, such as data loss.

Last updated