Configuration
Every entry in shared/config.lua. Defaults, types, and purpose.
All settings live in shared/config.lua. The file is in escrow_ignore
so it remains editable after install. Event name constants live in
shared/constants.lua. All user-facing text lives in the per-language
files under locales/, loaded by shared/locale.lua (see Localization
below).
Core
Config.Frameworkstringdefault: 'ESX'Framework identifier. One of 'ESX', 'QB'.
Config.Targetstringdefault: 'OX'Target resource identifier. One of 'OX', 'QB'.
Config.Languagestringdefault: 'en'Active language for the UI, notifications, and the admin menu. Loads the matching locales/<code>.json file. Shipped: 'en', 'fi', 'de', 'fr', 'pt-br', 'es', 'tr', 'nl', 'it', 'pl', 'zh'. See Localization below.
Config.NotificationSystemstringdefault: 'ox_lib'Notification backend. One of 'ox_lib', 'esx', 'qb', 'custom'.
Config.CustomNotifyfunction | nildefault: nilOptional function invoked when NotificationSystem = 'custom'. Signature: function(title, message, type, duration).
Config.AdminIdentifiersstring[]default: {}Optional list of raw identifiers (license, steam, discord) treated as admin outside the framework's group system.
Config.AdminKeybindtabledefault: { enabled = false, key = 'F7' }Keybind that opens the admin menu. When enabled, registered through lib.addKeybind.
Config.Debugbooleandefault: falseEnables verbose debug logging and unlocks debug-only commands (see Commands page).
Config.EnableLoggingbooleandefault: trueWhen true, the optional analytics tables are created and weather changes are logged.
Weather system toggles
Config.EnableSeasonsbooleandefault: trueMaster toggle for the seasonal cycle. If false, season stays fixed on Config.DefaultSeason.
Config.EnableWarningsbooleandefault: trueBroadcast in-world weather warnings during severe weather.
Config.EnableWarningSoundsbooleandefault: falsePlay the warning sound FX alongside the text warning.
Config.EnableWeatherEffectsbooleandefault: trueApply road traction, visual overlays, and weather-driven FX on clients.
Config.EnableTemperatureSystembooleandefault: trueCalculate and broadcast temperature. Required for shivering, cold breath, and heatwave effects.
Config.DefaultSeasonstringdefault: 'SUMMER'Season used when EnableSeasons is false, or the initial season at first start.
Config.WeatherChanceMultiplierstabledefault: { WetWeather = 0.6, SpringThunderEvent = 0.5 }0.01 to 1.0 multipliers. WetWeather tunes random RAIN/THUNDER frequency. SpringThunderEvent tunes the spring thunderstorm seasonal event.
Config.InitialSeasonalEventCheckDelayMinutesnumberdefault: 30Minutes after resource start before the first seasonal event roll.
Gameplay flooding
Subtle low-street flooding tied to the weather cycle. Separate from
the admin-only extreme flooding used for testing. Requires
Config.StormSystems.Enabled = true.
Config.GameplayFlooding.Enabledbooleandefault: falseMaster toggle for gameplay flooding.
Config.GameplayFlooding.AutoResetbooleandefault: trueAutomatically reset water after the profile duration expires.
Config.GameplayFlooding.CooldownMinutesnumberdefault: 180Minimum time between gameplay flood triggers.
Config.GameplayFlooding.DurationCheckIntervalSecondsnumberdefault: 30How often the server checks whether the active flood should expire.
Config.GameplayFlooding.ProfilestableFlood profile definitions keyed by id. Shipped: subtle, moderate, strong. Each profile: { maxFloodHeight, increaseRate, threadWait, durationMinutes }.
Config.GameplayFlooding.ProfileWeightstabledefault: { subtle = 0.78, moderate = 0.20, strong = 0.02 }Weighted selection when a profile is picked automatically.
Config.GameplayFlooding.SeasonRulestablePer-season trigger rules. Shipped: SPRING (THUNDER, minIntensity 0.72, triggerChance 0.35) and FALL (RAIN or THUNDER, minIntensity 0.80, triggerChance 0.20).
Storm systems
Blackout pulses, lightning strike FX, and ocean wave simulation.
Config.StormSystems.Enabledbooleandefault: trueMaster toggle for all storm systems.
Config.StormSystems.SyncIntervalSecondsnumberdefault: 2Server to client cadence for storm state broadcasts.
Blackout
Config.StormSystems.Blackout.Enabledbooleandefault: trueConfig.StormSystems.Blackout.MinIntensitynumberdefault: 0.72Fallback intensity threshold for weather types not listed in EligibleWeather.
Config.StormSystems.Blackout.EligibleWeathertabledefault: { THUNDER = { minIntensity = 0.72 }, RAIN = { minIntensity = 0.88 }, BLIZZARD = { minIntensity = 0.72 } }Per-weather minimum intensity required for blackout pulses to fire.
Config.StormSystems.Blackout.PulseMinSecondsnumberdefault: 6Config.StormSystems.Blackout.PulseMaxSecondsnumberdefault: 14Config.StormSystems.Blackout.DurationTierstabledefault: {}Optional weighted duration tiers per weather type. When a weather type has tiers, each blackout pulse picks one at random (weighted) instead of using PulseMin/MaxSeconds. Each tier is { duration = seconds, weight = N } for a fixed value, or { min = seconds, max = seconds, weight = N } for a random range. Durations are clamped to [2, 300] seconds. Leave a weather key absent to keep the default short-pulse behavior. Example for dramatic thunderstorm outages: DurationTiers = { THUNDER = { { duration = 30, weight = 60 }, { duration = 60, weight = 30 }, { duration = 300, weight = 10 } } }.
Config.StormSystems.Blackout.CooldownMinSecondsnumberdefault: 20Config.StormSystems.Blackout.CooldownMaxSecondsnumberdefault: 45Config.StormSystems.Blackout.VehicleLightsbooleandefault: falseWhen false, vehicle lights are disabled during blackout pulses.
Strike FX
Config.StormSystems.StrikeFx.Enabledbooleandefault: trueConfig.StormSystems.StrikeFx.MinIntensitynumberdefault: 0.65Config.StormSystems.StrikeFx.ChancePerSyncnumberdefault: 0.18Probability of a strike FX broadcast on each sync interval while storm logic is active.
Config.StormSystems.StrikeFx.MinIntervalSecondsnumberdefault: 6Hard cooldown between strike FX broadcasts.
Config.StormSystems.StrikeFx.MinDistanceFromTargetnumberdefault: 25.0Config.StormSystems.StrikeFx.MaxDistanceFromTargetnumberdefault: 120.0Ocean
Config.StormSystems.Ocean.Enabledbooleandefault: trueConfig.StormSystems.Ocean.Modestringdefault: 'coastal''coastal' applies only when the player is near water. 'global' always applies.
Config.StormSystems.Ocean.UpdateIntervalMsnumberdefault: 2500Config.StormSystems.Ocean.DetectionRadiusnumberdefault: 90.0Config.StormSystems.Ocean.ProbeDepthnumberdefault: 24.0Config.StormSystems.Ocean.DefaultScalernumberdefault: 1.0Config.StormSystems.Ocean.Presetstabledefault: { calm = 1.0, normal = 1.3, rough = 1.6, storm = 2.0, experimental = 4.0 }Named scaler presets usable from the admin menu and the STORM_SET_OCEAN_OVERRIDE event.
Config.StormSystems.Ocean.WeatherScalerstablePer-weather automatic scaler. Keys mirror GTA weather types (CLEAR, RAIN, THUNDER, SNOW, BLIZZARD, etc.). Values multiply the base wave height.
Config.StormSystems.Ocean.BoatPhysicstabledefault: { Enabled = true, RoughThreshold = 1.35, StormThreshold = 1.8, RoughMaxSpeedMultiplier = 0.88, StormMaxSpeedMultiplier = 0.75, TurbulenceForce = 0.15, TurbulenceIntervalMs = 850 }Optional boat penalties under rough seas. Thresholds are scaler values, multipliers clamp max speed, TurbulenceForce adds periodic impulse.
UI
Config.UI.EnableForecastbooleandefault: trueEnable the /forecast command and the newspaper-stand forecast interaction.
Config.UI.EnableWeatherHudbooleandefault: trueRender the small weather HUD panel.
Config.UI.NotifyOnWeatherChangebooleandefault: trueConfig.UI.NotifyOnTempChangebooleandefault: trueNotify when temperature changes by more than TempChangeThreshold.
Config.UI.TempChangeThresholdnumberdefault: 5Minimum temperature delta (in degrees) that triggers a notification.
Config.UI.WarningDurationnumberdefault: 10Seconds a warning banner stays on screen.
Config.UI.UseMetricbooleandefault: trueDisplay temperature in Celsius. Set false for Fahrenheit.
Config.UI.DisplayFormatstringdefault: 'both'HUD display format. One of 'icon', 'text', 'both'.
Weather intervals
Config.WeatherUpdateIntervalnumberdefault: 2.5Minutes between weather tick evaluations on the server.
Config.DefaultWeatherDurationnumberdefault: 8Fallback duration (minutes) when Min/Max are not set.
Config.MinWeatherDurationnumberdefault: 5Minimum random weather duration (minutes).
Config.MaxWeatherDurationnumberdefault: 15Maximum random weather duration (minutes).
Config.ForecastDaysnumberdefault: 6Number of days included in the forecast.
Config.ForecastRefreshIntervalnumberdefault: 60Minutes between forecast regenerations.
Temperature
Config.BaseTemperaturenumberdefault: 10Base temperature in Celsius. Modulated by season, time-of-day, and weather.
Config.ColdTemperaturenumberdefault: 4At or below this, the player is flagged as 'cold'. Triggers shivering and cold-breath effects.
Config.HotTemperaturenumberdefault: 30At or above this, heatwave effects apply.
Config.MaxTemperaturenumberdefault: 45Config.MinTemperaturenumberdefault: -20Seasons
Config.SeasonDurationnumberdefault: 30Real-world minutes per season when UseRealtimeSeason is false.
Config.UseRealtimeSeasonbooleandefault: falseWhen true, season follows the real-world month (see RealtimeSeasonMonthMap) instead of SeasonDuration.
Config.RealtimeSeasonMonthMaptableMonth (1 to 12) to season ('SPRING', 'SUMMER', 'FALL', 'WINTER'). Shipped default maps Dec-Feb to winter, Mar-May to spring, Jun-Aug to summer, Sep-Nov to fall.
Time sync
Config.TimeSync.Enabledbooleandefault: trueServer-authoritative time sync. Ensures all players share the same clock.
Config.TimeSync.UseRealTimebooleandefault: falseMirror real-world time when true.
Config.TimeSync.Freezebooleandefault: falseFreeze time progression when UseRealTime is false.
Config.TimeSync.StartHournumberdefault: 12Config.TimeSync.StartMinutenumberdefault: 0Config.TimeSync.StartSecondnumberdefault: 0Config.TimeSync.TimeScalenumberdefault: 1.0Minute progression multiplier when UseRealTime is false.
Config.TimeSync.SyncIntervalSecondsnumberdefault: 15Server to client time broadcast cadence.
Config.TimeSync.RealtimeUtcOffsetMinutesnumber | nildefault: nilOptional fixed UTC offset (minutes) for realtime mode.
Road traction
Config.RoadEffects.RainTractionReductionnumberdefault: 0.15Traction reduction during RAIN. Range 0.0 to 1.0.
Config.RoadEffects.ThunderTractionReductionnumberdefault: 0.25Config.RoadEffects.ClearingTractionReductionnumberdefault: 0.1Config.RoadEffects.SnowTractionReductionnumberdefault: 0.35Localization
All user-facing text (UI labels, notification titles, warning copy,
weather and forecast strings, and the admin menu) lives in per-language
JSON files under locales/, loaded at runtime by shared/locale.lua.
The active file is selected by Config.Language, and any key missing
from a translation falls back to English.
Shipped languages: English (en), Finnish (fi), German (de), French
(fr), Brazilian Portuguese (pt-br), Spanish (es), Turkish (tr),
Dutch (nl), Italian (it), Polish (pl), and Chinese (zh).
To add or change a language, copy locales/en.json, translate the
values, and keep the keys and the %s, %d, and {placeholder} tokens
intact. Set Config.Language to the file name. The locales/*.json
files are listed in escrow_ignore and the manifest files{} block, so
they stay editable after install and load on the client.
[!note] Earlier versions kept this text in
Config.Locale,Config.WarningMessages,Config.WeatherMessages, and their*Fimirrors. Those tables were removed in 2.2.0. Move any customizations into the matchinglocales/<code>.jsonfile.