Commands#
Arm Wrestling registers a single command, typed in the in-game chat.
Command | Who | Description |
|---|---|---|
| Creator permission | Opens the Arm Wrestling Table Creator: place, name, edit, move, delete and teleport to tables. Anybody else is told they have no permission. |
Players need no command at all: everything else starts from E at a table. There are no console commands. The permission is explained in Installation.
Controls#
At a table#
Key | Does |
|---|---|
| Within 1.5 m of a table, when you are not seated: opens the Arm Wrestling menu with Player vs Bot and Player vs Player. |
During a match#
Key | Does |
|---|---|
| Push. Every press and release is one push; holding the key counts once. Locked during the countdown. |
| Leave the match. Both players stand up, and before there is a winner any bet is refunded to both. |
Walking, weapons, the weapon wheel and vehicles are locked from the moment you sit down until you stand up. The chat and voice keep working.
In the windows#
Key | Does |
|---|---|
| Closes the creator, Select Opponent and Match Settings. On an Arm Wrestling Challenge it declines. |
Placing a table#
Key | Does |
|---|---|
| Aim at the ground or an object, up to 50 m away. |
| Confirm — Confirm placement on screen. |
| Rotate, while held — |
| Raise or lower — |
| Cancel and go back to the creator. |
For Developers#
Arm Wrestling has no exports. Everything another resource needs comes from the bridge files and from the events the server already sends to each player.
Is this player arm wrestling?#
When a player sits down, their game receives armwrestle:client:seatAssigned; when they stand up, armwrestle:client:matchReset. Listen to both from your own resource to keep a phone call, an emote menu or an arrest from interrupting a match:
-- client, in your own resource
local armWrestling = false
RegisterNetEvent('armwrestle:client:seatAssigned', function(result)
-- result is 'host' or 'guest' when seated, 'full' when the table was taken
if result ~= 'full' then armWrestling = true end
end)
RegisterNetEvent('armwrestle:client:matchReset', function()
armWrestling = false
end)Event | Sent when | Carries |
|---|---|---|
| The player is given a seat, or told the table is full. | The seat, the table ID, and whether it is a bot match. |
| Both seats are filled and the countdown begins. | The table ID, and the opponent's server ID in a player match. |
| The strength changes. | The strength, 0 to 100 — enough to draw your own meter. |
| The player stands up, for any reason. | Nothing. |
The bridge functions#
Function | Side | Decides |
|---|---|---|
| Server | Bets: who can afford one, taking it, and paying out or refunding. |
| Server | The name in the opponent list, on a challenge and in messages. |
| Server | The player's identifier and framework object. |
They live in custom/<framework>/server.lua. Examples for each are in Integrations.



