-
Notifications
You must be signed in to change notification settings - Fork 2
TCLE File Structure
CocoaMix86 edited this page Dec 13, 2025
·
8 revisions
| 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. Clamped between 0 and 1 |
| rails_glow_color | float[4] | RGBA order. Clamped between 0 and 1 |
| path_color | float[4] | RGBA order. Clamped between 0 and 1 |
| joy_color | float[4] | RGBA order. Clamped between 0 and 1 |
| field | data type | info |
|---|---|---|
| obj_type | string | SequinMaster |
| obj_name | string | |
| skybox_name | string | |
| intro_lvl_name | string | |
| groupings | MasterLvlObject[] | |
| isolate_tracks | bool | Used for testing WIP levels. Used in conjunction with the isolate field in MasterLvlObject
|
| checkpoint_lvl_name | string |
| field | data type | info |
|---|---|---|
| lvl_name | string | only lvl_name OR gate_name should be filled in. Never both. |
| gate_name | string | |
| checkpoint | bool | |
| checkpoint_leader_lvl_name | string | |
| rest_lvl_name | string | |
| play_plus | bool | |
| isolate | bool | used for testing WIP levels. If .master isolate_tracks is true, then only build MasterLvlObject that have this field set to true. |
| 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 |
| field | data type | info |
|---|---|---|
| obj_name | string | |
| param_path | string | The object will have param_path OR param_path_hash in the JSON, never both. |
| param_path_hash | string | it's a uint encoded as a string. Does not start 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. |
| field | data type | info |
|---|---|---|
| beat | int | |
| value | float | |
| interp | string | |
| ease | string |
| field | data type | info |
|---|---|---|
| obj_type | string | SequinLevel |
| obj_name | string | |
| approach_beats | uint | |
| seq_objs | SequencerObject[] | |
| leaf_seq | LvlLeafObject[] | |
| loops | LvlLoopObject[] | |
| volume | float | |
| input_allowed | bool | Is the player allowed control during this lvl |
| tutorial_type | string | |
| start_angle_fracs | float[3] | typically all 1
|
| 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
|
| field | data type | info |
|---|---|---|
| samp_name | string | |
| beats_per_loop | float |
| field | data type | info |
|---|---|---|
| obj_type | string | SequinGate |
| obj_name | string | |
| spn_name | string | |
| param_path | string | |
| pre_lvl_name | string | |
| post_lvl_name | string | |
| restart_lvl_name | string | |
| section_type | string | Changes how the boss sublevel displays in-game |
| random_type | string | |
| boss_patterns | BossPattern[] |
| field | data type | info |
|---|---|---|
| lvl_name | string | |
| sentry_type | string | |
| bucket_num | int | |
| node_name_hash | string | should be parsed to uint to be written. Does not begin with 0x
|
| field | data type | info |
|---|---|---|
| items | SampleObject[] |
| field | data type | info |
|---|---|---|
| obj_type | string | Sample |
| obj_name | string | |
| mode | string | |
| path | string | |
| volume | float | |
| pitch | float | |
| pan | float | |
| offset | int | |
| channel_group | string |
| field | data type | info |
|---|---|---|
| items | SpawnerObject[] |
| field | data type | info |
|---|---|---|
| obj_type | string | EntitySpawner |
| obj_name | string | |
| xfm_name | string | |
| constraint | string | |
| 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
|
| objlib_path | string | |
| bucket | string |
| field | data type | info |
|---|---|---|
| obj_type | string | Xfmer |
| xfm_name | string | |
| constraint | string | |
| 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
|
-
TCLE 3.0
- Getting Started
- User Interface
- Documentation
-
TCLE 2.2 (Legacy)
- all the documentation is on 1 page.