From 4e24b0547d7ca90d955a6a6b7ca581fa00e638a8 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 08:36:32 +0000 Subject: [PATCH 01/11] Get camera as variable in player character toolbox snippet --- toolbox.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/toolbox.js b/toolbox.js index d738f9bc..eedf835c 100644 --- a/toolbox.js +++ b/toolbox.js @@ -4412,6 +4412,16 @@ const toolboxSnippets = { }, }, }, + next: { + block: { + type: "get_camera", + fields: { + VAR: { + name: "camera", + }, + }, + }, + }, }, }, }, From 3f9fdd338d57edfcfc513347e20baf6bd2669118 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 08:45:05 +0000 Subject: [PATCH 02/11] Set sitting variable in player character toolbox snippet --- toolbox.js | 212 +++++++++++++++++++++++++++++------------------------ 1 file changed, 116 insertions(+), 96 deletions(-) diff --git a/toolbox.js b/toolbox.js index eedf835c..c52d1e49 100644 --- a/toolbox.js +++ b/toolbox.js @@ -4292,132 +4292,152 @@ const toolboxSnippets = { inputs: { DO: { block: { - type: "load_character", + type: "variables_set", fields: { - MODELS: "Block3.glb", - ID_VAR: { - name: "player", - type: "", + VAR: { + name: "sitting", }, }, inputs: { - SCALE: { - shadow: { - type: "math_number", + VALUE: { + block: { + type: "logic_boolean", fields: { - NUM: 1, + BOOL: "FALSE", }, }, }, - X: { - shadow: { - type: "math_number", - fields: { - NUM: 0, + }, + next: { + block: { + type: "load_character", + fields: { + MODELS: "Block3.glb", + ID_VAR: { + name: "player", + type: "", }, }, - }, - Y: { - shadow: { - type: "math_number", - fields: { - NUM: 0, + inputs: { + SCALE: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, }, - }, - }, - Z: { - shadow: { - type: "math_number", - fields: { - NUM: 0, + X: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, }, - }, - }, - HAIR_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#000000", + Y: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, }, - }, - }, - SKIN_COLOR: { - shadow: { - type: "skin_colour", - fields: { - COLOR: "#a15c33", + Z: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, }, - }, - }, - EYES_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#000000", + HAIR_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#000000", + }, + }, }, - }, - }, - SLEEVES_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#008b8b", + SKIN_COLOR: { + shadow: { + type: "skin_colour", + fields: { + COLOR: "#a15c33", + }, + }, }, - }, - }, - SHORTS_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#00008b", + EYES_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#000000", + }, + }, }, - }, - }, - TSHIRT_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#ff8f60", + SLEEVES_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#008b8b", + }, + }, }, - }, - }, - }, - next: { - block: { - type: "add_physics", - fields: { - MODEL_VAR: { - name: "player", - type: "", + SHORTS_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#00008b", + }, + }, + }, + TSHIRT_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#ff8f60", + }, + }, }, - PHYSICS_TYPE: - "DYNAMIC", }, next: { block: { - type: "camera_follow", + type: "add_physics", fields: { - MESH_VAR: { + MODEL_VAR: { name: "player", type: "", }, - }, - inputs: { - RADIUS: { - block: { - type: "math_number", - fields: { - NUM: 7, - }, - }, - }, + PHYSICS_TYPE: + "DYNAMIC", }, next: { block: { - type: "get_camera", + type: "camera_follow", fields: { - VAR: { - name: "camera", + MESH_VAR: { + name: "player", + type: "", + }, + }, + inputs: { + RADIUS: { + block: { + type: "math_number", + fields: { + NUM: 7, + }, + }, + }, + }, + next: { + block: { + type: "get_camera", + fields: { + VAR: { + name: "camera", + }, + }, }, }, }, From 239e88c8e0f93e62a5b2def8532c334e3dd64615 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 09:02:18 +0000 Subject: [PATCH 03/11] Create category for sit down snippets TODO: Fill category with snippets --- images/couch-solid.svg | 1 + locale/de.js | 1 + locale/en.js | 1 + locale/es.js | 1 + locale/fr.js | 1 + locale/it.js | 1 + locale/pl.js | 1 + locale/pt.js | 1 + locale/sv.js | 1 + toolbox.js | 8 ++++++++ 10 files changed, 17 insertions(+) create mode 100644 images/couch-solid.svg diff --git a/images/couch-solid.svg b/images/couch-solid.svg new file mode 100644 index 00000000..250ee7a3 --- /dev/null +++ b/images/couch-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/locale/de.js b/locale/de.js index be3a608b..3f3efcb2 100644 --- a/locale/de.js +++ b/locale/de.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funktionen", CATEGORY_SNIPPETS: "Snippets", CATEGORY_MOVEMENT: "Bewegung", + CATEGORY_SIT_DOWN: "Hinsetzen", // Color picker translations choose_a_color: "Wähle eine Farbe", diff --git a/locale/en.js b/locale/en.js index a4b251ed..e3842228 100644 --- a/locale/en.js +++ b/locale/en.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Functions", CATEGORY_SNIPPETS: "Snippets", CATEGORY_MOVEMENT: "Movement", + CATEGORY_SIT_DOWN: "Sit Down", // Color picker translations choose_a_color: "Choose a Color", diff --git a/locale/es.js b/locale/es.js index d319f875..cb15c3e0 100644 --- a/locale/es.js +++ b/locale/es.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funciones", CATEGORY_SNIPPETS: "Fragmentos", CATEGORY_MOVEMENT: "Movimiento", + CATEGORY_SIT_DOWN: "Sentarse", // Color picker translations choose_a_color: "Elige un color", diff --git a/locale/fr.js b/locale/fr.js index 93810a9d..d016add5 100644 --- a/locale/fr.js +++ b/locale/fr.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Fonctions", CATEGORY_SNIPPETS: "Extraits", CATEGORY_MOVEMENT: "Mouvement", + CATEGORY_SIT_DOWN: "S'asseoir", // Color picker translations choose_a_color: "Choisissez une couleur", diff --git a/locale/it.js b/locale/it.js index 01e3626c..5ba5fa8a 100644 --- a/locale/it.js +++ b/locale/it.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funzioni", CATEGORY_SNIPPETS: "Frammenti", CATEGORY_MOVEMENT: "Movimento", + CATEGORY_SIT_DOWN: "Siediti", // Color picker translations choose_a_color: "Scegli un colore", diff --git a/locale/pl.js b/locale/pl.js index 18dcab99..a915409c 100644 --- a/locale/pl.js +++ b/locale/pl.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funkcje", CATEGORY_SNIPPETS: "Fragmenty", CATEGORY_MOVEMENT: "Ruch", + CATEGORY_SIT_DOWN: "Siadanie", // Color picker translations choose_a_color: "Wybierz kolor", diff --git a/locale/pt.js b/locale/pt.js index df6ed640..b4dd0744 100644 --- a/locale/pt.js +++ b/locale/pt.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funções", CATEGORY_SNIPPETS: "Trechos", CATEGORY_MOVEMENT: "Movimento", + CATEGORY_SIT_DOWN: "Sentar-se", // Color picker translations choose_a_color: "Escolha uma cor", diff --git a/locale/sv.js b/locale/sv.js index d9e05baf..778fcba2 100644 --- a/locale/sv.js +++ b/locale/sv.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funktioner", CATEGORY_SNIPPETS: "Snippets", CATEGORY_MOVEMENT: "Rörelse", + CATEGORY_SIT_DOWN: "Sätt dig", // Color picker translations choose_a_color: "Välj en färg", diff --git a/toolbox.js b/toolbox.js index c52d1e49..6b5c88ff 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3494,6 +3494,13 @@ const toolboxMath = { ], }; +const toolboxSnippetsSitDown = { + kind: "category", + icon: "./images/couch-solid.svg", + categorystyle: "snippets_category", + name: "%{BKY_CATEGORY_SIT_DOWN}", +} + const toolboxSnippetsPhysics = { kind: "category", icon: "./images/physics.svg", @@ -4452,6 +4459,7 @@ const toolboxSnippets = { }, toolboxSnippetsMovement, toolboxSnippetsPhysics, + toolboxSnippetsSitDown, ], }; From 0f0322561a6c7b369f6dca19ec3518b1deae6b6a Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 09:24:59 +0000 Subject: [PATCH 04/11] Create snippet for defining seat to sit down on --- toolbox.js | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/toolbox.js b/toolbox.js index 6b5c88ff..76878d9c 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3499,6 +3499,120 @@ const toolboxSnippetsSitDown = { icon: "./images/couch-solid.svg", categorystyle: "snippets_category", name: "%{BKY_CATEGORY_SIT_DOWN}", + contents: [ + { + kind: "block", + type: "start", + inputs: { + DO: { + block: { + type: "create_box", + fields: { + ID_VAR: { + name: "seat", + }, + }, + inputs: { + COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#666666" + }, + }, + }, + WIDTH: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + HEIGHT: { + shadow: { + type: "math_number", + fields: { + NUM: 0.5, + }, + }, + }, + DEPTH: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + X: { + shadow: { + type: "math_number", + fields: { + NUM: 3, + }, + }, + }, + Y: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + Z: { + shadow: { + type: "math_number", + fields: { + NUM: -1, + }, + }, + }, + }, + next: { + block: { + type: "set_material", + fields: { + MESH: { + name: "seat", + }, + }, + inputs: { + MATERIAL: { + shadow: { + type: "material", + fields: { + TEXTURE_SET: "grass.png", + }, + inputs: { + BASE_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#666666", + }, + }, + }, + ALPHA: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + ], } const toolboxSnippetsPhysics = { From 8e3b13cef196512f6b06d52f78c6a03dd995837f Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 14:34:21 +0000 Subject: [PATCH 05/11] Start work on movement snippet for moving to and sitting down on block TODO: Complete said work --- toolbox.js | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/toolbox.js b/toolbox.js index 76878d9c..1e36690a 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3612,6 +3612,105 @@ const toolboxSnippetsSitDown = { }, }, }, + { + kind: "block", + type: "when_clicked", + fields: { + MODEL_VAR: { + name: "seat", + }, + TRIGGER: "OnPickTrigger", + }, + inputs: { + DO: { + block: { + type: "controls_if", + extraState: { + hasElse: true, + }, + inputs: { + IF0: { + block: { + type: "logic_negate", + inputs: { + BOOL: { + block: { + type: "variables_get", + fields: { + VAR: { + name: "sitting", + }, + }, + }, + }, + }, + }, + }, + DO0: { + block: { + type: "variables_set", + fields: { + VAR: { + name: "sitting", + }, + }, + inputs: { + VALUE: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + block: { + type: "logic_boolean", + fields: { + BOOL: "FALSE", + }, + }, + }, + }, + next: { + block: { + type: "look_at", + fields: { + MODEL1: { + name: "player", + }, + MODEL2: { + name: "seat", + }, + USE_Y: false, + }, + next: { + block: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Walk", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, ], } From 392c42c8520bb465f3dd97f2ac61adf95a9d449a Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 14:38:44 +0000 Subject: [PATCH 06/11] Add first glide to block to movement for sitting down snippet --- toolbox.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/toolbox.js b/toolbox.js index 1e36690a..36f6bf06 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3700,6 +3700,54 @@ const toolboxSnippetsSitDown = { }, }, }, + next: { + block: { + type: "glide_to_seconds", + fields: { + MESH_VAR: { + name: "player", + }, + MODE: "AWAIT", + REVERSE: false, + LOOP: false, + EASING: "Linear", + }, + inputs: { + X: { + shadow: { + type: "math_numnber", + fields: { + NUM: 3, + }, + }, + }, + Y: { + shadow: { + type: "math_numnber", + fields: { + NUM: 0, + }, + }, + }, + Z: { + shadow: { + type: "math_numnber", + fields: { + NUM: -0.2, + }, + }, + }, + DURATION: { + shadow: { + type: "math_numnber", + fields: { + NUM: 1, + }, + }, + }, + }, + }, + }, }, }, }, From 07efe0b5fe9740317ba9ffa6269f265f91d1966c Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 14:41:19 +0000 Subject: [PATCH 07/11] Add switch animation block to movement for sitting down snippet --- toolbox.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/toolbox.js b/toolbox.js index 36f6bf06..58d4443d 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3745,6 +3745,24 @@ const toolboxSnippetsSitDown = { }, }, }, + next: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Idle", + }, + }, + }, + }, + }, }, }, }, From 80f3c296bc6bae116c1684fba076a2b578e445a4 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Fri, 19 Dec 2025 14:44:26 +0000 Subject: [PATCH 08/11] Rewrite glide_to_seconds block in movement for sitting down snippet as glide_to_object block --- toolbox.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/toolbox.js b/toolbox.js index 58d4443d..eae017ae 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3702,26 +3702,29 @@ const toolboxSnippetsSitDown = { }, next: { block: { - type: "glide_to_seconds", + type: "glide_to_object", fields: { - MESH_VAR: { + MODEL1: { name: "player", }, + MODEL2: { + name: "seat", + }, MODE: "AWAIT", REVERSE: false, LOOP: false, EASING: "Linear", }, inputs: { - X: { + DURATION: { shadow: { type: "math_numnber", fields: { - NUM: 3, + NUM: 1, }, }, }, - Y: { + X_OFFSET: { shadow: { type: "math_numnber", fields: { @@ -3729,19 +3732,19 @@ const toolboxSnippetsSitDown = { }, }, }, - Z: { + Y_OFFSET: { shadow: { type: "math_numnber", fields: { - NUM: -0.2, + NUM: 0, }, }, }, - DURATION: { + Z_OFFSET: { shadow: { type: "math_numnber", fields: { - NUM: 1, + NUM: 0, }, }, }, From 5861685a87695357f2146c1c644cb19fdb7cc055 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Thu, 29 Jan 2026 09:49:35 +0000 Subject: [PATCH 09/11] Fix typos in Sit Down snippet that caused block selection to break --- toolbox.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/toolbox.js b/toolbox.js index b0bf4f52..35cc1613 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3675,7 +3675,7 @@ const toolboxSnippetsSitDown = { block: { type: "logic_boolean", fields: { - BOOL: "FALSE", + BOOL: "TRUE", }, }, }, @@ -3728,7 +3728,7 @@ const toolboxSnippetsSitDown = { inputs: { DURATION: { shadow: { - type: "math_numnber", + type: "math_number", fields: { NUM: 1, }, @@ -3736,7 +3736,7 @@ const toolboxSnippetsSitDown = { }, X_OFFSET: { shadow: { - type: "math_numnber", + type: "math_number", fields: { NUM: 0, }, @@ -3744,7 +3744,7 @@ const toolboxSnippetsSitDown = { }, Y_OFFSET: { shadow: { - type: "math_numnber", + type: "math_number", fields: { NUM: 0, }, @@ -3752,13 +3752,15 @@ const toolboxSnippetsSitDown = { }, Z_OFFSET: { shadow: { - type: "math_numnber", + type: "math_number", fields: { NUM: 0, }, }, }, - next: { + }, + next: { + block: { type: "switch_animation", fields: { MODEL: { From 3736451f98725f96bf93e5ca00f7b945584611b6 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Thu, 29 Jan 2026 11:34:38 +0000 Subject: [PATCH 10/11] Extend sit down snippet to be more complete --- toolbox.js | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/toolbox.js b/toolbox.js index 35cc1613..8938930f 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3777,6 +3777,94 @@ const toolboxSnippetsSitDown = { }, }, }, + next: { + block: { + type: "rotate_anim_seconds", + fields: { + MESH_VAR: { + name: "player", + }, + MODE: "AWAIT", + REVERSE: false, + LOOP: false, + EASING: "Linear", + }, + inputs: { + ROT_X: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + ROT_Y: { + shadow: { + type: "math_number", + fields: { + NUM: -180, + }, + }, + }, + ROT_Z: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + DURATION: { + shadow: { + type: "math_number", + fields: { + NUM: 0.2, + }, + }, + }, + }, + next: { + block: { + type: "play_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Sit_Down", + }, + }, + }, + }, + next: { + block: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Sitting", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, }, }, }, @@ -3787,6 +3875,32 @@ const toolboxSnippetsSitDown = { }, }, }, + ELSE: { + block: { + type: "variables_set", + fields: { + VAR: { + name: "sitting" + }, + }, + inputs: { + VALUE: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + block: { + type: "logic_boolean", + fields: { + BOOL: "FALSE", + }, + }, + }, + }, + }, + }, }, }, }, From 08485fc23b2bab68fe3de465026dd5467d217047 Mon Sep 17 00:00:00 2001 From: Zishan Rahman Date: Thu, 29 Jan 2026 14:38:06 +0000 Subject: [PATCH 11/11] Fix up offsets in Sit Down snippet so that character sits on block --- toolbox.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolbox.js b/toolbox.js index 8938930f..020b232e 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3738,7 +3738,7 @@ const toolboxSnippetsSitDown = { shadow: { type: "math_number", fields: { - NUM: 0, + NUM: -0.2, }, }, }, @@ -3754,7 +3754,7 @@ const toolboxSnippetsSitDown = { shadow: { type: "math_number", fields: { - NUM: 0, + NUM: 1, }, }, },