Skip to content

TCLE File Structure

CocoaMix86 edited this page Dec 13, 2025 · 8 revisions

.TCL

field data type info
level_name string
difficulty string
description string
author string
bpm float
level_sections string[] Filled with SECTION_LINEAR, 1 per sublevel
rails_color float[4] RGBA order
rails_glow_color float[4] RGBA order
path_color float[4] RGBA order
joy_color float[4] RGBA order

Leaf

.leaf

field data type info
obj_type string SequinLeaf
obj_name string name of the leaf
seq_objs SequencerObject[]
beat_cnt uint
time_sig string only relevant for the editor

SequencerObject

field data type info
obj_name string
param_path string The object will use param_path OR param_path_hash, never both.
param_path_hash string it's a uint encoded as a string. Starts with 0x
trait_type string
data_points DataPoint[]
step bool
default float
footer string comma separated values, should be parsed into an array. Example: "2,1,2,1,2,'kIntensityScale','kIntensityScale',1,0,1,1,1,1,1,1,0,0,0"
editor_data var[] only relevant for the editor
enabled bool if false, this object should not be written into the level. Used for testing/previewing changes while working on the level.

DataPoint

field data type info
beat int
value float
interp string
ease string

Lvl

.lvl

field data type info
obj_type string SequinLevel
obj_name string
approach_beats uint
seq_objs SequencerObject[]
leaf_seq LvlLeafObject[]
loops LvlLoopObject[]
volume float ranges from 0 to 1
input_allowed bool Is the player allowed control during this lvl
tutorial_type string
start_angle_fracs float[3] typically all 1

LvlLeafObject

field data type info
beat_cnt uint
leaf_name string
main_path string this is usually default.path
sub_paths string[] names of tunnels applied to this leaf
pos float[3] default 0,0,0
rot_x float[3] default 1,0,0
rot_y float[3] default 0,1,0
rot_z float[3] default 0,0,1
scale float[3] default 1,1,1

LvlLoopObject

field data type info
samp_name string
beats_per_loop float

Clone this wiki locally