Oxide Weather

Server-authoritative time and weather for FiveM — one clock and one sky for every player, with regions, seasons, moving storm fronts, a public forecast and a live admin panel.

oxide-weather is a server-authoritative time and weather system for FiveM roleplay servers: one clock and one sky for every player, kept in step from the server, with real regions, seasons, moving storms, a public forecast and a live admin panel you drive from in game.

The world is split into weather regions — six out of the box — each assigned one of five climate profiles that weight the fifteen weather types differently, so Paleto Bay can be under snow while the city is clear, and the boundary between them blends instead of snapping. Four seasons drive a per-location temperature model and snow that accumulates and melts. Up to eight storm fronts at a time cross the map on a heading, pushing wind ahead of them, throwing lightning and knocking out a region's power. From all of that the resource derives three-level severe weather alerts, a live radar, a written Weazel News report, and a forecast players can open on their tablet. The whole map can also mirror a real city through Open-Meteo, following its weather, temperature, wind and hourly forecast.

Admins get a panel, a map-based zone editor, a live settings editor and scene locks that freeze the world for a shoot. Developers get the o-link weather namespace, 62 server and 28 client exports, replicated state for every live value, and shelter and road-condition queries other systems can build on. oxide-weather is framework-agnostic through o-link and runs on QBCore, QBX and ESX.

Key Features

  • One Clock for the Whole Server — A server-synced clock in two modes: a game clock with independent day and night speeds, or a mirror of real time with a fixed offset. Freezable, and offsettable per region
  • Fifteen Weather Types — Weighted transition tables per climate and a forecast queue per region that plays out on schedule and can be edited ahead of time from the panel
  • Real-World Weather — Mirror a real city through Open-Meteo with no key needed: its weather, temperature, wind and two-day hourly forecast drive every region, a cached forecast keeps playing through outages, and the clock can follow the city's local time
  • Weather Regions — Six starting regions drawn as polygons, five climate profiles (temperate, arid, coastal, alpine, marine), priority ordering, and distance-based blending across boundaries
  • In-Game Zone Editor — Draw, reshape, reassign and delete regions on a map in game. Changes persist and apply without a restart
  • Seasons — Three modes (game calendar, real-world month, fixed) with per-season temperature, snow and weather profiles, plus Christmas and Halloween presets that switch the whole world in one command
  • Temperature — A per-location model driven by season, altitude, coast, time of day and current weather, shown in °C or °F
  • Snow That Builds Up and Melts — Snow deepens during snowfall and melts as it warms, rendered as ground cover, vehicle tracks and footprints, with Cayo Perico handled separately
  • Moving Storm Fronts — Storm cells with a heading, speed, radius and blend width, up to eight at once, spawned automatically along set routes or by hand. Two players on the front's path are hit at different times
  • Lightning and Power Cuts — Lightning strikes near the player, flickering lights, region-scoped blackouts, and scheduled outages with a delay, duration and cancel
  • Visibility Effects — Fog and storm screen filters that fade in and out and ease off at night and under snow
  • Severe Weather Alerts — Advisories, watches and warnings derived from each region's forecast queue and inbound fronts, with per-weather rules, advice text and a minimum severity to publish
  • Tablet Weather App — Forecast, radar and alerts pages, a home-screen widget and alert notifications through oxide-tablet. Everything else works without it
  • Radar and Weazel News Report — A live radar of regional conditions and storm cells with path playback, and a written news bulletin other resources can read for news roleplay
  • Admin Panel — Conditions, forecast editing, radar, power, scene locks and fronts in one window, plus nineteen /weather subcommands for the essentials
  • Scene Locks — Freeze weather, time, wind, blackout and snow cover globally or for one player for 1 to 7200 seconds, released early by command or automatically on expiry, player drop or resource stop
  • Shelter and Exposure — Admin-drawn covered areas, a server-scheduled upward probe answered by nearby players, and interior and vehicle checks, so other resources can ask whether a spot is under cover
  • Road Conditions — A 500 m grid tracking wetness and ice per cell, saturating during rain, freezing below 0 °C, and drying and thawing on configurable timers
  • Live Settings Editor/weather settings edits nearly every setting in game, backed by the database, with validation on every field and a marked set of restart-only values
  • Everything Survives a Restart — The whole world is saved to oxide_weather_state with validated restore, so a corrupted or hand-edited row is rejected rather than loaded
  • Locked-Down Writes — Changing the weather needs a trusted-resource allowlist entry, plus the admin check for any call that carries a player. Every read path is open
  • Developer API — The o-link weather namespace on both sides, 62 server and 28 client exports, replicated state keys for every live value, and lifecycle events for time, weather, season, blackout and alert changes

Requirements

Required

ResourcePurpose
o-link (1.8.0 or newer)Framework abstraction for the admin check, notifications, callbacks, logging, the shared map the zone editor and radar draw on, and in-world drawing
ox_libLocale files and shared utilities
oxmysqlWorld state and live-settings persistence
FrameworkOne of qb-core, qbx_core, or es_extended

Optional

ResourcePurpose
oxide-tabletHosts the Weather app, the home-screen widget and alert notifications
oxide-chatShows the /weather subcommands with their help text as you type

Only one resource may control the sky and the clock. Turn off qb-weathersync, Renewed-Weathersync, cd_easytime, vSync or any other weather/time script before you start oxide-weather. Two scripts fighting over the sky is the number one cause of flickering weather. See Installation.

Supported Frameworks

FrameworkSupport
QBCore (qb-core)Full
QBX (qbx_core)Full
ESX Legacy (es_extended)Full

oxide-weather does not use jobs, items, money or inventories. There are no items to register and no job names to line up on any framework.

Quick Start

Turn off any other weather or time script you already run. See Installation and the guide for your framework.

Place oxide-weather in your resources folder and add it to server.cfg in this order:

server.cfg
ensure oxmysql
ensure ox_lib
ensure qb-core            # or qbx_core / es_extended
ensure o-link
ensure oxide-tablet       # optional - adds the weather app and widget
ensure oxide-weather

Start the server. oxide-weather creates its own database tables on the first start, so there is nothing to import. The clock starts moving and the weather changes on its own.

Make sure your account is a server admin (see Installation), then type /weather in game to open the admin panel and /weather settings to change any setting.

See the Installation Guide for the full setup flow.

Settings are stored in the database after the first start

On its first start oxide-weather copies the files in shared/ into the shared oxide_settings table. From then on the database wins, so editing the files does nothing — change settings in game with /weather settings. See Configuration.

Documentation