Before You Begin#
Before installing Claw Machine, make sure your server meets the minimum requirements. Only three resources are required; everything else is detected on its own and simply used when it is there.
Requirement | Status | Notes |
|---|---|---|
OneSync | Required | Infinity or legacy. The resource refuses to start without it. |
| Required | Database access. The tables create themselves. |
| Required | Callbacks, notifications and shared helpers. |
| Required | The streamed cabinets, claws, gacha balls and plush toys. Ships with the script. |
Framework | Optional | ESX, QBCore or Qbox — auto-detected. Standalone works too, with free play (see Integrations). |
Inventory | Optional | Needed only for item prizes such as the plush toys. Cash prizes need nothing. |
| Optional | Off by default — the script uses a floating |
The framework is detected in this order — es_extended, qb-core, qbx_core — and if none is running the script starts in standalone mode. The inventory is detected separately: ox_inventory, qs-inventory, codem-inventory, core_inventory and qb-inventory, falling back to the framework's own item functions.
Downloading Claw Machine#
After purchasing Claw Machine, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets and download the latest version.
After extracting the download, you should have two folders:
clawmachine-assets/ -- streamed models: 4 cabinets, claws, gacha balls, plush toys
qs-clawmachine/
├── config/main.lua -- everything a server is meant to change
├── custom/ -- framework bridges and the reward hand-out (open)
├── client/custom/ -- notifications, text prompts, HUD, target (open)
├── server/custom/ -- server-side hooks (open)
├── items/ -- ready-to-paste plush toy items per inventory
├── locales/ -- 41 translations
└── database/sql.sql -- optional, the tables create themselvesKeep the folder names as they are. The exports are called as
exports['qs-clawmachine'], andqs-clawmachinedeclaresclawmachine-assetsas a dependency by that exact name.
Installing the Resource#
Move both folders into your server's resources directory. They can live anywhere, but keeping them together is easiest:
resources/
└── [arcades]/
├── clawmachine-assets/
└── qs-clawmachine/Then open your server.cfg and start the dependencies before the script, and the assets before qs-clawmachine:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended # or qb-core / qbx_core
# Inventory (only needed for item prizes)
ensure ox_inventory # or qs-inventory, qb-inventory...
# Claw Machine — assets first
ensure clawmachine-assets
ensure qs-clawmachineIf both folders sit in the same bracketed folder, ensure [arcades] already covers them. The loading order matters: the framework is detected by looking for resources that are already started, so a framework started after Claw Machine is not seen, and the script falls back to standalone.
The Database#
There is no SQL file to import. Claw Machine creates its three tables on the first start and adds any missing column on later starts, so updating never needs a manual migration.
Table | Holds |
|---|---|
| Every placed machine: position, cabinet, name, price, payment method, prizes and rewards, plus its owner, till, sale price and statistics. |
| Every prize inside every machine and its exact resting position and rotation. |
| Prizes won and runs played per player, for the leaderboard. |
database/sql.sqlis included for servers that prefer to import by hand, but it is never needed.
Adding the Prize Items#
The four gacha balls pay cash and need nothing installed. The eight plush toys pay an item, and that item has to exist in your inventory — otherwise the player wins the plush and receives nothing.
Prize | Item | Label |
|---|---|---|
|
| Plush Toy 01 … 08 |
Ready-to-paste definitions are in the items/ folder:
Paste the contents of items/ox_inventory.lua inside return { ... } in ox_inventory/data/items.lua. Images go in ox_inventory/web/images/.
Paste the contents of items/qs-inventory.lua inside the items table in qs-inventory/shared/items.lua. Images go in qs-inventory/html/images/ (or web/dist/images/, depending on your version).
On ESX + qs-inventory, run items/esx_inventory.sql as well — Quasar Inventory reads the ESX items table for the label and weight.
Paste the contents of items/qb-inventory.lua inside QBShared.Items in qb-core/shared/items.lua. Images go in qb-inventory/html/images/.
Run items/esx_inventory.sql once against your database. If your items table is an older one without the rare / can_remove columns, drop them from the INSERT and keep name, label and weight.
The item name is the image name: drop peluche_01.png … peluche_08.png into your inventory's images folder. Restart the inventory (and es_extended / qb-core) after adding them.
Granting Creator Access#
Placing, editing and deleting machines happens in /clawcreator, which is behind an ace permission. Add this line to server.cfg:
add_ace group.admin command.clawcreator allowThe same permission lets a player release a machine from its owner (/clawclearowner), manage any owned machine from its G panel, and pick reward items from the inventory list in the creator. The command name and the permission can both be renamed in Config.Creator.
Configuring the Resource#
Everything a server is meant to change lives in one file, config/main.lua: the language, cabinets, prizes, rewards, ownership and win odds. The values worth reviewing first:
Config.Locale = 'en' -- 41 languages, see Integrations
Config.UseTarget = false -- true = ox_target instead of the [E] prompt
Config.Gameplay.maxCredits = 10 -- most drops bought at once
Config.Gameplay.carryChance = 0.60 -- the global difficulty dial
Config.Ownership.enabled = true -- players may buy machines
Config.Ownership.commission = 0.20 -- cut of every play kept by the city
Config.Debug.enabled = false -- turn the calibration commands off on a live serverThe presentation and physics of the rig — the arcade audio, the camera work, the animations, the claw speeds and grab geometry — are calibrated against the cabinets and props that ship and are not exposed in the config. Nothing is missing: those values are fixed by design. The full reference is in Usage.
Verifying the Installation#
Restart your server and read the console. A healthy start looks like this:
[qs-clawmachine:INFO] Server framework loaded: esx
[qs-clawmachine:INFO] Started - framework: esx
[qs-clawmachine:INFO] Loaded 0 claw machine(s) from SQL.If the framework reads standalone on a server that has one, it started after Claw Machine — fix the order in server.cfg. Then join and work through the first loop:
Place a machine
Run
/clawcreator, press +, give it a name, pick a cabinet, set a price and press Select under Placement. Aim the ghost cabinet where you want it, rotate it withZ/X, adjust the height with the mouse wheel, and left-click to confirm. Save the machine.Play a run
Walk up to the cabinet and press
E. Choose how many drops you want and press Play. Hold an arrow key to set the depth, then the side, and pressSPACEto drop.Win a plush
Carry a plush toy to the chute and check your inventory for
peluche_0X. If the plush drops in the tray but nothing arrives, the items are not installed — see Common Errors.
Machines placed with the creator are saved to the database and load on every start. Changes to
config/main.luaneed a resource restart.



