Tornado

Tornado creates a moving funnel with smoke, debris, wind audio, camera shake, and physics that pull, lift, and throw nearby vehicles, people, and props. It includes a standalone command and Disaster Hub integration.

{:links-list}

INSTALLATION

  1. Copy the complete packaged BigDaddy-Tornado resource into your server's resources folder. Use the package containing fxmanifest.lua, settings.ini, the DLLs, bridge, and html.
  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-Tornado to server.cfg. If you use Disaster Hub, start Tornado 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-Tornado.

{:is-danger}

Disaster Hub and EAS are optional.

Example start order

If you use Big Daddy Weather, EAS, and Disaster Hub together:

ensure BigDaddy-Weather
ensure BigDaddy-EAS
ensure BigDaddy-Tornado
ensure BigDaddy-DisasterHub

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

CONFIGURATION

settings.ini

Section Setting Deployed / 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 TORNADO WARNING / EMERGENCY ALERT SYSTEM Title passed to the standalone alert.
[settings] EASMessage See below Standalone tornado warning text.
[settings] UseAcePermissions Not present / false Checks a player's permission during initialization, but does not restrict the command or trigger events.
[settings] AcePermission Not present / command ACE object checked during initialization when permission checking is enabled.
[settings] debug true / false Enables additional diagnostic messages where implemented. Some startup and effect messages always print.
[settings] DesyncKey Included with the package Internal synchronization value. Leave it unchanged.

If EASMessage is absent, the source uses A Tornado has been spotted on the ground. Take shelter immediately.

COMMANDS

Command Purpose
/starttornado Client command that requests a standalone tornado after successful client initialization. No supported arguments.

TORNADO BEHAVIOR

Spawn location and movement

The server finds the most populated (by players) area on the map.

If no valid player position is available, the server chooses a random point from fixed map zones, weighted by each zone's area. These zones cover areas around Grand Senora, Harmony, Route 68, Zancudo, Paleto, Vespucci, Sandy airfield, and Little Seoul.

Forces and camera shake

Vehicles, peds, and objects can be affected by the tornado. Effects depend on distance from the funnel.

Entity Outer influence radius Lift radius Core throw radius
Vehicles 40 meters 20 meters 8 meters
Human peds 35 meters 18 meters 7 meters
Props 30 meters 16 meters 6 meters

Weather, duration, and cleanup

Standalone events request weather suspension through the bridge, then clients transition to THUNDER over ten seconds. After the transition and anchor-model loading, the client starts the tornado and waits for the full event duration. Unlike the server bridge timer, that client duration does not include the initial weather transition.

The server resumes its weather bridge approximately one selected duration after triggering, so standalone weather synchronization can resume around ten seconds before the client's tornado ends, plus any model-loading time. At client timer completion, Tornado stops its audio with a three-second fade and requests a ten-second transition to OVERCAST.

The funnel can also stop moving and deactivate when it reaches the end of its path. The inactive tick clears particles, visual anchors, the anchor blip, and camera shake. The separate duration timer still controls the sound-stop and final standalone weather request.

DISASTER HUB INTEGRATION

Start BigDaddy-Tornado before BigDaddy-DisasterHub, then select Tornado in /DisasterHub. The Hub can also request Tornado during eligible THUNDER weather checks. Configure TornadoChance and weather monitoring in the Hub's settings.

The Hub calls BigDaddy-Tornado:StartTornadoHub with a duration in seconds. This uses the same spawn selection, path, effects, forces, and audio without Tornado forcing its own weather, calling its own weather bridge, or sending its standalone EAS alert. Disaster Hub manages its own weather and alerts.

Tornado can combine with Hail Storm, Sea Storm, Flash Flood, and Blackout in the Hub menu. It cannot combine with Ice Age or Earthquake. When combined with Tornado, Hail Storm receives half the selected disaster duration.

WEATHER BRIDGE

Edit Config.WeatherBridge in bridge/weather.server.lua.

Option Default Description
Enabled true Enables bridge suspend/resume handling. Disabling it does not prevent standalone clients from requesting THUNDER and OVERCAST.
Provider 'auto' Detects the first started provider 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 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 on suspend; working suspend/resume hooks are not supplied.
Renewed-Weathersync renewed Placeholder suspend/resume handling.
vSync vsync Placeholder suspend/resume handling.
vMenu vmenu Placeholder suspend/resume handling.

This describes the local bridge implementation, not tested compatibility with every provider version. With no provider detected, the provider is none. You can also explicitly select none.

For another integration, select Provider='custom' and fill these 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.

If both an event and export are configured for an action, both run.

This version of Tornado's bridge exposes server exports Suspend(enabled, reason), Resume(reason), IsSuspended(), GetSuspendedReason(), and GetProvider(). Pass true to Suspend to request suspension. It does not include the GetCurrentWeather() export or custom weather-getter fields found in some other disaster bridges.

Bridge state does not prove that a provider paused: some hooks are placeholders and export failures are caught. Tornado has no automatic weather watcher of its own.

EMERGENCY ALERTS

Approximately ten seconds after a standalone trigger, Tornado sends EASTitle and EASMessage to BigDaddy-EAS:BuildEAS, with an empty alert-type argument. It only sends the alert when UseEAS=true and BigDaddy-EAS is started.

Hub-triggered tornadoes skip this standalone alert. Configure the Hub's UseEAS, TornadoEASAgency, TornadoEASType, and TornadoEASMessage for that path. Use TornadoEASType rather than TornadoEASMessageType; see Disaster Hub.