Teedle Scripts Documentation

Configuration

Configuration for Advanced PubCop.

Configuration

Advanced PubCop is configured through config.lua. Below is the current buyer-ready configuration file.

Config File

config.lua
Config = {}

--[[
    Teedle Scripts - Community Officer Resource
    Buyer-ready configuration file.

    Only edit this file and cl_customize.lua unless support tells you otherwise.
]]

-- Framework mode:
--   'auto'       = Uses QBCore if qb-core is started, otherwise standalone.
--   'qbcore'     = Forces QBCore mode.
--   'standalone' = Forces standalone/vMenu style mode.
Config.Framework = 'auto'

-- Main command used to toggle Community Officer mode.
Config.CommandName = 'comofficer'

-- Return/delete the issued Community Officer vehicle.
Config.EnableReturnCommand = true
Config.ReturnVehicleCommand = 'returncopcar'

-- Notification system used by the ENTIRE script.
-- Every message in this resource goes through this one setting.
--
-- Options:
--   'qb'      = QBCore default notify. Recommended for QBCore servers.
--   'ox_lib'  = ox_lib lib.notify.
--   'wasabi'  = wasabi_notify export.
--   'custom'  = Uses TeedleCustomNotify() in cl_customize.lua.
--   'chat'    = FiveM chat fallback.
--   'none'    = No notifications.
--
-- If you use another notification script, set this to 'custom'
-- and edit TeedleCustomNotify() inside cl_customize.lua.
Config.NotifySystem = 'ox_lib'
Config.NotifyTitle = 'Community Officer'
Config.NotifyDuration = 5000

-- Vehicle key support.
--
-- Options:
--   'qb'     = standard qb-vehiclekeys. Recommended/default for QBCore.
--   'custom' = Uses TeedleCustomGiveVehicleKeys() in cl_customize.lua.
--   'none'   = disables automatic key handling.
--
-- If you use another key script, set this to 'custom'
-- and edit TeedleCustomGiveVehicleKeys() inside cl_customize.lua.
Config.VehicleKeys = 'qb'

-- Optional ACE permission.
-- Works in standalone and QBCore mode.
-- Example server.cfg:
--   add_ace group.admin communityofficer.use allow
Config.UseAcePermission = false
Config.AcePermission = 'communityofficer.use'

-- Optional QBCore job restriction.
-- If true, only jobs listed in Config.AllowedQBJobs can use /comofficer.
-- Most servers should leave this false if this is meant for public/community use.
Config.RequireQBJob = false
Config.AllowedQBJobs = {
    police = true,
    sheriff = true
}

-- QBCore job settings.
-- Make sure OfficerJob exists in qb-core/shared/jobs.lua before using the script.
Config.QBCore = {
    OfficerJob = 'pubcop',
    OfficerGrade = 0,
    OffJob = 'unemployed',
    OffGrade = 0
}

Config.Messages = {
    onlyFreemode = 'Your current ped must be mp freemode to use Community Officer.',
    enabled = 'You are now a Public Officer. Your uniform has been applied.',
    disabled = 'You are no longer a Public Officer and no longer have law enforcement authority. If you would like to be a cop again, redo the command.',
    noPermission = 'You do not have permission to use this command.',
    notAllowedJob = 'Your job is not allowed to use this command.',
    noIssuedVehicle = 'You do not have an issued public officer vehicle.',
    alreadyIssuedVehicle = 'You already have an issued vehicle. Returning it now...',
    invalidVehicle = 'Configured Community Officer vehicle is invalid.',
    failedVehicleLoad = 'Vehicle model failed to load in time.',
    failedVehicleCreate = 'Failed to create your public officer vehicle.',
    missingUniform = 'No matching uniform was found for this ped.',
    jobSetFailed = 'Failed to set your job. Make sure the job exists in qb-core/shared/jobs.lua.'
}

-- Component ids:
--   0 Face, 1 Mask, 2 Hair, 3 Arms, 4 Pants, 5 Bag, 6 Shoes,
--   7 Accessories, 8 Undershirt, 9 Armor, 10 Decals, 11 Torso/Jacket
--
-- Prop ids:
--   0 Hat, 1 Glasses, 2 Ears, 6 Watch, 7 Bracelet
--
-- Replace these starter placeholder values with your own uniform numbers.
-- This resource does NOT change the player's ped model. It only changes clothing.
Config.Uniforms = {
    qbcore = {
        male = {
            components = {
                [1] = {drawable = 0, texture = 0, palette = 0},
                [3] = {drawable = 11, texture = 0, palette = 0},
                [4] = {drawable = 35, texture = 0, palette = 0},
                [5] = {drawable = 0, texture = 0, palette = 0},
                [6] = {drawable = 24, texture = 0, palette = 0},
                [7] = {drawable = 0, texture = 0, palette = 0},
                [8] = {drawable = 58, texture = 0, palette = 0},
                [9] = {drawable = 0, texture = 0, palette = 0},
                [10] = {drawable = 0, texture = 0, palette = 0},
                [11] = {drawable = 55, texture = 0, palette = 0}
            },
            props = {
                [0] = {drawable = 46, texture = 0},
                [1] = {clear = true},
                [2] = {clear = true},
                [6] = {clear = true},
                [7] = {clear = true}
            }
        },
        female = {
            components = {
                [1] = {drawable = 0, texture = 0, palette = 0},
                [3] = {drawable = 14, texture = 0, palette = 0},
                [4] = {drawable = 34, texture = 0, palette = 0},
                [5] = {drawable = 0, texture = 0, palette = 0},
                [6] = {drawable = 24, texture = 0, palette = 0},
                [7] = {drawable = 0, texture = 0, palette = 0},
                [8] = {drawable = 35, texture = 0, palette = 0},
                [9] = {drawable = 0, texture = 0, palette = 0},
                [10] = {drawable = 0, texture = 0, palette = 0},
                [11] = {drawable = 48, texture = 0, palette = 0}
            },
            props = {
                [0] = {drawable = 45, texture = 0},
                [1] = {clear = true},
                [2] = {clear = true},
                [6] = {clear = true},
                [7] = {clear = true}
            }
        }
    },

    standalone = {
        male = {
            components = {
                [1] = {drawable = 0, texture = 0, palette = 0},
                [3] = {drawable = 11, texture = 0, palette = 0},
                [4] = {drawable = 35, texture = 0, palette = 0},
                [5] = {drawable = 0, texture = 0, palette = 0},
                [6] = {drawable = 24, texture = 0, palette = 0},
                [7] = {drawable = 0, texture = 0, palette = 0},
                [8] = {drawable = 58, texture = 0, palette = 0},
                [9] = {drawable = 0, texture = 0, palette = 0},
                [10] = {drawable = 0, texture = 0, palette = 0},
                [11] = {drawable = 55, texture = 0, palette = 0}
            },
            props = {
                [0] = {drawable = 46, texture = 0},
                [1] = {clear = true},
                [2] = {clear = true},
                [6] = {clear = true},
                [7] = {clear = true}
            }
        },
        female = {
            components = {
                [1] = {drawable = 0, texture = 0, palette = 0},
                [3] = {drawable = 14, texture = 0, palette = 0},
                [4] = {drawable = 34, texture = 0, palette = 0},
                [5] = {drawable = 0, texture = 0, palette = 0},
                [6] = {drawable = 24, texture = 0, palette = 0},
                [7] = {drawable = 0, texture = 0, palette = 0},
                [8] = {drawable = 35, texture = 0, palette = 0},
                [9] = {drawable = 0, texture = 0, palette = 0},
                [10] = {drawable = 0, texture = 0, palette = 0},
                [11] = {drawable = 48, texture = 0, palette = 0}
            },
            props = {
                [0] = {drawable = 45, texture = 0},
                [1] = {clear = true},
                [2] = {clear = true},
                [6] = {clear = true},
                [7] = {clear = true}
            }
        }
    }
}

Config.Vehicle = {
    Enabled = true,
    Model = 'police',
    SpawnRadius = 4.0,
    WarpIntoVehicle = true,
    Plate = 'PUBCOP',
    Fuel = 100.0,
    DirtLevel = 0.0,
    Livery = nil,
    IssueMessage = 'Your public officer vehicle has been issued.',
    RemoveMessage = 'Your public officer vehicle has been removed.',
    BlockedMessage = 'No clear area was found to issue your public officer vehicle.'
}
Next Customizations

Last updated August 6, 2026

© 2026 Teedle Scripts. All rights reserved. Built for FiveM roleplay communities.