Placing Balls
- Left-click a block side to select it
- Press P to open the Balls Pool
- Select a ball template from the grid — it is placed on the selected side
- The ball appears with a direction arrow indicating its initial orientation
Removing Balls
- Select the side with the ball
- Press P to open the Balls Pool
- Select the None option
Ball Properties
Balls have the most configurable properties of any element:Direction
Set the ball’s initial rolling direction:- North — Default direction
- East — 90° clockwise from North
- South — 180° from North
- West — 270° from North
Skin
For balls with multiple visual variants:- Select from available skins in the dropdown
- Skins may be locked behind progression (shown with ”???”)
- Developer Mode bypasses skin locks
Execution Order
When multiple balls exist in a level, the order determines which ball is processed first:- Order values range from 1 to the total number of balls
- Changing one ball’s order automatically reorders the others to prevent conflicts
- The
BallsManagersorts balls by their order value
Ball Style (Pattern Balls)
For balls withIsPatternBall enabled:
- Press the Select Style button in the Element Properties menu
- Opens the Ball Style Selector with a grid of available patterns
- Selecting a pattern applies it to the ball’s visual appearance
Script Attachment
Like all elements, balls can have Lua scripts attached with tags and local variables.Global Ball Management
The editor maintains a globalBallsManager that tracks all balls across all sections. When a ball is placed:
- It is inserted into the global ball manager
- It is added to the current section’s ball list
- All balls are re-numbered to maintain consistent order
- The score info is marked as outdated and recalculated
- It is removed from the global manager
- It is removed from the section’s ball list
- Remaining balls are re-numbered