The storm is essentially a large cylindrical barrier that starts big and slowly gets smaller as the match goes on. Players will take damage when outside of the barrier's boundary — this forces them to get closer and closer to each other and helps matches end in a reasonable time.
Structure
Due to the part size limit, it's not possible to make the storm one huge cylinder. Instead, the storm consists of many thin rectangular parts arranged around the barrier's edge, making it appear cylindrical. These parts dynamically resize based on the proximity of players, splitting or combining with neighboring parts to maintain a smooth appearance. This behavior is handled by:
- ServerScriptService/Core/ShrinkingBarrier
- ReplicatedStorage/Core/ShrinkingBarrierVisualization
Customizing the Storm
Within ReplicatedFirst/Configurations/MainConfiguration, the following variables can be adjusted to customize the storm:
Map Offset
The default center of the storm is the center of the map, but you can change the map_offset value to force players toward another point as the storm boundary shrinks.
map_size = 2450 * 4,map_offset = Vector3.new(4900, 0, 4900),
Storm Options
Lower down, the storm table contains configuration values which determine how the storm behaves during matches, such as its radius, timing, and how much it shrinks.
storm = {radius = 6000,time_before_start = 120,debug_time_scale = 1,number_of_stages = 10,-- stage 0 (show starting circle with no transition){ transition_length = 0,wait_length = 150,damage = 1,move_scale = 0,shrinkage_factor = 0 },
Variable | Description |
---|---|
radius | Starting radius of the storm. |
time_before_start | Time before the storm first appears. |
debug_time_scale | Debugging time scale, helpful for tuning the stages. Change this to something higher than 1 to carry out the storm's stages faster. |
number_of_stages | Number of stages the storm has. |
(stage tables) | Series of tables (one for each stage as defined by number_of_stages) containing these variables: |