What goes wrong most often, what it actually means, and what to do about it. Most of these are configuration, not faults — check the matching entry before opening a ticket.
Installation and Access#
"You don't have permission to use /armcreator." on /armwrestlecreator
That message is the answer to /armwrestlecreator. The ace in Config.Creator.permission — command.armwrestlecreator by default — is not granted to you. Add add_ace group.admin command.armwrestlecreator allow, put your identifier in that group with add_principal, and restart the server — aces are read when server.cfg is executed. Check that the identifier belongs to the account you are playing on. See Installation.
The creator window does not open, or is blank
The interface ships ready to use in web/build/. If that folder is missing or was only partly copied, the window cannot load and there is no error in game — copy the whole resource again from your download.
Tables placed with the creator disappear after a restart
They are not reaching the database. Look for Loaded N arm wrestling table(s) from SQL. in the server console. If it is missing, or an oxmysql error about qs_armwrestling_tables appears, the SQL was never imported: run database/sql.sql once and restart. Also check that oxmysql is connected and starts before qs-armwrestling.
Bets take and pay no money
Arm Wrestling is running standalone — the console says Server framework loaded: standalone. Your framework starts after qs-armwrestling, so it was not detected. Move its ensure above ensure qs-armwrestling and restart.
"Migrated N arm wrestling table(s) to the coords column" in the console
Not an error. An update moved your tables from the old position columns into the new coords column. It happens once, and every table keeps its place.
"Coords migration failed" in the console
The move from the old position columns could not finish — usually because your database user is not allowed to ALTER tables. Give it that right and restart. Your saved tables stay in the database, but they will not stand in the right place until the migration succeeds.
Tables#
The [E] - Play Arm wrestle prompt does not appear
Stand within 1.5 m of the table itself — the prompt is measured from the prop — and make sure you are not already seated. Tables more than 50 m away are not loaded at all, and one you have just walked up to can take up to three seconds to appear. Only tables placed with the creator are playable: an arm wrestling table that is part of a map is decoration.
A new table was saved but never appeared
A table's ID is worked out from its position, so two tables cannot stand within 10 cm of each other — the second one is ignored and the first stays. Place it a little further away.
"Model could not be loaded. Check globalConfig.creator.models."
The model picked in the creator does not exist in your game, or did not load within three seconds. The list it refers to is Config.Creator.models: check the model name is spelled right and, for an addon prop, that the resource streaming it is running.
The wrestlers sit in the wrong place, or inside the table
The seats are placed for GTA V's arm wrestling tables. A custom prop of a different size seats the wrestlers wrongly — use one of the three shipped models, or a prop of the same size and shape. Also give the table room on both sides: a wall or a bar behind a seat pushes the wrestler into it.
A table floats above the floor or sinks into it
Reposition it in the creator and use the mouse wheel to adjust the height, 5 cm per notch. If every table on your map is off by the same amount, change Config.Creator.groundOffset instead.
Matches and Bets#
"That table is already in use"
A match is on that table, or a challenge for it was accepted first. Wait for it to finish, or use another table.
"No players nearby"
Nobody else is within 15 m of the table. Raise Config.Challenge.nearbyPlayerRadius for larger rooms.
"This player already has a pending challenge"
Somebody else's challenge is waiting for their answer. It expires after 30 seconds if they do not answer it.
"You already sent a challenge"
Only one challenge can be out at a time. It expires after 30 seconds — Config.Challenge.timeout — if it is not answered.
"You don't have enough money for a $… bet"
Bets are taken from cash on ESX, QBCore and Qbox, and both players need the amount in cash at the moment the challenge is accepted. Money in the bank does not count — to take bets from the bank instead, see Integrations.
Nobody can beat the bot
Tap E — press and release — rather than holding it: holding counts as one push. Hard needs about 7 taps a second just to hold even. To make a difficulty easier, raise its pressInterval or lower its pressAmount — see Usage.
The bet was refunded instead of paid
A player left with Backspace before there was a winner. That ends the match with no winner, and both bets go back. Only a pinned hand — or a disconnect — decides who takes the pot.
The table's price is not charged
Correct for this version. The price and payment method set in the creator's Pricing section are saved with the table, but starting a match does not charge them. Bets are the only money that changes hands.
A player is stuck sitting at a table
The resource was restarted, or stopped, during their match, so nothing was left to stand them up. Reconnecting frees them. Restart qs-armwrestling only when nobody is playing.
Messages#
Every message is read from the locale file set in Config.Locale, so players read them in your server's language. The ones that point at a problem:
Key | Message | Means |
|---|---|---|
| You don't have permission to use /armcreator. | The creator ace is not granted to that player. |
| Model could not be loaded. Check globalConfig.creator.models. | The prop picked from |
| A wrestling match is already in progress | Both seats were already taken when the player was about to sit. |
| That table is already in use | A match is on that table. |
| That table no longer exists | It was deleted before the challenge was accepted. |
| This player already has a pending challenge | Another challenge is waiting for their answer. |
| You already sent a challenge | Only one challenge can be out at a time. |
| You don't have enough money for a ${{amount}} bet | The player's cash is below the bet. |
| The opponent doesn't have enough money for this bet | The challenged player could not pay when accepting. |
| The challenger no longer has enough money | The challenger spent it before the challenge was accepted. |
| Challenge expired | Thirty seconds passed with no answer. |
| — | That key is missing from the locale file in use. Copy it from |
Still stuck? Open a ticket and include the
[qs-armwrestling]lines from your server console, your framework and its version, and the relevant part ofconfig.lua. A screenshot of the F8 console helps for anything about the interface.



