Ice Age
Ice Age creates dangerous cold conditions with increasing exposure, a blue screen effect, health loss, and stumbling. Players can escape the cold by entering a vehicle or a recognized interior. Nearby exposed NPCs also take damage and flee.
The resource includes a standalone command and Disaster Hub integration. Optional ox_lib text warnings tell players when they are freezing; damage and visual effects still run without those warnings.
Command permissions: The inspected source uses a shared permission flag instead of checking the player invoking
/starticeage. Enabling ACE settings does not provide reliable per-player protection. See permissions.
{:is-warning}
POPULAR LINKS
- DISASTER HUB — Combined disasters and weather triggers
- WEATHER — Big Daddy Weather documentation
- EAS — Emergency Alert System documentation
- ACE PERMISSIONS — Permission setup guide
- LOG COLLECTION — Gathering logs for support
{:links-list}
INSTALLATION
- Copy the inner
BigDaddy-IceAgeresource folder into your server's resources folder. Use the folder containingfxmanifest.lua,settings.ini, the DLLs, andbridge. - Enter your own product key as
key1under[licensing]insettings.ini. Leave the supplied synchronization value unchanged. - Start your weather resource first if you use one. Start
ox_libif you want freezing warnings, andBigDaddy-EASif you want emergency alerts. - Add
ensure BigDaddy-IceAgetoserver.cfg. If you use Disaster Hub, start Ice Age beforeBigDaddy-DisasterHub. - Restart the resource after configuration changes and reconnect before testing.
DO NOT RENAME THE FOLDER. Configuration and integration calls use the exact name
BigDaddy-IceAge.
{:is-danger}
Disaster Hub, EAS, and ox_lib are optional integrations. The inspected source has no framework, inventory, database, or in-game control menu integration.
CONFIGURATION
settings.ini
“Supplied” means the value in the inspected package. “Fallback” is used when a setting is missing or cannot be parsed. Add optional settings under the existing [settings] section.
| Section | Setting | Supplied / fallback | Description |
|---|---|---|---|
[licensing] |
key1 |
Your product key | Enter your own product key here. |
[settings] |
UseEAS |
true / false |
Enables standalone emergency alerts when BigDaddy-EAS is started. |
[settings] |
EASTitle |
EMERGENCY ALERT SYSTEM / same |
Title passed to the standalone alert. |
[settings] |
EASMessage |
See below | Standalone cold-weather warning text. |
[settings] |
UseAcePermissions |
Not supplied / false |
Enables the command's permission gate, subject to the shared-flag limitation below. |
[settings] |
AcePermission |
Not supplied / command |
ACE object checked during player initialization when permission checking is enabled. |
[settings] |
debug |
true / false |
Enables additional resource diagnostic messages where implemented. |
[settings] |
DesyncKey |
Supplied by the package | Internal synchronization value. Leave it unchanged. |
The supplied EASMessage is:
Very dangerous sub-frigid temperatures affecting the area. Take shelter immediately.
If the setting is absent, the source uses Dangerous sub-frigid temperatures affecting the area. Take shelter immediately.
Setting names are case-insensitive. Edit existing keys rather than adding duplicates, and restart the resource to reload configuration.
There are no INI settings for exposure thresholds, damage, visual strength, ragdoll probability, recovery speed, storm duration, clothing protection, or automatic scheduling in this source.
Permissions
The supplied configuration omits UseAcePermissions, so the standalone command's permission gate defaults to disabled.
The source recognizes these settings:
UseAcePermissions=true
AcePermission=bigdaddy.iceage
An administrator-group grant for that object would be:
add_ace group.admin bigdaddy.iceage allow
However, the server stores permission in one shared hasPermission flag, overwritten as players initialize. The command reads this flag instead of checking its caller. Access can therefore depend on the most recently initialized player. Correcting the command handler is necessary for reliable per-player enforcement; another ACE grant does not fix it.
The standalone and Hub server event handlers also contain no permission checks. Disaster Hub checks access to its own menu separately, but that does not restrict Ice Age's standalone command.
COMMANDS
| Command | Purpose |
|---|---|
/starticeage |
Starts a standalone cold event after successful resource initialization. No supported arguments. |
The command selects a random duration from 45,000 to 119,999 milliseconds. Arguments are ignored, so /starticeage 300 does not request five minutes. There is no registered stop command or automatic scheduler in Ice Age itself.
The standalone server handler requests weather suspension through its bridge and broadcasts the selected duration. Clients transition to BLIZZARD over ten seconds. That transition counts toward the event duration; the player's exposure checks begin after the transition.
At the end of the duration, player exposure checks stop and the blue effect fades. Once the fade finishes, the client requests a ten-second transition to OVERCAST. The server resumes its weather bridge at the end of the selected duration, so the provider can resume before the visual fade and final client weather request finish.
SURVIVING THE COLD
Exposure and damage
While the event is active, the client checks the player approximately once per second. Being outside a vehicle with no recognized interior adds one exposure point per check. These are accumulated exposure points, so returning outside before fully recovering resumes from the remaining value.
| Exposure | Effect while outside |
|---|---|
| Below 10 | Exposure builds without scripted cold damage. |
| 10 and above | Applies the glasses_Darkblue screen effect. Its strength starts at zero at 10 points and increases by 0.05 per point, capped at full strength at 30. |
| 20–29 | Removes 1 health per exposure check and requests the warning “You are freezing! Find shelter soon!” |
| 30 and above | Removes 3 health per exposure check and requests “You are freezing to death! Find shelter soon!” |
| 40 and above | Continues the health loss and adds a 30% chance per check of a three-second ragdoll. |
These values are fixed in the source. Cold damage directly reduces entity health; the code does not check clothing, warmth items, armor, or a framework temperature system.
Shelter and recovery
Any vehicle or recognized interior counts as shelter. An outdoor roof or canopy alone does not: this resource has no overhead-cover ray check. Whether a custom building counts depends on its interior setup.
While sheltered, the scripted player cold damage and ragdoll checks stop immediately. The warning is hidden, exposure falls by one point per second to a minimum of zero, and the blue effect weakens with exposure. Lost health is not restored by shelter or by the storm ending.
When the event ends, the screen effect fades by 0.05 per step, approximately once per second, before being cleared. A strong effect can therefore remain briefly after the server's event timer expires.
Warning messages
Warnings use ox_lib TextUI at the bottom center of the screen, with white text on a cyan background. Ice Age checks that ox_lib is started before showing or hiding text. Without it, the cold effects still apply but these messages are skipped.
The source repeatedly requests the severe warning after 30 exposure points because its second display flag is never set. It also calls the shared hideTextUI export while sheltered and at event end, which can interfere with another resource using the same TextUI.
Nearby NPCs
After more than 15 seconds have elapsed from the client event's start, a separate loop checks nearby NPCs approximately once per second. It affects living non-player peds owned by the local client and within 100 meters.
Eligible NPCs outside vehicles and recognized interiors lose a random 1–3 health per pass and are told to flee. They do not use the player's gradual exposure thresholds. The NPC loop remains active through the end-of-event visual fade, then stops.
Ice Age does not implement vehicle damage or active custom wind audio in the inspected source.
DISASTER HUB INTEGRATION
Start BigDaddy-IceAge before BigDaddy-DisasterHub, then select Ice Age in /DisasterHub. The Hub can also request Ice Age during eligible BLIZZARD weather checks. Configure IceAgeChance and weather monitoring in the Hub, not in Ice Age's settings.
The Hub calls BigDaddy-IceAge:StartIceAgeHub with a duration in seconds. This path starts the cold routine without Ice Age forcing its own weather, calling its own weather bridge, or sending its standalone EAS alert. The exposure checks can begin immediately because Ice Age skips its own ten-second weather transition.
In the Hub menu, Ice Age can run alone or with Hail Storm and/or Blackout. It cannot combine with Tornado, Sea Storm, Flash Flood, or Earthquake. See the Disaster Hub documentation for its weather and alert handling.
Both resources register starticeage. Avoid relying on that shared command when both are running; use the Hub menu for Hub-managed events.
Server integration events
| Server event | Argument | Behavior |
|---|---|---|
BigDaddy-IceAge:StartIceAge |
Integer duration in seconds | Standalone path with weather bridge and optional EAS. Pass 0 for the random duration. |
BigDaddy-IceAge:StartIceAgeHub |
Integer duration in seconds | Cold effects without Ice Age's own weather or EAS handling. Pass 0 for the random duration. |
Call these from authorized server logic. Neither handler checks caller permissions or rejects overlapping events. For positive standalone durations, use at least ten seconds: the server waits ten seconds before calculating its remaining delay. A ten-second standalone event leaves effectively no time for exposure after its weather transition.
WEATHER BRIDGE
Edit Config.WeatherBridge at the top of bridge/weather.server.lua.
| Option | Default | Description |
|---|---|---|
Enabled |
true |
Enables bridge suspend/resume handling. Disabling it does not prevent standalone clients from requesting BLIZZARD and OVERCAST. |
Provider |
'auto' |
Detects the first started provider in the order below, or uses an explicit identifier. |
RestorePreviousWeather |
true |
Used by the QB resume handler to request saved weather when available. |
Debug |
false |
Enables [WeatherBridge] diagnostics, including failed export calls. |
| Detection order / resource | Identifier | Implemented behavior |
|---|---|---|
BigDaddy-Weather |
bigdaddy |
Reads GetWeather; sends weather-sync suspend/resume events. |
qb-weathersync |
qb-weathersync |
Reads weather/dynamic state; attempts to disable dynamic weather and restore saved state on resume. |
cd_easytime |
cd_easytime |
Reads GetAllData; suspend/resume hooks are placeholders. |
Renewed-Weathersync |
renewed |
Reads GlobalState.weather; suspend/resume hooks are placeholders. |
vSync |
vsync |
Detection only; no stock weather getter or working suspend/resume hooks are supplied. |
vMenu |
vmenu |
Detection only; no stock weather getter or working suspend/resume hooks are supplied. |
This table describes the local bridge implementation, not tested compatibility with every provider version. With no detected resource, the provider is none. You can also explicitly select none.
For another integration, select Provider='custom' and fill the Custom fields:
SuspendEventandResumeEvent: server events called with(enabled, reason).SuspendExportResourceandSuspendExportName: optional server export called on suspend with the same arguments.ResumeExportResourceandResumeExportName: optional server export called on resume with the same arguments.CurrentWeatherExportResourceandCurrentWeatherExportName: getter called without arguments, returning a weather string or a table with a recognized weather field.
If both an event and export are configured for an action, both run. The getter does not add automatic cold events; Ice Age has no weather watcher.
The bridge exposes server exports Suspend(enabled, reason), Resume(reason), IsSuspended(), GetSuspendedReason(), GetProvider(), and GetCurrentWeather(). Pass true to Suspend to request suspension. State and success results describe bridge handling, not proof that the provider paused: some handlers are placeholders and export failures are caught. The getter returns nil when weather is unavailable.
EMERGENCY ALERTS
The supplied settings enable standalone alerts:
UseEAS=true
EASTitle=EMERGENCY ALERT SYSTEM
EASMessage=Very dangerous sub-frigid temperatures affecting the area. Take shelter immediately.
Approximately ten seconds after the standalone server trigger, Ice Age sends the title and message to BigDaddy-EAS:BuildEAS, with an empty alert-type argument. It only sends the alert if EAS is started.
Hub-triggered events skip this standalone alert. Configure the Hub's Ice Age EAS settings for that path instead.
TROUBLESHOOTING AND LIMITATIONS
| Problem | What to check |
|---|---|
/starticeage is unavailable |
Confirm the exact resource name, product key, and successful initialization. The command is registered after synchronization succeeds. Check the server and F8 logs. |
| Command permissions seem inconsistent | The handler uses a shared permission flag. It needs a caller-specific check; changing ACE grants alone does not fix this. |
| Players take damage without warnings | Start ox_lib for the optional TextUI warnings. Damage and visual effects do not require it. |
| A roof does not protect a player | Only a vehicle or recognized interior counts as shelter. There is no overhead-cover test. |
| Damage returns quickly after leaving shelter | Exposure decreases gradually while sheltered; it does not reset immediately. |
| Blue tint remains after the event | The normal recovery sequence fades it out after the duration expires. Health lost during exposure is not restored. |
| NPCs are still losing health during the fade | The NPC loop stops after the visual fade finishes. |
| Weather resumes or changes unexpectedly | Review the provider's implemented hooks and the separate server timer, client fade, and final OVERCAST request. |
| No EAS alert | For standalone use, check UseEAS, EAS's started state, and the ten-second delay. For Hub use, check the Hub's settings. |
| Blizzard weather does not automatically start cold damage | Ice Age has no weather watcher. Configure automatic events in Disaster Hub. |
There is no overall active-event guard. Repeated triggers can overlap player damage loops, shared NPC-loop state, text, and visual effects. Players joining after a broadcast are not sent the active event's remaining duration. The client has no explicit death check in its exposure loop, so the event can continue across player death or respawn until its timer ends.
There is no resource-stop cleanup handler to explicitly clear the screen modifier, hide TextUI, or resume weather when interrupted. Normal completion performs those actions through the client recovery sequence and server bridge timer.
Enable debug=true in settings.ini and Debug=true in the weather bridge when gathering diagnostics. See the log collection guide.
This page describes the inspected source with manifest version 1.0.0. The packaged DLLs have not been exercised on a live FiveM server and may differ if built from another source revision.