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.

{:links-list}

INSTALLATION

  1. Copy the inner BigDaddy-IceAge resource folder into your server's resources folder.
  2. Enter your own product key from your account as key1 under [licensing] in settings.ini.
  3. Start your weather resource first if you use one. Start ox_lib if you want freezing warnings, and BigDaddy-EAS if you want emergency alerts.
  4. Add ensure BigDaddy-IceAge to server.cfg. If you use Disaster Hub, start Ice Age before BigDaddy-DisasterHub.

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.

Example start order

If you use Big Daddy Weather, EAS, ox_lib, and Disaster Hub together, put them in this order in server.cfg:

ensure BigDaddy-Weather
ensure BigDaddy-EAS
ensure ox_lib
ensure BigDaddy-IceAge
ensure BigDaddy-DisasterHub

Include only the resources you have installed. If you use another weather provider, start that resource before Ice Age instead.

CONFIGURATION

settings.ini

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.

Permissions

UseAcePermissions=true
AcePermission=bigdaddy.iceage

An administrator-group grant for that object would be:

add_ace group.admin bigdaddy.iceage allow

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.

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

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.

Cold damage directly reduces entity health;

Shelter and recovery

Any vehicle or recognized interior counts as shelter. An outdoor roof or canopy alone does not. 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 over time 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 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.

Nearby NPCs

After more than 15 seconds have elapsed from the client event's start, nearby NPCs experience affects within 100 meters of the player.

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.

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.

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:

  • SuspendEvent and ResumeEvent: server events called with (enabled, reason).
  • SuspendExportResource and SuspendExportName: optional server export called on suspend with the same arguments.
  • ResumeExportResource and ResumeExportName: optional server export called on resume with the same arguments.
  • CurrentWeatherExportResource and CurrentWeatherExportName: 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.