Skip to content

Instantly share code, notes, and snippets.

@matstc
Created June 27, 2025 13:20
Show Gist options
  • Save matstc/955ded9e27b5947c03bd03659bb754f9 to your computer and use it in GitHub Desktop.
Save matstc/955ded9e27b5947c03bd03659bb754f9 to your computer and use it in GitHub Desktop.
Blocks Blocks Blocks (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Blocks Blocks Blocks
author Matt
(require_player_movement)
key_repeat_interval 0.24
verbose_logging
debug
========
OBJECTS
========
Background
white
Target
black
0...0
0...0
.....
0...0
0.0.0
Wall
black
Crate
black darkgrey
00000
00010
00000
00000
00000
CrateTmp
black
ArrowDown
transparent
ArrowLeft
transparent
ArrowRight
transparent
ArrowUp
transparent
FlippingArrowDown
transparent
FlippingArrowLeft
transparent
FlippingArrowLeftTmp
transparent
FlippingArrowRight
transparent
FlippingArrowRightTmp
transparent
FlippingArrowDownTmp
transparent
FlippingArrowUp
transparent
FlippingArrowUpTmp
transparent
Quicksand
pink
00000
0...0
0...0
0...0
00000
Player
PINK PINK BLACK
.222.
.020.
22122
.222.
.2.2.
Shadow
transparent
=======
LEGEND
=======
. = Background
# = Wall
P = Player
* = Crate
U = ArrowUp
I = FlippingArrowUp
L = ArrowLeft
; = FlippingArrowLeft
R = ArrowRight
D = ArrowDown
F = FlippingArrowDown
T = FlippingArrowRight
Q = Quicksand
7 = Crate and FlippingArrowLeft
8 = Crate and ArrowUp
9 = Crate and FlippingArrowUpTmp
4 = Crate and ArrowLeft
6 = Crate and ArrowRight
1 = Crate and FlippingArrowRight
2 = Crate and ArrowDown
3 = Crate and FlippingArrowDown
X = Target
=======
SOUNDS
=======
EndLevel 40581503
Player Move 73472907
================
COLLISIONLAYERS
================
Background
Quicksand
Target
Crate, Player, Wall
CrateTmp
ArrowUp
FlippingArrowUp
FlippingArrowUpTmp
ArrowDown
FlippingArrowDown
FlippingArrowDownTmp
ArrowLeft
FlippingArrowLeft
FlippingArrowLeftTmp
FlippingArrowRight
FlippingArrowRightTmp
ArrowRight
Shadow
======
RULES
======
RIGHT [ RIGHT Player | Crate ] -> [ Player | Crate ]
LEFT [ LEFT Player | Crate ] -> [ Player | Crate ]
UP [ UP Player | Crate ] -> [ Player | Crate ]
DOWN [ DOWN Player | Crate ] -> [ Player | Crate ]
[ Player No Quicksand ] -> [ Player Shadow ]
late UP [ Crate ArrowUp | No Player ] -> [ ArrowUp | CrateTmp ]
late UP [ Crate FlippingArrowUp | No Player ] -> [ FlippingArrowDownTmp | CrateTmp ]
late LEFT [ Crate FlippingArrowLeft | No Player ] -> [ FlippingArrowRightTmp | CrateTmp ]
late LEFT [ Crate ArrowLeft | No Player ] -> [ ArrowLeft | CrateTmp ]
late RIGHT [ Crate ArrowRight | No Player ] -> [ ArrowRight | CrateTmp ]
late RIGHT [ Crate FlippingArrowRight | No Player ] -> [ FlippingArrowLeftTmp | CrateTmp ]
late DOWN [ Crate ArrowDown | No Player ] -> [ ArrowDown | CrateTmp ]
late DOWN [ Crate FlippingArrowDown | No Player ] -> [ FlippingArrowUpTmp | CrateTmp ]
late [ FlippingArrowUpTmp ] -> [ FlippingArrowUp ]
late [ FlippingArrowDownTmp ] -> [ FlippingArrowDown ]
late [ FlippingArrowLeftTmp ] -> [ FlippingArrowLeft ]
late [ FlippingArrowRightTmp ] -> [ FlippingArrowRight ]
late [ CrateTmp ] -> [ Crate ]
late [ Player Shadow ] -> CANCEL
late [ Shadow ] -> [ ]
==============
WINCONDITIONS
==============
all Player on Target
=======
LEVELS
=======
(MESSAGE It looked like the dungeon would never end… (Reach the outline to exit the level.)
###########
#####2#####
#.P..U...X#
###########
MESSAGE Blocks, blocks, blocks everywhere!
###########
#...6D...##
#.P.UL...X#
###########
MESSAGE Time moves forward, so relentless. (Press x to rest in an empty block.)
###2######
###F######
P..U.2..X#
####.U####
Q.....####
(this is a cool way to trap the player on the side of the block without a turn-skipper
....2.....#
P...U.....#
Q##########)
)
(The Camper: this one is not trivial)
#######
###.##X
P..R4..
###6TTL
###.###
#######
(The Flip Flop: this one requires disruption)
#######
##...##
P..R1L#
##..6LX
###Q###
#######
(The Staircase: this one is nice and difficult and involves disruption)
#######
####6LX
P..R1L#
..6L.##
Q.R1L##
#######
MESSAGE Well done, you.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment