Overview
Builds a resizable window asset (NineSlice) from small corner, edge, and center
parts. It provides the foundation for batch-producing RPG message windows, UI
panels, and button frames from small pixel-art parts.
Usage tips
- The simplest starting point is
ThreeParts: one corner, one edge, and one center create a symmetrical frame. Move to 5 or 9 parts when you need more elaborate designs. - The parts can be images generated inside the graph, enabling workflows that manage color variations for every frame part with one palette.
nine_slice_renderperforms the drawing. This node only defines the asset.
Related nodes
nine_slice_render— the rendering counterpart; usually used togetherlist_create— bundles the parts listtext_rasterize— creates text for the window; composite it with blendPrimary uses: RPG message windows, UI panels, button frames, speech-bubble frames, and similar elements
Dedicated output type:
NineSlice
NineSlice is dedicated data for a nine-slice asset. In addition to images, it
stores information such as left-border width, top-border height, whether the
center repeats or stretches, and the inner area available for text.
What is nine-slice?
Nine-slice treats a window image as the following nine regions.
| Top left | Top | Top right |
|---|---|---|
| Left | Center | Right |
| Bottom left | Bottom | Bottom right |
- Corners stay unchanged when the source cells already match. When part sizes
differ, the packer repeat-fills them to the largest cell in the 3x3 grid and
lists the affected parts in
warnings. - Top, bottom, left, and right edges repeat horizontally or vertically, or stretch.
- The center can repeat, stretch, or remain transparent.
This lets you create large text windows from small pixel-art assets.
Build methods
| Value | Display name | Required inputs | Description |
|---|---|---|---|
ThreeParts |
3 parts | corner, edge, center |
Builds from one corner, one edge, and one center, requiring few assets. |
FiveParts |
5 parts | parts or spritesheet |
Builds from five images: corner, top edge, bottom edge, side edge, and center. The top and bottom can use different designs. |
NineParts |
9 parts | parts or spritesheet |
Uses a separate image for every region, providing the most freedom. |
ListOrder |
9 parts in list order | parts |
Uses the first nine images in parts in nine-slice order. |
SpriteSheetOrder |
9 parts in sheet order | spritesheet |
Uses the first nine frames in the sprite sheet in nine-slice order. |
Five-part order
Arrange parts or spritesheet in this order:
- Corner
- Top edge
- Bottom edge
- Side edge
- Center
Nine-part order
Arrange parts or spritesheet in this order:
- Top left
- Top
- Top right
- Left
- Center
- Right
- Bottom left
- Bottom
- Bottom right
Scale methods
| Value | Display name | Description |
|---|---|---|
Repeat |
Repeat | Tiles the same part. Best for pixel-art borders. |
Stretch |
Stretch | Stretches the part to the requested size. Best for gradients and simple flat areas. |
Transparent |
Transparent | Leaves the center undrawn and transparent. Use it for a frame with a see-through center. |
Transparent is available only for the center scaling method.
Basic usage
- Prepare images for the corner, edge, and center parts.
- Place
NineSlice Pack. - Set the build method to
3 parts. - Connect images to
corner,edge, andcenter. - Connect the
nine_sliceoutput to thenine_sliceinput ofNineSlice Render.
Notes
- This node creates the asset. Set the final window dimensions in
NineSlice Render. 3 partsrequires few assets, but use9 partswhen every edge and corner needs a separate design.- If both
partsandspritesheetare connected,partstakes priority. padding_*is limited to 0–512. Out-of-range promoted values are clamped and produce aparameter_clampedwarning. Zero means “use the matching border width.”summaryandwarningsuse stable locale-independent diagnostics.parts_normalized_repeatreports size normalization andparts_truncatedreports ignored extra inputs.