Goop Documentation
↳ Emitters ?
As of v0.4, Goop Emitters are Datadriven using Resourcepacks; before that, people needed to make their own mods with Goop as a dependency.
Fields
↳ "type"
↳ "DAMAGE"
Each Entry can either be a single Entity Type, or an Entity Type Tag. To mark an Entry as an Entity Type Tag, put a '#' in front of the identifier.
If undefined, this emitter will apply to ALL Entity Types.
↳ "color"
- Hexadecimal String reperesnting an RGB//RGBA Color
- Integer representing an RGB//RGBA Color
- Array of 3-4 Floats on a scale from 0-1
- Calculatable Color
If no Alpha Channel is given, Alpha defaults to 1.
Defaults to White.
↳ "IGNORE"
"DAMAGE": "clamp(damage, 1, 32)"
"DEATH": "rand(4, 8)"
"LANDING": "0"
If set to 0, instead of Splatter Particles a single Puddle will be emitted.
If set to 0, the default particle velocity of 1 will be used instead. Use a small decimal number if you don't want Splatter Particles to have initial Velocity.
Every Splatter Particles Velocity points in a random direction.
Whether the Damage variable should be limited to the Mobs Max Health.
This results in a Chicken to bleed much less from the same Damage than a Pig would for example.
Defaults to true.
Variables
Each Emitter Type has different Variables that can be used in Calculatables:
↳ "DAMAGE"
The Json Files
Once you've made a Resourcepack, create a directory called goop_emitters in your namespace directory.
In there, you'll make your Emitter Json Files.
Example for a Damage Emitter that emits Blood Colored Splatter particles when a Zombie or Pig gets damaged; their size and amount depend on the amount of damage dealt.
{
"type": "DAMAGE",
"targets": [
"minecraft:zombie",
"minecraft:pig"
],
"goop": {
"color": "a11208",
"size": "min(1 + damage / 2 + rand(0.5), 4)",
"waterhandling": "REPLACE_WITH_CLOUD_PARTICLE"
},
"count": "clamp(damage * 2, 1, 32)"
}
Example for a Death Emitter that places a Water Colored Puddle when a Snow Golem melts:
{
"type": "DEATH",
"targets": [
"minecraft:snow_golem"
],
"damage-types": [
"minecraft:on_fire"
],
"goop": {
"color": [
0.5,
0.5,
0.9,
1
],
"size": 1.5,
"waterhandling": "REMOVE_PARTICLE"
},
count: 0
}
Example for a Landing Emitter that placed a Slime Colored Puddle when a Slime lands on the ground:
{
"type": "LANDING",
"targets": [
"minecraft:slime"
],
"goop": {
"color": [
0.2,
0.74,
0.47,
1
],
"size": "1 + min(fallDist / 10, 3)",
"waterhandling": "REPLACE_WITH_CLOUD_PARTICLE"
}
}