The Screens#
Gym Creator has one window for building gyms and three small screens players meet while training. It helps to know which is which from the start.
Screen | Opened with | What it is for |
|---|---|---|
The creator |
| Building, editing, teleporting to and deleting gyms. Admins and the jobs in |
Membership | The reception NPC → Purchase Membership | The gym's logo, price and length; buying with cash or bank; the expiry date of an active membership. |
Workout overlay | A station → Start … | The exercise name, a percentage and a progress bar, with |
Stats HUD |
| Strength and stamina, 0 to 100, at the top of the screen. |
Every gym is configured per gym, in game.
config/main.luaonly holds the server-wide defaults and schedule — see the Configuration Reference at the end of this page.
The Creator#
/gymcreator opens a list of every gym on the left and the editor on the right. The list can be searched by gym or blip name, and each card shows the gym's logo, its number of stations and its membership price, with a teleport button that takes you to its blip after a confirmation. Press + to start a new gym, or click a card to edit it.
The editor has five panels. Fill them top to bottom, then press Create gym — or Save when editing. The gym appears for every player at once.
General#
Field | What it does |
|---|---|
Gym label | The gym's name, shown in the creator and on the membership screen. Required. |
Logo URL | A direct link to an image, shown on the membership screen and the creator card. Leave it empty for the default logo. |
Requires membership | On by default. Turn it off to make the gym free for everyone — the receptionist then has nothing to sell. |
Membership price | What a membership costs. Pre-filled from |
Duration (days) | How long a membership lasts, from 1 to 365. Pre-filled from |
Stat gain multiplier | 0.5× to 3.0×. Every reward at this gym is multiplied by it: 0.5× for a relaxed public gym, 1.0× standard, up to 3.0× for a hardcore premium one. |
Daily stat decay | Whether this gym's members lose stats overnight. Turn it off for a premium gym. |
Decay per day | 1 to 50 points of both strength and stamina taken each night (default 5). |
Map blip#
The blip's label, sprite and colour — both chosen from searchable lists with a preview — its scale (0.2 to 1.0, 0.8 is a standard map blip) and its coordinates. Press Select, aim at the spot and left-click.
Reception NPC#
The ped model of the receptionist — any GTA ped, a_f_y_fitness_01 by default — and where it stands. Press Select and a see-through copy of that ped follows your aim: scroll to turn it, use the arrow keys to raise or lower it, and left-click to place it. Players buy their membership from this NPC.
Exercise stations#
A station is one spot where one exercise is done. Pick an exercise from Add station, then press Select: a see-through clone of your own character appears in the exercise's resting pose — lying for push-ups, hanging from the bar for chin-ups — so you can line it up with the real bench, bar or bag. Add as many stations as you like, of any exercise, in any order.
Per station | What it does |
|---|---|
Reps | How fast the progress bar fills: each press of |
Stamina + | Stamina given when the set reaches 100% (0 to 50). |
Strength + | Strength given when the set reaches 100% (0 to 50). |
Fields you leave untouched use the exercise's own values from config/exercises.lua, so most stations need nothing but a position. The gym's multiplier is applied on top.
Decoration props#
Benches, barbells, weight racks, a treadmill and a pull-up frame, placed anywhere — useful when you do not have a gym MLO and want to turn an empty room or a beach into one. Pick a model from Add prop, press Select and place it the same way as the receptionist.
Category | Models |
|---|---|
Bench |
|
Barbell |
|
Rack |
|
Cardio |
|
Props are decoration only: they are spawned on each player's own game, frozen, and cost the server nothing. A station is what makes a spot usable — place one on top of a prop to train on it.
Placement controls#
Every Select closes the window and lets you aim with the normal camera. A red marker shows where the point will land, up to 50 metres away, and the keys are listed at the bottom of the screen.
Key | Does |
|---|---|
Mouse | Aim at the spot. |
Left click | Place. |
Mouse wheel | Turn the ped, the station clone or the prop. |
| Raise or lower it, for a bench top or a raised floor. |
| Cancel and go back to the editor. |
The creator reopens on its own after each placement, with the coordinates filled in.
Editing and deleting#
Click a gym in the list, change anything and press Save — the receptionist, stations, props and blip are respawned for every player straight away. Delete removes the gym after a confirmation; it cannot be undone. Players who held a membership there keep their stats.
Memberships#
A player walks up to the receptionist and chooses Purchase Membership. The screen shows the gym's logo, the price and the length in days, and lets them pay with Cash or Bank. The money is taken, and the membership runs from that moment for the gym's number of days.
Rule | Detail |
|---|---|
One gym at a time | A player holds one membership. Buying at another gym moves it there, and the first gym stops letting them train. |
No stacking | While a membership is active the purchase button reads Active and shows the expiry date. It can be bought again once it has expired. |
Free gyms | With Requires membership off, anybody can use the stations and there is nothing to buy. |
Where the money goes | Out of the economy. It is not paid into a society or job account. |
Prices and dates on this screen are formatted with Config.Intl — your currency symbol, decimal places and date style.
Working Out#
Walk to a station and choose Start … (for example Start Push-ups). The server checks the membership first; without one the player sees "You do not have an active membership here."
Get into position
The character is moved onto the station, turned to face the way you placed it, and frozen. The exercise's props — the curl bar for barbell curls — are put in their hands, and the entry animation plays.
Press SPACE for each rep
The overlay appears on the left, or on the right with
Config.ExerciseUIPosition = 'right'. Each press plays one rep and moves the bar forward; the next press is accepted once the rep has finished.Finish the set
At 100% the character stands up, the props are removed and the reward is added. Press
DELETEat any point to stop — a set that is not finished gives nothing.
While a set is running the player cannot sprint, jump, shoot or punch, and cannot walk off unless the exercise is configured with freeze = false.
Strength and Stamina#
Both stats start at 0 and stop at 100. They are saved per character, so a player with two characters trains each of them.
What a set gives. The station's reward — or the exercise's default — multiplied by the gym's stat multiplier. A push-up set gives 6 strength and 3 stamina at a 1.0× gym, 12 and 6 at a 2.0× one.
What the stats do. With Config.AffectPedStats = true (the default), both are written into GTA's own MP0_STRENGTH and MP0_STAMINA stats, which change how long a player can sprint and how hard they hit. They are re-applied when the player spawns and every time they change.
The HUD. F10 — or /gymstats — shows both as meters at the top of the screen and hides them again. Players can rebind it in Settings → Key Bindings → FiveM; the default key is Config.StatsHUDKey.
A finished set can only be counted once every three seconds per player, and the server checks that the station really runs that exercise at that gym. A modified client cannot invent rewards or skip the workout.
Daily Decay#
Once a day, at Config.StatDecay.hour and minute (22:00 server time by default), strength and stamina go down. How much depends on the last gym the player held a membership at:
The player's gym | Each night |
|---|---|
A gym with Daily stat decay on | Loses that gym's Decay per day, for both stats. |
A gym with Daily stat decay off | Loses nothing. |
No gym yet, or a gym that was deleted | Loses 5 points of each. |
Stats never go below 0. Decay reaches offline players too — it is applied in the database — and online players see their HUD update at once. It runs at most once per day: if the server is off at the scheduled minute, that night is skipped rather than caught up later.
To switch decay off for the whole server, regardless of each gym's setting:
Config.StatDecay = {
enabled = false,
hour = 22,
minute = 0,
}The Exercise Catalogue#
Six exercises ship in config/exercises.lua. These are the defaults a station uses when you do not set its own values:
Exercise | Key | Strength | Stamina | Reps (default) | Notes |
|---|---|---|---|---|---|
Push-ups |
| 6 | 3 | 3 | Floor exercise. |
Sit-ups |
| 3 | 6 | 10 | Holds the lying pose between reps. |
Chin-ups |
| 8 | 3 | 10 | Line it up under a pull-up bar. |
Boxing Bag |
| 4 | 6 | 3 | A combo per rep, ends out of breath. |
Treadmill |
| 2 | 8 | 4 | A sprint burst per rep. |
Barbell Curls |
| 6 | 3 | 10 | Puts a curl bar ( |
Adding your own exercise#
Add an entry to Config.Exercises and it appears in the creator's Add station list after a restart — no code changes needed. Give it a translation under exercise in your locale file.
Config.Exercises.yoga = {
labelKey = 'exercise.yoga', -- add "yoga": "Yoga" under "exercise" in locales/en.json
stamina = 5,
strength = 1,
idleDict = 'amb@world_human_yoga@male@base',
idleAnim = 'base_a',
actionDict = 'amb@world_human_yoga@male@base',
actionAnim = 'base_b',
actionTime = 3000,
actionProcent = 1,
actionProcentTimes = 10,
freeze = true,
}Field | What it does |
|---|---|
| The translation key of the exercise's name. |
| What a finished set gives by default. |
| The animation that gets the character into position, and how long it lasts in ms. |
| The pose held between reps. |
| One rep, played on every |
| The animation that stands the character back up. |
| Percent added per step of the bar (default 1). |
| Steps per |
| Freezes the idle on its first frame, for GTA animations whose idle is already a full rep. |
| A prop held during the exercise, with |
| Keeps the character in place during the set (default |
An animation dictionary that does not exist is skipped with a warning in the F8 console rather than breaking the exercise, so a typo shows up as a missing stage, not a stuck player.
Configuration Reference#
Everything in config/main.lua:
Option | Default | What it does |
|---|---|---|
|
| The language. Any file name in |
|
| How prices and dates look on the membership screen. Purely visual. |
|
| Jobs that may open the creator besides admins. |
|
| The command that opens the creator. |
|
| How close a player must be to the receptionist and stations. |
|
| Pre-filled price of a new gym, and the fallback if a gym has none. |
|
| Pre-filled membership length of a new gym. |
| on, 22:00 | Whether nightly decay runs and at what server time. The amount is set per gym. |
|
| Writes the stats into GTA's |
|
| Default key of the stats HUD. |
|
| Side of the workout overlay: |
|
| Reports workouts to qs-inventory quests. See Integrations. |
| — | The keys of the placement mode. |
|
| Extra output in the console. |



