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-coreoxmysqlox_libo-link(1.8.0 or newer)oxide-weatheroxide-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
/weathercommand, 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-weathersyncDo 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:
# ensure qb-weathersyncMoving 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:
| Resource | File | What it uses qb-weathersync for |
|---|---|---|
qb-apartments | fxmanifest.lua, client/main.lua | Listed as a dependency. Pauses weather sync inside apartments |
qb-houses | fxmanifest.lua, client/main.lua | Listed as a dependency. Resumes weather sync when leaving a house |
qb-houserobbery | client/main.lua | Pauses weather sync inside robbery houses |
qb-adminmenu | client/client.lua | The weather and time buttons in the server options |
qb-bankrobbery | server/main.lua | Turns 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 command | Use 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_easytimevSyncorvsyncRenewed-Weathersyncnight_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
ensure oxmysql
ensure ox_lib
ensure qb-core
ensure o-link
ensure oxide-tablet # optional
ensure oxide-weathero-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:
add_ace group.admin command allowIf you want to be explicit, or your server.cfg does not have it, add both of these:
add_principal identifier.license:YOUR_LICENSE_HERE group.admin
add_ace group.admin admin allowBeing 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.[INFO][oxide-weather][lifecycle] Weather synchronization ready./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.restart oxide-weather in the console, then rejoin. The time and weather come back where they were.