Skip to main content

Locale

Config.Locale = 'en'
Options: en, es, fr, de, it, ja, pt, ru, zh, ar

Compatibility

Config.Compatibility = {
    ['framework']    = "auto",
    ['inventory']    = "auto",
    ['notification'] = "auto",
}
All default to "auto". Override only if auto-detection picks the wrong resource.
CategoryAccepted Values
frameworkauto, qbcore, qbx, esx, other
inventoryauto, ox_inventory, qb-inventory, qs-inventory, ak47, codem, esx_inventory, other
notificationauto, wasabi, drc, okokNotify, qbcore, qbx, esx, ox_lib, mNotify, other

UI & Interaction

Config.InteractionType = 'ox_lib'     -- ox_lib, qb-menu, custom
Config.TargetSystem    = 'textUI'     -- ox_target, qb-target, textUI, custom
Config.SoundEffects    = 'google-voice' -- interact-sound, xsound, google-voice, custom, false

Minigame

Config.Minigame = {
    Enabled = true,
}
Master toggle. If false, all elevators completely bypass minigame logic regardless of individual elevator settings.

Custom Sound Files

Config.CustomSounds = {
    InteractSound = {
        Ding  = 'elevator_ding',   -- filename in interact-sound (no .ogg)
        Error = 'elevator_error',
    },
    XSound = {
        Ding  = 'elevator_ding.ogg',   -- file in pdd_elevator/html/sounds/
        Error = 'elevator_error.ogg',
    }
}

AI Voice

Config.AI = {
    Enabled    = true,
    APIKey     = "YOUR_API_KEY_HERE",
    VoiceModel = "en-US-Neural2-F",
    ErrorText  = "I'm sorry, you lack the credentials to use this elevator.",
}
  • APIKey — Your Google Cloud TTS API key
  • VoiceModel — Must match your locale. See the voice model reference below
  • ErrorText — Spoken aloud when a player fails access checks

Blips

Config.Blip = {
    Enabled         = true,
    Sprite          = 475,
    Color           = 3,
    Scale           = 0.6,
    DisplayDistance = 75.0,
    JobControl      = true,
}
  • JobControl — When true, blips only show to players whose job matches the elevator’s job restriction

Elevator Configuration

Each elevator shaft is defined as an entry in Config.Elevators:
Config.Elevators = {
    ["your_elevator_id"] = {
        label             = "Elevator Display Name",
        job               = false,
        item              = false,
        money             = false,
        minigame          = false,
        difficulty        = "easy",
        removeItemOnFail  = false,
        removeMoneyOnFail = false,
        locations = {
            { coords = vector4(x, y, z, w), level = "Level 1", icon = "fas fa-building", voiceText = "First Floor." },
            { coords = vector4(x, y, z, w), level = "Level 2", icon = "fas fa-helicopter", voiceText = "Top Floor." },
        },
    },
}

Field Reference

FieldTypeDescription
labelstringDisplay name shown in the elevator menu
jobfalse | string | tableRequired job(s) to use this elevator. Example: "police" or { "police", "sheriff" }
itemfalse | string | tableRequired item(s). Example: "hacking_device" or { "hacking_device", "keycard" }
moneyfalse | tableRequired money. Example: { type = "cash", amount = 500 }
minigamefalse | stringMinigame to require. See minigame options
difficultystring"easy", "medium", or "hard"
removeItemOnFailbooleanIf true, the required item is destroyed on minigame failure
removeMoneyOnFailbooleanIf true, the required money is burned on minigame failure
locationstableArray of floor entries with coords, label, icon, and voice text

Floor Entry Fields

FieldDescription
coordsvector4 — x, y, z position + heading
levelDisplay label for this floor in the menu
iconFont Awesome icon class (e.g. "fas fa-building")
voiceTextText spoken by the AI voice when arriving at this floor

Minigame Options

ValueDescription
falseNo minigame — elevator opens freely
"auto"Auto-detects an installed minigame script
"ox_lib"ox_lib Skill Check
"ps-ui"ps-ui Circle
"qb-lock"qb-lock
"boii_circle"boii_minigames Circle
"boii_wirecut"boii_minigames Wire Cut
"boii_keypad"boii_minigames Keypad
"boii_safecrack"boii_minigames Safe Crack
"boii_chimp"boii_minigames Chimp
"custom"Custom — implement in client_editable.lua

Voice Model Reference

LanguageStandard VoicesNeural Voices
English (en)en-US-Standard-D, en-US-Standard-Fen-US-Neural2-D, en-US-Studio-O
Spanish (es)es-ES-Standard-Aes-ES-Neural2-A
French (fr)fr-FR-Standard-Afr-FR-Neural2-A
German (de)de-DE-Standard-Bde-DE-Neural2-B
Italian (it)it-IT-Standard-Ait-IT-Neural2-A
Portuguese (pt)pt-BR-Standard-Apt-BR-Neural2-A
Russian (ru)ru-RU-Standard-Aru-RU-Wavenet-A
Chinese (zh)cmn-CN-Standard-Acmn-CN-Wavenet-A
Japanese (ja)ja-JP-Standard-Bja-JP-Neural2-B
Arabic (ar)ar-XA-Standard-Aar-XA-Wavenet-A
The voice model must match your locale. Mismatched language/voice combinations will return silence from the Google TTS API.