XS-Robberies
Build any robbery in game and place every point yourself. It ships empty, so every job on your server is one you built.
Requirements
ox_libandoxmysql- Qbox or QBCore
- Any one of
ox_inventory,qb-inventory,qs-inventory,codem-inventory,core_inventoryorps-inventory
ox_target or qb-target are used when running. With neither, players get a marker and a key prompt.
Everything else is optional and found by itself: dispatch (ps, qs, cd, core, rcore, linden, XS-Dispatch), door locks (ox_doorlock, qb-doorlock, rcore, Quasar, jaksam, cd_doorlock) and XS-MDT. Armoured trucks need OneSync, which nearly every server runs.
Installation
- Drop the folder into your resources.
- Add
ensure XS-Robberiesafterox_libandoxmysql. - Give yourself access:
add_ace group.admin xs.robberies allow, or list your framework groups inConfig.Admin. - In game, run
/robberies.
The database tables are made on first start. sql/xs_robberies.sql is there if you would rather import them yourself. Coming from Cipher-Robberies, your old tables are renamed in place and every robbery comes with them.
Building your first job
- Press New job, name it and pick what it is.
- Leave Walk me through it on. The builder hides and asks for each point in turn: ENTER places it, BACKSPACE skips it, DEL stops.
- Open each step on the right to set what it needs: an item, a minigame, how long it takes, what a failure does.
- Loot: set how the job pays and what each step is worth.
- Places: stamp it everywhere else it should exist.
- Press Live.
Points are placed with a free camera: WASD to fly, SPACE to pin, X to drop to the floor, the scroll wheel to turn, the arrow keys to nudge.
How a job runs
- Steps unlock each other. By default it is a straight line, and players only see the step they can do next.
- A keypad gets its code from the step it points at, and the whole crew sees the code. A keypad with no code to find is cracked with a minigame.
- Any step can unlock or lock a door, or swing a vault door open. Pick the door by aiming at it. It goes back when the place resets.
- Everything pays on the spot by default. Holding the cash until the getaway is a choice per job, and the getaway itself is optional.
- A robber's cooldown covers one type of job, so after a bank they can still do a store.
- Players can call off a job with
/cancelrobbery. A job nobody is working ends itself.
Armoured trucks
Make a Vehicle job, aim at the truck you want, and in Places set the truck to Sent by the contact. Set up the contact under NPCs. Your guard steps ride inside: set each one to drive, sit up front or ride in the back.
Talking to the contact puts a truck on the road, near them or at points you place. It drives around or heads for a drop-off. The crew sees it on their map. Shooting it, the tyres or the driver, or blocking the road, sets off the alarm, and once it stops the guards get out and fight. The rear doors and the cargo only work once it has stopped. If it reaches its drop-off first, it got away.
Items
There is nothing to install. Tools and loot are picked in the builder from whatever your inventory already has. Two items are named in config.lua because the script uses them itself: Config.Payout.DirtyItem (markedbills) for dirty money, and Config.Run.BagItem (bag) for loot containers that need a bag. A markedbills.png ships in inventory_images/.
Before going live
- Run each job start to finish yourself before players find it.
- Check any prop or ped model you type in. A wrong model fails quietly.
- Set the police needed and the cooldowns under Rules. Every job starts with a sensible default, not your server's.
Troubleshooting
Nothing happens when I run /robberies
You do not have access. Add the ace (add_ace group.admin xs.robberies allow) or put your group in Config.Admin.
There is no prompt at a step
It is not the step they can do next, or another job is still running for them. Players only see the next step, and /cancelrobbery ends a job they walked away from.
Police never get told
No supported dispatch resource was found, so police get a plain notification and a blip. Check your dispatch resource's name against the supported list, or set it in Config.Bridges.
The contact never sends a truck
There is already a truck out for that job, the job is cooling down, or OneSync is off. Only one truck per job is out at a time.
A door does not open
Pick it again by aiming at it. Vault doors in the banks are not real doors, so they need Swing rather than Unlock.
Updating
- Back up the database first.
- Keep a copy of your edited
config.lua. - Check recent commits for SQL changes before replacing files.
- Replace the resource folder, merge your config back, restart.
Support
Bugs and questions go to the Discord. Include your server's console output — the resource prints the reason when it refuses to do something, and that line is usually the whole answer.