Sonolus Wiki

Skin Sprite Name

While you can use any arbitrary string for skin sprite name, there are standardized skin sprite names that every skin is required to implement.

This requirement allows skins to be usable across different engines, and engines to be playable with other skins.

Standardized Names

NameResizing
#NOTE_HEAD_NEUTRAL
#NOTE_HEAD_RED
#NOTE_HEAD_GREEN
#NOTE_HEAD_BLUE
#NOTE_HEAD_YELLOW
#NOTE_HEAD_PURPLE
#NOTE_HEAD_CYAN
#NOTE_TICK_NEUTRAL
#NOTE_TICK_RED
#NOTE_TICK_GREEN
#NOTE_TICK_BLUE
#NOTE_TICK_YELLOW
#NOTE_TICK_PURPLE
#NOTE_TICK_CYAN
#NOTE_TAIL_NEUTRAL
#NOTE_TAIL_RED
#NOTE_TAIL_GREEN
#NOTE_TAIL_BLUE
#NOTE_TAIL_YELLOW
#NOTE_TAIL_PURPLE
#NOTE_TAIL_CYAN
#NOTE_CONNECTION_NEUTRALVertical
#NOTE_CONNECTION_REDVertical
#NOTE_CONNECTION_GREENVertical
#NOTE_CONNECTION_BLUEVertical
#NOTE_CONNECTION_YELLOWVertical
#NOTE_CONNECTION_PURPLEVertical
#NOTE_CONNECTION_CYANVertical
#NOTE_CONNECTION_NEUTRAL_SEAMLESSVertical
#NOTE_CONNECTION_RED_SEAMLESSVertical
#NOTE_CONNECTION_GREEN_SEAMLESSVertical
#NOTE_CONNECTION_BLUE_SEAMLESSVertical
#NOTE_CONNECTION_YELLOW_SEAMLESSVertical
#NOTE_CONNECTION_PURPLE_SEAMLESSVertical
#NOTE_CONNECTION_CYAN_SEAMLESSVertical
#SIMULTANEOUS_CONNECTION_NEUTRALHorizontal
#SIMULTANEOUS_CONNECTION_REDHorizontal
#SIMULTANEOUS_CONNECTION_GREENHorizontal
#SIMULTANEOUS_CONNECTION_BLUEHorizontal
#SIMULTANEOUS_CONNECTION_YELLOWHorizontal
#SIMULTANEOUS_CONNECTION_PURPLEHorizontal
#SIMULTANEOUS_CONNECTION_CYANHorizontal
#SIMULTANEOUS_CONNECTION_NEUTRAL_SEAMLESSHorizontal
#SIMULTANEOUS_CONNECTION_RED_SEAMLESSHorizontal
#SIMULTANEOUS_CONNECTION_GREEN_SEAMLESSHorizontal
#SIMULTANEOUS_CONNECTION_BLUE_SEAMLESSHorizontal
#SIMULTANEOUS_CONNECTION_YELLOW_SEAMLESSHorizontal
#SIMULTANEOUS_CONNECTION_PURPLE_SEAMLESSHorizontal
#SIMULTANEOUS_CONNECTION_CYAN_SEAMLESSHorizontal
#DIRECTIONAL_MARKER_NEUTRAL
#DIRECTIONAL_MARKER_RED
#DIRECTIONAL_MARKER_GREEN
#DIRECTIONAL_MARKER_BLUE
#DIRECTIONAL_MARKER_YELLOW
#DIRECTIONAL_MARKER_PURPLE
#DIRECTIONAL_MARKER_CYAN
#SIMULTANEOUS_MARKER_NEUTRAL
#SIMULTANEOUS_MARKER_RED
#SIMULTANEOUS_MARKER_GREEN
#SIMULTANEOUS_MARKER_BLUE
#SIMULTANEOUS_MARKER_YELLOW
#SIMULTANEOUS_MARKER_PURPLE
#SIMULTANEOUS_MARKER_CYAN
#STAGE_MIDDLEBoth
#STAGE_LEFT_BORDERVertical
#STAGE_RIGHT_BORDERVertical
#STAGE_TOP_BORDERHorizontal
#STAGE_BOTTOM_BORDERHorizontal
#STAGE_LEFT_BORDER_SEAMLESSVertical
#STAGE_RIGHT_BORDER_SEAMLESSVertical
#STAGE_TOP_BORDER_SEAMLESSHorizontal
#STAGE_BOTTOM_BORDER_SEAMLESSHorizontal
#STAGE_TOP_LEFT_CORNER
#STAGE_TOP_RIGHT_CORNER
#STAGE_BOTTOM_LEFT_CORNER
#STAGE_BOTTOM_RIGHT_CORNER
#LANEVertical
#LANE_SEAMLESSVertical
#LANE_ALTERNATIVEVertical
#LANE_ALTERNATIVE_SEAMLESSVertical
#JUDGMENT_LINEHorizontal
#NOTE_SLOT
#STAGE_COVERBoth
#GRID_NEUTRALBoth
#GRID_REDBoth
#GRID_GREENBoth
#GRID_BLUEBoth
#GRID_YELLOWBoth
#GRID_PURPLEBoth
#GRID_CYANBoth

Resizing

For skin sprites with specified resizing, they are expected to remain presentable when stretch to arbitrary size in resizing directions.

Seamless

Engines may use the seamless variants of skin sprites to create more complex graphics by joining multiple segments together, thus seamless variants are expected to remain presentable when used in such a manner.