Volleyball Script Installation
From a clean download to a playable court. Do the steps in order; steps 1 to 5 take a couple of minutes, and step 6 is where the actual work is.
Keep the folder named vs-volleyball. The streamed models, the animation dictionary, the audio bank and the NUI page are all resolved through the resource name.
Step 1: Dependencies
| Resource | What it is for | |
|---|---|---|
ox_lib | required | menus, notifications, callbacks, locales |
oxmysql | required | everything the script remembers |
ox_target | optional | the referee prompt. Without it, press E beside the desk |
ox_inventory | optional | only the ball item and the beach-circle drinks |
Step 2: Upload the script
Download from the Cfx.re portal with the Cfx account you purchased with, then upload the whole vs-volleyball folder into your resources/ directory (a sub-folder such as resources/[vanguardscripts] is fine). Do not rename it.
Step 3: server.cfg
Both required dependencies start before the script.
ensure oxmysql
ensure ox_lib
ensure vs-volleyball
Step 4: The database
On its first boot the script creates its own tables and prints what it made. There is no SQL to import. install.sql in the resource root is the same schema written out for a backup, a restore or a migration, and you do not need to execute it.
Without oxmysql the resource starts, says so loudly, and then refuses every save. Courts, placed props, map removals, profiles, career stats and teams all live in the database. If you are reading an older copy of the resource README that says otherwise, that copy is out of date.
Step 5: Give yourself the admin permission
The builder and the measuring tools are admin-only, per player, and enforced on the server. There is no server-wide dev switch to leave on by accident.
# server.cfg: everyone already in group.admin
add_ace group.admin vsvb.admin allow
# or one person, live from the console, no restart:
add_ace identifier.license:xxxxxxxx vsvb.admin allow
Config.Admin also accepts ESX / QBCore group names (admin, superadmin by default, only checked if that framework is running), a hard list of identifiers, and your own resolve(src) function.
/vb_adminin game tells you whether you pass.vsvb_adminsin the server console re-asks live for everyone connected: the tool for "I added the ace and it still says no".
Step 6: Build a court
The script ships with no courts. Until you build one, /vb correctly answers "no court nearby".
/volleyballcreator→ + New court → pick a floor: 1v1 / 2v2 / 3v3, in sand or concrete.- The editor opens with the floor, net and poles previewed, and the play area already measured off the mesh. Position it, size it if you want to.
ENTERnames and saves it. The floor, the net and the poles all go down together, for everyone.- Open the court's Referee tab and place a referee desk on it.
A court with no referee desk refuses every join. With Config.RequireReferee = true (the default) the desk is the only way in, so place one before you expect anyone to play. Set it to false if you would rather players just type /vb at the court.
The full walkthrough is on Courts & the builder: floors, the /vb_mark measuring session, using a court GTA already has, decorating it, and clearing the map objects in the way.
Step 7 (optional): The inventory items
Skip this and everything above still works; what you lose is the ball item and the beach circle.
Open inventory/ox_inventory_items.lua and paste all four rows into ox_inventory/data/items.lua, inside the return { ... } table: the volleyball and the three drinks.
Then copy the icons across. inventory/images/ holds volleyball.png, sprunk_lite.png, ecola_xtreme.png and raine_overdrive.png; put them in ox_inventory/web/images/. They are made for this script and are not part of ox_inventory's own icon set, so without them the four slots draw blank. None of the item rows names an image, because ox_inventory falls back to <item name>.png on its own, which also means a renamed item needs its icon renamed to match.
consume = 0 is load-bearing on all four. The ball has to survive being used or it is a one-shot item; the drinks have to survive it because the script removes the can itself after checking you are not mid-match. Leave consume at its default and one drink costs two cans.
Details and the reasoning are on Beach circle & drinks.
Step 8: Play it
Walk to your court, target the referee, and take Play against AI. That confirms the court, the net, the ball, the controls and the AI in about a minute. Then try a Training lesson: the coach walks you through the controls better than any document can.
What does not need turning off
There is no production checklist beyond keeping the vsvb.admin ace narrow. The tools are already invisible to everyone who does not hold it, and Config.Debug only controls console diagnostics; it gates no tool and no overlay.
Still stuck? See Troubleshooting & FAQ or open a ticket on Discord.