For the complete documentation index, see llms.txt. This page is also available as Markdown.

sh.main.lua

Documentation for sh.main.lua Configuration

Debug

Config.Debug = false -- Enable debug prints
  • Description: Enables verbose debugPrint output in the server console and NUI. Leave off in production.


Dev

Config.Dev = false
  • Description: Enables development-only features such as the terminal demo target and the /testscreenshot command. Not meant for production β€” may cause issues on a live server.


RetakeableLicenseStatus

-- License statuses: active, expired, revoked, lost, suspended
Config.RetakeableLicenseStatus = {
    ["expired"] = true,
    ["revoked"] = true,
    ["lost"] = true,
}
  • Description: Which license statuses allow a player to pick the license up again at the city hall NPC. Only the listed statuses are retakeable; any status set to true is allowed.


LicensePickUp

  • coords: Location and heading (vec4 = X, Y, Z, heading) of the license pickup NPC (the city clerk).

  • model: Ped model used for the NPC.

  • blip:

    • enabled: Whether to show a map blip.

    • sprite: Blip sprite ID (408 = license/ID card).

    • color: Blip color (2 = green).

    • scale: Blip size.

    • label: Map label text.


LicensePositionEditor

  • Description: When enabled, adds a third option to open the position editor for the currently shown license, letting players adjust where the license displays on screen.


LicenseShowDistance

  • Description: Maximum distance (in game units) at which nearby players can see a license being shown.


LicenseShowCooldown

  • Description: Cooldown in seconds between showing licenses, to prevent spam.

  • Example: 5 means a player must wait 5 seconds between shows. Set to 0 to disable the cooldown.


UsePhysicalLicenses

  • Description: When true, licenses behave as physical inventory items (requires item metadata support in devhub_lib). Enabling this disables virtual licenses β€” the /licenses and /favorites commands will not work. The item used per license is configured in the license creator UI under general settings.


MaxFavoriteLicenses

  • Description: Maximum number of favorite licenses a player can mark.

  • Example: Maximum allowed value is 5.


Usage

  • Description: How each interface can be opened. Every entry supports four trigger methods β€” set any to false to disable it.

    • command: Chat command name.

    • item: Usable inventory item name.

    • event: Client event name that opens the interface.

    • keybind: Key to bind (e.g. "F6", "G", "COMMA") or false. Uses RegisterKeyMapping, so players can rebind it under FiveM Settings β†’ Key Bindings.

  • favorites: Opens the favorite licenses hand display.

  • licenses: Opens the player's card holder.

  • licenseMdt: Opens the license MDT tablet.


PlayerTarget

  • enabled: Adds a target option on other players to view their licenses.

  • icon: Target icon (Font Awesome class).

  • label: Target label text.

  • allowTakeLicense: Whether players may steal/take licenses from another player's card holder.

  • animation: Animation played while searching a player's licenses.

    • dict: Animation dictionary.

    • anim: Animation name.

    • blendIn / blendOut: Blend speeds.

    • duration: Duration in ms (-1 = loop until stopped).

    • flag: Animation flag (1 = loop).


SuspensionCheckIntervalHours

  • Description: How often (in hours) the server checks for suspended licenses whose suspension period has ended.


ExpirationCheckIntervalHours

  • Description: How often (in hours) the server checks for and processes expired licenses.


UseLaptopApp

  • Description: When true, the license system runs as an app inside the free devhub_laptop resource (store.devhub.gg/product/7054272) instead of a standalone UI.


LaptopApp

  • Description: Metadata shown for the app inside the devhub_laptop store/launcher. Only used when Config.UseLaptopApp is true.

    • label: App name shown on the laptop.

    • img: App icon URL.

    • path: URL the app loads.

    • category / rating / size / downloads: Cosmetic store metadata.

    • fullScreen: Whether the app opens full screen.

    • reviews: Sample reviews shown on the app's store page.


ItemShop

  • Description: Items the License Pickup NPC sells.

  • paymentMethod: Accepted payment β€” "cash", "card", or "both".

  • items: Each entry defines an item:

    • name: Inventory item name.

    • price: Cost.

    • max: Maximum quantity a player can buy.


UndergroundItemShop

  • Description: Items sold by the underground NPC (John). Same field structure as Config.ItemShop.


CreatorOnlyForAdmins

  • Description: When true, only admins can open the license creator. Uses Core.IsPlayerAdmin from devhub_lib.


HideoutLocations

  • Description: Entrances to the fake ID underground hideout. Each entry:

    • coords: Surface location and heading of the hideout entrance.

    • spawnDistance: Distance at which the hideout interior props spawn.


UndergroundNpc

  • Description: The underground contact NPC (John).

    • model: Ped model.

    • offset: Position relative to the underground parent entity.

    • heading: Heading relative to the underground parent heading.


Papercutter / Foiltipper / Embosser

  • Description: Placement of the three fake-license crafting stations inside the hideout.

    • offset: Position relative to the underground parent entity.

    • heading: Heading relative to the underground parent heading.


FakeIdPhotos

  • Description: List of avatar photo URLs players can choose from when forging a fake ID.


FakeIdMissionConfig

  • Description: Settings for the fake-license delivery mission.

    • deliveryLocations: Possible drop-off points; one is chosen at random per mission.

    • npcModel: Pool of buyer ped models; one is chosen at random.

    • payMin / payMax: Reward range paid on completion.

    • blipSprite / blipColor / blipScale: Map blip styling for the delivery target.

Last updated