StageData module defines the structure for stage backgrounds, props, and character placement.
StageData Structure
Core Properties
String
required
Semantic version of the stage data format
String
default:"Unknown"
Display name of the stage
Float
default:"1.0"
Default camera zoom level for this stage
String
default:"shared"
Asset directory for stage assets
Array<StageDataProp>
default:"[]"
Array of visual props/sprites for the stage
StageDataCharacters
required
Positioning and rendering config for
bf, dad, and gfStageDataProp
Defines a visual prop or sprite in the stage.Basic Properties
String
Unique identifier for script access. If omitted, prop cannot be referenced by scripts
String
required
Path to the sprite asset. Can also be a hex color (e.g.,
"#ff0000") to create a colored rectangleArray<Float>
required
Position as
[x, y] coordinates in pixelsInt
default:"0"
Stack order relative to other props and characters. Higher values render on top
Visual Properties
Float | Array<Float>
default:"1.0"
Scale as a single float or
[width, height] array. Use higher values on small pixel art to save memoryFloat
default:"1.0"
Opacity from 0.0 (transparent) to 1.0 (opaque)
Float
default:"0.0"
Rotation angle in degrees
Bool
default:"false"
Set to
true to disable anti-aliasing for pixel artBool
default:"false"
Whether to flip the sprite horizontally
Bool
default:"false"
Whether to flip the sprite vertically
String
default:"#FFFFFF"
Color overlay as hex string.
#FFFFFF (white) applies no tintString
default:""
Blend mode (e.g.,
"add", "multiply", "screen"). Empty string uses normal blendingScrolling & Parallax
Array<Float>
default:"[1, 1]"
Parallax scroll factor as
[x, y]:[1, 1]= moves 1:1 with camera (no parallax)[0.5, 0.5]= moves half as much (background effect)[0, 0]= static/fixed position
Animation
Float
default:"0.0"
Play idle/dance animation every X beats. Set to
0 to disable. Requires animations to be defined. Supports precision up to 0.25Array<AnimationData>
default:"[]"
Array of animation definitions for this prop with
name, prefix, frameIndices, etc.String
Name of the animation to play on stage load
String
default:"sparrow"
Animation system:
"sparrow", "packer", or "animateatlas"Texture Atlas Settings
TextureAtlasData
Advanced settings for Animate Atlas props
TextureAtlasData
Bool
Enable SWF-like behavior for MovieClip symbols to play automatically
Bool
Cache filters and masks at load time instead of during runtime
Int
Filter quality level:
0= HIGH1= MEDIUM2= LOW3= RUDY
Bool
Apply the stage matrix from Animate. Only enable if prop was pre-positioned in Animate
Bool
Render as single texture instead of separate limbs. Enable when using alpha changes, shaders, or blend modes
StageDataCharacter
Defines positioning and rendering for stage characters (bf, dad, gf).
Array<Float>
default:"[0, 0]"
Character spawn position as
[x, y] in pixelsInt
default:"0"
Stack order relative to props and other characters
Float
default:"1.0"
Scale multiplier for the character on this stage
Array<Float>
required
Camera focus offset as
[x, y] when this character is focused:- Boyfriend:
[-100, -100](default) - Dad/Opponent:
[100, -100](default) - Girlfriend:
[0, 0](default)
Array<Float>
default:"[1, 1]"
Parallax scroll factor as
[x, y]. See prop scroll documentation for behaviorFloat
default:"1.0"
Character opacity
Float
default:"0.0"
Character rotation in degrees
Example: Basic Stage
Example: Animated Prop
Example: Color Rectangle Prop
Example: Parallax Background
Character Z-Index Reference
Common z-index layering:-100 to -1: Far background props0 to 9: Background props (behind GF)10: Girlfriend (default)11 to 49: Mid-ground props50: Boyfriend and Dad (default)51 to 99: Near-ground props100+: Foreground/overlay props
Tips
- Use
scrollvalues less than[1, 1]for background parallax effects - Set
isPixel: trueon all pixel art props to avoid blurriness - Use negative z-index values for backgrounds that should render behind everything
- For performance, use larger z-index gaps (e.g., 0, 100, 200) instead of sequential values
- Color props with
assetPathas hex colors usescaleto determine rectangle size
