PotionVisExhaust

Package: thaumcraft.api.potions

A potion effect that causes increased vis consumption. When a player is affected by Vis Exhaustion, any wand operations drain additional vis beyond the normal recipe cost.

Class Declaration

public class PotionVisExhaust extends Potion

Static Instance

public static PotionVisExhaust instance = null

The instance is null at load time and is initialized at runtime via PotionVisExhaust.init(). It cannot be used before registration.

Initialization

public static void init()

Called by Thaumcraft during potion registration. Sets:

  • Potion name: "potion.visexhaust"
  • Icon index: (5, 1) on the potion spritesheet
  • Effectiveness: 0.25D (lower = slower tick rate)

Parent Potion Fields

As a subclass of Potion, inherits standard fields like potionId, isBadEffect, statusIconIndex, etc.

Relevant Inherited Behavior

Method Behavior
isBadEffect() Returns true — this is a harmful effect
performEffect(EntityLivingBase target, int par2) Empty — no direct effect; vis drain is handled by the wand system
getStatusIconIndex() Returns the icon index for the potion HUD

How Vis Exhaustion Works

Vis Exhaustion is a passive modifier applied to the player’s vis economy. The exact mechanics are handled internally by Thaumcraft’s wand and vis system — the potion itself has no direct performEffect implementation.

When the player holds an exhausted wand or performs arcane operations while under this effect, vis costs are multiplied by a factor (determined by the potion amplifier). The effectiveness value of 0.25D means the potion’s tick rate is slower than a standard potion.

Registration

This potion is registered automatically by Thaumcraft. Mods should not instantiate or register this class themselves. To check if a player is affected:

if (player.isPotionActive(PotionVisExhaust.instance)) {
    // Player has vis exhaust
}
  • PotionFluxTaint — a more dangerous flux-related potion effect
  • ThaumcraftApi.internalMethods.addWarpToPlayer() — warp mechanics
  • ThaumcraftApiHelper.addWarpToPlayer() — player warp management