Without a weather sync resource every player on your FiveM server sees a different sky. One person is standing in sunshine while the person next to them is in a thunderstorm — a guaranteed immersion-breaker for any RP community. This guide walks through installing and configuring qb-weathersync, the resource bundled with the QBCore framework, so your entire server shares the same weather state and clock. It also covers freeze weather, blackout mode, admin commands, and how to avoid conflicts with vMenu.
What qb-weathersync Does
qb-weathersync is a server-side resource that broadcasts a single authoritative weather type and time to every connected client on a configurable interval. It ships with QBCore but can run on any framework because the sync logic sits in plain Lua. Key capabilities include:
- Automatic weather rotation through any subset of GTA V’s 15 weather types
- Shared in-game clock with adjustable starting time and optional time freeze
- Blackout mode — kills artificial lighting server-wide for events and heist scenarios
- Admin slash commands for live adjustments without a server restart
- Lua exports so other resources can read or change weather and time programmatically
Prerequisites
Before you start: a working FiveM server with qb-core already running, access to your server.cfg, and either txAdmin’s file manager or SFTP access to your server’s resources folder. If you are still setting up the base server, see the Linux FiveM server setup guide first.
Step 1 — Download and Place the Resource
If qb-weathersync is not already in your resources folder (it ships in the [qb] pack with most QBCore installs), grab it from the official repository:
git clone https://github.com/qbcore-framework/qb-weathersync.git [qb]/qb-weathersync
Place the qb-weathersync folder inside your [qb] resource category directory. The folder structure should look like:
resources/
[qb]/
qb-core/
qb-weathersync/
config.lua
fxmanifest.lua
client/
client.lua
server/
server.lua
Step 2 — Add ensure to server.cfg
Open your server.cfg and add the ensure line after qb-core. Load order matters — qb-weathersync requires qb-core to be fully initialised first:
ensure qb-core
ensure qb-weathersync
Step 3 — Configure config.lua
Open resources/[qb]/qb-weathersync/config.lua. Every setting lives here. Below is the default file with notes on each option:
Config = {}
Config.DynamicWeather = true -- automatically rotate weather every NewWeatherTimer minutes
Config.StartWeather = 'EXTRASUNNY' -- weather type on server start
Config.BaseTime = 8 -- starting hour (24-hour format, so 8 = 08:00)
Config.TimeOffset = 0 -- offset in minutes applied to BaseTime
Config.FreezeTime = false -- set true to pause the clock permanently
Config.Blackout = false -- set true to kill all artificial lights on start
Config.BlackoutVehicle = false -- extend blackout to vehicle lights as well
Config.NewWeatherTimer = 10 -- minutes between automatic weather changes
Config.Disabled = false -- set true to disable the whole system
Config.RealTimeSync = false -- sync in-game clock to the server's real-world time
Config.AvailableWeatherTypes = {
'EXTRASUNNY', 'CLEAR', 'NEUTRAL', 'SMOG', 'FOGGY',
'OVERCAST', 'CLOUDS', 'CLEARING', 'RAIN', 'THUNDER',
'SNOW', 'BLIZZARD', 'SNOWLIGHT', 'XMAS', 'HALLOWEEN',
}
Common adjustments for RP servers: set Config.StartWeather = 'CLEAR' so the server always opens in daylight, reduce Config.NewWeatherTimer to 5 for faster atmospheric shifts, or set Config.FreezeTime = true and Config.BaseTime = 12 to lock the server at noon permanently.
Admin Commands Reference
Once the resource is running, players with the admin permission group (configured in your server.cfg via QBCore’s ACE system) can use these in-game slash commands:
| Command | What it does | Example |
|---|---|---|
/weather [type] | Set weather immediately to any valid type | /weather RAIN |
/freezeweather | Toggle dynamic weather on/off | /freezeweather |
/freezetime | Toggle time progression on/off | /freezetime |
/blackout | Toggle city-wide blackout | /blackout |
/time [hour] [minute] | Set the in-game clock | /time 20 30 |
/morning | Jump to morning (approx. 07:00) | /morning |
/noon | Jump to noon (approx. 12:00) | /noon |
/evening | Jump to evening (approx. 18:00) | /evening |
/night | Jump to night (approx. 22:00) | /night |
Commands are protected by qb-weathersync’s permission check, which allows access if the player has the admin role in QBCore or the native command ACE. To assign someone admin in server.cfg:
add_ace group.admin command allow
add_principal identifier.license:YOUR_LICENSE_HASH group.admin
Using Exports in Other Resources
Other scripts can read or change weather and time at runtime through qb-weathersync’s exports, without touching config.lua. For example, a heist script that needs a thunderstorm the moment the vault opens:
-- server-side Lua inside your heist resource
exports['qb-weathersync']:setWeather('THUNDER')
exports['qb-weathersync']:setBlackout(true)
-- restore after the event
exports['qb-weathersync']:setWeather('CLEAR')
exports['qb-weathersync']:setBlackout(false)
exports['qb-weathersync']:setDynamicWeather(true)
The full list of available exports: setWeather, setTime, setBlackout, setTimeFreeze, setDynamicWeather, nextWeatherStage, getWeatherState, getBlackoutState, getTimeFreezeState, and getDynamicWeather. Check the FiveM server docs for deeper framework integration tips.
Avoiding Conflicts with vMenu
If your server also runs vMenu, its built-in weather and time sync will fight with qb-weathersync. Disable vMenu’s sync in server.cfg by setting these replicated convars to false:
setr vmenu_enable_weather_sync false
setr vmenu_enable_time_sync false
After adding these lines, restart vMenu or do a full server restart. Players will still see the vMenu interface, but the weather and time controls inside it will no longer broadcast changes — qb-weathersync stays in charge. For a full walkthrough on managing menus, see the vMenu setup guide.
Freezing Weather for Specific Events
For timed server events — a snow Christmas event, a Halloween horror night — the cleanest pattern is to disable dynamic weather, set the type, then re-enable it afterwards:
# In-game as admin — Christmas event start
/freezeweather
/weather XMAS
# After the event — re-enable rotation
/freezeweather
To do this automatically on a schedule, pair it with a cron-style restart script. The FiveM automatic restarts and scheduler guide shows how to run timed tasks without manual intervention.
Troubleshooting
Weather is still desynced between players — confirm only one weather resource is running (ensure qb-weathersync present and no duplicate start lines for vSync, Renewed-Weathersync, or SimpleSync). Run refresh and restart qb-weathersync in the txAdmin console.
Admin commands say “you do not have permission” — your license hash must be added to group.admin via add_principal in server.cfg before the server starts. Changes to ACE lines require a full server restart to take effect.
Server starts in wrong weather after a restart — check Config.StartWeather in config.lua. The value must be one of the exact strings in Config.AvailableWeatherTypes (all caps, e.g. 'CLEAR' not 'Clear').
Need a reliable host to run all of this on? Spin up a managed FiveM server and skip the headache of raw VPS configuration entirely.
Frequently Asked Questions
Can I use qb-weathersync without the rest of QBCore?
Technically yes — the client-side sync logic is plain Lua and the QBCore dependency is mainly for command permission checks. In practice, running it outside QBCore requires you to remove or stub the QBCore.Functions.HasPermission calls in server/server.lua. If you are not on QBCore, consider Renewed-Weathersync or a lighter resource like SimpleSync instead, both of which have no framework dependency.
What is the difference between freezeweather and freezetime?
/freezeweather toggles Config.DynamicWeather — it stops the automatic rotation so the current weather type stays fixed. The clock still ticks. /freezetime toggles Config.FreezeTime — it pauses the in-game clock at whatever hour it is currently showing. You can use both together to lock the server into a specific weather and time combination (for example, a permanent foggy midnight for a horror event).
Does qb-weathersync support real-time sync with the actual clock?
Yes — set Config.RealTimeSync = true in config.lua. The in-game clock will follow the server’s system time. Note that this overrides Config.BaseTime and Config.FreezeTime, so those settings have no effect while real-time sync is active. Most RP servers leave this off because it means daylight hours depend on the server’s timezone, which can result in most players experiencing permanent night if the server is hosted in a mismatched region.
Ready to play?
Run your own FiveM server with XGamingServer
Spin up an always-on FiveM server your friends can join in minutes — no port-forwarding, no tech headaches.







