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
- 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.
- An Exclusion Zone object.
- slots: (Optional) A map of slots to modify.
- <key>: The id of slot you want 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
- type:
catharsis:definition - definition: An existing GUI definition's identifier.
Slot Modifier
Modify a slot by moving it, disabling it, etc.
- 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.
- type:
catharsis:player - condition: (Optional) A GUI element condition to determine if this element should render.
- 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,CENTERorEND.
- The x coordinate based from the
- 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,CENTERorEND.
- The y coordinate based from the
- 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.
- 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,CENTERorEND.
- The x coordinate based from the
- 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,CENTERorEND.
- The y coordinate based from the
- 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.
- type:
catharsis:sprite - condition: (Optional) A GUI element condition to determine if this element should render.
- sprite: The Identifier of the sprite to render.
- layer: (Optional) The layer to render the sprite on, defaults to
BACKGROUND. Can beBACKGROUND&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,CENTERorEND.
- The x coordinate based from the
- 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,CENTERorEND.
- The y coordinate based from the
- 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.
- type:
catharsis:text - condition: (Optional) A GUI element condition to determine if this element should render.
- 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,CENTERorEND.
- The x coordinate based from the
- 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,CENTERorEND.
- The y coordinate based from the
- 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.
- 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,CENTERorEND.
- The x coordinate based from the
- 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,CENTERorEND.
- The y coordinate based from the
- 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 toRECTANGLE.
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.
- 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 beBACKGROUND&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,CENTERorEND.
- The x coordinate based from the
- 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,CENTERorEND.
- The y coordinate based from the
- 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.
- 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>
| Prefix | Id | Suffix |
|---|---|---|
item | The normal id | No Suffix |
attribute | The Attribute id | No Suffix |
enchantment | The enchant id | Enchant Level |
pet | The Pet Id from petInfo | Pet Rarity |
potion | The Potion Id | Potion Level |
- type:
catharsis:sbid - id: The SkyBlock Id as formatted above.
GUI Widget Interaction
Link (catharsis:link)
Open a link in the default browser.
- type:
catharsis:link - url: A link to the Site.
Slot Clicking (catharsis:slot)
Click a slot on the screen.
- 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.
- 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.
- type:
catharsis:command - command: The command to send.
GUI Widget Tooltip
Text (catharsis:text)
Renders a custom defined text.
- type:
catharsis:text - text: A list of or a single component in JSON format.
Slot Index (catharsis:slot)
Steals the tooltip from an existing slot.
- 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.
- 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.
- type:
catharsis:interaction
SkyBlock Id (catharsis:id)
Steals the tooltip from an SkyBlock Item.
Id Format: <prefix>:<id> or <prefix>:<id>:<suffix>
| Prefix | Id | Suffix |
|---|---|---|
item | The normal id | No Suffix |
attribute | The Attribute id | No Suffix |
enchantment | The enchant id | Enchant Level |
pet | The Pet Id from petInfo | Pet Rarity |
potion | The Potion Id | Potion Level |
- 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.
- 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.
- 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.
- 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.
- type:
catharsis:xor - conditions: A list of GUI element conditions to check.
Not (catharsis:not)
Inverts the result of a condition.
- type:
catharsis:not - condition: The GUI element condition to invert.