Paid scripts
Poggy Transform
Players become a wolf, a bear, a legendary animal or a character from a card menu, with attacks, a jump and emotes for animals. Lock any of them behind a job; admins can also become any ped model or wear another character's exact look.
Overview#
Players open a card menu and pick an animal or a character to become. Ninety transformations ship in the box, sorted into tabs: predators, prey and wildlife, birds, aquatic and reptiles, legendary animals and people. Everything is unlocked by default; lock any of them behind a job whenever you are ready.
- Animals that fight: a basic attack, and for many a pounce, a ground attack, a jump attack and a taunt (growl, howl or roar).
- Emotes for wolves and dogs: howl, sit, sleep, roll, bark, shake and more.
- Legendary animals at 1.3 to 1.5 times normal size.
- Job locks per transformation.
- For admins: type in any ped model, and (on VORP) a character browser to wear any character's exact face, body, clothes and colours.
- Attacks on players are checked at both ends against abuse.
- Card art, the menu's stylesheet and the whole config are left open for you to edit.
Requirements#
| What | Why |
|---|---|
| RedM with VORP Core, RSG Core or QBCore RedM | Animals and ped models work on all three. The character browser is VORP only. |
| poggy_core 0.13.0 or newer | Framework detection, jobs, admin groups, notifications and the character browser. It must start first. With 0.23.0 or newer the menu follows the Poggy theme. |
| oxmysql | Only for the character browser: poggy_core reads saved appearances through it. |
No database tables and no items of its own. There is no framework setting to change.
Installation#
- Download
poggy_transformfrom your Cfx portal and put the folder in your server'sresourcesfolder. - In
server.cfg, start it after poggy_core:ensure poggy_core ensure poggy_transform - Give your admins the permission (see Permissions).
- Start the server and read the console.
A healthy start prints the framework it found, how many transformations loaded, and whether the character browser is on:
[poggy_transform] framework: vorp | 90 transformables (0 job-locked) | character browser: enabled Configuration#
Every setting can be changed in game in the /poggy settings hub under Poggy Transform, or by hand in config.lua. Restart the script after a change. The hub has two help pages: Adding a transformation and Tuning animal attacks.
General and combat
| Setting | Default | What it does |
|---|---|---|
Menu command (Config.Command) | "transform" | The command that opens the menu, without the slash. |
Attack cooldown (Config.AttackCooldown) | 2000 ms | Wait between basic attacks, and for any extra move that has no cooldown of its own. |
Server attack limit (Config.AttackMinInterval) | 300 ms | Anti-abuse: the server refuses to pass on attacks from one player faster than this. Keep it below your shortest cooldown. |
Range tolerance (Config.AttackRangeTolerance) | 2.0 m | Anti-abuse: extra distance on top of an animal's reach that a target still accepts. Raise it if attacks miss on a laggy server. |
Attack inputs (Config.AttackInputs) | see Commands | Which keys trigger the extra attack moves, by slot. |
Debug output (Config.Debug) | false | Prints extra lines to the server and F8 consoles, such as bad animation names. |
Access
| Setting | Default | What it does |
|---|---|---|
Admin ACE (Config.AdminAce) | "poggy_transform.admin" | The ACE that makes someone a transform admin. |
Admin groups (Config.AdminGroups) | admin, superadmin, god | Character groups that also count as admins. Checked after the ACE; not case-sensitive. |
Transformations (Config.Animals)
Every card in the menu is one entry. In the hub: Transformations. The quickest way to add one is to duplicate a similar entry: duplicating a wolf keeps its attacks and emotes.
{
id = "my_ped",
label = "My Ped",
model = "A_C_Wolf", -- any valid RDR3 ped model
image = "my_ped.png", -- put the file in ui/images/
category = "predator", -- predator, prey, bird, aquatic, legendary or people
job = "", -- "" = anyone
aggressive = false,
},
| Field | What it does |
|---|---|
id | A unique short name. |
label | The name on the card. |
model | The ped model, such as A_C_Wolf or cs_dutch. |
image | A PNG in ui/images/. Around 300 × 200 or larger looks best. With no file the card shows a category icon, so a missing image is never broken. |
category | The menu tab. Use one of the six shipped categories; any other shows as its id with a question mark. |
job | Job lock. Empty for everyone. One job per entry: to offer an animal to two jobs, add it twice with different ids. Not case-sensitive. Admins always bypass it. |
scale | Optional size. 1.0 is normal; the legendary animals use 1.3 to 1.5. |
aggressive | Lets it attack. It also needs attackAnim, attackRadius (reach), attackForce (knockback) and attackDamage. |
attacks | Optional extra moves (pounce, ground, taunt…), each with its own animation and optional damage, force, reach and cooldown. Empty numbers use the basic ones. |
jumpAnim | Optional jump attack animation. |
emotes | Optional /ae emotes: a command word, a name, an animation, and whether it loops. |
The Config.Categories list in the file is not used by this version: the menu builds its tabs from each entry's category.
Locking a transformation behind a job
{
id = "wolf",
label = "Wolf",
model = "A_C_Wolf",
job = "hunter", -- only the hunter job can become a wolf
...
} Commands#
| Command | Who | What it does |
|---|---|---|
/transform | Everyone | Opens the menu. Players see entries with no job lock or their own job; admins see everything. The menu also has the button to turn back. |
/ae | While an animal with emotes | Opens the emote picker. |
/ae <name> | While an animal with emotes | Plays an emote, for example /ae howl. |
/ae stop | While an animal with emotes | Stops a looping emote. Backspace does too. |
/rcp | While wearing a character | Re-applies the look if clothing colours drift. |
/transform can be renamed with Config.Command. /ae and /rcp are fixed.
Keys in animal form
| Key | Does |
|---|---|
| Left click | Basic attack (and the ground move, for animals that have one) |
The game's Enter control (INPUT_ENTER) | Pounce, for animals that have one |
The game's Reload control (INPUT_RELOAD) | Taunt: growl, howl or roar |
| Space | Jump attack, for animals that have one |
| R1 / RB (horse melee control) | Crouch |
The pounce, ground and taunt keys are set in Attack inputs (Config.AttackInputs). An animal only uses a slot if it has an extra move with that key.
Permissions#
Everyone can open /transform and use any entry that is not job-locked, or is locked to their own job.
Admins see every transformation whatever the job lock, and only admins get the custom ped box and the character browser. A player is an admin when they have the ACE, or their character's group is in Admin groups:
add_ace group.admin poggy_transform.admin allow
The ACE works on every framework. The default groups admin, superadmin and god work with no setup, as poggy_core reports them.
Using it in game#
Players
- Type
/transform. - Pick a tab and click a card. You become that animal or character.
- As an animal, use the keys above to attack, jump and taunt; type
/aefor emotes if it has any. - Open
/transformagain and click Revert to Human to return to yourself.
Admins
- Custom ped: type any ped model name in the Custom Ped Model box at the top of the menu and click Transform.
- Character browser (VORP): the Players tab lists every character on the server. Pick one to wear their exact face, body, clothing and tints. It is applied on your screen only. Nothing is written to the database and the character you copy is not touched. If colours drift, type
/rcp.
Attacks on other players
Attacks on players go through the server and only land when:
- PvP is on for the target,
- the attacker is within the animal's basic reach plus Range tolerance, and
- the attacker is not sending attacks faster than Server attack limit.
A hit through the server uses the animal's basic damage and knockback. An extra move's own numbers apply to nearby NPCs only.
Troubleshooting#
"You don't have access to any transformations."
Every entry is job-locked and the player has none of those jobs.
No Players tab
You are not an admin, the server is not on VORP, or oxmysql is missing. Check the console line at start: it says character browser: unavailable when it cannot work.
An animal will not attack
It needs aggressive = true and an attackAnim.
Attacks miss other players
The target needs PvP on. On a laggy server, raise Range tolerance. A long-reach pounce is checked against the animal's basic reach, so it may need a higher tolerance too.
A new category shows as its id with a question mark
The menu only knows the six shipped categories by name. Use one of those.
A transformation does nothing
Check the model name. Turn on Debug output and read the F8 console.
Updating#
poggy_core's updater keeps it up to date, and your config.lua settings are kept: see Updates.
ui/style.css, ui/images/ and server/permissions.lua are also left readable so you can restyle the menu, add card art or adapt the admin check. Keep a copy of anything you changed there before updating, since an update may replace those files.