Skip to main content
Version: 26.1+

Power Renderers

Power renderers are client-side definitions that control the visual presentation of a power on an entity. They can activate render layers, show trails, display HUD layouts, hide parts of the player model, and assign animation controllers.

Power renderer files are asset-side content, placed at:

assets/<namespace>/palladium/power_renderers/<id>.json

The file's resource ID must match the ID of the power it belongs to. For example, the power data/mypack/palladium/power/hero.json is paired with the renderer at assets/mypack/palladium/power_renderers/hero.json.


Fields​

All fields are optional.

FieldTypeDefaultDescription
screen_layoutIdentifiersee descriptionID of the screen layout used for the power screen. When unset, the layout <namespace>:power/<power_path> is used if it exists, otherwise palladium:power/default. See Custom Power Screen.
render_layersConditional ID Map[]Render layer IDs to activate while this power is active.
trailsConditional ID Map[]Trail IDs to activate while this power is active.
hud_layoutsConditional ID Map[]Screen layouts rendered as HUD overlays while this power is active. See HUD Layouts.
hidden_model_partsMap<String, Condition>{}Player model parts to hide. Keys are part names, values are conditions controlling when they are hidden.
animation_controllerMap<Animation Layer, Identifier>{}Maps animation layers to animation controller IDs. See Animations.
ability_bar_texturesIdentifier or Map<String, Texture Reference>Palladium'sCustom sprites for the ability bar HUD. See Ability Bar Textures.

Conditional ID Maps​

The render_layers and trails fields accept two formats:

Simple list (always active):

"render_layers": [
"mypack:hero_suit",
"mypack:hero_cape"
]

Map with conditions (each entry has its own condition controlling when it is active):

"render_layers": {
"mypack:hero_suit": {
"type": "palladium:ability_enabled",
"ability": "mypack:hero#toggle"
},
"mypack:hero_cape": true
}

HUD Layouts​

The hud_layouts field renders screen layouts as in-game HUD overlays for the local player. Each entry references a layout from assets/<namespace>/palladium/ui_layouts/, shown while the power is active and the entry's condition passes.

HUD rendering differs from opening the same layout as a screen:

  • The layout is placed by its size and alignment. Omit width/height (see Auto Size) to span the whole screen, the usual setup for HUDs: widget alignments then anchor directly to the screen corners and edges, with the layout's padding as margin from the screen edges. A layout with a fixed size renders as a box of that size, positioned by the layout's alignment field (default centered).
  • The layout background is not drawn. If you want panels behind HUD elements, build them from colored_rectangle or blit widgets.
  • There is no mouse. Buttons render but cannot be clicked, tooltips never show, and hover states stay inactive.

Everything else works as usual, including per-widget visibility conditions, which are re-evaluated continuously. Since the map's conditions are also checked every frame, you can toggle whole HUDs with abilities:

assets/mypack/palladium/power_renderers/hero.json (excerpt)
"hud_layouts": {
"mypack:hero_hud": {
"type": "palladium:ability_enabled",
"ability": "mypack:hero#helmet_hud"
}
}

Ability Bar Textures​

The ability bar HUD is drawn from individual sprites, so each piece can be replaced on its own. Sprites are regular GUI sprites and live in assets/<namespace>/textures/gui/sprites/; they are referenced by their sprite ID (the path inside that folder, without .png).

ability_bar_textures accepts two formats:

Folder – every sprite is taken from the given folder, using the names listed below:

"ability_bar_textures": "mypack:hero_bar"

With this, e.g. the slot_enabled sprite is loaded from assets/mypack/textures/gui/sprites/hero_bar/slot_enabled.png. Sprites that are missing from the folder fall back to Palladium's default ones.

Map – only the listed sprites are replaced, everything else keeps Palladium's default. Values are texture references: a plain ID is a sprite ID, a dynamic texture (#namespace:id) is used as a full texture of the sprite's size instead.

"ability_bar_textures": {
"slot_enabled": "mypack:hero_bar/slot_enabled",
"slot_cooldown": "#mypack:animated_cooldown"
}

Palladium's own sprites are at assets/palladium/textures/gui/sprites/ability_bar/ and can be used as templates. Legacy 256×256 ability bar textures are converted automatically: on every resource reload Palladium splits every loaded texture whose path contains ability_bar (outside textures/gui/sprites/) into sprites under <game dir>/palladium/converted/ability_bars/<namespace>/<texture path>/ and logs where they went in the addon pack log. Move that folder into assets/<namespace>/textures/gui/sprites/ and reference it via the folder form.

SpriteSizeDescription
power_indicator_top_left, power_indicator_top_right, power_indicator_bottom_left, power_indicator_bottom_right52×28Background of the power icon / list switch key, one per screen corner.
ability_list24×112Background behind the five ability slots.
single_ability24×24Background used when the bar collapses to a single ability.
slot_empty18×18Slot without an ability.
slot_disabled18×18Unlocked ability that is currently off.
slot_enabled18×18Unlocked ability that is currently on. Also fills up during activation.
slot_locked18×18Locked ability background.
slot_lock18×18Lock icon drawn over slot_locked.
slot_cooldown18×18Cooldown indicator, revealed from left to right.
switch_key_forward, switch_key_backward8×8Arrow next to the list switch key.
key_jump10×5Key hint for jump-bound abilities.
key_mouse_left, key_mouse_right, key_mouse_middle5×7Key hints for mouse-bound abilities.
key_mouse_scroll_up, key_mouse_scroll_down5×10Key hints for scroll-bound abilities.
key_gui8×9Key hint for abilities used by clicking them in the power screen.
energy_bar10×112Energy bar background.
energy_bar_fill4×106Energy bar fill, tinted with the energy bar's color and revealed bottom-up.
slot_<color>24×24Frame around a slot, one per ability color.

Minimal Example​

A simple power renderer that activates a render layer and a trail, and assigns an animation controller on the "movement" layer:

assets/mypack/palladium/power_renderers/hero.json
{
"render_layers": [
"mypack:hero_suit"
],
"trails": [
"mypack:hero_trail"
],
"animation_controller": {
"movement": "mypack:hero_movement"
}
}

Custom Models​

Power renderers can't replace the player model. That's done with transformations now, which also control the hitbox, movement and transition timing on the server side.