Custom status effects
A data pack can add its own status effects. Each one is a real status effect, so /effect and Origins' apply_effect, clear_effect and status_effect accept its id. While an entity has the effect, it holds the effect's powers. They're removed when the effect ends: it runs out, milk, /effect clear, or death.
Put each effect in data/<namespace>/effects/<name>.json. Its id is <namespace>:<name>.
| Field | Type | Default | Description |
|---|---|---|---|
type | String | required | beneficial, harmful or neutral. Sets the color of its name on potion tooltips. |
powers | Array of power ids | [] | The powers an entity holds while it has the effect. |
r, g, b | Float | 0 | The particle color, each from 0 to 1. |
name | String | see below | The name shown in the inventory and on potions. A translation key, or plain text. Left out: the translation key effect.<namespace>.<name>. |
icon | Identifier | see below | The icon, as a sprite id. Left out: the effect's own id. |
loading_priority | Integer | 0 | When several packs have the same effect file, the one with the highest priority is used. |
- Icons and names come from a resource pack. For an effect
mypack:frost, put the icon atassets/mypack/textures/mob_effect/frost.png(18×18) and the name in a lang file aseffect.mypack.frost. Every player needs the resource pack. Without it, the icon is the missing texture and the name is its translation key. - Power sources: the powers are granted under the source
too-many-attributes:effect/<namespace>/<name>./power removewith that source takes them off, but the effect gives them back only when it's applied again. - Changing the effect files: add, remove or change effect files and run
/reload. Entities with an effect that was removed lose it, along with its powers. Changes to an effect'spowersapply to everyone who has it. - Saving: entities and potions save custom effects by id, so changing the set of effect files never turns one effect into another. A saved effect whose file was removed is dropped when it loads.
- An effect file can't reuse the id of an effect that already exists, like
minecraft:speed. - Potions in commands: vanilla potion NBT names effects by number. Name a custom effect by id instead:
/give @p potion{CustomPotionEffects:[{"too-many-attributes:effect":"mypack:frostbitten",Duration:600}]}. - Every player needs TMA installed, which is already the case.
- From Overgrown's Apoli: the fields match. Overgrown saves custom effects by number only, so changing the set of effect files there needs the effects cleared first. TMA doesn't need that. Overgrown's
config/apoli-effects.jsonswitch isn't in TMA.
Example: "Frostbitten". data/mypack/effects/frostbitten.json, a harmful effect that holds two powers.
{
"type": "harmful",
"powers": [
"mypack:frostbitten_slowness",
"mypack:frostbitten_freeze_vision"
],
"r": 0.55,
"g": 0.85,
"b": 1.0,
"name": "Frostbitten"
}Give it with /effect give @p mypack:frostbitten 30, or from a power:
{
"type": "origins:apply_effect",
"effect": {
"effect": "mypack:frostbitten",
"duration": 200
}
}