Skip to content

Instantly share code, notes, and snippets.

@Stingby12
Created December 27, 2025 18:29
Show Gist options
  • Select an option

  • Save Stingby12/2d8fb119f6a9941a4aa4ce7df643e1c1 to your computer and use it in GitHub Desktop.

Select an option

Save Stingby12/2d8fb119f6a9941a4aa4ce7df643e1c1 to your computer and use it in GitHub Desktop.
Monkey Sand Castles (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Monkey Sand Castles
author Stingby12
homepage www.puzzlescript.net
color_palette 5
run_rules_on_level_start
background_color darkblue
(
verbose_logging
)
========
OBJECTS
========
Background
yellow lightbrown
00000
01000
00000
00010
00000
Target
darkblue darkgreen
.....
.000.
.010.
.000.
.....
Water
blue lightblue
00000
01000
01000
00010
00010
Rock
lightgray gray white
00001
02001
00021
20001
11111
Player
brown lightbrown darkbrown
.000.
.010.
00200
.222.
.0.0.
Crate
green
00000
0...0
0...0
0...0
00000
LongCrateU
red
0...0
0...0
0...0
0...0
00000
LongCrateD
red
00000
0...0
0...0
0...0
0...0
LongCrateL
red
00000
....0
....0
....0
00000
LongCrateR
red
00000
0....
0....
0....
00000
CrateSd
darkbrown orange
11111
11101
11111
10111
11111
CrateSdU
darkgreen
00000
.....
.....
.....
.....
CrateSdD
darkgreen
.....
.....
.....
.....
00000
CrateSdL
darkgreen
0....
0....
0....
0....
0....
CrateSdR
darkgreen
....0
....0
....0
....0
....0
CrateSdUL
darkgreen
00...
00...
.....
.....
.....
CrateSdDL
darkgreen
.....
.....
.....
00...
00...
CrateSdUR
darkgreen
...00
...00
.....
.....
.....
CrateSdDR
darkgreen
.....
.....
.....
...00
...00
Rough
darkgray
RoughA
darkgray gray gray
01002
11022
00000
02001
22011
RoughB
darkgray gray gray
02001
22011
00000
01020
11220
RoughC
darkgray gray gray
01020
11220
00000
01020
11220
RoughD
darkgray gray gray
00010
02110
22000
01020
11220
RoughE
darkgray gray gray
00000
01020
11220
02010
22110
RoughF
darkgray gray gray
00000
00201
02211
01020
11220
RoughG
darkgray gray gray
00201
02211
00000
02010
22110
RoughH
darkgray gray gray
00101
01111
00000
02002
22022
=======
LEGEND
=======
. = Background
% = Rough
# = Water
§ = Rock
P = Player
$ = Player and Target
* = Crate
^ = LongCrateU
v = LongCrateD
< = LongCrateL
> = LongCrateR
@ = Crate and Target
U = LongCrateU and Target
D = LongCrateD and Target
L = LongCrateL and Target
R = LongCrateR and Target
O = Target
CrateSdULA = CrateSdU or CrateSdL
CrateSdDLA = CrateSdD or CrateSdL
CrateSdURA = CrateSdU or CrateSdR
CrateSdDRA = CrateSdD or CrateSdR
CrateSdBr = CrateSdU or CrateSdD or CrateSdL or CrateSdR or CrateSdUL or CrateSdDL or CrateSdUR or CrateSdDR
RoughDec = RoughA or RoughB or RoughC or RoughD or RoughE or RoughF or RoughG or RoughH
LongCrate = LongCrateU or LongCrateD or LongCrateL or LongCrateR
Crates = Crate or LongCrate
=======
SOUNDS
=======
startgame 99500108
endgame 6795308
startlevel 64229108
endlevel 36511508
Crates move 36772507
CrateSd move 64132307
CrateSd create 90053708
sfx0 92929504
sfx1 30706904
restart 3740902
================
COLLISIONLAYERS
================
Background
Rough
roughdec
Player, Water, Rock, Crate, LongCrate, CrateSd
CrateSdU
CrateSdD
CrateSdL
CrateSdR
CrateSdUL
CrateSdDL
CrateSdUR
CrateSdDR
Target
======
RULES
======
[ Rough no RoughDec ] -> [ Rough random RoughDec ] checkpoint
[ > Player | Crate ] -> [ > Player | > Crate ]
[ > Player | LongCrate ] -> [ > Player | > LongCrate ]
startloop
up [ moving LongCrateU | LongCrateD ] -> [ moving LongCrateU | moving LongCrateD ]
down [ moving LongCrateD | LongCrateU ] -> [ moving LongCrateD | moving LongCrateU ]
left [ moving LongCrateL | LongCrateR ] -> [ moving LongCrateL | moving LongCrateR ]
right [ moving LongCrateR | LongCrateL ] -> [ moving LongCrateR | moving LongCrateL ]
endloop
[ > LongCrate | Water ] -> cancel sfx1
[ > LongCrate | stationary Crates ] -> cancel sfx1
[ > LongCrate | CrateSd ] -> cancel sfx1
[ > LongCrate | Rock ] -> cancel sfx1
[ > Player | Rough ] -> [ Player | Rough ] sfx0
[ > Crates | Rough ] -> [ Crates | Rough ] sfx0
[ > Player | CrateSd ] -> [ > Player | > CrateSd ]
startloop
up [ moving CrateSd no CrateSdU | CrateSd no CrateSdD ] -> [ moving CrateSd | moving CrateSd ]
down [ moving CrateSd no CrateSdD | CrateSd no CrateSdU ] -> [ moving CrateSd | moving CrateSd ]
left [ moving CrateSd no CrateSdL | CrateSd no CrateSdR ] -> [ moving CrateSd | moving CrateSd ]
right [ moving CrateSd no CrateSdR | CrateSd no CrateSdL ] -> [ moving CrateSd | moving CrateSd ]
endloop
[ > CrateSd | Water ] -> cancel sfx1
[ > CrateSd | Crates ] -> cancel sfx1
[ > CrateSd | Rock ] -> cancel sfx1
up [ > CrateSd CrateSdU | CrateSd ] -> cancel sfx1
down [ > CrateSd CrateSdD | CrateSd ] -> cancel sfx1
left [ > CrateSd CrateSdL | CrateSd ] -> cancel sfx1
right [ > CrateSd CrateSdR | CrateSd ] -> cancel sfx1
[ moving CrateSd CrateSdBr ] -> [ moving CrateSd moving CrateSdBr ]
late [ Crates | Water ] -> [ CrateSd | Water ]
late [ Crates | CrateSd no CrateSdBr ] -> [ CrateSd | CrateSd ]
late up [ CrateSd no CrateSdU | no CrateSd ] -> [ CrateSd CrateSdU | ]
late down [ CrateSd no CrateSdD | no CrateSd ] -> [ CrateSd CrateSdD | ]
late left [ CrateSd no CrateSdL | no CrateSd ] -> [ CrateSd CrateSdL | ]
late right [ CrateSd no CrateSdR | no CrateSd ] -> [ CrateSd CrateSdR | ]
late up [ CrateSd no CrateSdU | CrateSd CrateSdD ] -> [ CrateSd CrateSdU | CrateSd CrateSdD ]
late down [ CrateSd no CrateSdD | CrateSd CrateSdU ] -> [ CrateSd CrateSdD | CrateSd CrateSdU ]
late left [ CrateSd no CrateSdL | CrateSd CrateSdR ] -> [ CrateSd CrateSdL | CrateSd CrateSdR ]
late right [ CrateSd no CrateSdR | CrateSd CrateSdL ] -> [ CrateSd CrateSdR | CrateSd CrateSdL ]
late up [ CrateSd no CrateSdULA no CrateSdUL | CrateSd CrateSdL no CrateSdD ] -> [ CrateSd CrateSdUL | CrateSd CrateSdL ]
late down [ CrateSd no CrateSdDLA no CrateSdDL | CrateSd CrateSdL no CrateSdU ] -> [ CrateSd CrateSdDL | CrateSd CrateSdL ]
late up [ CrateSd no CrateSdURA no CrateSdUR | CrateSd CrateSdR no CrateSdD ] -> [ CrateSd CrateSdUR | CrateSd CrateSdR ]
late down [ CrateSd no CrateSdDRA no CrateSdDR | CrateSd CrateSdR no CrateSdU ] -> [ CrateSd CrateSdDR | CrateSd CrateSdR ]
==============
WINCONDITIONS
==============
all Target on CrateSd
=======
LEVELS
=======
message Sand buckets turns solid when put near water.
message Level 1 / 7
#########
#.......#
#...#...#
#.......#
#.@.p.@.#
#.......#
#########
message Level 2 / 7
#########
###.o.###
###%%%###
###%%%###
#.......#
#.*.*.*.#
#.......#
#...p...#
#.......#
#..###..#
#########
message Level 3 / 7
###########
#§§§§§§§§§#
#§.......§#
#§.§*.*§.§#
#§.*.*.*.§#
#§.......§#
#§.#...#.§#
#§.......§#
#....p....#
#.........#
#§%%%§%%%§#
#§..ooo..§#
#§§§§§§§§§#
###########
message Level 4 / 7
#####§§###
#...§§§§%#
#....o§§§#
#.vv.o.§§§
#.^^.§oo§§
#.......§#
#..p.><..#
§§...><..#
§§§......#
#§§#######
message Level 5 / 7
#######
#.....#
#.v>l.#
#.^$v.#
#.r<^.#
#.....#
#######
message Level 6 / 7
#################
#.........#######
#.vv......#######
#.^^...*.%%%§§§§#
#....p...%%%%%%o#
#.><...*.%%%§§§§#
#.><......#######
#.........#######
#################
message Level 7 / 7
#################
##%%%%%%%%%%%%%##
#%%%%%%%........#
#%%%%%%%.*...vv.#
#.%%§%%%.*...^^.#
#o%§§§%%...p....#
#.%%§%%%.*...><.#
#%%%%%%%.*...><.#
#%%%%%%%........#
##%%%%%%%%%%%%%##
#################
message You did it !
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment