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.
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.
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 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": {
"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
}
}
]
}
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.
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."
}