Sync Time and Weather
One authority for the in-game clock and weather on a FiveM server. A light server tick advances the minute and clients self-advance from a state-bag anchor, so the clock is never written to the network every second and a late joiner is correct immediately. Weather rotates on a weighted graph with smooth transitions. Standalone: ox_lib is the only dependency and no framework is bundled.
- Server-authoritative clock, configurable day length and start time
- Clients derive the time locally from an anchor, not from per-second events
- Weighted weather graph, smooth transitions, blackout and weather lock
- Admin commands for time, freeze, weather and blackout, gated by ACE
- Exports so your other resources can read or drive the clock
- Four Lua files and one config. No framework, no bundled core
Before you buy
What has and has not been tested
This page says both, because the rest of the FiveM catalog on this site is held for exactly this reason.
Not run on a game client
The clock and weather code ran on the author's own FiveM servers before the licence layer was added, but this release has not been started on a representative game client by the seller. If it does not start cleanly for you, mail support and the refund route applies.
The licence check is proved
The licence layer was tested end to end against the live licence API on this site: a real key validates, the activation limit refuses a second server, deactivating frees the slot, and a revoked key stops working. That half is measured, not claimed.
Read the code before you run it
The whole enforcement mechanism is one short, commented file, server/license.lua. The zip carries the full source. Nothing is obfuscated and nothing is escrowed.
Licensing
Enforced online, one server
On start the resource POSTs your key and this server's public cfx.re join host to /api/license/validate. That one call validates the key and binds one activation slot, so the one-server limit is enforced rather than merely written down. A key that is unknown, revoked, expired, for another product, or already at its limit stops the resource with a plain message and no retry loop, so it cannot become a boot loop.
One deliberate exception: if the store cannot be reached at all, the resource starts anyway, says so in the console and rechecks every fifteen minutes. A licence outage here must never take your server's clock down. Only a definite negative answer stops it. Moving servers is self-service through /api/license/deactivate.