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" } }