SimpleDevelopments Docs
Simple Store License Generator Our Discord
Our docs are still under construction - Expect new changes in the future!
Paid Scripts IconPaid Scripts

2 - Configuration

By Fadin_laws 9 mins 1
Config.LicenseKey = "LICENSE-KEY-HERE"

  • General settings for the garage system.

Config.Framework = 'standalone' -- 'standalone' | 'esx' and 'qb' coming soon in later updates.
Config.OpenKey = 38 -- Key code to open the garage
Config.InteractionDistance = 2.0 -- Distance from which a player can interact with the garage
Config.ReturnDistance = 5.0 -- Distance from which a player can return a vehicle to the garage
Config.DrawDistance = 25.0 -- Distance at which the garage marker will be drawn

Config.AllowAllAccessibleDepartments = true -- if true, all departments would be able to access the garage regardless of their specific department
Config.PermissionMode = 'discord_roles' -- 'discord_roles' is the only supported permission mode at this time.
Config.RequiredPermission = nil -- required permission for accessing the garage, only used if PermissionMode is not 'discord_roles'
Config.RequiredDiscordRoleIds = {} -- optional master role gate, leave empty to disable
Config.EnableVehicleKeys = false -- Standalone by default. Leave false unless you wire a key script in client/keys.lua

  • Here is where you can set the amount of vehicles the player can have out at once, plus the global amount spawned in the server.

    • Below that you can configure requiring permissions for mods such as EMS, Transmission, etc. and if those options are hidden if locked or not.

Config.VehicleLimits = {
    perPlayer = 1,
    global = 20
}

Config.ModPermissions = {
    enabled = true,
    hideLockedOptions = false -- 'false' will show locked options, 'true' will hide them
}

  • Here you can configure if there is a department stock overall, where the save file for presets are saved and the max amount of presets for each player.

    • Below those settings you're able to configure the messages for each notification popup.

Config.UseDepartmentStock = true -- uses vehicle.initial_count per model
Config.SaveFile = 'html/bin/presets.json' -- file path where vehicle presets will be saved
Config.MaxPresetsPerPlayer = 25 -- maximum number of vehicle presets a player can save

Config.Messages = {
    open_prompt = 'Press ~INPUT_CONTEXT~ to open the garage',
    return_prompt = 'Press ~INPUT_CONTEXT~ to store your department vehicle',
    no_access = 'You do not have access to this garage.',
    no_spawn = 'All spawn points are blocked right now.',
    invalid_vehicle = 'That vehicle is not available.',
    limit_player = 'You already have the maximum number of active garage vehicles out.',
    limit_global = 'The garage has reached the global active vehicle limit.',
    limit_model = 'That vehicle is currently out of stock.',
    stored = 'Vehicle stored.',
    preset_saved = 'Preset saved.',
    preset_deleted = 'Preset deleted.',
    no_mod_permission = 'You do not have permission to use that vehicle configuration option.',
    no_save_permission = 'You do not have permission to save presets for this department.',
    no_deploy_permission = 'You do not have permission to deploy vehicles for this department.'
}

  • This is where you can configure the Discord logging.

Config.Discord = { -- Discord webhook configuration for logging garage actions
    enabled = true,
    webhookUrl = 'https://discord.com/api/webhooks/1476770130305482772/7FX6mGoqZ4W76W5ywTdss1VmSMdm-UqusrvhaE2I_6ktiYkb64iIPWkE6BxPWh-mDxDT',
    botName = 'SimpleDevelopments',
    botAvatar = 'https://cdn.discordapp.com/icons/1066225230479101972/a48c427bf8e01972fde2fcf967e886b5.webp?size=1024',
    logTaken = true,
    logStored = true
}

  • Below are the mod settings for plates, engine, transmissions, and brakes.

    • You can add more plate versions and change the text of those plates in the UI as well.

Config.PlateStyles = {{ -- available plate styles for vehicles
    value = 0,
    label = 'Blue on White 1'
}, {
    value = 1,
    label = 'Blue on White 2'
}, {
    value = 2,
    label = 'Blue on White 3'
}, {
    value = 3,
    label = 'Yellow on Blue'
}, {
    value = 13,
    label = 'Exempt'
}}

Config.EngineMods = {{ -- available engine modifications for vehicles
    value = -1,
    label = 'Stock'
}, {
    value = 0,
    label = 'EMS Upgrade, Level 1'
}, {
    value = 1,
    label = 'EMS Upgrade, Level 2'
}, {
    value = 2,
    label = 'EMS Upgrade, Level 3'
}, {
    value = 3,
    label = 'EMS Upgrade, Level 4'
}}

Config.BrakeMods = {{ -- available brake modifications for vehicles
    value = -1,
    label = 'Stock'
}, {
    value = 0,
    label = 'Street Brakes'
}, {
    value = 1,
    label = 'Sport Brakes'
}, {
    value = 2,
    label = 'Race Brakes'
}}

Config.TransmissionMods = {{ -- available transmission modifications for vehicles
    value = -1,
    label = 'Stock'
}, {
    value = 0,
    label = 'Street Transmission'
}, {
    value = 1,
    label = 'Sport Transmission'
}, {
    value = 2,
    label = 'Race Transmission'
}}
  • Below is an example garage setup with all respective settings and comments for those settings.

paleto_pd = {
        department = 'bcso', -- department this garage belongs to
        deplyPoint = { 
            name = 'Paleto PD Front Desk', -- name of the deploy point
            coords = vector3(-463.7497, 6024.8511, 31.7), -- coordinates of the deploy point
            marker = { -- marker configuration for the deploy point
                enabled = true,
                type = 2, -- marker type for the deploy point
                scale = 0.7, -- scale of the deploy point marker
                color = { -- color of the deploy point marker
                    r = 52, -- red component of the deploy point marker color
                    g = 152, -- green component of the deploy point marker color
                    b = 219, -- blue component of the deploy point marker color
                    a = 120 -- alpha component of the deploy point marker color
                }
            },
            blip = { -- blip configuration for the deploy point
                enabled = true, -- whether the deploy point blip is enabled
                sprite = 357, -- sprite ID of the deploy point blip
                color = 26, -- color ID of the deploy point blip
                scale = 0.7, -- scale of the deploy point blip
                display = 4 -- display type of the deploy point blip
            }
        },
        returnPoint = { -- configuration for the return point
            name = 'Paleto PD Return',
            coords = vector3(-454.7146, 6041.0435, 31.7),
            marker = {
                enabled = true,
                type = 6, -- marker type for the return point
                scale = 0.7, -- scale of the return point marker
                color = { -- color of the return point marker
                    r = 52, -- red component of the return point marker color
                    g = 152, -- green component of the return point marker color
                    b = 219, -- blue component of the return point marker color
                    a = 120 -- alpha component of the return point marker color
                },

                motion = 'bounce', -- 'bounce', 'rotate',  'bounce_rotate', or 'static'

                bounce = {
                    enabled = true, -- whether the bounce motion is enabled for the return point marker
                    amplitude = 0.08, -- how high it moves
                    speed = 1.0 -- how fast it moves
                },

                rotate = true,
                rotation = vec3(-90.0, 0.0, 0.0),
                faceCamera = false,
                direction = vec3(0.0, 0.0, 0.0),
                zOffset = -0.95,
                drawOnEnts = false
            },
            blip = { -- blip configuration for the return point
                enabled = true,
                sprite = 50, -- sprite ID of the return point blip
                color = 26, -- color ID of the return point blip
                scale = 0.7, -- scale of the return point blip
                display = 4 -- display type of the return point blip
            }
        },
        spawnPoints = {{ -- configuration for the spawn points where vehicles appear when deployed
            coords = vec4(-479.4634, 6028.2461, 31.3404, 226.8188), -- coordinates of the spawn point
            radius = 3.0 -- radius around the spawn point where the vehicle can appear
        }, {
            coords = vec4(-482.8303, 6025.0083, 31.3404, 222.7138),
            radius = 3.0 
        }, {
            coords = vec4(-476.0493, 6031.8657, 31.3404, 225.4155),
            radius = 3.0
        }, {
            coords = vec4(-472.4987, 6035.5654, 31.3404, 225.7455),
            radius = 3.0
        }}
    }

  • Below you can see how to create your own agency, below is setup for LSPD.

    • Ranks work off Badger_Discord_API, to set role perms, all you need to do is have Badger_Discord_API pre-configured and put the role IDs for the ranks.

Config.Departments = {
    lspd = {
        label = 'Los Santos Police',
        permissionRoleIds = {1416295230503784553}, -- optional department-wide access role
        ranks = {
            ['Police Officer I'] = 1,
            ['Police Officer II'] = 2,
            ['Sergeant'] = 3,
            ['Sergeant II'] = 4,
            ['Lieutenant'] = 5,
            ['Captain'] = 6,
            ['Commander'] = 7,
            ['Deputy Chief'] = 8,
            ['Assistant Chief'] = 9,
            ['Chief'] = 10
        },
        modPermissions = {
            plateText = 'Police Officer I',
            plateStyle = 'Police Officer I',
            extras = 'Police Officer I',
            livery = 'Police Officer II',
            engine = 'Sergeant',
            brakes = 'Sergeant',
            transmission = 'Sergeant',
            savePreset = 'Police Officer I',
            deploy = 'Police Officer I'
        },
        rankDiscordRoleIds = {
            ['Police Officer I'] = {1234567890},
            ['Police Officer II'] = {1234567890},
            ['Sergeant'] = {1234567890},
            ['Sergeant II'] = {1234567890},
            ['Lieutenant'] = {1234567890},
            ['Captain'] = {1234567890},
            ['Commander'] = {1234567890},
            ['Deputy Chief'] = {1234567890},
            ['Assistant Chief'] = {1234567890},
            ['Chief'] = {1476791764726845460}
        },
        vehicles = {{
            name = 'Police Cruiser',
            model = 'police',
            rank = 'Police Officer I',
            initial_count = 8,
            image = 'images/LSPD/PoliceCruiser.png'
        }, {
            name = 'Police Buffalo',
            model = 'police2',
            rank = 'Police Officer I',
            initial_count = 8,
            image = 'images/LSPD/PoliceCruiser2.png'
        }, {
            name = 'Police Cruiser3',
            model = 'police3',
            rank = 'Police Officer I',
            initial_count = 8,
            image = 'images/LSPD/PoliceCruiser3.png'
        }, {
            name = 'Police SUV',
            model = 'fbi2',
            rank = 'Chief',
            initial_count = 4,
            image = 'images/LSPD/FBI_SUV.png'
        }}
    },