Community listing page, reviews here may not be monitored by the author.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description

Highly customizable potion effect applier & remover.
Effect Control is a compliment for In Control! that adds more control over potion effects.
Config
config/effectcontrol-common.toml
Each entry in effects is one rule: comma separated key=value pairs.
effects = [
"effect=minecraft:strength, duration=30, trigger=kill, entity=minecraft:zombie",
"effect=minecraft:regeneration, duration=20, trigger=consume, item=minecraft:golden_apple",
"effect=minecraft:fire_resistance, duration=infinite, trigger=enter, dimension=minecraft:the_nether",
"effect=minecraft:fire_resistance, trigger=leave, dimension=minecraft:the_nether, action=remove"
]
Effect Attributes
| Key | Meaning | Default |
|---|---|---|
trigger |
What makes the rule activate. | respawn |
effect |
Potion effect id. Required unless the rule only writes flags. | |
duration |
Seconds, or infinite. |
30 |
level |
1 is level I, 2 is level II. |
1 |
action |
give or remove. |
give |
ambient |
Softer beacon particles. | false |
particles |
Show the particles. | true |
icon |
Show the HUD icon. | true |
hidden |
Shorthand for particles=false, icon=false. |
false |
Triggers
Activated by something the player does:
| Trigger | Activates when | Useful filters |
|---|---|---|
join |
Player logs in | |
first_join |
First login ever, once per player | |
respawn |
Player respawns after dying | dimension |
end_return |
Player leaves the End through the exit portal | |
any |
join, respawn or end_return |
|
enter / leave |
Dimension entered / left | dimension (required) |
kill |
Player kills something | entity, source |
hurt |
Player damages something | entity, source |
hurt_by |
Player is damaged | entity, source |
use |
Player right-clicks an item in the air, e.g. an ender pearl or a bucket | item |
consume |
Player finishes eating or drinking | item |
shoot |
Player fires a bow | item |
release |
Player releases a held item, e.g. a trident | item |
pickup |
Player picks an item up | item |
container |
Player opens a container or their inventory | |
advancement |
Player earns an advancement | advancement |
craft / smelt |
Item crafted / smelted | item |
fish |
Player reels something in | item |
tame / breed |
Animal tamed / bred | entity |
trade |
Villager trade completed | item |
level_up |
Player gains XP levels | |
tool_broken |
Held item breaks | item |
Continuous player state, activated when entering or leaving it. They come in pairs, so you pair the give with the matching remove:
| Trigger | Becomes true when | Needs |
|---|---|---|
near / away |
Something is within radius |
radius and block or entity |
looking / not_looking |
Player is looking at it | block or entity, radius optional (default 5) |
sneaking / not_sneaking |
Player is crouching | |
sprinting / not_sprinting |
Player is sprinting | |
on_fire / not_on_fire |
Player is burning | |
in_fluid / not_in_fluid |
Player is in a fluid | fluid |
riding / not_riding |
Player is on a mount | entity optional |
sleeping / not_sleeping |
Player is in a bed | |
underwater / not_underwater |
Player's head is submerged |
Most triggers accept alternative spellings, so write whichever you prefer. damage or attack for hurt; takedamagefrom or damaged_by for hurt_by; eat or drink for consume; use_item or interact for use; inventory or open for container; achievement for advancement; always for any; every_join or login for join; every_respawn or death for respawn; end for end_return; enter_dimension for enter; leave_dimension or exit for leave; fire for shoot; when_near for near; not_near or leave_near for away; once for first_join; look or looking_at for looking; look_away for not_looking; sneak or crouching for sneaking; sprint for sprinting; burning for on_fire; mounted for riding; dismounted for not_riding; asleep for sleeping; awake for not_sleeping; submerged for underwater; in_liquid / not_in_liquid for in_fluid / not_in_fluid; levelup for level_up; item_broken for tool_broken.
Filter keys have aliases too: mob for entity, armor for wearing, damage_type for source, liquid for fluid, xp for xp_level, tag for nbt, has/without for requires/missing, and set_flag/clear_flag/flagged/unflagged for set/unset/if_set/if_unset.
Filters
Any of these narrow a rule. Repeat a key to accept more than one value; the rule needs one match from each key you used.
| Key | Matches | Example |
|---|---|---|
dimension |
Dimension the rule is about | dimension=minecraft:the_nether |
block |
Block id | block=minecraft:diamond_ore |
entity |
Entity type id | entity=minecraft:creeper |
item |
Item id | item=minecraft:golden_apple |
source |
Damage type, as vanilla names it | source=lava |
advancement |
Advancement id | advancement=minecraft:story/mine_diamond |
radius |
Blocks, 1 to 64 |
radius=8 |
x y z |
Coordinate, exact or a range | y=50..100, y=..0, x=64.. |
time |
Day tick 0..24000, or a name |
time=night, time=0..6000 |
weather |
clear, rain or thunder |
weather=thunder |
days |
In-world days elapsed | days=100.. |
stat + count |
A player statistic and its value | stat=killed:minecraft:zombie, count=100.. |
nbt |
Item NBT, matched as a subset | nbt={Damage:0} |
health |
Player health in points | health=..6 |
xp_level |
Experience level | xp_level=30.. |
light |
Light level where the player stands | light=..7 |
biome |
Biome id | biome=minecraft:desert |
tag |
Scoreboard tag on the player | tag=vip |
gamemode |
survival creative adventure spectator |
gamemode=survival |
difficulty |
peaceful easy normal hard |
difficulty=hard |
wearing |
Item worn in an armor slot | wearing=minecraft:diamond_helmet |
fluid |
water or lava |
fluid=lava |
chance |
Percent chance the rule fires, 1 to 100 |
chance=25 |
cooldown |
Seconds before the rule may fire again | cooldown=60 |
Time names: day, night, noon, midnight, sunrise (or dawn), sunset (or dusk).
Stat types: mined, killed, killed_by, used, crafted, broken, picked_up, dropped, custom. count defaults to 1.., meaning at least once.
Everything from x downwards works on every trigger:
effects = [ "effect=minecraft:poison, duration=10, trigger=pickup, item=minecraft:diamond, y=..0, time=night", "effect=minecraft:strength, duration=60, trigger=join, stat=killed:minecraft:zombie, count=100.." ]
Conditions
requires and missing gate a rule on effects the player already has. Both repeat, and all must pass. has and without are aliases.
effects = [ "effect=minecraft:regeneration, duration=15, trigger=join, requires=minecraft:poison", "effect=minecraft:strength, duration=30, trigger=respawn, missing=minecraft:weakness" ]
Conditions read the player's state from before the rule set runs, so rules in one event cannot see each other's work. A rule blocked by a condition does not count against its limit.
Flags
Flags are permanent per-player marks, saved in the world. You can use them to make something like "once this happens, never again".
| Key | Does |
|---|---|
set |
Set the flag when the rule fires |
unset |
Clear the flag when the rule fires |
if_set |
Only fire if the flag is set |
if_unset |
Only fire if the flag is not set |
effects = [ "trigger=advancement, advancement=minecraft:end/kill_dragon, set=dragon_slain", "effect=minecraft:strength, duration=60, trigger=join, if_unset=dragon_slain", "trigger=consume, item=minecraft:milk_bucket, unset=dragon_slain" ]
Kill the dragon and the strength stops forever. Drink milk and it comes back. A rule that only writes flags needs no effect.
Curios
The wearing filter checks armour slots and, when Curios is installed, curio slots as well:
effects = [ "effect=minecraft:speed, duration=30, trigger=consume, item=minecraft:bread, wearing=curios:ring" ]
Limits
limit stops a rule after that many grants per player, 0 never stops. id names the counter, defaulting to the effect, trigger and filters combined, so give two rules the same id when they should share a counter.
Timing
apply_delay_ticks (0 to 200) waits before applying. Use it if another mod clears effects when a player spawns.
scan_interval_ticks (1 to 200, default 20) is how often the continuous triggers re-check. Block scans for near sweep a sphere of radius.
Command
This clears saved limit counters and flags.
| Command | Clears |
|---|---|
/effectcontrol reset |
Whoever ran it |
/effectcontrol reset <targets> |
The players a selector picks out |
/effectcontrol reset all |
Every stored player, online or not |
Notes
Effects, blocks, items, entities and dimensions from other mods all work, just use their ids. A namespace-less id is assumed to be minecraft:. Entries that cannot be read are skipped and reported in the log, as is any id that is not installed.
FAQ
Found a bug?
Submit a issue request on the Github issues page with:
- A description of the problem.
- Any relevant logs.
- The version of Effect Control.
- What loader you are using (ex: Forge 1.20.1, NeoForge 1.21.1)
Want to suggest a feature?
You can submit a feature request in the Github issues page or in the comments.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
(opens in a new tab)
Get it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources