QBCore Installation

Install oxide-weather on QBCore — disabling qb-weathersync, updating the stock resources that call it, command replacements and admin permissions.

QBCore-specific steps for oxide-weather. Follow Installation first — this page only covers what is different on QBCore.

Requirements

  • qb-core
  • oxmysql
  • ox_lib
  • o-link (1.8.0 or newer)
  • oxide-weather
  • oxide-tablet (optional, adds the weather app and widget)

Disable qb-weathersync

QBCore ships its own weather and time script, qb-weathersync, and it lives in the [qb] folder. You must turn it off. oxide-weather replaces it completely.

If you leave it running you get two problems at once:

  • Both scripts push weather to players every few seconds, so the sky flickers between two states.
  • Both register a /weather command, so whichever one wins is unpredictable and your Oxide subcommands stop working.

QBCore also starts [qb] as a folder, so deleting a line from server.cfg is not enough. The resource starts because it sits inside that folder. Move it out:

resources/[qb]/qb-weathersync   ->   resources/[disabled]/qb-weathersync

Do not add ensure [disabled] to your config. Anything in there stays off.

If your setup happens to start it by name, remove or comment out the line instead:

server.cfg
# ensure qb-weathersync

Moving the folder is not enough on its own. Some QBCore resources list qb-weathersync as a dependency, and the server starts a dependency automatically, even from inside [disabled]. Update those resources as described below before you restart.

Resources that use qb-weathersync

Several stock QBCore resources talk to qb-weathersync directly, so each one needs a small edit. Search your resources folder for qb-weathersync to find every place, including scripts you added yourself. On a stock QBCore install you will find these:

ResourceFileWhat it uses qb-weathersync for
qb-apartmentsfxmanifest.lua, client/main.luaListed as a dependency. Pauses weather sync inside apartments
qb-housesfxmanifest.lua, client/main.luaListed as a dependency. Resumes weather sync when leaving a house
qb-houserobberyclient/main.luaPauses weather sync inside robbery houses
qb-adminmenuclient/client.luaThe weather and time buttons in the server options
qb-bankrobberyserver/main.luaTurns the blackout on and off when every power station is hit

Remove the dependency

In qb-apartments/fxmanifest.lua and qb-houses/fxmanifest.lua, delete the 'qb-weathersync' line from the dependencies block:

dependencies {
    'qb-core',
    'qb-interior',
    'qb-clothing',
    'qb-weathersync', -- delete this line
}

If you skip this, qb-weathersync starts again with them. If you delete the qb-weathersync folder instead, qb-apartments and qb-houses refuse to start at all.

Pausing weather sync inside interiors

In qb-apartments, qb-houses and qb-houserobbery, replace every

TriggerEvent('qb-weathersync:client:DisableSync')

with

exports['oxide-weather']:ToggleSync(false)
SetWeatherTypeNowPersist('CLEAR')
NetworkOverrideClockTime(18, 0, 0)

While sync is paused, oxide-weather leaves the sky and clock alone. The two extra lines give the interior the same clear 6pm look qb-weathersync used.

Replace every

TriggerEvent('qb-weathersync:client:EnableSync')

with

exports['oxide-weather']:ToggleSync(true)

This brings the server's weather and time straight back. Only the resource that paused sync can resume it. Each of these resources resumes its own pause, so no extra work is needed. qb-houses resumes without ever pausing, which is harmless. See ToggleSync for the full rules.

Admin menu weather and time buttons

In qb-adminmenu/client/client.lua, replace

TriggerServerEvent('qb-weathersync:server:setWeather', selection.value)

with

ExecuteCommand('weather set ' .. selection.value)

and replace

TriggerServerEvent('qb-weathersync:server:setTime', value, value)

with

ExecuteCommand(('weather time %s 0'):format(value))

These run the same /weather commands as typing them in chat, so the admin permission applies. /weather sends its own confirmation, so you can delete the QBCore.Functions.Notify line under each one to avoid two messages.

Every weather type the menu offers is allowed by default. If you remove one from the allowed weather types in /weather settings, its button replies with a usage message instead.

Bank robbery blackout

In qb-bankrobbery/server/main.lua, replace

exports['qb-weathersync']:setBlackout(true)
exports['qb-weathersync']:setBlackout(false)

with

exports['oxide-weather']:SetBlackout(true)
exports['oxide-weather']:SetBlackout(false)

Then allow qb-bankrobbery to change the weather. oxide-weather refuses changes from any resource that is not on its trusted list. Without this, the power stations still go down but the lights stay on, and the console logs a warning naming qb-bankrobbery.

Add it to Config.SetterResources in shared/config.lua:

Config.SetterResources = {
    ['oxide-developer'] = true,
    ['qb-bankrobbery'] = true,
}

Editing the file changes nothing. Run /weather settings, search for Trusted automation resources, and add qb-bankrobbery with Allow weather setters on, save, then run restart oxide-weather in the console. This setting only applies after a restart. See How configuration is stored.

Commands you lose, and what replaces them

Old qb-weathersync commandUse this instead
/weather <type>/weather set <type>
/time <hour> <minute>/weather time <hour> <minute>
/freezetime/weather freeze
/freezeweather/weather dynamic off
/blackout/weather blackout
/morning/weather time 9 0
/noon/weather time 12 0
/evening/weather time 18 0
/night/weather time 23 0

Tell your admin team about this before you switch, so nobody thinks the server is broken.

Check for other weather scripts

Beyond qb-weathersync, check your resources folder for anything else that touches the sky or the clock:

  • cd_easytime
  • vSync or vsync
  • Renewed-Weathersync
  • night_natural_disasters

Any one of them will fight with oxide-weather. Stop them the same way.

Also turn off weather and time options in any admin menu you run (vMenu and similar), and stop using txAdmin's weather buttons.

Startup Order

server.cfg
ensure oxmysql
ensure ox_lib
ensure qb-core
ensure o-link
ensure oxide-tablet     # optional
ensure oxide-weather

o-link must start after qb-core and before oxide-weather.

If you start whole folders (ensure [qb], ensure [standalone]), make sure the effective order still puts o-link before oxide-weather.

Database (nothing to do)

oxide-weather creates its own tables the first time it starts. There is nothing to import. If your host does not let the database user create tables, run resources/[oxide]/oxide-weather/sql/install.sql by hand. Full details are in Installation → Database.

Admin Permission

/weather is admin-only. On QBCore, the check passes if your account holds either the command permission or the admin permission.

Stock QBCore already ships this line, so your existing admins usually pass with no changes:

server.cfg
add_ace group.admin command allow

If you want to be explicit, or your server.cfg does not have it, add both of these:

server.cfg
add_principal identifier.license:YOUR_LICENSE_HERE group.admin
add_ace       group.admin                          admin allow

Being in QBCore's own qb-core/config.lua admin list is not enough on its own. The check is a server permission, not a framework permission.

The server console always counts as an admin.

Nothing Else Is Framework-Specific

oxide-weather does not use jobs, items, money or inventories. There are no items to register and no job names to line up. Everything it needs from QBCore, it gets through o-link automatically.

Verification on QBCore

qb-weathersync is not running. Check the txAdmin Resources page, or run stop qb-weathersync in the console and confirm it says the resource is not running or could not be found. Do not use ensure here, because that would start it.
qb-apartments and qb-houses start with no dependency errors.
The console prints [INFO][oxide-weather][lifecycle] Weather synchronization ready.
Server starts with no dependency errors and no repeating persistence errors.
The in-game clock is moving.
/weather opens the admin panel.
/weather set rain starts rain for every player within a few seconds.
/weather time 2 30 moves everyone's clock to 02:30.
Walk into an apartment: the sky is clear at 18:00. Walk back out: the rain and the server's time come back.
Wait out one weather interval (15 real minutes by default) and confirm the weather changes on its own.
Run restart oxide-weather in the console, then rejoin. The time and weather come back where they were.

Next Steps