Before You Begin#
Before installing Zone Weather, make sure your server meets the minimum requirements. Two resources and a database are mandatory; everything else is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
| Required | Zones, settings, the running weather and the clock are all kept in your database. |
| Required | Callbacks, shared helpers and loading the framework adapter. |
| Required | Imported once. Nothing is saved until it is. |
Framework | Optional |
|
| Optional | Sends the emergency alerts to each player's phone as well as their screen. |
| Optional | Its notifications are used first, and its HUD is hidden while a panel is open. |
| Optional | Draws the 3D prompts. Without it they are drawn with the game's own text. |
Every optional integration steps aside on its own when its resource is missing — nothing errors. Integrations explains how each one is picked.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Downloading Zone Weather#
After purchasing Zone Weather, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Zone Weather.
After extracting the download, you should have the following folder:
qs-zoneweather/
├── config/ -- config.lua: framework detection and real time (editable)
├── custom/ -- framework adapters and notifications (editable)
├── client/custom/ -- your own client code and the HUD hook (editable)
├── server/custom/ -- your own server code and event hooks (editable)
├── locales/ -- 41 languages (editable)
├── data/ -- timecycle modifiers and the flood water
├── sql/ -- database.sql
└── web/ -- the panels, the siren and the map tilesThe folder must be named
qs-zoneweather. Every export is called asexports['qs-zoneweather'], so a renamed copy stops answering the scripts that use it.
Installing the Resource#
Move the qs-zoneweather folder into your server's resources directory. It can live anywhere inside it, including a category folder:
resources/
└── [qs]/
└── qs-zoneweather/Once copied, open your server.cfg and make sure every dependency — and everything it should detect — starts before Zone Weather:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Optional
ensure qs-interface
ensure qs-smartphone
ensure qs-zoneweatherThe loading order matters. The framework is detected from the resources that are already started, so a framework that starts after Zone Weather is missed and the resource runs standalone.
The Database#
Open your database manager — HeidiSQL, phpMyAdmin, DBeaver or your host's panel — select your server's database and run sql/database.sql. It creates four tables, all prefixed qs_weather_:
Table | Holds |
|---|---|
| Every zone: its outline, floor and ceiling, weather cycle, own clock, blip, colour, priority and whether it is on. |
| Every value saved from the settings panel. A value you never changed is not stored and keeps its default. |
| What each zone is running right now and whether it is locked, plus the server clock and the blackout, so a restart picks up where it left off. |
| Every admin action — zones created, edited and deleted, weather forced, locks, rerolls, time and blackout changes — with who did it and when. |
The file also writes seven example zones that together cover the whole map, each with its own climate — from the sunny, smoggy south around Los Santos to the fog of the west coast and the dry heat of the desert. They work from the first start; edit them, switch them off or delete them in the creator once you draw your own.
The examples are written with
INSERT IGNORE, so running the file again never overwrites a zone you have edited. A zone you delete stays deleted unless you import the file again.
Granting Admin Access#
The three panels change the weather for everyone, so each one sits behind its own permission. Players without it are refused, and the server console prints the exact line that would let them in.
Panel | Command | ACE node |
|---|---|---|
Live control |
|
|
Settings |
|
|
Zone creator |
|
|
Works on every framework, and is the only route on QBCore, Qbox and standalone. Add these lines to server.cfg and restart the server:
add_ace group.admin command.weather allow # live control panel
add_ace group.admin command.weatherconfig allow # settings panel
add_ace group.admin command.weathercreator allow # zone creatorGive a trusted staff group only command.weather if they should drive the weather without touching the zones or the settings.
Automatic, nothing to configure. On ESX, players in the admin or superadmin group open all three panels. Anyone outside those groups is still let in by the ACE lines from the other tab, so both routes work side by side.
Configuring the Resource#
Almost nothing is configured in files. Weather cycles, the clock, every simulated effect, the alerts, the blips, the language — all of it lives in /weatherconfig, is saved to the database and reaches every player the moment you save. An update never touches it. The files are for plumbing:
File | Contents |
|---|---|
| Which framework is detected, and the real-time clock. |
| How notifications and 3D prompts are shown. |
| The framework adapters. |
| The HUD resources hidden while a panel is open. |
| An example of reacting to weather and time changes from your own code. |
| Every text, in 41 languages. |
The one value worth reviewing first is the real-time clock:
-- config/config.lua
-- true: the game clock follows the real clock of the machine the server runs on
-- (00:40 there is 00:40 in game)
Config.Time.realtime = false
-- hours added to that clock, for a server hosted in another time zone (-1, 2, 5.5...)
Config.Time.realtimeOffset = 0Everything in
config/,custom/,client/custom/,server/custom/andlocales/is open for you to edit. When you update the resource, copy your changes across rather than overwriting those folders.
Verifying the Installation#
After completing the installation, restart your server and read the console. A healthy start looks like this:
[qs-zoneweather] framework resolved: esx
[qs-zoneweather] server adapter loaded: esx
[qs-zoneweather] loaded 0 saved settings, 183 fields in total
[qs-zoneweather] loaded 7 weather zones
[qs-zoneweather] weather ready: 7 zones, 0 restored from the last run
[qs-zoneweather] clock ready at 12:00 (x0.5)framework resolved: standalone on a server that has a framework means it started after Zone Weather — move it above ensure qs-zoneweather. A red line saying a qs_weather_ table could not be used means sql/database.sql was not imported.
Then join your server with an admin account and work through the first loop:
Check where you are
Type
/weatherinfo. A notification names the zone you stand in and its weather, and the F8 console prints the full client state.Change the weather
Open
/weather, pick your zone, choose Thunderstorm and apply. The sky turns over the next few seconds.Open the creator
/weathercreatorshows the seven example zones on the map. From there, Usage covers drawing a zone of your own.
Nothing needs a restart from here on. Every zone, cycle and setting is edited in game and applied to every player at once.



