[PAID][QB/ESX/OX] Waypoint Animals

Waypoint Animals is a script that lets players bring their animal/pet companions into the world and expand their creative opportunities. Players can interact with their animals in a variety of ways, such as petting, holding them, playing fetch, playing animations, having them follow you around on foot or in a vehicle. Animals can be fully customized, choosing from the color of their fur/skin, collars, and accessorizing with a variety of props that can be placed however the user likes.

Preview Video
Purchase on Tebex

Features

  • Comes with 20 animals to choose from by default. Can easily be expanded by adding your own custom animal models.

  • No limit to the number of animals that can be controlled at the same time

  • Full customization of your pets (fur/skin color, collars, accessorize with prop customization)

  • Interact with animals in a variety of ways (petting, holding, playing fetch, playing animations, having them follow you around on foot or in a vehicle)

  • Control animals with the following actions: follow, stay, go to point, get in/out vehicle, wander in the area, attack (configurable via a config flag)

  • A simple store UI is provided to purchase animals from and retrieve lost animals from “the pound”

  • Animals can be placed and picked up by anyone.

  • Animals are stored as items in your inventory, simply use the item to place it into the world.

  • Interact with animals through the target system as well as through the /animals menu.

  • Synchronized across all clients

The attack action is behind a feature flag to enable. I recommend implementing server rules to guide players on its usage, as it can be easily exploited in ways that might adversely affect roleplay (RP)

Customize Animals

When purchasing an animal you can choose the name, color, collar (if applicable).

After purchasing you can customize the collar color through the menu. There is a full prop placement system that allows you to accessorize the animals with props. The animals can currently be customized with 5 different prop slots. Props can quickly and easily be adjusted / changed through the menu at any time.

Add additional props (including custom props) to the Config.PropOptions table.

Performance

  • Idle / Following / Actions / Fetch: 0.00ms

  • Store UI / Hold / : 0.01ms

  • Raycast Actions (Go to point, get in vehicle, etc): 0.03ms - 0.07ms

  • Prop Customization: 0.01ms - 0.10ms (only while quickly cycling through and moving props)

Dependencies

  • Framework : QBCore, ESX

  • Notify : QB, ESX, OX, or similar

  • Target : QB, OX, or similar

  • Progressbar : QB, OX, or similar

  • Inventory : QB, OX, or similar (must have support for item metadata)

  • SQL database

  • menuV

    • We use menuv for the menu system for controlling, customizing and animating the animals.
  • PolyZone (used just for detecting when you are in the store)

All framework / external script dependencies are configurable within the framework.lua file and can be easily changed to fit your server’s needs. Additionally all files for the store (web and client) and menu code are open source.

Documentation and Setup Instructions provided here

Code is accessible Config, Framework, Store (ui and lua), Menu
Subscription-based No
Lines (approximately) ~2000
Requirements qbcore or esx, target, inventory, menuV, PolyZone
Support Yes

Gallery










Credit


Checkout my scripts

4 Likes

W developer always does great work and very optimized as well.

I don’t understand why people will use PolyZone over ox_lib. Please at least detect if ox_lib is started and use their Polyzone system rather than having an additional resource

Is the target system mandatory?

PolyZone is only used in one place for entering the store.
This file (store.lua) is left open source, so anyone is free to swap it out with their preference and/or completely remove it if they so choose.

Yes, by default a target system is a required dependency to be able to pet, hold, view info, and pick up animals once placed.

Tho, if you really didnt want to use a target system you could go without it and still control the animals with the menu, you just wouldn’t be able to pick your pets up via targetting.

You could in theory also add an option in the menu to pick the pets back up. The menu code (menu.lua) is also open source so you can add/modify the actions from here.

Changelog - v1.0.1

  • Add attack action behind Config.EnableAttackAction
    • The selected animals will attack the ped/player entity that you target.
    • :warning:I recommend implementing server rules to guide players on its usage, as it can be easily exploited in ways that might adversely affect roleplay (RP)
  • Moved the functions.lua file to be open source
    • Moved the raycastThread() function into functions file. You can use this to add your own custom actions that make use of the existing raycast logic.
1 Like

Changelog v1.0.2

  • Added blips to the map for all of your placed animals. This is behind a config flag if you do not want it Config.EnableAnimalBlips.
  • Fixed a bug where animals would attack the player when they fire a gun. Animals are now friendly with the player
1 Like

:dog2: Waypoint Animals - v1.0.3

- Added water animals to the store (dolphin,  killer whale, humpback whale, tiger shark, hammerhead shark, stingray, fish)
   - ⚠️Warning: If you spawn a water based animal outside of the water it will die. 
   - If you do not want to use the water based animals, you can simply comment them out / remove them from the config.


image

This looks solid. I really want this but with ox_lib menu support

:dog2: Waypoint Animals v1.0.5

- Added 9 new color variations for poodles: grey, black, brown, red, green, yellow, pink, blue, purple
- Added new white color variation for rabbits


:dog2: Waypoint Animals v1.0.6

- Add exposed functions (`PetAnimalCustomActions_Server`, `PetAnimalCustomActions_Client`) that provide the capability to define custom actions when a player pets an animal (ex: reduce player stress)
- Provided an example function to reduce player stress for QBCore