FiveM Weather & Time Sync Setup: qb-weathersync Guide

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:

CommandWhat it doesExample
/weather [type]Set weather immediately to any valid type/weather RAIN
/freezeweatherToggle dynamic weather on/off/freezeweather
/freezetimeToggle time progression on/off/freezetime
/blackoutToggle city-wide blackout/blackout
/time [hour] [minute]Set the in-game clock/time 20 30
/morningJump to morning (approx. 07:00)/morning
/noonJump to noon (approx. 12:00)/noon
/eveningJump to evening (approx. 18:00)/evening
/nightJump 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.

99.9%Uptime SLA
< 5 minInstant setup
24/7Human support
DDoSProtected
Instant setup Your server is live in minutes with a one-click control panel.
Mods & plugins Install mods, plugins and workshop content in a few clicks.
DDoS protected Enterprise DDoS mitigation keeps your server online 24/7.
Low-latency hardware Premium CPUs & NVMe SSDs for lag-free multiplayer.
Free backups Automatic backups so your world is never lost.
Real human support Gamers helping gamers — 24/7, no bots, no scripts.

Pick your FiveM plan & play in minutes

See all plans
Starter $8.40/mo 4 GB RAM Renews $12/mo Buy now
Rookie $17.50/mo 8 GB RAM Renews $25/mo Buy now
Pro $24.50/mo 12 GB RAM Renews $35/mo Buy now