User Tools

Site Tools


Adding Status Effects

To add status effects to your mod, you'll need to:

  • create a class that extends StatusEffect
  • add custom functionality
  • register your status effect
  • add translations and textures for your status effect

Creating Status Effect Class

We will add a new status effect that gives you EXP every tick.

public class ExpStatusEffect extends StatusEffect {
  public ExpStatusEffect() {
      StatusEffectCategory.BENEFICIAL, // whether beneficial or harmful for entities
      0x98D982); // color in RGB
  // This method is called every tick to check whether it should apply the status effect or not
  public boolean canApplyUpdateEffect(int duration, int amplifier) {
    // In our case, we just make it return true so that it applies the status effect every tick.
    return true;
  // This method is called when it applies the status effect. We implement custom functionality here.
  public void applyUpdateEffect(LivingEntity entity, int amplifier) {
    if (entity instanceof PlayerEntity) {
      ((PlayerEntity) entity).addExperience(1 << amplifier); // Higher amplifier gives you EXP faster

Registering Status Effect

This registers our status effect.

public class ExampleMod implements ModInitializer {
  public static final StatusEffect EXP = new ExpStatusEffect();
  public void onInitialize() {
    Registry.register(Registries.STATUS_EFFECT, new Identifier("tutorial", "exp"), EXP);

Adding Translations & Textures

You'll need to add a translation to your status effect. Head over to your mod lang file and add a new entry:

  "effect.tutorial.exp": "Experience"

You'll need to add a texture as well. The direct path is:



You can run a command /effect give @p tutorial:exp in game to test your status effect.

tutorial/status_effects.txt · Last modified: 2023/01/12 07:06 by tao0lu