Synced weather and time for QB-Core Framework :sunrise:
QBCore Framework
Copyright (C) 2021 Joshua Eger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
[qb]
directory.ensure qb-core
ensure qb-weathersync
You can adjust available weather and defaults in config.lua
to adjust weather patterns you need to modify nextWeatherStage() in server/server.lua
/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
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();
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");
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
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
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
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
Returns if blackout is enabled or disabled
-- LUA EXAMPLE
local state = exports["qb-weathersync"]:getBlackoutState();
// JAVASCRIPT EXAMPLE
const state = global.exports["qb-weathersync"].getBlackoutState();
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();
Returns the current weather type
-- LUA EXAMPLE
local currentWeather = exports["qb-weathersync"]:getWeatherState();
// JAVASCRIPT EXAMPLE
const currentWeather = global.exports["qb-weathersync"].getWeatherState();
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();
qb-weathersync:server:RequestStateSync
- Sync time and weather for everyone
qb-weathersync:server:setWeather
[type] - Set Weather type (List in Config)
qb-weathersync:server:setTime
[hour] (minute) - Set simulated time
qb-weathersync:server:toggleBlackout
(true|false) - Enable, disable or toggle blackout
qb-weathersync:server:toggleFreezeTime
(true|false) (minute) - Enable, disable or toggle time progression
qb-weathersync:server:toggleDynamicWeather
(true|false) - Enable, disable or toggle dynamic weather