Disaster Hub
Disaster Hub brings your Big Daddy disaster resources together in one in-game menu and can trigger disasters automatically from the weather. It controls Tornado, Hail Storm, Sea Storm, Blackout, Ice Age, Earthquake, and Flash Flood through their separate resources.
The disaster resources must be installed and running for their effects to work. Disaster Hub does not include those effects itself.
POPULAR LINKS
- ACE PERMISSIONS — Setting up access
- WEATHER — Big Daddy Weather documentation
- EAS — Emergency Alert System documentation
- EARTHQUAKE — Earthquake documentation
- BLACKOUT — Blackout documentation
{:links-list}
INSTALLATION
- Copy the inner
BigDaddy-DisasterHubresource folder into your server's resources folder. This is the folder containingfxmanifest.lua,settings.ini, the DLLs,bridge, andhtml. - Enter your own product key in
[licensing]askey1insettings.ini. Keep the other supplied licensing and synchronization values unchanged. - Install and start the disaster resources you want to use. Start your weather resource first if you want automatic weather triggers, and start
BigDaddy-EASif you want emergency alerts. - Add
ensure BigDaddy-DisasterHubafter those resources inserver.cfg. - Configure permissions and weather options below, then restart the resource and reconnect before testing
/DisasterHub.
DO NOT RENAME THE FOLDER. The resource must be named
BigDaddy-DisasterHub.
{:is-danger}
Disaster resources
| Menu option | Resource name |
|---|---|
| Blackout | BigDaddy-Blackout |
| Earthquake | BigDaddy-Earthquake |
| Flash Flood | BigDaddy-FlashFlood |
| Hail Storm | BigDaddy-HailStorm |
| Ice Age | BigDaddy-IceAge |
| Sea Storm | BigDaddy-SeaStorm |
| Tornado | BigDaddy-Tornado |
Install only the disasters you plan to use. The automatic weather watcher checks whether a disaster resource is started or starting. The manual menu does not hide missing resources or check that they are running before sending a trigger. If it's not installed and running triggering that disaster just won't do anything.
CONFIGURATION
settings.ini
Put your product key under [licensing]. The options below belong under [settings]. Restart the resource after changing settings; reconnect to refresh the menu permission cached by the client.
“Supplied” refers to the configuration included in the inspected project. “Fallback” is the value used by the source when a setting is absent or cannot be parsed.
| Setting | Supplied / fallback | Description |
|---|---|---|
LinkWeather |
Not supplied / true |
Enables automatic weather monitoring. Add LinkWeather=false for manual menu use only. |
UseWeather |
true / unused |
Present in the supplied file, but not read by the current source. Use LinkWeather instead. |
WeatherCheckInterval |
180000 / 180000 |
Delay between normal weather checks, in milliseconds. 180000 is three minutes. Some successful disaster branches return before this delay. |
MinDisasterLength |
30 / 30 |
Minimum randomly selected disaster duration, in seconds. |
MaxDisasterLength |
300 / 300 |
Exclusive upper limit for random duration. With the supplied range, durations are 30–299 seconds. Use positive whole numbers with the maximum greater than the minimum. |
TornadoChance |
0.1 / 0.1 |
Tornado threshold during thunder weather. |
HailStormChance |
0.3 / 0.2 |
Hail threshold in eligible weather branches. |
IceAgeChance |
0.1 / 0.1 |
Ice Age threshold during blizzard weather. |
SeaStormChance |
0.8 / 0.8 |
Sea Storm threshold during rain or thunder weather. |
FlashFloodChance |
Not supplied / 0.2 |
Flash Flood threshold in eligible rain or thunder branches. |
BlackoutChance |
0.6 / 0.5 |
Blackout threshold in eligible weather branches. |
UseAcePermissions |
Not supplied / false |
Enables ACE checks for opening the menu and manually triggering disasters. Without this setting enabled, every initialized player has access. |
AcePermission |
Not supplied / command |
ACE object required when UseAcePermissions=true. |
useEAS |
true / false |
Sends supported emergency alerts through BigDaddy-EAS. |
UseScheduled |
Not supplied / false |
Reserved in the current source; scheduling is not implemented. |
debug |
true / false |
Enables additional Disaster Hub diagnostic messages. |
DesyncKey |
Supplied by the package | Internal synchronization value. Leave the packaged value unchanged. |
Chance values are decimal thresholds: 0.1 represents 10%, 0.5 represents 50%, and 1.0 represents 100% for a roll that reaches that check. Keep them between 0.0 and 1.0. Checks share rolls, follow a priority order, and sometimes return early, so these are not independent probabilities for every disaster on every check.
Setting names are case-insensitive. Spelling still matters. Edit existing settings rather than adding duplicate keys; the configuration reader uses the first occurrence.
ACE permissions
For an admin-only menu, add these options under the existing [settings] section:
UseAcePermissions=true
AcePermission=bigdaddy.disasterhub
Grant that ACE object to your administrator group in server.cfg:
add_ace group.admin bigdaddy.disasterhub allow
Your administrators must also belong to that group. See the permissions guide for principal setup. Restart Disaster Hub and reconnect after changing its permission settings.
USING THE MENU
- Enter
/DisasterHubin game. - Select one or more disasters.
- Press Trigger. The menu closes and the server triggers the selected resources with a randomly selected duration.
Press Cancel or Escape to close the menu without triggering anything.
| Selection | Allowed combinations |
|---|---|
| Earthquake | Alone or with Blackout only. |
| Ice Age | Alone or with Hail Storm and/or Blackout. Cannot combine with Tornado, Sea Storm, Flash Flood, or Earthquake. |
| Tornado, Hail Storm, Sea Storm, Flash Flood | Can combine with each other and Blackout, subject to the Ice Age and Earthquake rules above. |
| Blackout | Can accompany any otherwise valid selection. |
At least one disaster must be selected. The menu disables conflicting choices, and the client and server also validate the combination.
Manual Tornado, Hail Storm, Sea Storm, or Flash Flood selections request THUNDER weather. Ice Age requests BLIZZARD. The client transitions weather over ten seconds. After the selected duration, these manual weather disasters request OVERCAST. Earthquake and Blackout alone do not request a weather change.
Manual Hail Storm lasts half the selected duration when combined with Tornado, Sea Storm, or Ice Age. Blackout receives an end event after the selected duration. Disaster Hub has no stop-all command or duration control in its menu.
Individual start commands
The source registers starttornado, starthailstorm, startseastorm, startblackout, starticeage, startearthquake, and startflashflood. In the inspected source, these commands pass no player to a permission check that rejects a missing player, so they do not start disasters. Use /DisasterHub for manual triggers.
AUTOMATIC WEATHER TRIGGERS
Automatic triggers require LinkWeather=true, a weather provider that the bridge can read, and running disaster resources.
| Weather reported by the bridge | Possible disasters |
|---|---|
THUNDER |
Tornado, Hail Storm, Sea Storm, Flash Flood, and Blackout, depending on branch and chance checks. |
RAIN |
Sea Storm, accompanying Hail Storm, Flash Flood, and Blackout, depending on branch and chance checks. |
BLIZZARD |
Ice Age, accompanying Hail Storm, and Blackout. |
| Other weather | No automatic disaster from this watcher. |
Earthquakes are not started by the weather watcher. Any scheduling configured in a separate disaster resource is controlled by that resource.
The watcher generally remembers the weather that triggered a disaster and skips more rolls until the reported weather changes. It does not guarantee a disaster every three minutes. The current rain-to-Flash-Flood branch records THUNDER instead of RAIN, which can allow repeated checks while rain continues.
Weather bridge
Edit Config.WeatherBridge near the top of bridge/weather.server.lua.
| Option | Default | Description |
|---|---|---|
Enabled |
true |
Enables the bridge's suspend/resume handling. This does not disable the C# weather watcher; use LinkWeather=false for that. |
Provider |
'auto' |
Selects a provider automatically, or uses an explicit identifier from the table below. |
RestorePreviousWeather |
true |
Used by the QB resume handler to request the saved weather when available. |
Debug |
false |
Enables [WeatherBridge] messages, including failed export calls. |
Automatic detection selects the first started resource in this order:
| Resource | Provider identifier | Behavior implemented in this bridge |
|---|---|---|
BigDaddy-Weather |
bigdaddy |
Reads GetWeather; sends suspend/resume weather-sync events. |
qb-weathersync |
qb-weathersync |
Reads getWeatherState; attempts to save weather/dynamic state, disable dynamic weather, and restore state on resume. |
cd_easytime |
cd_easytime |
Reads GetAllData; suspend/resume hooks are not implemented. |
Renewed-Weathersync |
renewed |
Reads GlobalState.weather; suspend/resume hooks are not implemented. |
vSync |
vsync |
Detected, but no current-weather getter or suspend/resume hooks are implemented. |
vMenu |
vmenu |
Detected, but no current-weather getter or suspend/resume hooks are implemented. |
These entries describe the local bridge implementation, not verified compatibility with every version of those resources. With no matching resource, the provider is none and no weather is returned. You can explicitly select none or configure custom.
For a custom provider, set Provider='custom' and fill the Custom fields in the same file:
SuspendEventandResumeEvent: server events to call with(enabled, reason).SuspendExportResourceandSuspendExportName: optional server export called on suspend.ResumeExportResourceandResumeExportName: optional server export called on resume.CurrentWeatherExportResourceandCurrentWeatherExportName: server export used to obtain weather, called without arguments.
If both an event and export are configured for an action, both are called. The getter accepts a nonempty weather string or a table containing a recognized weather field. Return uppercase weather names such as RAIN, THUNDER, or BLIZZARD, since the watcher compares those exact strings.
Current weather-control limitation: Manual weather disasters call the bridge's
Suspendevent withfalse. The bridge requirestrueto suspend, so this call does not pause the active weather provider. The timer later requests resume andOVERCAST, rather than restoring the original weather through a complete suspend/resume cycle. Another weather resource may override Disaster Hub's requested weather.
{:is-warning}
Server exports
These exports belong to BigDaddy-DisasterHub and control or inspect the weather bridge:
| Export | Result / purpose |
|---|---|
Suspend(enabled, reason) |
Pass true to request suspension or false to request resumption. Returns a boolean for bridge handling. |
Resume(reason) |
Requests resumption. Returns a boolean for bridge handling. |
IsSuspended() |
Returns the bridge's recorded suspension state. |
GetSuspendedReason() |
Returns the recorded reason, or nil. |
GetProvider() |
Returns the recorded active provider, or the current configured/detected provider. |
GetCurrentWeather() |
Returns the provider's weather string, or nil if unavailable. |
A successful return or recorded suspension state does not confirm the provider actually paused: some handlers are placeholders and export failures are caught by the bridge.
EMERGENCY ALERTS
Start BigDaddy-EAS and enable useEAS=true to send alerts through BigDaddy-EAS:BuildEAS. Eligible alerts are delayed by approximately 5–15 seconds. The Hub sends at most one alert for each manual trigger or weather-watcher pass, even when multiple disasters are selected.
For Tornado, Hail Storm, Sea Storm, Ice Age, and Flash Flood, use these keys under [settings]:
| Disaster | Agency key | Alert-type key | Message key |
|---|---|---|---|
| Tornado | TornadoEASAgency |
TornadoEASType |
TornadoEASMessage |
| Hail Storm | HailStormEASAgency (automatic), HailStormEASAgnecy (manual) |
HailStormEASType |
HailStormEASMessage |
| Sea Storm | SeaStormEASAgency |
SeaStormEASType |
SeaStormEASMessage |
| Ice Age | IceAgeEASAgency |
IceAgeEASType |
IceAgeEASMessage |
| Flash Flood | FlashFloodEASAgency |
FlashFloodEASType |
FlashFloodEASMessage |
The supplied file uses names such as TornadoEASMessageType, but the source reads TornadoEASType. Use the alert-type keys shown above for custom text to take effect. The manual Hail Storm agency key contains the spelling error shown in the table; set both spellings if you want the same custom agency for manual and automatic alerts.
For example:
useEAS=true
TornadoEASAgency=NATIONAL WEATHER SERVICE
TornadoEASType=TORNADO WARNING
TornadoEASMessage=A tornado has been spotted in your area. Please seek shelter immediately.
The supplied BlackoutEASAgency, BlackoutEASMessageType, and BlackoutEASMessage settings are not read by the Hub. The Hub also sends no Earthquake alert itself. Check the individual disaster resources for their own alert settings.
TROUBLESHOOTING
| Problem | What to check |
|---|---|
/DisasterHub does not open |
Confirm the exact resource name, successful startup, your product key, and ACE access if enabled. Restart and reconnect after changing permissions. Check the server and F8 consoles for initialization errors. |
| A selected disaster has no effect | Confirm its separate resource is installed and started. The menu can display disasters that are not installed. |
Automatic disasters continue after setting UseWeather=false |
Add or update LinkWeather=false under [settings], then restart Disaster Hub. |
| No automatic disasters | Confirm LinkWeather=true, a working weather getter, an eligible weather name, running disaster resources, and nonzero chance settings. Some weather branches prevent repeat rolls until the weather changes. |
| Weather changes back unexpectedly | Review the manual suspension limitation above and whether your provider has real suspend/resume support. |
| Custom alert type is ignored | Use TornadoEASType, for example, instead of the supplied TornadoEASMessageType name. |
| Hail agency customization works only automatically | Set the manual key HailStormEASAgnecy as well as HailStormEASAgency. |
| Individual start commands do nothing | Use the menu; the current individual command handlers fail the missing-player permission check. |
| Scheduled disasters never start | UseScheduled has no implementation in the inspected source. |
For weather diagnosis, enable Debug=true in Config.WeatherBridge. For Hub messages, use debug=true in settings.ini. See log collection when gathering information for support.