Installation
Dependencies
| Dependency | Required | Notes |
|---|---|---|
oxmysql | ✅ | State persistence |
ox_target | ❌ Optional | Only if MBT.Target.Active = true in config |
Steps
Download & place the resource
Copy the iak_skyclub_v3 folder into your server's resources directory.
Do not rename the folder. The resource name must stay iak_skyclub_v3 exactly — the script checks its own name on startup and disables itself if it doesn't match.
Add to server.cfg
ensure oxmysql
ensure iak_skyclub_v3Make sure oxmysql is ensured before iak_skyclub_v3.
Database table
No manual SQL import is required. On the first server start the script automatically creates the mbt_skyclub table:
CREATE TABLE IF NOT EXISTS `mbt_skyclub` (
`name` VARCHAR(50) PRIMARY KEY NOT NULL,
`coords` VARCHAR(255) NOT NULL DEFAULT '{}',
`active` TINYINT(1) NOT NULL DEFAULT 1,
`colors` VARCHAR(255) NOT NULL DEFAULT '{}',
`color` INT NOT NULL DEFAULT 0
)Configure (optional)
Open config.lua to adjust the blip, interaction distance, ox_target toggle and persistence settings. See Configuration for full details.
Start the server
The interior will load automatically. Head to the map blip (downtown skyscraper, street entrance) and take the elevator up to the club level.
File structure
iak_skyclub_v3/
├── audio/
│ └── skyclub_game.dat151.rel # Nightclub ambient audio
├── core/
│ ├── client.lua # Interior sync, NUI, blip, target
│ ├── server.lua # MySQL, framework events, exports
│ └── server_custom.lua # Custom framework bridge (editable)
├── stream/
│ ├── meta/ # ymaps, ytyp — interior placement
│ ├── ybn/ # Collision files
│ ├── ycd/ # Laser dancefloor animation
│ ├── ydr/ # Custom prop models
│ └── ytd/ # Textures
├── web/
│ ├── index.html # NUI panel
│ ├── index.js # NUI logic
│ └── style.css # NUI styles
├── config.lua # All server-owner settings (not escrowed)
├── interiorproxies.meta # Interior proxy definition
└── fxmanifest.luaconfig.lua and server_custom.lua are not escrowed — you can read and edit them freely.
