🌤️qb-weathersync

Could someone please turn off the rain?

Introduction

  • Handles the logic for changing and syncing the weather

  • Ability to set weather sync/desync weather

  • Use exports to call weather changing events to any resource

Configuration

General

Config                  = {}
Config.DynamicWeather   = true -- set this to false if you don't want the weather to change automatically every 10 minutes.

-- On server start
Config.StartWeather     = 'EXTRASUNNY' -- default weather
Config.BaseTime         = 8 -- time     
Config.TimeOffset       = 0 -- time offset 
Config.FreezeTime       = false -- freeze time 
Config.Blackout         = false -- set blackout                                 
Config.BlackoutVehicle  = false -- set blackout affects vehicles                
Config.NewWeatherTimer  = 10 -- time (in minutes) between each weather change   
Config.Disabled         = false -- set weather disabled                         

Weather types

DON'T TOUCH EXCEPT IF YOU KNOW WHAT YOU ARE DOING

Config.AvailableWeatherTypes = {
    'EXTRASUNNY',
    'CLEAR',
    'NEUTRAL',
    'SMOG',
    'FOGGY',
    'OVERCAST',
    'CLOUDS',
    'CLEARING',
    'RAIN',
    'THUNDER',
    'SNOW',
    'BLIZZARD',
    'SNOWLIGHT',
    'XMAS',
    'HALLOWEEN',
}

Exports

nextWeatherStage

Triggers event to switch weather to next stage

Lua example

local success = exports["qb-weathersync"]:nextWeatherStage();

JavaScript example

const success = global.exports["qb-weathersync"].nextWeatherStage();

setWeather [type]

Switch to a specified weather type from Config.AvailableWeatherTypes

Lua example

local success = exports["qb-weathersync"]:setWeather("snow");

JavaScript example

const success = global.exports["qb-weathersync"].setWeather("snow");

setTime [hour] (minute)

Sets sun position based on time to specified

Lua example

local success = exports["qb-weathersync"]:setTime(8, 10); -- 8:10 AM

JavaScript example

const success = global.exports["qb-weathersync"].setTime(15, 30); // 3:30PM

setBlackout (true|false)

Sets or toggles blackout state and returns the state

Lua example

local newStatus = exports["qb-weathersync"]:setBlackout(); -- Toggle

JavaScript example

const newStatus = global.exports["qb-weathersync"].setBlackout(true); // Enable

setTimeFreeze (true|false)

Sets or toggles time freeze state and returns the state

Lua example

local newStatus = exports["qb-weathersync"]:setTimeFreeze(); -- Toggle

JavaScript example

const newStatus = global.exports["qb-weathersync"].setTimeFreeze(true); // Enable

setDynamicWeather (true|false)

Sets or toggles dynamic weather state and returns the state

Lua example

local newStatus = exports["qb-weathersync"]:setDynamicWeather(); -- Toggle

JavaScript example

const newStatus = global.exports["qb-weathersync"].setDynamicWeather(true); // Enable

getBlackoutState

Returns if blackout is enabled or disabled

Lua example

local state = exports["qb-weathersync"]:getBlackoutState();

JavaScript example

const state = global.exports["qb-weathersync"].getBlackoutState();

getTimeFreezeState

Returns if time progression is enabled or disabled

Lua example

local state = exports["qb-weathersync"]:getTimeFreezeState();

JavaScript example

const state = global.exports["qb-weathersync"].getTimeFreezeState();

getWeatherState

Returns the current weather type

Lua example

local currentWeather = exports["qb-weathersync"]:getWeatherState();

JavaScript example

const currentWeather = global.exports["qb-weathersync"].getWeatherState();

getDynamicWeather

Returns if time progression is enabled or disabled

Lua Example

local state = exports["qb-weathersync"]:getDynamicWeather();

JavaScript example

const state = global.exports["qb-weathersync"].getDynamicWeather();

Events

All of these examples are triggered CLIENT side!

RequestStateSync

TriggerServerEvent("qb-weathersync:server:RequestStateSync")

RequestCommands

TriggerServerEvent("qb-weathersync:server:RequestCommands")

setWeather

TriggerServerEvent("qb-weathersync:server:setWeather", type)

setTime

TriggerServerEvent("qb-weathersync:server:setTime", hour, minute)

toggleBlackout

TriggerServerEvent("qb-weathersync:server:toggleBlackout", bool)

toggleFreezeTime

TriggerServerEvent("qb-weathersync:server:toggleFreezeTime", bool, minute)

toggleDynamicWeather

TriggerServerEvent("qb-weathersync:server:toggleDynamicWeather", bool)

Commands

/freezetime - Toggle time progression

/freezeweather - Toggle dynamic weather

/weather [type] - Set weather

/blackout - Toggle blackout

/morning - Set time to 9am

/noon - Set time to 12pm

/evening - Set time to 6pm

/night - Set time to 11pm

/time [hour] (minute) - Set time to whatever you want

Last updated