# Config File

```lua
Config = {}

Config.Best_Multi_Job = false -- If true, you're awesome!

-- Debug Mode (Enable/Disable console logs)
Config.Debug = true

-- Default language ('en', 'es', 'fr', 'de', 'it', 'pt', 'br', 'ru', 'tr', 'pl', 'ar', 'zh', 'ja', 'ko', 'nl', 'sv', 'sk')
Config.Locale = 'es'

-- Command to open the menu
Config.Command = 'multijob'
Config.DefaultKey = 'F10'      -- Default key to open the menu
Config.UseKeyMapping = false    -- If true, players can change the key in FiveM settings

-- Job Slot Configuration
Config.DefaultMaxJobs = 2      -- Default maximum jobs for every player
Config.AdminMaxJobs = 10       -- Maximum jobs an admin can set for a player

-- Admin Configuration
Config.Admin = {
    UseAce = true,             -- Use ACE permissions (e.g., 'command.addjobslot allow')
    DiscordIds = {             -- List of Discord IDs with admin access
        '123456789012345678',
    },
    DiscordRoles = {           -- List of Discord Role IDs with admin access (Requires Discord API configured)
        '987654321098765432',
    },
    SteamLicenses = {          -- List of Steam Licenses with admin access
        'steam:110000100000000',
    },
    IPs = {                    -- List of IPs with admin access
        '127.0.0.1',
    }
}

Config.Cooldown = 10 -- Seconds between job changes (0 to disable)

-- Interface configuration
Config.UI = {
    DefaultTheme = 'auto', -- 'dark', 'light' or 'auto' (Changes based on game time)
    AutoThemeHours = { sunrise = 6, sunset = 19 }, -- Hours for auto theme switch
    AutoThemeSync = true,  -- If true, the theme will automatically switch if the game time changes while the menu is open
    ShowAvatar = true,     -- Show the circular avatar
    AvatarType = 'both',   -- 'ui-avatar' (initials), 'discord', 'mugshot', 'both' (discord + mugshot fallback)
    EnableSounds = true,   -- Enable UI sound effects
    EnableDuty = true,     -- Show duty toggle for frameworks that support it
    NotifyType = 'nui',    -- 'nui' (minimalist in-menu) or 'framework' (QB/ESX/QBX default notification)
    ShowJobStats = true,   -- Show job statistics (salary, coworkers, etc.)
    EnableFavorites = true,-- Enable favorite jobs system
    MaxLogs = 50,          -- Max logs to keep in UI
    EnableKeybinds = true, -- Enable fast job switching keybinds (Jobs 1-5)
    JobDisplayType = 'font-awesome', -- 'font-awesome' or 'image' (Determines if 'icon' or 'image' field is used from Config.Jobs)

    -- Background Image Support
    -- You can use local paths (e.g., 'img/background.png') or direct URLs (e.g., 'https://i.imgur.com/example.png')
    Backgrounds = {
        Enabled = false,      -- If true, uses images instead of gradients/solid colors
        Menu = {
            dark = '',        -- Image for main menu (Dark mode)
            light = '',       -- Image for main menu (Light mode)
            opacity = 0.5,    -- Image opacity (0.0 to 1.0)
        },
        Admin = {
            dark = '',        -- Image for admin panel (Dark mode)
            light = '',       -- Image for admin panel (Light mode)
            opacity = 0.4,    -- Image opacity (0.0 to 1.0)
        }
    },

    -- User Customization Support
    UserCustomization = {
        Enabled = true,       -- If true, players can customize their own menu colors
        AllowAdmin = true,    -- If true, admins can also customize their admin panel colors
    },

    -- Style Presets
    -- Available: 'black-white', 'ocean-blue', 'sunset-orange', 'forest-green', 'royal-purple',
    --            'cyberpunk', 'blood-red', 'midnight-gold', 'toxic-lime', 'ice-cold', 'custom'
    StylePreset = 'black-white', 
    UseGradient = true, -- If true, uses gradients from the selected preset (or custom)

    -- Custom Backgrounds (Only used if StylePreset = 'custom')
    CustomStyle = {
        Solid = {
            dark = 'rgba(10, 10, 10, 0.95)',
            adminDark = 'rgba(5, 5, 5, 0.98)',
            light = 'rgba(245, 245, 245, 0.98)',
            adminLight = 'rgba(240, 240, 240, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(0, 0, 0, 0.98) 0%, rgba(60, 60, 60, 0.92) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(0, 0, 0, 0.98) 0%, rgba(40, 40, 40, 0.95) 100%)',
            light = 'linear-gradient(135deg, rgba(160, 160, 160, 0.98) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(140, 140, 140, 0.98) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    }
}

-- Presets Definition (Do not touch unless you know what you are doing)
-- Presets Definition
Config.Presets = {
    ['black-white'] = {
        Solid = {
            dark = 'rgba(15, 15, 15, 0.98)',
            adminDark = 'rgba(10, 10, 10, 0.98)',
            light = 'rgba(240, 240, 240, 0.98)',
            adminLight = 'rgba(230, 230, 230, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(0, 0, 0, 1) 0%, rgba(70, 70, 70, 0.95) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(0, 0, 0, 1) 0%, rgba(50, 50, 50, 0.95) 100%)',
            light = 'linear-gradient(135deg, rgba(140, 140, 140, 1) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(120, 120, 120, 1) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    },
    ['ocean-blue'] = {
        Solid = {
            dark = 'rgba(10, 20, 40, 0.98)',
            adminDark = 'rgba(5, 15, 30, 0.98)',
            light = 'rgba(230, 240, 255, 0.98)',
            adminLight = 'rgba(220, 230, 245, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(5, 10, 25, 1) 0%, rgba(40, 80, 140, 0.95) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(2, 5, 15, 1) 0%, rgba(30, 60, 110, 0.95) 100%)',
            light = 'linear-gradient(135deg, rgba(100, 160, 230, 1) 0%, rgba(245, 250, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(80, 140, 210, 1) 0%, rgba(240, 245, 255, 1) 100%)',
        }
    },
    ['sunset-orange'] = {
        Solid = {
            dark = 'rgba(35, 15, 10, 0.98)',
            adminDark = 'rgba(25, 10, 5, 0.98)',
            light = 'rgba(255, 240, 230, 0.98)',
            adminLight = 'rgba(250, 230, 220, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(30, 10, 5, 1) 0%, rgba(120, 50, 20, 0.95) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(20, 5, 2, 1) 0%, rgba(100, 40, 15, 0.95) 100%)',
            light = 'linear-gradient(135deg, rgba(240, 140, 80, 1) 0%, rgba(255, 250, 245, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(220, 120, 60, 1) 0%, rgba(255, 245, 240, 1) 100%)',
        }
    },
    ['forest-green'] = {
        Solid = {
            dark = 'rgba(10, 30, 15, 0.98)',
            adminDark = 'rgba(5, 20, 10, 0.98)',
            light = 'rgba(230, 250, 235, 0.98)',
            adminLight = 'rgba(220, 240, 225, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(5, 15, 10, 1) 0%, rgba(35, 90, 50, 0.95) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(2, 10, 5, 1) 0%, rgba(25, 75, 40, 0.95) 100%)',
            light = 'linear-gradient(135deg, rgba(90, 180, 110, 1) 0%, rgba(245, 255, 250, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(70, 160, 90, 1) 0%, rgba(240, 250, 245, 1) 100%)',
        }
    },
    ['royal-purple'] = {
        Solid = {
            dark = 'rgba(25, 10, 35, 0.98)',
            adminDark = 'rgba(15, 5, 25, 0.98)',
            light = 'rgba(250, 240, 255, 0.98)',
            adminLight = 'rgba(240, 230, 250, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(15, 5, 20, 1) 0%, rgba(85, 45, 130, 0.95) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(10, 2, 15, 1) 0%, rgba(65, 35, 110, 0.95) 100%)',
            light = 'linear-gradient(135deg, rgba(170, 120, 230, 1) 0%, rgba(255, 250, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(150, 100, 210, 1) 0%, rgba(250, 245, 255, 1) 100%)',
        }
    },
    ['cyberpunk'] = {
        Solid = {
            dark = 'rgba(30, 5, 30, 0.98)',
            adminDark = 'rgba(20, 0, 20, 0.98)',
            light = 'rgba(255, 235, 255, 0.98)',
            adminLight = 'rgba(255, 225, 255, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(20, 0, 20, 1) 0%, rgba(255, 0, 180, 0.8) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(10, 0, 10, 1) 0%, rgba(200, 0, 150, 0.8) 100%)',
            light = 'linear-gradient(135deg, rgba(255, 80, 200, 1) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(230, 50, 180, 1) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    },
    ['blood-red'] = {
        Solid = {
            dark = 'rgba(25, 0, 0, 0.98)',
            adminDark = 'rgba(15, 0, 0, 0.98)',
            light = 'rgba(255, 235, 235, 0.98)',
            adminLight = 'rgba(255, 225, 225, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(15, 0, 0, 1) 0%, rgba(180, 0, 0, 0.8) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(10, 0, 0, 1) 0%, rgba(140, 0, 0, 0.8) 100%)',
            light = 'linear-gradient(135deg, rgba(255, 50, 50, 1) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(230, 30, 30, 1) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    },
    ['midnight-gold'] = {
        Solid = {
            dark = 'rgba(10, 15, 30, 0.98)',
            adminDark = 'rgba(5, 10, 20, 0.98)',
            light = 'rgba(255, 250, 235, 0.98)',
            adminLight = 'rgba(255, 245, 225, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(5, 5, 25, 1) 0%, rgba(212, 175, 55, 0.6) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(2, 2, 15, 1) 0%, rgba(184, 134, 11, 0.6) 100%)',
            light = 'linear-gradient(135deg, rgba(255, 215, 0, 0.8) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(218, 165, 32, 0.8) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    },
    ['toxic-lime'] = {
        Solid = {
            dark = 'rgba(10, 25, 5, 0.98)',
            adminDark = 'rgba(5, 15, 2, 0.98)',
            light = 'rgba(240, 255, 235, 0.98)',
            adminLight = 'rgba(230, 255, 225, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(5, 15, 0, 1) 0%, rgba(50, 255, 50, 0.6) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(2, 10, 0, 1) 0%, rgba(40, 200, 40, 0.6) 100%)',
            light = 'linear-gradient(135deg, rgba(100, 255, 100, 0.8) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(80, 220, 80, 0.8) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    },
    ['ice-cold'] = {
        Solid = {
            dark = 'rgba(5, 20, 30, 0.98)',
            adminDark = 'rgba(2, 10, 20, 0.98)',
            light = 'rgba(235, 250, 255, 0.98)',
            adminLight = 'rgba(225, 245, 255, 0.98)',
        },
        Gradient = {
            dark = 'linear-gradient(135deg, rgba(0, 15, 25, 1) 0%, rgba(0, 195, 255, 0.7) 100%)',
            adminDark = 'linear-gradient(135deg, rgba(0, 10, 20, 1) 0%, rgba(0, 160, 255, 0.7) 100%)',
            light = 'linear-gradient(135deg, rgba(0, 210, 255, 0.8) 0%, rgba(255, 255, 255, 1) 100%)',
            adminLight = 'linear-gradient(135deg, rgba(0, 180, 255, 0.8) 0%, rgba(255, 255, 255, 1) 100%)',
        }
    }
}

-- Automatic Slots by Permission/Group
Config.EnableVIPSlots = true -- Enable extra slots based on ACE permissions
Config.VIPSlots = {
    ['vip'] = 2,           -- Players with 'vip' permission get +2 slots
    ['god'] = 5,           -- Admins get +5 slots
    ['discord_role_id'] = 3 -- If using discord integration (placeholder)
}

-- Job configuration (Colors and Icons)
Config.Jobs = {
    ['police'] = {
        color = '#3498db', -- Blue
        icon = 'fas fa-shield-alt',
        image = 'img/police.png' -- Path (img/...) or URL (https://...)
    },
    ['mechanic'] = {
        color = '#e67e22', -- Orange
        icon = 'fas fa-tools',
        image = 'img/mechanic.png'
    },
    ['ambulance'] = {
        color = '#e74c3c', -- Red
        icon = 'fas fa-ambulance',
        image = 'img/ambulance.png'
    },
    -- You can add more jobs here
    ['default'] = {
        color = '#7f8c8d', -- Default gray
        icon = 'fas fa-briefcase',
        image = 'img/default.png'
    }
}

-- Discord Logging Configuration
Config.Logs = {
    Enabled = true,
    ServerName = 'B14ck MultiJob',
    IncludeAvatar = true,  -- Include player's profile picture in webhooks
    Webhooks = {
        ['default'] = 'TU_WEBHOOK_AQUI',   -- For general logs
        ['admin'] = 'TU_WEBHOOK_AQUI',     -- For admin panel and commands
        ['jobs'] = 'TU_WEBHOOK_AQUI',      -- For job changes and duty
        ['security'] = 'TU_WEBHOOK_AQUI',   -- For unauthorized access and renames
    },
    Colors = {
        Default = 16777215, -- White
        Success = 3066993,  -- Green
        Warning = 16776960, -- Yellow
        Error = 15158332,   -- Red
        Admin = 10181046,   -- Purple
        Job = 3447003       -- Blue
    }
}

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://b14ck.gitbook.io/b14ck-scripts/scripts/multijob/configuration/config-file.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
