All documentation

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.

  • poggy_transformv1.2.3
  • FrameworksVORP Core, RSG Core, QBCore RedM
  • Updated5 Oct 2026

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#

WhatWhy
RedM with VORP Core, RSG Core or QBCore RedMAnimals and ped models work on all three. The character browser is VORP only.
poggy_core 0.13.0 or newerFramework 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.
oxmysqlOnly 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#

  1. Download poggy_transform from your Cfx portal and put the folder in your server's resources folder.
  2. In server.cfg, start it after poggy_core:
    ensure poggy_core
    ensure poggy_transform
  3. Give your admins the permission (see Permissions).
  4. 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

SettingDefaultWhat it does
Menu command (Config.Command)"transform"The command that opens the menu, without the slash.
Attack cooldown (Config.AttackCooldown)2000 msWait between basic attacks, and for any extra move that has no cooldown of its own.
Server attack limit (Config.AttackMinInterval)300 msAnti-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 mAnti-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 CommandsWhich keys trigger the extra attack moves, by slot.
Debug output (Config.Debug)falsePrints extra lines to the server and F8 consoles, such as bad animation names.

Access

SettingDefaultWhat it does
Admin ACE (Config.AdminAce)"poggy_transform.admin"The ACE that makes someone a transform admin.
Admin groups (Config.AdminGroups)admin, superadmin, godCharacter 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,
},
FieldWhat it does
idA unique short name.
labelThe name on the card.
modelThe ped model, such as A_C_Wolf or cs_dutch.
imageA 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.
categoryThe menu tab. Use one of the six shipped categories; any other shows as its id with a question mark.
jobJob 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.
scaleOptional size. 1.0 is normal; the legendary animals use 1.3 to 1.5.
aggressiveLets it attack. It also needs attackAnim, attackRadius (reach), attackForce (knockback) and attackDamage.
attacksOptional extra moves (pounce, ground, taunt…), each with its own animation and optional damage, force, reach and cooldown. Empty numbers use the basic ones.
jumpAnimOptional jump attack animation.
emotesOptional /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#

CommandWhoWhat it does
/transformEveryoneOpens 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.
/aeWhile an animal with emotesOpens the emote picker.
/ae <name>While an animal with emotesPlays an emote, for example /ae howl.
/ae stopWhile an animal with emotesStops a looping emote. Backspace does too.
/rcpWhile wearing a characterRe-applies the look if clothing colours drift.

/transform can be renamed with Config.Command. /ae and /rcp are fixed.

Keys in animal form

KeyDoes
Left clickBasic 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
SpaceJump 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

  1. Type /transform.
  2. Pick a tab and click a card. You become that animal or character.
  3. As an animal, use the keys above to attack, jump and taunt; type /ae for emotes if it has any.
  4. Open /transform again 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.

Join the Discord Discord