Skip to main content

Config file

All settings live in config/config.lua. The file is loaded on both the client and the server via require 'config.config', and it is excluded from escrow so you can edit it freely.

Options

OptionDescription
CommandChat command that opens the pole manager UI. Default poles.
UI.AccentColor used for all the white text, icons and accents in the UI (buttons, borders, the placement disc marker). Accepts any CSS color: hex (#00E5FF, #bb5be0) or a name (white). Default #FFFFFF. The panel background always stays black; only the white parts recolor.
AdminPermissionFiveM ace required to open the manager and to create / edit / delete poles. Re-checked server-side on every database write, so the client can never write without it. Default group.admin.
AdminGroupsFramework admin groups / permissions also allowed, in addition to the ace above. ESX: matched against the player’s group. QBCore: matched against QBCore permissions. Default { 'admin', 'superadmin', 'god' }. Use this if your admins aren’t set up through aces.
DefaultModelThe pole prop. Fixed to prop_strip_pole_01 — the only stripper-pole prop that reliably works in GTA 5 — used for both the placement preview and any spawned prop.
TargetTargeting system used for the dance interaction: 'ox', 'qb', or 'lib' (ox_target, qb-target, or ox_lib zones). Default 'ox'.
UseModelsWhen true, adds a generic model target alongside the per-pole zones (ox_target / qb only). Default false.
InteractDistanceInteraction / dance trigger distance for poles. Default 2.5.
DancesEntries for the dance context menu. Add, remove or relabel freely — see Dances below.
JobsFallback job list for the job-lock dropdown when the framework can’t supply one (or for standalone servers). Merged with framework jobs and de-duplicated.
DebugMaster debug toggle — prints plus target debug polygons. Default false.
Config.Target must match a targeting resource you actually run and ensure before nex_polecreator. If it doesn’t, players can’t interact with poles to open the dance menu.

Dances

Config.Dances is a list, and the dance context menu is built entirely from it. Each entry has an id, a label, and a type:
  • type = 'pole' — plays a synchronised pole scene anchored to the pole. The scene value (13) selects one of the vanilla strip-club pole routines.
  • type = 'lap' — loops any animation in place where the player stands, using a dict and anim like any TaskPlayAnim emote.
The shipped defaults:
Dances = {
    { id = 'pole1', label = 'Pole Dance #1', type = 'pole', scene = 1 },
    { id = 'pole2', label = 'Pole Dance #2', type = 'pole', scene = 2 },
    { id = 'pole3', label = 'Pole Dance #3', type = 'pole', scene = 3 },
    { id = 'lap1', label = 'Lap Dance #1', type = 'lap', dict = 'mp_safehouse', anim = 'lap_dance_girl' },
    { id = 'lap2', label = 'Lap Dance #2', type = 'lap', dict = 'mini@strip_club@private_dance@idle', anim = 'priv_dance_idle' },
    { id = 'lap3', label = 'Lap Dance #3', type = 'lap', dict = 'mini@strip_club@private_dance@part1', anim = 'priv_dance_p1' },
}
Lap-dance dictionaries are loaded at runtime and the list is user-editable, so a bad dict / anim fails with a notification instead of a script error. Verify any custom animation dictionary you add.

Jobs

Config.Jobs is a fallback list of jobs shown in the job-lock dropdown. It is merged with the jobs your framework supplies and de-duplicated, so it mostly matters for standalone servers or when the framework can’t provide a job list. Each entry is a { name = '...', label = '...' } table:
Jobs = {
    { name = 'unicorn', label = 'Vanilla Unicorn' },
    { name = 'police',  label = 'Police' },
    { name = 'ballas',  label = 'Ballas' },
}

Database schema (nex_poles)

The resource creates this table automatically on start. It is also provided in sql/poles.sql for manual import.
ColumnTypeNotes
idINT(11) AI PKPrimary key, auto-increment.
modelVARCHAR(64)Always prop_strip_pole_01.
x / y / zFLOATCoordinates.
headingFLOATRotation (default 0.0).
labelVARCHAR(64) NULLOptional friendly name.
spawn_propTINYINT(1)1 = spawn a pole prop, 0 = dance spot only. Auto-added to existing tables on start.
job_lockedTINYINT(1)0 = anyone, 1 = job restricted.
jobVARCHAR(64) NULLRequired job when locked.
created_atTIMESTAMPDefaults to the current timestamp.