This plugin lets you place fully interactive volcanoes on your map that can erupt with fireballs and create expanding lava fields.
Features
- Performance-friendly!
- Shoots fireballs in random directions at varying speeds.
- Spews lava that expands, destroying anything it touches.
- Volcano generates intense heat, damaging nearby players.
- Trees, ore nodes, and bushes are destroyed on contact with lava.
- Burned trees leave behind dead logs and stumps.
- Volcanoes transition through different stages, each with unique behavior.
- Players are alerted before an eruption begins, giving them time to prepare.
- Bonus loot crates can be thrown out during eruptions.
- Resources like ores and collectibles spawn in the surrounding area.
FAQ
- Does the volcano impact server performance?
Not at all! Each eruption is capped at 30 fireballs—for comparison, each incendiary strafe from the patrol helicopter produces around 10.
- Are volcanoes automatically generated on the map?
No, volcanoes don't spawn automatically. You'll need to create them manually. See the Quick Start section for setup instructions!
- Do I need to edit the map to add a volcano?
Nope, you don't have to. The volcano can be placed anywhere, but shaping the landscape to resemble a volcano makes it look more natural.
Commands
volcano create <alias>
- Creates a new volcano with the specified alias.volcano edit <alias>
- Enters editing mode for the specified volcano, allowing you to modify its properties.volcano remove
- Deletes the currently selected volcano.volcano done
- Saves changes to the currently edited volcano and exits editing mode.volcano set <property> <value>
- Updates a property of the currently edited volcano. Available properties:enabled <true/false>
- Toggles whether the volcano is active.alias <string>
- Updates the alias of the volcano.spittime <float>
- Sets the interval (in seconds) between spits during eruption.minspit <int>
- Sets the minimum number of fireballs per spit.maxspit <int>
- Sets the maximum number of fireballs per spit.minspeed <float>
- Sets the minimum speed of fireballs.maxspeed <float>
- Sets the maximum speed of fireballs.bonuscrates <true/false>
- Sets whether the volcano will toss bonus loot crates during an eruption.
volcano lava <position> <initialRadius> <targetRadius> [temperature] [killOnTouch]
- Defines the area where the lava flows and spreads during an eruption.<position>
- The center of the lava field. Usehere
to use your current location.<initialRadius>
- The starting radius of the lava field.<targetRadius>
- The maximum radius the lava field will expand to.[temperature]
(Optional) - The temperature of the lava field. Default: 70.[killOnTouch]
(Optional) - Whether the lava field kills resource entities on touch. Default: true.
volcano crater <position> <radius>
- Defines the central eruption point of the volcano.<position>
- The center of the crater. Usehere
to use your current location.<radius>
- The radius of the crater.
volcano spoils add <prefabName> [minSpawn] [maxSpawn] [weight]
- Adds a prefab that can spawn around the volcano while it's dormant.<prefabName>
- The path to the prefab that will be spawned.[minSpawn]
(Optional) - The minimum number of instances of this prefab that will spawn.[maxSpawn]
(Optional) - The maximum number of instances of this prefab that will spawn.[weight]
(Optional) - Determines how likely this prefab is to be chosen when multiple spawn options exist. A higher weight means it will appear more often than other prefabs in the list.
volcano draw
- Visualizes all volcanoes on the map. Useful for locating and inspecting volcanoes.volcano erupt <alias>
- Immediately triggers the eruption for the specified volcano, overriding any pending stage transitions and starting the eruption stage instantly.
Quick Start
- Use
volcano create <alias>
to create a new volcano.
Example:volcano create Fuji
creates a volcano named 'Fuji'.
- Define the lava spread area at the base of the volcano using
volcano lava <position> <initialRadius> <targetRadius>
.
Example:volcano lava here 5 70
sets the lava to start at your location with a 5 meter radius and expand up to 70 meters.
- Set the eruption point at the summit, positioned in the air above the vent, using
volcano crater <position> <radius>
.
Example:volcano crater here 5
defines the eruption point at your location with a 5 meter radius.
- Finally, use
volcano done
to finish editing and apply changes.
- All other settings, like eruption timing and fireball count, can be adjusted in the data file.
Stored Data
JSON:
"Volcanoes": [
{
"Enabled": true,
"Alias": "Fuji",
"Dormant Stage Duration Seconds": 7200,
"Eruption Stage Duration Seconds": 30,
"Crater": {
"Position": {
"x": 100.0,
"y": 200.0,
"z": 300.0
},
"Radius": 50.0
},
"Lava Field": {
"Enabled": true,
"Position": {
"x": 120.0,
"y": 200.0,
"z": 320.0
},
"Initial Radius": 5.0,
"Target Radius": 100.0,
"Temperature": 70.0,
"Kill Resource Entities On Touch": true
},
"Eruption": {
"Time Between Spits Seconds": 3.0,
"Minimum Number Of Fire Balls Per Spit": 5,
"Maximum Number Of Fire Balls Per Spit": 10,
"Minimum Fire Ball Speed": 30.0,
"Maximum Fire Ball Speed": 50.0,
"Toss Bonus Crates": true,
"Bonus Crate Chance": 40
},
"Spoils": {
"Time Between Spawns Seconds": 900.0,
"Entities": [
{
"Prefab Name": "assets/bundled/prefabs/autospawn/resource/ores/stone-ore.prefab",
"Minimum Number To Spawn": 3,
"Maximum Number To Spawn": 6,
"Weight": 4
},
{
"Prefab Name": "assets/bundled/prefabs/autospawn/resource/ores/sulfur-ore.prefab",
"Minimum Number To Spawn": 2,
"Maximum Number To Spawn": 4,
"Weight": 3
}
]
}
}
]
Enabled
- Turns the volcano on or off.Alias
- A name or label for the volcano, like 'Fuji,' so it's easy to identify.Dormant Stage Duration Seconds
- How long the volcano stays quiet before moving to the next stage.Eruption Stage Duration Seconds
- How long the volcano erupts before it calms down.Crater
- The central part of the volcano where eruptions originate.Position
- The exact spot where fireballs are launched.Radius
- The size of the crater, determining how far fireballs spread outward.
Lava Field
- The area affected by molten lava spreading from the volcano.Position
- The starting point of the lava field.Initial Radius
- The size of the lava field when it first appears.Target Radius
- The maximum size the lava field can grow to.Temperature
- The heat level of the lava field, which can damage players nearby.Kill Resource Entities On Touch
- If true, the lava will destroy trees, bushes, and other resources it touches.
Eruption
- Defines how the volcano behaves during an eruption.Time Between Spits Seconds
- How often the volcano spits fireballs during an eruption.Minimum Number Of Fire Balls Per Spit
- The least number of fireballs released in one eruption.Maximum Number Of Fire Balls Per Spit
- The most number of fireballs released in one eruption.Minimum Fire Ball Speed
- The slowest speed a fireball can travel.Maximum Fire Ball Speed
- The fastest speed a fireball can travel.Toss Bonus Crates
- When enabled, the volcano has a chance to throw bonus loot crates during an eruption.Bonus Crate Chance
- The probability (in percentage) that a bonus crate will be tossed when fireballs are launched.
Spoils
- Defines the entities that spawn from the volcano over time during its dormant phase. As long as the volcano is inactive, resources such as ores, collectables, or other entities will gradually appear in the surrounding environment, making the area more rewarding to explore.Time Between Spawns Seconds
- The interval between each set of spawned spoils.Entitie
s - A list of entities (like ores, collectables, or other resources) that can spawn as part of the volcano's spoils.Prefab Name
- The internal prefab path of the entity being spawned.Minimum Number To Spawn
- The lowest number of this entity that can be created in one spawn cycle.Maximum Number To Spawn
- The highest number of this entity that can be created in one spawn cycle.Weight
- The spawn probability weight. Higher values increase the chance of this entity being selected when multiple options are available.
Localization
JSON:
{
"NoPermission": "You do not have permission to use this command.",
"UnknownCommand": "Unknown subcommand. Use 'create', 'edit', 'set', 'remove', 'done', 'lava', 'crater', or 'draw'.",
"CreateUsage": "Usage: volcano create <alias>",
"EditUsage": "Usage: volcano edit <alias>",
"SetUsage": "Usage: volcano set <property> <value>",
"LavaUsage": "Usage: volcano lava <position> <initialRadius> <targetRadius> [temperature] [killOnTouch]",
"CraterUsage": "Usage: volcano crater <position> <radius>",
"VolcanoAlreadyExists": "A volcano with the alias '{0}' already exists.",
"VolcanoNotFound": "No volcano found with alias '{0}'.",
"InvalidPosition": "Invalid position. Enter a valid position or type 'here'.",
"InvalidInitialRadius": "Invalid initial radius. Please enter a positive number.",
"InvalidTargetRadius": "Invalid target radius. Please enter a positive number greater than or equal to the initial radius.",
"InvalidRadius": "Invalid radius. Please enter a positive number.",
"InvalidEnabledValue": "Invalid value for enabled. Please use 'true' or 'false'.",
"InvalidSpitInterval": "Invalid value for time between spits. Enter a valid number.",
"InvalidMinFireballs": "Invalid value for minimum fireballs. Enter a valid number.",
"InvalidMaxFireballs": "Invalid value for maximum fireballs. Enter a valid number.",
"InvalidMinSpeed": "Invalid value for minimum fireball speed. Enter a valid number.",
"InvalidMaxSpeed": "Invalid value for maximum fireball speed. Enter a valid number.",
"VolcanoCreated": "Volcano '{0}' created. Use 'volcano lava' or 'volcano crater' to configure details.",
"VolcanoEdited": "Editing volcano '{0}'. Use 'volcano set <property> <value>' to modify properties or 'volcano done' to save changes.",
"VolcanoSetProperty": "Set property '{0}' to value '{1}'.",
"VolcanoRemoved": "Volcano '{0}' has been removed.",
"VolcanoDoneEditing": "Finished editing volcano '{0}'.",
"VolcanoLavaUpdated": "Updated lava configuration for volcano '{0}'.",
"VolcanoCraterUpdated": "Updated crater configuration for volcano '{0}'.",
"VolcanoVisualizing": "Visualizing all volcanoes."
}