Hail Storm

Hail Storm creates falling hail around players, applies damage to exposed players and nearby NPCs, and damages vehicle body health. It includes a standalone command and Disaster Hub integration.

{:links-list}

INSTALLATION

  1. Copy the inner BigDaddy-HailStorm 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 BigDaddy-EAS if you want optional emergency alerts.
  4. Add ensure BigDaddy-HailStorm to server.cfg. If you use Disaster Hub, start Hail Storm before BigDaddy-DisasterHub.
  5. Restart the resource after configuration changes and reconnect before testing.

DO NOT RENAME THE FOLDER. Configuration and integration calls use the exact name BigDaddy-HailStorm.

{:is-danger}

Disaster Hub and EAS are optional.

Example start order

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

ensure BigDaddy-Weather
ensure BigDaddy-EAS
ensure BigDaddy-HailStorm
ensure BigDaddy-DisasterHub

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

CONFIGURATION

settings.ini

The supplied file contains licensing/synchronization values and debug=true. The source also reads the optional settings below. 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] debug true / false Enables additional resource diagnostic messages where implemented.
[settings] UseAcePermissions Not supplied / false Reads a player's permission during initialization, but does not protect the command or storm events.
[settings] AcePermission Not supplied / command ACE object checked during initialization when UseAcePermissions=true. The result is not used to restrict triggering.
[settings] UseEAS Not supplied / false Enables standalone EAS alerts when BigDaddy-EAS is started.
[settings] EASTitle Not supplied / EMERGENCY ALERT SYSTEM Title passed to the standalone EAS alert.
[settings] EASMessage Not supplied / A severe hail storm has been detected. Take shelter immediately Standalone alert text.
[settings] DesyncKey Supplied by the package Internal synchronization value. Leave it unchanged.

“Fallback” means the source value used when a setting is missing or cannot be parsed. 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 hail density, damage, hit probability, sound volume, storm duration, or automatic scheduling. These values are fixed in the inspected source.

Permissions

The /hailstorm command is registered without a command restriction and performs no ACE check. Although the server calculates a permission during player initialization, the client does not use that value. The two server storm handlers also have no permission checks.

Setting UseAcePermissions=true, changing AcePermission, or granting an ACE object does not make this command admin-only. Enforcing that behavior requires correcting the command handler. Disaster Hub checks access to its own menu separately, but using that menu does not restrict Hail Storm's standalone command.

COMMANDS

Command Purpose
/hailstorm Starts a standalone storm after successful resource initialization. No supported arguments.

The command selects a random duration from 24,000 to 47,999 milliseconds.

For standalone storms, the server requests weather suspension through its bridge and tells clients to force weather. Clients transition to THUNDER for ten seconds before loading the hail model and starting the timed hail effects. At the end of those effects, clients request a ten-second transition to OVERCAST.

The server resumes its weather bridge after the selected duration measured from the initial trigger.

Starting a storm

Enter /hailstorm once. Allow approximately ten seconds for the weather transition before hail begins.

Move under a roof or into a recognized interior to avoid damage. Entering a vehicle protects the occupant from that damage, but the vehicle can lose body health.

Let the storm finish before starting another one. The hail effects last approximately 24–48 seconds after the transition and model loading; sound fades afterward.

To start hail through the Hub instead, enter /DisasterHub, select Hail Storm, and press Trigger. Use the Hub's permission settings to control access to that menu. See permissions for the separate standalone command limitation.

HOW THE STORM AFFECTS PLAYERS

Hail and shelter

Each client spawns falling hail objects around its player.

Players on foot count as sheltered when they are in a recognized interior or when the script detects overhead cover. Shelter effectiveness depends on the map's interior and collision data. Shelter stops the damage.

DISASTER HUB INTEGRATION

Start BigDaddy-HailStorm before BigDaddy-DisasterHub, then select Hail Storm in /DisasterHub. The Hub can also trigger hail in eligible weather branches. Configure HailStormChance and weather monitoring in the Hub.

WEATHER BRIDGE

Edit Config.WeatherBridge at the top of bridge/weather.server.lua.

Option Default Description
Enabled true Enables bridge suspend/resume handling. Disabling this does not prevent standalone clients from requesting THUNDER 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.

To configure another provider, 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, accepting a weather string or a table containing a recognized weather field.

If both an event and export are configured for an action, both run. A current-weather getter does not add automatic hail triggers; those belong to Disaster Hub.

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 weather provider paused; some handlers are placeholders and export failures are caught. The weather getter returns nil when unavailable.

EMERGENCY ALERTS

To enable standalone alerts, start BigDaddy-EAS and add the following under [settings]:

UseEAS=true
EASTitle=EMERGENCY ALERT SYSTEM
EASMessage=A severe hail storm has been detected. Take shelter immediately

Approximately ten seconds after the standalone server trigger, Hail Storm sends the configured title and message to BigDaddy-EAS:BuildEAS, with an empty alert-type argument. It only sends this alert when EAS is started.

Hub-triggered storms skip the standalone alert. Configure the Hub's Hail Storm EAS settings for that path instead.