by Derass ESX · QBCore · Qbox · vRP · Standalone

Dance minigame

The GTA Online nightclub dance minigame, rebuilt for FiveM and playable anywhere on your map. Tap on the beat to climb four intensity levels, hold to keep them, boost or drop on demand, cycle ten styles and cut into 27 special moves without leaving the floor. Everyone around sees the whole thing, and your server never runs a line of it.

Delivery Instant
Updates Free for life
Support Daily on Discord
01 · FEATURES

What it does

02 · SPECS

Technical
specifications

Framework Not required Never reads money, items or identity
Dependencies None No database, no server script, no SQL
Content 10 styles · 27 moves 27-clip animation grid · 4 intensity levels
In-game locales 15 included ar · cs · de · en · es · fr · id · it · nl · pl · pt-br · ro · ru · th · tr
Performance 0.00ms idle Nothing runs until someone starts dancing
03 · INCLUDED

Everything you
get

  • Fifteen locale files, shipped filled

    Your players read the script in their own language from the first start, and the files sit outside escrow so you can edit any line in production. Honest note: they are translated and reviewed by us, not proofread by native speakers of all fifteen. Tell us what reads wrong in yours and it gets fixed.

  • Every gameplay number is open

    Beats to climb a level, beats to fall, gain and decay rates, camera shake amplitude, rotation speed, hold time for an upper-body move, immunity windows after a boost. `config/config.lua` is escrow exempt, so a club owner can make the minigame forgiving or brutal without asking us.

  • Twelve controls, and a pad that works out of the box

    Each entry is a FiveM input rather than a key, so the defaults already work on a controller: the tap sits on the right trigger, the hold on the left, exactly like GTA Online. On mouse and keyboard the same session runs on the mouse buttons, space and F. Every one is a control id in the config, so a server with its own layout swaps the whole block at once.

  • Four client exports, including a beat you can drive

    Start and stop a dance from your own script, ask whether the player is dancing, and hand the resource the BPM of the track your own music system is playing. That last one is what makes the minigame work with custom music instead of only with the emitters Rockstar placed.

04 · DOCUMENTATION

Integration guide

01

Installation

  1. Drop the resource

    Grab the script from your Tebex account, copy the avenida_dance/ folder into your resources directory, and add ensure avenida_dance to your server config. Nothing has to start before it.

  2. Pick your trigger

    Open config/config.lua. Config.Command is the chat command, Config.Keybind registers a rebindable key with Config.DefaultKey as its default. Keep both, or set the command to false and leave players the key.

  3. Set the language

    Config.Locale takes any of the fifteen codes shipped in locales/. The files are escrow exempt, so you can rewrite any line to match the tone of your server.

  4. Point the notifications at your stack

    Config.Notif is on auto and detects ox_lib, okokNotify, QBCore or ESX in that order. Force a target if you run several, or use the custom branch of bridges/notif.lua for your own system.

  5. There is no step five

    No SQL to run, no framework to declare, no permission to grant. Restart and type the command.

02

Quickstart

How players start dancing

A command, a key, or both. The key registers in the FiveM settings under Key Bindings, so each player can rebind it without touching your config.

lua
-- config/config.lua
Config.Command    = 'dance'   -- chat command, false to disable
Config.Keybind    = true      -- rebindable key in FiveM settings
Config.DefaultKey = 'F7'

-- The GTA:O help panel with styles, actions and controls.
-- Off, style and move changes are announced by notification instead.
Config.ShowHints = true
03

API Reference

Public exports grouped by domain. Each row shows the call signature and what it does, not how it does it.

Session

  • StartDance
    exports.avenida_dance:StartDance(styleIndex?) --> boolean

    Starts a session for the local player, optionally forcing a style index from 1 to 10. Returns false when the player cannot dance right now, in a vehicle, in water, in the air or already dancing, so your own script can decide what to do about it.

  • StopDance
    exports.avenida_dance:StopDance()

    Ends the current session and plays the real outro rather than cutting the animation. Safe to call when nobody is dancing.

  • IsDancing
    exports.avenida_dance:IsDancing() --> boolean

    True while the local player is in a session. Useful to block your own interactions, your inventory or a job action while the minigame owns the controls.

Music

  • SetDanceBeat
    exports.avenida_dance:SetDanceBeat(bpm, msToNextBeat?)

    Feeds the simulated beat with the tempo of the track your own music resource is playing. The second argument aligns the phase, so the beat icon pulses on the actual downbeat instead of somewhere near it. Ignored when the value is not a positive number.

04

Recipes

Real-world copy-paste examples. Drop them into your own resource, tweak the values, ship.

The native beat only exists where Rockstar put an audio emitter. If your club streams its own tracks, turn the native beat off and push the tempo yourself. Call it once when a track starts, then again whenever the track changes.

lua
-- config/config.lua
Config.UseNativeBeat = false
Config.FallbackBpm   = 122.0

-- in your music resource, when a track starts
exports.avenida_dance:SetDanceBeat(128.0, 180)
05

Troubleshooting

  • No, and not as a fallback either: there is nothing in this resource that a framework could provide. It never reads money, items, jobs or identity. That is why the same file runs on ESX, QBCore, Qbox, vRP, ox_core or a bare server without a single bridge to configure. The only thing a framework can do here is display a notification, which is one open file.
Cart
Spirit RP
Discord