Setup guide // FiveM // Server resource

Sync Time and Weather setup

A standalone FiveM resource that owns the in-game clock and the weather. This guide covers install, the licence convar, what the online check does and does not do, the config options, the admin commands and the exports.

Step 1

Requirements

  • An FXServer with ox_lib installed. That is the only dependency; no framework is required or bundled.
  • Outbound HTTPS from the server to appleluis.ltd, for the licence check.
  • The licence key from your purchase e-mail, or from licence lookup.

Step 2

Install

  1. Unzip and copy al_world/ into your server's resources/ directory.
  2. Add the licence key to server.cfg, above the ensure lines:
    set al_world_license_key "APLU-XXXX-XXXX-XXXX-XXXX"
  3. Add ensure ox_lib and then ensure al_world. ox_lib must start first.
  4. Restart and read the console. A healthy start prints licence OK for al-world. Activations 1/1. and then clock + weather online.

Use set, never setr. setr replicates a convar to every connected player, which would hand your licence key to anyone who joins. The resource itself never sends the key to a client and never prints it.

Step 3

How the licence check behaves

ON STARTThe server POSTs your key, the product id and this server's fingerprint to /api/license/validate. That single call validates the key and binds one activation slot.
FINGERPRINTYour public cfx.re join host, read from the web_baseUrl convar. It is not your Cfx licence key. Override it with set al_world_license_fingerprint "..." if web_baseUrl stays empty.
REFUSEDUnknown, revoked, expired, wrong product or over the activation limit: the resource prints why and stops. It does not retry, so it cannot become a boot loop.
UNREACHABLEIf the store cannot be reached at all, the resource starts anyway, says so, and rechecks every fifteen minutes. A licence outage must not take your clock down.
ON STOPIt asks /api/license/deactivate to free the slot. That request is best effort; rebinding the same fingerprint later reuses the same slot, so nothing leaks.

To move the licence to a different server on purpose, free the old slot yourself:

curl -X POST https://appleluis.ltd/api/license/deactivate -H 'Content-Type: application/json' -d '{"key":"APLU-...","fingerprint":"<old server>"}'

Run alworld_license in the server console at any time to print the current state, the activation count and the fingerprint. It never prints the key.

Step 4

Configuration

Everything lives in al_world/config/config.lua.

  • dayLengthSec: real seconds for a full 24 hour in-game cycle. The default 2880 is a 48 minute day.
  • startMinute: in-game minute the clock starts at on boot. 540 is 09:00.
  • resyncEveryMin: how often the anchor is re-broadcast, to bound client drift.
  • weatherIntervalSec and transitionSec: how often the weather may change, and how gently.
  • weather.graph: the weighted transition graph. Keeps changes believable rather than random.

Reference

Commands and exports

Commands are restricted to ACE command.allow or alworld.admin: /settime <0-23> [0-59], /freezetime, /setweather <TYPE> [lock], /weatherunlock, /blackout.

Exports, for your other resources: exports['al_world']:GetTime(), SetTime(h, m), IsNight(), GetWeather(), SetWeather(w, lock), FreezeTime(bool), SetBlackout(bool). They exist only after the licence check passes.

Honest status

What has not been tested

This release has not been started on a representative game client by the seller. The clock and weather code ran on the author's own FiveM servers before the licence layer was added, and the licence layer is proved end to end against the live licence API on this site, but the two have not been run together on an FXServer here. That is stated on the product page as well, and it is why the rest of the FiveM catalog is still held.

If it does not start cleanly, mail support@appleluis.ltd. A product that does not work as described is covered by the withdrawal and refund route.