Skip to content

GUI Modifiers

GUI Modifiers allow Texture Packs to modify containers based on a GUI Definition.

You can define a gui modifiers in assets/<namespace>/catharsis/gui_modifiers/<id>.json.

Json format

Root object
    • target: A GUI Definition Target
    • overrideLabels: (Optional) Disables rendering the Container Title, defaults to false.
    • overrideBackground: (Optional) Disables rendering the Container Background Texture, defaults to false.
    • disableItemList: (Optional) Disables the rendering of item list mods, defaults to false.
    • bounds: (Optional) Determines if you clicked outside the container, uses the default container bounds if not specified.
      • width: The width, should be 100 when using the default size.
      • height: The height, should be 100 when using the default size.
    • itemListExclusionZones (Optional) Specific exclusion zones for item list mods to exclude.
      • An Exclusion Zone object.
        • x: The x coordinate where the exclusion zone starts.
        • y: The y coordinate where the exclusion zone starts.
        • width: The width of the exclusion zone.
        • height: The height of the exclusion zone.
    • slots: (Optional) A map of slots to modify.
    • elements: (Optional) A list of GUI elements.
    • widgets: (Optional) A list of GUI widgets.
    • hiddenModElements: (Optional) A list of specific Mod UI elements to hide (supported by compatible mods).

GUI Definition Target

Existing GUI Definition (catharsis:definition)

Target to an existing GUI Definition

Root definition gui modifier target object
  • type: catharsis:definition
  • definition: An existing GUI definition's identifier.

Slot Modifier

Modify a slot by moving it, disabling it, etc.

Root Slot Modifier map value
  • hidden: (Optional) Hides the slot, defaults to false.
  • highlightable: (Optional) Hides the hover highlight, defaults to true.
  • position: (Optional) Moves the slot to a new x,y.
    • x: The new x coordinate of the slot.
    • y: The new y coordinate of the slot.
  • clickable: (Optional) Removes the ability to click a slot, defaults to true.

GUI Elements

Player (catharsis:player)

Render the Player itself on the screen.

Root GUI element object
    • type: catharsis:player
    • x: The x coordinate & alignment of the player. Can only be one of the entries below.
      • The x coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the player, can be START, CENTER or END.
    • y: The y coordinate & alignment of the player. Can only be one of the entries below.
      • The y coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the player, can be START, CENTER or END.
    • width: The width of the player.
    • height: The height of the player.
    • rotation: (Optional) The players rotation, will follow the mouse if undefined. Can only be one of the entries below.
      • A list of 4 floats: first, second, and the third component of the imaginary part, and the real part.
      • An AxisAngle definition.
        • angle: The angle in radians.
        • axis: A list of 4 floats: The value of x, y, and z.

Entity (catharsis:entity)

Render a custom Entity on the screen.

Root GUI element object
  • type: catharsis:entity
  • condition: (Optional) A GUI element condition to determine if this element should render.
  • x: The x coordinate & alignment of the entity. Can only be one of the entries below.
    • The x coordinate based from the START.
    • Coordinate & Alignment object.
      • offset: The offset from the screen bounds (main container size).
      • alignment: The alignment of the entity, can be START, CENTER or END.
  • y: The y coordinate & alignment of the entity. Can only be one of the entries below.
    • The y coordinate based from the START.
    • Coordinate & Alignment object.
      • offset: The offset from the screen bounds (main container size).
      • alignment: The alignment of the entity, can be START, CENTER or END.
  • width: The width of the entity.
  • height: The height of the entity.
  • rotation: (Optional) The entity rotation, will follow the mouse if undefined, cannot follow the mouse if it's a boat or similar. Can only be one of the entries below.
    • A list of 4 floats: first, second, and the third component of the imaginary part, and the real part.
    • An AxisAngle definition.
      • angle: The angle in radians.
      • axis: A list of 4 floats: The value of x, y, and z.
  • entityType: The vanilla entity registry name to target (e.g., minecraft:zombie).
  • tag: (Optional) Custom entity data.
    • Snbt inside a string, can be copied from McStacker directly.
    • A JSON Object of the data.

Sprite (catharsis:sprite)

Render a sprite on the screen.

Root GUI element object
    • type: catharsis:sprite
    • sprite: The Identifier of the sprite to render.
    • layer: (Optional) The layer to render the sprite on, defaults to BACKGROUND. Can be BACKGROUND & FOREGROUND.
    • x: (Optional) The x coordinate & alignment of the sprite. Defaults to 0, START. Can only be one of the entries below.
      • The x coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the sprite, can be START, CENTER or END.
    • y: (Optional) The y coordinate & alignment of the sprite. Defaults to 0, START. Can only be one of the entries below.
      • The y coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the sprite, can be START, CENTER or END.
    • width: (Optional) The width of the sprite, defaults to the container width.
    • height: (Optional) The height of the sprite, defaults to the container height.

Text (catharsis:text)

Render text on the screen.

Root GUI element object
    • type: catharsis:text
    • text: A component in JSON format.
    • color: (Optional) The color to render the base string with, defaults to -12566464.
    • x: The x coordinate & alignment of the text. Can only be one of the entries below.
      • The x coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the text, can be START, CENTER or END.
    • y: The y coordinate & alignment of the text. Can only be one of the entries below.
      • The y coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the text, can be START, CENTER or END.
    • alignment: (Optional) The text alignment based on the coordinates above, defaults to 0. 0 is left, 0.5 is center, 1 is right.

GUI Widget

Button (catharsis:button)

Render a button on the screen.

Root GUI widget object
    • normal: The Identifier of the texture to render.
    • hovered: (Optional) The Identifier of the texture to render when the button is hovered, defaults to the normal texture.
    • condition: (Optional) A GUI element condition to determine if this widget should render and be interactable.
    • interaction: (Optional) The interaction when clicked. Can only be one of the entries below.
      • A single widget interaction object (Defaults to Left&Right Click), view here.
      • A map of mouse buttons (left, right, middle) to widget interaction objects.
    • tooltip: (Optional) The tooltip when hovered, view here. Defaults to no tooltip.
      • A singular tooltip object.
      • A list of tooltip objects
    • x: The x coordinate & alignment of the button. Can only be one of the entries below.
      • The x coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the button, can be START, CENTER or END.
    • y: The y coordinate & alignment of the button. Can only be one of the entries below.
      • The y coordinate based from the START.
      • Coordinate & Alignment object.
        • offset: The offset from the screen bounds (main container size).
        • alignment: The alignment of the button, can be START, CENTER or END.
    • width: The width of the button.
    • height: The height of the button.
    • shape: (Optional) The shape of the widget used for hovering & clicking, can be RECTANGLE, ELLIPSE, DIAMOND, defaults to RECTANGLE.

Item Stack (catharsis:item_stack)

Render an item stack on the screen. It automatically displays the item's tooltip when hovered, which can be overridden with custom tooltips.

Root GUI widget object
  • type: catharsis:item_stack
  • condition: (Optional) A GUI element condition to determine if this element should render.
  • item: An Item Stack Provider to determine what item to render.
  • layer: (Optional) The layer to render the item on, defaults to FOREGROUND. Can be BACKGROUND & FOREGROUND.
  • interaction: (Optional) The interaction when clicked. Can only be one of the entries below.
    • A single widget interaction object (Defaults to Left&Right Click), view here.
    • A map of mouse buttons (left, right, middle) to widget interaction objects.
  • tooltip: (Optional) Defining this overrides the Item's default tooltips, view here.
  • x: The x coordinate & alignment of the item. Can only be one of the entries below.
    • The x coordinate based from the START.
    • Coordinate & Alignment object.
      • offset: The offset from the screen bounds (main container size).
      • alignment: The alignment of the item, can be START, CENTER or END.
  • y: The y coordinate & alignment of the item. Can only be one of the entries below.
    • The y coordinate based from the START.
    • Coordinate & Alignment object.
      • offset: The offset from the screen bounds (main container size).
      • alignment: The alignment of the item, can be START, CENTER or END.
  • width: (Optional) The width of the item, defaults to 16. 3d items will become pixelated when using a width above 16.
  • height: (Optional) The height of the item, defaults to 16. 3d items will become pixelated when using a height above 16.

Item Stack Providers

Item Stack Providers allow you to define the source of an ItemStack.

JSON (catharsis:json)

Loads an item stack from Minecraft Item NBT JSON.

Root json item stack provider object
  • type: catharsis:json
  • stack: Standard Minecraft ItemStack JSON definition.

SkyBlock ID (catharsis:sbid)

Loads an item stack using a SkyBlock ID.

Id Format: <prefix>:<id> or <prefix>:<id>:<suffix>

PrefixIdSuffix
itemThe normal idNo Suffix
attributeThe Attribute idNo Suffix
enchantmentThe enchant idEnchant Level
petThe Pet Id from petInfoPet Rarity
potionThe Potion IdPotion Level
Root sbid item stack provider object
  • type: catharsis:sbid
  • id: The SkyBlock Id as formatted above.

GUI Widget Interaction

Open a link in the default browser.

Root object
  • type: catharsis:link
  • url: A link to the Site.

Slot Clicking (catharsis:slot)

Click a slot on the screen.

Root object
    • type: catharsis:slot
    • slot: The slot to click.
    • alwaysMiddleClick: (Optional) Middle clicks the slot to avoid picking it up, clicks will pass through with shift when disabled. Defaults to true.

Gui Id Slot Clicking (catharsis:slot_id)

Click a slot on the screen based the Gui Id.

Root object
    • type: catharsis:slot_id
    • slot: The identifier of the slot.
    • alwaysMiddleClick: (Optional) Middle clicks the slot to avoid picking it up, clicks will pass through with shift when disabled. Defaults to true.

Sending a command (catharsis:command)

Send a command in the chat.

WARNING

The commands are based on a whitelist, if you need more, ask in the Discord.

Root object
  • type: catharsis:command
  • command: The command to send.

GUI Widget Tooltip

Text (catharsis:text)

Renders a custom defined text.

Root object

Slot Index (catharsis:slot)

Steals the tooltip from an existing slot.

Root object
  • type: catharsis:slot
  • slot: The slot to steal the tooltip from.

Gui Id Slot (catharsis:slot_id)

Steals the tooltip from an existing slot using a slot id, uses the first item found it multiple.

Root object
  • type: catharsis:slot_id
  • slot: The identifier of the slot.

Widget Interaction (catharsis:interaction)

Steals the tooltip from the defined widget interaction. Only works if the interaction is catharsis:slot.

Root object
  • type: catharsis:interaction

SkyBlock Id (catharsis:id)

Steals the tooltip from an SkyBlock Item.

Id Format: <prefix>:<id> or <prefix>:<id>:<suffix>

PrefixIdSuffix
itemThe normal idNo Suffix
attributeThe Attribute idNo Suffix
enchantmentThe enchant idEnchant Level
petThe Pet Id from petInfoPet Rarity
potionThe Potion IdPotion Level
Root object
  • type: catharsis:id
  • id: The SkyBlock Id as formatted above.
  • withName: (Optional) If the name should be included, defaults to true.
  • withLore: (Optional) If the lore should be included, defaults to true.

GUI Element & Widget Conditions

GUI Element Conditions allow you to conditionally render GUI elements and widgets based on different conditions.

Has Slot (catharsis:has_slot)

Checks if a specific slot definition exists in the current GUI.

Root element condition object
  • type: catharsis:has_slot
  • slot: The ID of the slot definition to check for.

All/And (catharsis:and)

Checks if all listed conditions are true.

Root element condition object
  • type: catharsis:and
  • conditions: A list of GUI element conditions to check.

Any/Or (catharsis:or)

Checks if any of the listed conditions are true.

Root element condition object
  • type: catharsis:or
  • conditions: A list of GUI element conditions to check.

Exclusive Or (catharsis:xor)

Checks if exactly one of the listed conditions is true.

Root element condition object
  • type: catharsis:xor
  • conditions: A list of GUI element conditions to check.

Not (catharsis:not)

Inverts the result of a condition.

Root element condition object
  • type: catharsis:not
  • condition: The GUI element condition to invert.

Tree view icons from the Minecraft.wiki
Not an official Minecraft product. Not approved by or affiliated with Mojang or Microsoft.
Not approved by or affiliated with Hypixel.