Configuration
Overview
shared/config.lua: All zone detection, display, audio, time, UI, and custom location settings
Debug & Language
shared/config.lua
1Config.DebugMode = false
2Config.Language = 'en'DebugMode: Enables console output and the/viewzonenamecommandLanguage: Language code for translations
Entry Messages & Loading
shared/config.lua
1Config.RandomEntryMessages = true
2Config.ForceLoad = trueRandomEntryMessages: Pick a random welcome line from the localeEntryMessageslist instead of the plain zone nameForceLoad: Initialize the display even if the framework player-load event never fires
Zone Detection
shared/config.lua
1Config.UseNativeZones = true
2Config.ZoneCooldownMinutes = 5
3Config.DisabledZones = {
4 JAIL = true,
5 CHIL = true,
6}UseNativeZones: Use GTA's built-in zone detection systemZoneCooldownMinutes: Minimum minutes between repeated notifications for the same zoneDisabledZones: Zone codes that never trigger a notification. Key = GTA zone code, value =true
Display
shared/config.lua
1Config.Theme = 'default'
2Config.AnimationStyle = 'typewriter'
3Config.ShowStreetName = true
4Config.ShowCoordinates = false
5Config.ShowZoneIcon = trueTheme: Visual theme. Options:'default','wasteland','cyberpunk','noir','fantasy'AnimationStyle: Text entrance animation. Options:'typewriter','slideIn','fadeLetter','glitch','cinematic'ShowStreetName: Display the street name below the zone labelShowCoordinates: Display GPS coordinatesShowZoneIcon: Display a FontAwesome icon next to the zone name
Audio
shared/config.lua
1Config.UseSoundEffect = true
2Config.ThemeSounds = {
3 default = 'typewriter.mp3',
4 wasteland = 'typewriter.mp3',
5 cyberpunk = 'typewriter.mp3',
6 noir = 'typewriter.mp3',
7 fantasy = 'typewriter.mp3',
8}
9Config.EnableCustomZoneSounds = falseUseSoundEffect: Play a sound effect during zone entry animationThemeSounds: Sound file per theme. Files must exist inweb/EnableCustomZoneSounds: Allow zone-specific sound overrides (configured per zone inConfig.Locations)
Per-Zone Sounds
shared/config.lua
1Config.ZoneSounds = {
2 BEACH = 'typewriter.mp3',
3 AIRP = 'typewriter.mp3',
4}ZoneSounds: Sound file per GTA zone code, used whenEnableCustomZoneSounds = true. Files must exist inweb/
Time Display
shared/config.lua
1Config.SeeDate = true
2Config.SeeYear = true
3Config.SeeTime = true
4Config.UseGameTime = false
5Config.TimezoneOffset = nil
6Config.FixedYear = nil
7Config.DateOffsetYears = 0
8Config.DateOffsetMonths = 0
9Config.DateOffsetDays = 0SeeDate: Show the date portion in the notificationSeeYear: Include the year in the dateSeeTime: Show the time portion in the notificationUseGameTime:true= use GTA's in-game clock,false= use real-world time from the serverTimezoneOffset: UTC offset in hours for real-time mode.nil= server local timeFixedYear: Force a specific year in the display.nil= actual yearDateOffsetYears: Shift the displayed year forward/backwardDateOffsetMonths: Shift the displayed monthDateOffsetDays: Shift the displayed day
Visit Tracking
shared/config.lua
1Config.EnableVisitTracking = true
2Config.ShowVisitCount = true
3Config.EnableFirstVisitEffect = trueEnableVisitTracking: Track how many times each player visits a zone (stored in KVP)ShowVisitCount: Display the visit counter on the notificationEnableFirstVisitEffect: Show a special badge on the first visit to a zone
Permanent Subtitle Behavior
shared/config.lua
1Config.ShowPermanentSubtitleWithZone = trueShowPermanentSubtitleWithZone: Keep a permanent subtitle visible while a zone notification is shown.falsehides it during zone entries
UI Customization
shared/config.lua
1Config.UI = {
2 TextColor = '#FFFFFF',
3 TextShadow = true,
4 TextShadowColor = '#000000',
5 FontFamily = "'Courier New', Courier, monospace",
6 FontSizeLocation = '24px',
7 FontSizeDateTime = '20px',
8 FontSizeSubtitle = '18px',
9 FontWeight = 'bold',
10 TextTransform = 'none',
11}TextColor: Main text color (hex)TextShadow: Enable text shadowTextShadowColor: Shadow color (hex)FontFamily: CSS font-family stackFontSizeLocation: Font size for the zone nameFontSizeDateTime: Font size for date/time lineFontSizeSubtitle: Font size for subtitle/street nameFontWeight: CSS font weightTextTransform: CSS text-transform. Options:'none','uppercase','lowercase','capitalize'
Custom Fonts
shared/config.lua
1Config.CustomFontUrl = nil
2Config.EnableCustomFontUI = true
3Config.AvailableFonts = {
4 { name = 'Courier New', value = "'Courier New', Courier, monospace" },
5 { name = 'Roboto Mono', value = "'Roboto Mono', monospace" },
6 -- ...
7}CustomFontUrl: Google Fonts CDN URL to load a custom font.nil= use system fontsEnableCustomFontUI: Allow players to pick a font from the settings panelAvailableFonts: List of font options shown in the player settings. Each entry hasname(display label) andvalue(CSS font-family string)
Zone Labels & Icons
shared/config.lua
1Config.ZoneLabels = {
2 AIRP = 'Los Santos International Airport',
3 ALAMO = 'Alamo Sea',
4 ALTA = 'Alta',
5 -- 74+ zone entries
6}
7
8Config.ZoneIcons = {
9 AIRP = 'fa-plane',
10 ALAMO = 'fa-water',
11 ALTA = 'fa-building',
12 -- matching icons
13}ZoneLabels: Maps GTA zone codes to display names. Add or override entries to rename zones.ZoneIcons: Maps GTA zone codes to FontAwesome icon class names. Icons appear next to zone labels whenShowZoneIcon = true.
Custom Locations
shared/config.lua
1Config.Locations = {
2 {
3 type = 'sphere',
4 label = 'My Custom Area',
5 coords = vector3(100.0, 200.0, 30.0),
6 radius = 30.0,
7 },
8 {
9 type = 'box',
10 label = 'Warehouse',
11 coords = vector3(500.0, -200.0, 40.0),
12 size = vector3(20.0, 30.0, 10.0),
13 rotation = 45,
14 },
15 {
16 type = 'poly',
17 label = 'Farm Area',
18 points = {
19 vec3(100.0, 100.0, 30.0),
20 vec3(200.0, 100.0, 30.0),
21 vec3(200.0, 200.0, 30.0),
22 vec3(100.0, 200.0, 30.0),
23 },
24 thickness = 5.0,
25 },
26}type: Zone shape:'sphere','box', or'poly'label: Display name for the zone notificationcoords: Center position (vector3) for sphere and box typesradius: Detection radius for sphere zonessize: Dimensions (vector3) for box zonesrotation: Heading in degrees for box zonespoints: Vertex list (vec3array) for polygon zonesthickness: Vertical height for polygon zones
Custom locations use lib.zones and trigger zone enter/exit handlers.
Commands
shared/config.lua
1Config.CommandSettings = 'zonesettings'
2Config.CommandZoneName = 'viewzonename'
3Config.SettingsKeybind = nilCommandSettings: Chat command to open the player settings UICommandZoneName: Debug command to display the raw GTA zone code. RequiresDebugMode = trueSettingsKeybind: Optional keyboard key to open settings.nil= no keybind
Player Settings Permissions
shared/config.lua
1Config.PlayerSettings = {
2 EnableSettingsCommand = true,
3 AllowFontChange = true,
4 AllowAnimationChange = true,
5 AllowSoundToggle = true,
6 AllowStreetNameToggle = true,
7 AllowCoordsToggle = true,
8 AllowIconToggle = true,
9}EnableSettingsCommand: Allow the/zonesettingscommandAllowFontChange: Let players change the display fontAllowAnimationChange: Let players change the animation styleAllowSoundToggle: Let players toggle sound effectsAllowStreetNameToggle: Let players toggle street name displayAllowCoordsToggle: Let players toggle coordinate displayAllowIconToggle: Let players toggle zone icon display