Configuring Skills in Fivemon
This guide explains how to configure Monster Skills (Fly, Ride, Surf, Dive, Carry) using the monsters-wrappers
script in your Fivemon server.
File Location
Skill configuration files are located at data/
You will find:
fly.json
ride.json
carry.json
surf.json
dive.json
Each file defines the configuration for a specific movement skill.
Ped Type — ⚠️ Important
Each Monster model has a ped type that determines which animation dictionaries it supports.
If you use animations not supported by the ped type, the skill will not work correctly or will bug out.
How to check the ped type:
-
Open:
[assets]/monster_models/peds.meta
-
Search for the model name of your Monster (e.g., charizard
, slowpoke
, etc.).
-
Inside the entry, look for this tag:
<PoseMatcherName>deer</PoseMatcherName>
Common values:
-
Make sure the monster animations you choose (e.g., skydive@freefall
, creatures@boar@move
) are compatible with the ped type.
Common Concepts
Each skill configuration contains entries per Monster, specifying how the player is attached to the model, which animations are used, and more.
The fields vary slightly depending on the skill.
Carry.json – All Configurable Parameters (with Defaults)
The Carry.json
file is used to define Monster that carry the player, typically smaller ones (like Bulbasaur or Pikachu), in the Fivemon framework.
Below is the full list of parameters you can configure for this skill, along with default values and explanations.
Basic Identifiers
Field | Default | Description |
id | — | Pokédex ID of the Monster. |
name | — | Monster name (must exactly match model name). |
Player Mounting
These define how the player is positioned on the Monster.
Field | Default | Description |
attachPosX | 0.0 | X-axis offset from the Monster's bone. |
attachPosY | 0.0 | Y-axis offset. |
attachPosZ | 0.0 | Z-axis offset (height). |
attachRotX | 0.0 | Rotation on the X-axis (pitch). |
attachRotY | 0.0 | Rotation on the Y-axis (roll). |
attachRotZ | 0.0 | Rotation on the Z-axis (yaw). |
Attachment Bone
Field | Default | Description |
bone | 0x796E | Bone where the player is attached. Must be valid for the model. |
Animation
These control how the player animates while being carried.
Field | Default | Description |
animDict | "amb@prop_human_seat_chair@male@generic@base" | Animation dictionary for the player. |
animName | "base" | Animation name within the dictionary. |
Example Entry
{
"id": 1,
"name": "bulbasaur",
"attachPosX": 0.2,
"attachPosY": -0.3,
"attachPosZ": 0.0,
"attachRotX": 0.0,
"attachRotY": 90.0,
"attachRotZ": -80.0,
"bone": "0x60F2",
"animDict": "creatures@pug@move",
"animName": "idle"
}
Ride.json – All Configurable Parameters (with Defaults)
The Ride.json
file controls how a player rides on a Monster using the Ride skill in Fivemon.
Below is a complete list of supported parameters, their default values, and what they control.
Basic Identifiers
Field | Default | Description |
id | — | Pokédex ID of the Monster. |
name | — | Name of the Monster (must match model name). |
Player Mounting
Field | Default | Description |
attachPosX | 0.0 | Player's horizontal offset (left/right) from the Monster. |
attachPosY | 0.0 | Player's vertical offset (front/back). |
attachPosZ | 0.0 | Player's height offset. |
attachRotX | 0.0 | Player's pitch angle. |
attachRotY | 0.0 | Player's roll angle. |
attachRotZ | 0.0 | Player's yaw angle (rotation around vertical axis). |
Mounting Bone
Field | Default | Description |
bone | 0x796E | Bone to attach the player to. Can be a hex string or number. |
Mounting Animation
Field | Default | Description |
animDict | "amb@prop_human_seat_chair@male@generic@base" | Animation dictionary for player while mounted. |
animName | "base" | Animation name within the dictionary. |
Special Action Animation (Optional)
These are used when a special action (e.g., attack, emote) is triggered during riding.
Field | Default | Description |
animEspecialDict | "creatures@deer@melee@streamed_core@" | Special animation dictionary (if not "" ). |
animEspecialName | "attack" | Special animation name. |
Note | If "" , the animation is skipped (nil ). | |
Camera Settings
Field | Default | Description |
camZoom | 6.0 | Third-person camera zoom when riding. Higher = zoomed out. |
Movement Speed
Field | Default | Description |
maxSpeed | 3.0 | Maximum speed of the Monster while riding. |
minSpeed | 2.0 | Minimum movement speed. |
Example Entry
{
"id": 143,
"name": "snorlax",
"attachPosX": 1.1,
"attachPosY": -1.0,
"attachPosZ": 0.0,
"attachRotX": 0.0,
"attachRotY": 90.0,
"attachRotZ": -40.0,
"animDict": "missexile3",
"animName": "ex03_train_roof_idle",
"bone": "0x60F2",
"camZoom": 8.0,
"maxSpeed": 4.0,
"minSpeed": 2.0
}
Surf.json – All Configurable Parameters (with Defaults)
The Surf.json
file defines how a Monster behaves when using the Surf skill, allowing the player to ride it on water surfaces.
Below is a full breakdown of the supported parameters, with defaults and clear explanations.
Basic Identifiers
Field | Default | Description |
id | — | Pokédex ID of the Monster. |
name | — | Monster name (must match model name exactly). |
Player Mounting
Field | Default | Description |
attachPosX | 0.0 | X offset of the player from the Monster. |
attachPosY | 0.0 | Y offset (front/back). |
attachPosZ | 0.0 | Z offset (height). |
attachRotX | 0.0 | Rotation around X-axis (pitch). |
attachRotY | 0.0 | Rotation around Y-axis (roll). |
attachRotZ | 0.0 | Rotation around Z-axis (yaw). |
Animations
Field | Default | Description |
animDict | "amb@prop_human_seat_chair@male@generic@base" | Player animation dictionary. |
animName | "base" | Player animation name. |
pokemonAnimDict | "swimming@swim" | Monster’s looped animation dict while surfing. |
pokemonAnimName | "run" | Monster’s animation name. |
Water / Animation Behavior
Field | Default | Description |
waterModifier | 0.08 | Extra buoyancy modifier while surfing. |
animModifier | 0.11 | Extra animation speed multiplier. |
baseAnimSpeed | 0.6 | Base animation speed for the Monster while surfing. |
Movement Speeds
Field | Default | Description |
speedXMax | 3.0 | Maximum forward speed. |
speedXMin | -0.3 | Minimum backward speed. |
speedYMax | 0.3 | Maximum lateral (strafe) speed. |
speedYMin | -0.1 | Minimum lateral speed. |
Acceleration / Deceleration
Axis | Acceleration | Default | Deceleration | Default |
X (forward/back) | accelerationX | 1.0 | decelerationX | 0.2 |
Y (sideways) | accelerationY | 1.0 | decelerationY | 0.2 (shares decelerationX ) |
Rotation and Motion Effects
Field | Default | Description |
speedRot | 100 | Rotation speed when turning. |
period | 200 | Time (ms) between up-down bobbing cycles. |
amplitude | 0.5 | Height/intensity of the bobbing. |
Positional Offsets
Field | Default | Description |
zOffset | 1.0 | Height above water level. |
zGround | 0.0 | Offset used when returning to land (optional). |
Camera
Field | Default | Description |
camZoom | 6.0 | Zoom level of the camera while surfing. Higher = more zoomed out. |
Example Entry
{
"id": 79,
"name": "slowpoke",
"pokemonAnimDict": "creatures@boar@move",
"pokemonAnimName": "gallop",
"animModifier": 0.08,
"baseAnimSpeed": 0.1,
"attachPosX": -0.05,
"attachPosY": -0.1,
"attachPosZ": 0.45,
"zOffset": 0.7,
"zGround": 0.0,
"camZoom": 7.0
}
Dive.json – All Configurable Parameters (with Defaults)
The Dive.json
file defines how a Monster behaves when using the Dive skill, allowing underwater navigation in your Fivemon server.
Here is the full list of available parameters with their default values and function.
Basic Identifiers
Field | Default | Description |
id | — | Pokédex ID of the Monster. |
name | — | Monster name (must match the model name). |
Player Mounting
Field | Default | Description |
attachPosX | 0.0 | X-axis offset for mounting. |
attachPosY | 0.0 | Y-axis offset. |
attachPosZ | 0.0 | Z-axis offset (vertical). |
attachRotX | 0.0 | Pitch angle. |
attachRotY | 0.0 | Roll angle. |
attachRotZ | 0.0 | Yaw angle. |
Animations
Field | Default | Description |
animDict | "amb@prop_human_seat_chair@male@generic@base" | Animation dictionary for the player. |
animName | "base" | Player animation name. |
pokemonAnimDict | "swimming@swim" | Animation dictionary used by the Monster. |
pokemonAnimName | "run" | Looping animation played on the Monster. |
pokemonTurboAnimDict | "anim@arena@celeb@flat@solo@no_props@" | Animation for boost/turbo. |
pokemonTurboAnimName | "flip_a_player_a" | Boost animation name. |
Water Movement Behavior
Field | Default | Description |
waterModifier | 0.08 | Modifier affecting water resistance. |
animModifier | 0.11 | Animation speed multiplier. |
baseAnimSpeed | 0.6 | Base animation playback speed. |
Movement Speeds
Field | Default | Description |
speedXMax | 3.0 | Max forward speed. |
speedXMin | -0.3 | Max backward speed. |
speedYMax | 0.3 | Max strafe speed. |
speedYMin | -0.1 | Min strafe speed. |
speedZMax | 2.0 | Max ascend (upward) speed. |
speedZMin | -1.5 | Max dive (downward) speed. |
Acceleration / Deceleration
Axis | Acceleration | Default | Deceleration | Default |
X (forward/back) | accelerationX | 1.0 | decelerationX | 0.2 |
Y (strafe) | accelerationY | 1.0 | decelerationY | 0.2 (uses decelerationX) |
Z (vertical) | accelerationZ | 0.5 | decelerationZ | 0.4 |
Rotation and Motion Effects
Field | Default | Description |
speedRot | 100 | Rotation speed when turning. |
period | 200 | Time in ms between wave bobs. |
amplitude | 0.5 | Intensity of up/down motion (bobbing effect). |
Positional Offsets
Field | Default | Description |
zOffset | 1.0 | Height offset for underwater movement. |
zGround | 0.0 | Offset when surfacing or grounding. |
Camera
Field | Default | Description |
camZoom | 6.0 | Camera zoom while diving. |
Example Entry
{
"id": 79,
"name": "slowpoke",
"pokemonAnimDict": "creatures@boar@move",
"pokemonAnimName": "gallop",
"animModifier": 0.08,
"baseAnimSpeed": 0.1,
"attachPosX": -0.05,
"attachPosY": -0.1,
"attachPosZ": 0.45,
"zOffset": 0.7,
"zGround": 0.0,
"camZoom": 7.0,
"pokemonTurboAnimDict": "anim@arena@celeb@flat@solo@no_props@",
"pokemonTurboAnimName": "flip_a_player_a"
}
Fly.json – All Configurable Parameters (with Defaults)
The Fly.json
file controls how a Monster behaves while flying in Fivemon. Below is the full list of parameters you can configure, along with their default values and an explanation of what each one does.
Basic Identifiers
Field | Default | Description |
id | — | Pokédex ID of the Monster. |
name | — | Monster name (must match internal model name). |
Player Mounting
Field | Default | Description |
attachPosX | 0.0 | X offset where the player is mounted on the Monster. |
attachPosY | 0.0 | Y offset for mounting position. |
attachPosZ | 0.0 | Z offset (height) of the mounted player. |
attachRotX | 0.0 | Rotation around X-axis. |
attachRotY | 0.0 | Rotation around Y-axis. |
attachRotZ | 0.0 | Rotation around Z-axis. |
Camera
Field | Default | Description |
camZoom | 6.0 | Camera zoom level when flying. Higher = more zoomed out. |
Player Animation (Optional)
Field | Default | Description |
animDict | "amb@prop_human_seat_chair@male@generic@base" | Animation dictionary for the player. |
animName | "base" | Name of the animation from animDict . |
Monster Animations (States)
These control how the Monster animates during various phases of flight:
Phase | Dict Field | Default | Name Field | Default |
Take-off | pokemonUpAnimDict | "skydive@freefall" | pokemonUpAnimName | "free_back" |
Idle in air | pokemonIdleAnimDict | "skydive@base" | pokemonIdleAnimName | "free_idle" |
Descending | pokemonDownAnimDict | "skydive@freefall" | pokemonDownAnimName | "free_forward" |
Turning left | pokemonLeftAnimDict | "skydive@freefall" | pokemonLeftAnimName | "free_left" |
Turning right | pokemonRightAnimDict | "skydive@freefall" | pokemonRightAnimName | "free_right" |
Turbo / Speed boost | pokemonTurboAnimDict | "anim@arena@celeb@flat@solo@no_props@" | pokemonTurboAnimName | "flip_a_player_a" |
You can customize each animation set to make flying look more dynamic or unique.
Flight Speeds
These define movement limits and feel of the flying controls.
Field | Default | Description |
speedXMax | 9 | Maximum forward speed. |
speedXMin | -0.9 | Minimum (backwards) speed. |
speedYMax | 0.1 | Max strafe (left/right) speed. |
speedYMin | -0.1 | Min strafe speed. |
speedZMax | 6 | Maximum upward speed. |
speedZMin | -10 | Maximum downward speed. |
Acceleration / Deceleration
Axis | Acceleration | Default | Deceleration | Default |
X (forward/backward) | accelerationX | 2.5 | decelerationX | 0.6 |
Y (sideways/strafe) | accelerationY | 1.0 | decelerationY | 0.2 |
Z (up/down) | accelerationZ | 3.0 | decelerationZ | 0.5 |
These affect how responsive the flight feels.
Rotation Speed
Field | Default | Description |
speedRot | 100 | Rotation speed (turning). Higher = faster turning. |
Flight Movement Curve
These parameters control the natural movement "bobbing" of the Monster while flying.
Field | Default | Description |
period | 200 | Time (ms) between wave cycles of bobbing. |
amplitude | 0.5 | Height/intensity of the bobbing effect. |
Example Entry
{
"id": 6,
"name": "charizard",
"attachPosX": 0.2,
"attachPosY": -0.3,
"attachPosZ": 0.0,
"attachRotX": 0.0,
"attachRotY": 90.0,
"attachRotZ": -90.0,
"camZoom": 8.0
}
Real-time Testing
-
Add a basic boilerplate for the monsters you want to configure and restart monsters-wrapper
and then uri-core
.
-
Use /testMoveSkillValue [key] [value]
while mounted to adjust values live.
-
Use /testMoveSkillExport
while mounted to export current settings to console.
-
Paste exported values into the correct JSON.
-
Validate formatting.
-
Restart monsters-wrapper
and uri-core
.
-
Tip use a console command (F8) and use healTrainerTeam me; testMoveSkillValue [key1] [value1]; testMoveSkillValue [key2] [value2]; testMoveSkillValue [key3] [value3]
adding all the commands you want. We use healTrainerTeam me
to heal the PPs to avoid skill not being able to start.
-
Here you can find a bones list, use the "ID": Bone list