Skip to content

Instantly share code, notes, and snippets.

@Stingby12
Created December 23, 2025 13:44
Show Gist options
  • Select an option

  • Save Stingby12/85779c7d4023eea015c74a3da3103d6f to your computer and use it in GitHub Desktop.

Select an option

Save Stingby12/85779c7d4023eea015c74a3da3103d6f to your computer and use it in GitHub Desktop.
Silmutargets (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Silmutargets
author Stingby12
homepage https://stingby12.itch.io/
color_palette amiga
again_interval 0.05
(
verbose_logging
)
========
OBJECTS
========
Background
green darkgreen
11111
01111
11101
11111
10111
Target
darkblue darkgray
.....
.000.
.010.
.000.
.....
TargetX
blue
.....
.000.
.0.0.
.000.
.....
TargetHole
purple darkgray
.....
.000.
.010.
.000.
.....
TargetHoleX
pink
.....
.000.
.0.0.
.000.
.....
Wall
lightbrown brown
00010
11111
01000
11111
00010
Hole
brown darkbrown
11111
01111
11101
11111
10111
Box
orange red
00000
01110
01110
01110
00000
LongBoxU
yellow lightbrown
01110
01110
01110
01110
00000
LongBoxD
yellow lightbrown
00000
01110
01110
01110
01110
LongBoxL
yellow lightbrown
00000
11110
11110
11110
00000
LongBoxR
yellow lightbrown
00000
01111
01111
01111
00000
IceBox
lightblue #7281ba white
00200
01120
01112
21110
02000
Rock
gray lightgray #555555
.110.
11000
10002
00022
.022.
BoxHole
#770000 #550000
00000
01110
01110
01110
00000
IceBoxHole
blue darkblue lightgray
00200
01120
01112
21110
02000
RockHole
#555555 gray darkgray
.110.
11000
10002
00022
.022.
SlideTP
transparent
UpTP
transparent
DownTP
transparent
LeftTP
transparent
RightTP
transparent
UpTPHole
transparent
DownTPHole
transparent
LeftTPHole
transparent
RightTPHole
transparent
TurnTPCw
transparent
TurnTPCcw
transparent
TurnX
transparent
Void %
black
Zero 0
black white
00100
01010
01010
01010
00100
One 1
black white
00010
00110
01010
00010
00010
Two 2
black white
01100
00010
00100
01000
01110
Three 3
black white
01100
00010
01100
00010
01100
Four 4
black white
01010
01010
00110
00010
00010
Five 5
black white
01110
01000
01110
00010
01100
Six 6
black white
00110
01000
01100
01010
00100
Seven 7
black white
01110
00010
00110
00010
00010
Eight 8
black white
01110
01010
00100
01010
01110
Nine 9
black white
00110
01010
01110
00010
01100
Dash -
black white
00000
00000
01110
00000
00000
=======
LEGEND
=======
. = Background
# = Wall
* = Box
¤ = Rock
+ = IceBox
^ = LongBoxU
v = LongBoxD
< = LongBoxL
> = LongBoxR
O = Target
@ = Box and TargetX
$ = Rock and Target
~ = IceBox and TargetX
X = Hole
€ = BoxHole and Hole
§ = RockHole and Hole
£ = Box and RockHole and Hole
ç = IceBoxHole and Hole
Q = TargetHole and Hole
° = Target and Hole
! = Target and RockHole and Hole
? = TargetHole and RockHole and Hole
LongBox = LongBoxU or LongBoxD or LongBoxL or LongBoxR
Boxes = Box or IceBox or LongBox
BoxesHole = BoxHole or IceBoxHole
MoveTP = UpTP or DownTP or LeftTP or RightTP
MoveTPHole = UpTPHole or DownTPHole or LeftTPHole or RightTPHole
TurnTP = TurnTPCw or TurnTPCcw
Thing = Boxes or Rock
ThingHole = BoxesHole or RockHole
Player = Thing or ThingHole
UI = Void or Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine or Dash
Block = Wall or Boxes or Rock or UI
=======
SOUNDS
=======
Player move 36772507
ThingHole create 17684304
sfx0 55967707
endlevel 41005100
================
COLLISIONLAYERS
================
Background
Hole
TargetHole
ThingHole
TargetHoleX
Target
Boxes, Rock, Wall, UI
TargetX
TurnTP
TurnX
SlideTP
MoveTP
MoveTPHole
======
RULES
======
late [ Box Hole no ThingHole ] -> [ BoxHole Hole ]
late [ Rock Hole no ThingHole ] -> [ RockHole Hole ]
late [ IceBox Hole no ThingHole ] -> [ IceBoxHole Hole ]
late [ SlideTP Hole no ThingHole ] -> [ Hole ]
[ > ThingHole | no Hole ] -> [ ThingHole | ]
[ > Box | Wall ] -> [ Box | Wall ]
[ > Rock | Wall ] -> [ Rock | Wall ]
[ > Box | stationary Box ] -> [ Box | Box ]
[ > Rock | stationary Box ] -> [ Rock | Box ]
[ > Box | stationary Rock ] -> [ Box | Rock ]
[ > Rock | stationary Rock ] -> [ Rock | Rock ]
[ up IceBox ] -> [ up IceBox up UpTP up SlideTP ] again
[ down IceBox ] -> [ down IceBox down DownTP down SlideTP ] again
[ left IceBox ] -> [ left IceBox left LeftTP left SlideTP ] again
[ right IceBox ] -> [ right IceBox right RightTP right SlideTP ] again
up [ > Thing | IceBoxHole ] -> [ up Thing up UpTP up SlideTP | IceBoxHole ] again
down [ > Thing | IceBoxHole ] -> [ down Thing down DownTP down SlideTP | IceBoxHole ] again
left [ > Thing | IceBoxHole ] -> [ left Thing left LeftTP left SlideTP | IceBoxHole ] again
right [ > Thing | IceBoxHole ] -> [ right Thing right RightTP right SlideTP | IceBoxHole ] again
[ Thing UpTP SlideTP ] -> [ up Thing up UpTP up SlideTP ] again
[ Thing DownTP SlideTP ] -> [ down Thing down DownTP down SlideTP ] again
[ Thing LeftTP SlideTP ] -> [ left Thing left LeftTP left SlideTP ] again
[ Thing RightTP SlideTP ] -> [ right Thing right RightTP right SlideTP ] again
up [ up UpTP up SlideTP | stationary Block ] -> [ | Block ]
down [ down DownTP down SlideTP | stationary Block ] -> [ | Block ]
left [ left LeftTP left SlideTP | stationary Block ] -> [ | Block ]
right [ right RightTP right SlideTP | stationary Block ] -> [ | Block ]
up [ no IceBox up UpTP up SlideTP | no IceBoxHole ] -> [ | ]
down [ no IceBox down DownTP down SlideTP | no IceBoxHole ] -> [ | ]
left [ no IceBox left LeftTP left SlideTP | no IceBoxHole ] -> [ | ]
right [ no IceBox right RightTP right SlideTP | no IceBoxHole ] -> [ | ]
[ up IceBoxHole ] -> [ up IceBoxHole up UpTPHole ] again
[ down IceBoxHole ] -> [ down IceBoxHole down DownTPHole ] again
[ left IceBoxHole ] -> [ left IceBoxHole left LeftTPHole ] again
[ right IceBoxHole ] -> [ right IceBoxHole right RightTPHole ] again
[ IceBoxHole UpTPHole ] -> [ up IceBoxHole up UpTPHole ] again
[ IceBoxHole DownTPHole ] -> [ down IceBoxHole down DownTPHole ] again
[ IceBoxHole LeftTPHole ] -> [ left IceBoxHole left LeftTPHole ] again
[ IceBoxHole RightTPHole ] -> [ right IceBoxHole right RightTPHole ] again
up [ up IceBoxHole up UpTPHole | stationary ThingHole ] -> [ IceBoxHole | ThingHole ]
down [ down IceBoxHole down DownTPHole | stationary ThingHole ] -> [ IceBoxHole | ThingHole ]
left [ left IceBoxHole left LeftTPHole | stationary ThingHole ] -> [ IceBoxHole | ThingHole ]
right [ right IceBoxHole right RightTPHole | stationary ThingHole ] -> [ IceBoxHole | ThingHole ]
up [ up IceBoxHole up UpTPHole | no Hole ] -> [ IceBoxHole | ]
down [ down IceBoxHole down DownTPHole | no Hole ] -> [ IceBoxHole | ]
left [ left IceBoxHole left LeftTPHole | no Hole ] -> [ IceBoxHole | ]
right [ right IceBoxHole right RightTPHole | no Hole ] -> [ IceBoxHole | ]
startloop
up [ > LongBoxU | > LongBoxD | stationary Block ] -> [ LongBoxU | LongBoxD | Block ]
down [ > LongBoxD | > LongBoxU | stationary Block ] -> [ LongBoxD | LongBoxU | Block ]
left [ > LongBoxL | > LongBoxR | stationary Block ] -> [ LongBoxL | LongBoxR | Block ]
right [ > LongBoxR | > LongBoxL | stationary Block ] -> [ LongBoxR | LongBoxL | Block ]
up [ > LongBoxL | stationary Block ] -> [ > LongBoxL TurnTPCw | Block ]
up [ > LongBoxR | stationary Block ] -> [ > LongBoxR TurnTPCcw | Block ]
down [ > LongBoxR | stationary Block ] -> [ > LongBoxR TurnTPCw | Block ]
down [ > LongBoxL | stationary Block ] -> [ > LongBoxL TurnTPCcw | Block ]
left [ > LongBoxU | stationary Block ] -> [ > LongBoxU TurnTPCw | Block ]
left [ > LongBoxD | stationary Block ] -> [ > LongBoxD TurnTPCcw | Block ]
right [ > LongBoxD | stationary Block ] -> [ > LongBoxD TurnTPCw | Block ]
right [ > LongBoxU | stationary Block ] -> [ > LongBoxU TurnTPCcw | Block ]
up [ TurnTP LongBoxU | moving LongBoxD ] -> [ TurnTP LongBoxU | LongBoxD ]
down [ TurnTP LongBoxD | moving LongBoxU ] -> [ TurnTP LongBoxD | LongBoxU ]
left [ TurnTP LongBoxL | moving LongBoxR ] -> [ TurnTP LongBoxL | LongBoxR ]
right [ TurnTP LongBoxR | moving LongBoxL ] -> [ TurnTP LongBoxR | LongBoxL ]
endloop
right [ TurnTPCw LongBoxR | TurnTPCcw LongBoxL ] -> [ LongBoxR | LongBoxL ]
right [ TurnTPCcw LongBoxR | TurnTPCw LongBoxL ] -> [ LongBoxR | LongBoxL ]
down [ TurnTPCw LongBoxD | TurnTPCcw LongBoxU ] -> [ LongBoxD | LongBoxU ]
down [ TurnTPCcw LongBoxD | TurnTPCw LongBoxU ] -> [ LongBoxD | LongBoxU ]
late right [ LongBoxR TurnTPCcw | LongBoxL ] -> [ | LongBoxU TurnX ] sfx0
late right [ LongBoxR | TurnTPCw LongBoxL ] -> [ LongBoxU TurnX | ] sfx0
late right [ LongBoxR TurnTPCw | LongBoxL ] -> [ | LongBoxD TurnX ] sfx0
late right [ LongBoxR | TurnTPCcw LongBoxL ] -> [ LongBoxD TurnX | ] sfx0
late down [ LongBoxD TurnTPCcw | LongBoxU ] -> [ | LongBoxL TurnX ] sfx0
late down [ LongBoxD | TurnTPCw LongBoxU ] -> [ LongBoxL TurnX | ] sfx0
late down [ LongBoxD TurnTPCw | LongBoxU ] -> [ | LongBoxR TurnX ] sfx0
late down [ LongBoxD | TurnTPCcw LongBoxU ] -> [ LongBoxR TurnX | ] sfx0
late up [ LongBoxU TurnX | ] -> [ LongBoxU | LongBoxD ]
late down [ LongBoxD TurnX | ] -> [ LongBoxD | LongBoxU ]
late left [ LongBoxL TurnX | ] -> [ LongBoxL | LongBoxR ]
late right [ LongBoxR TurnX | ] -> [ LongBoxR | LongBoxL ]
late [ Boxes Target no MoveTP ] -> [ Boxes TargetX ]
late [ TargetX no Boxes ] -> [ Target ]
late [ BoxesHole TargetHole no MoveTP ] -> [ BoxesHole TargetHoleX ]
late [ TargetHoleX no BoxesHole ] -> [ TargetHole ]
late [ MoveTP no SlideTP ] -> []
late [ MoveTPHole no IceBoxHole ] -> []
==============
WINCONDITIONS
==============
no Target
no TargetHole
=======
LEVELS
=======
message Boxes are going on Target-covering aventures !
1-1%%%%%%
#########
#.......#
#.*...o.#
#...#...#
#.*...o.#
#.......#
#########
message Remember the motto : All targets must be covered !
1-2%%%%%%
#########
#.......#
#.*...o.#
#...#...#
#.@.....#
#.......#
#########
message Wall in the way
1-3%%%%
#######
#ooooo#
#.....#
#.....#
#..#..#
#.....#
#.....#
#*****#
#######
message Rocks don't really understand what boxes are going for...
1-4%%%%%
########
#..*¤¤o#
##.#####
.#.#....
.###....
message ...but they are still happy to help each-other out.
1-5%%%%%%
#########
#.......#
#..#o#.*#
#¤.###..#
#..#o#.*#
#.......#
#########
message Stand up
1-6%%%%%
########
#.....##
#......#
#o.....#
#......#
#....*¤#
#o...¤*#
########
message Pipe cleaning
1-7%%%%
#######
#.....#
#.#*#.#
###¤###
..#¤#..
..#¤#..
..#¤#..
..#¤#..
..#¤###
..#o..#
..#####
message Duo
1-8%%%%
#######
#o....#
#.....#
##*.¤.#
.#.#..#
.#*.¤.#
.#....#
.#...o#
.######
message Catch the star
1-9%%%%%%
#########
#.......#
#.#o#...#
#.o#o...#
#.#o#...#
#......¤#
#.....**#
#....¤**#
#########
message Beware ! Faulty terrain !
2-1%%%%%%%%
###########
#.....x...#
#..*.x....#
#.¤...x.o.#
#..*.x....#
#.....x...#
###########
message Separate
2-2%%%%%%%%
###########
#...x.....#
#.o.x.*...#
#...#..¤..#
#.o.x...*.#
#...x.....#
###########
message Rider
2-3%%%%%%%
##########
#...¤.xxx#
#.*.¤.xxx#
#...¤.xxx#
######xxx#
#....xxxx#
#.o..xxxx#
#....xxxx#
##########
message Darker targets are set inside holes. Lighter targets are set just above holes.
2-4%%%%%
########
#x.....#
#°...*.#
#x.#.¤.#
#q...*.#
#x.....#
########
message Spots
2-5%%%%%%%%%%
#########....
xx......#####
xx*¤*¤..q.q.#
xx*¤*¤.#.q.q#
xx*¤*¤..q.q.#
xx......#####
#########....
message String
2-6%%
#####
#qxq#
#x#x#
#qxq#
#*###
#*#..
#¤#..
#¤#..
#¤#..
#*#..
#*#..
###..
message Divide
2-7%%%%%%
#########
#x°x°x°x#
#x..#..x#
#x.....x#
#x.***.x#
#x.***.x#
#########
message Printer
2-8%%%%%%%%%%%%%%%%%
####################
#xqqqx........¤***¤#
#qxqxq........*¤*¤*#
#qqqqq......#.*****#
#qxxxq........*¤¤¤*#
#xqqqx........¤***¤#
####################
message These ice boxes are sliperry !
3-1%%%%%%
#######..
#.....#..
#..*..#..
#.....###
#.....oo#
#.....###
#..+..#..
#.....#..
#######..
message It must stop at the target.
3-2%%%%%%
#########
#.......#
#...+...#
#...o...#
#.¤...¤.#
#.......#
#########
message Ice statue
3-3%%%%%
########
###....#
#....#.#
#....#.#
#......#
#oo....#
#~~++..#
########
message Transport
3-4%%%%%%%%%
############
#......#..o#
#......#...#
#......#...#
#.....xxxxx#
#.....######
#.+¤+.#.....
#.....#.....
#######.....
message Meteor
3-5%%%%%%
#########
#*+.....#
#++.....#
#..xx...#
#..xx..##
#.......#
#.....oo#
#...#.oo#
#########
message Thin ice
3-6%%%%%%%%
###########
#xxxxxxxxx#
#x.......##
#x.çççççç#ç
#x.ç.....##
#x.ç..o..x#
#x.ç.*@*.x#
#x.ç..o..x#
#x.ç.....x#
#x###xxxxx#
###ç#######
message Liquid
3-7%%%%%%
#########
#+++#ooo#
#+++#ooo#
#+++.ooo#
##.#.####
.#.#...#.
.#.###.#.
.#.....#.
.#######.
message Twice the charm
3-8%%%%%%%%
###########
#¤...ç...¤#
#.........#
#.........#
#...+.o...#
#ç...¤...ç#
#...o.+...#
#.........#
#.........#
#¤...ç...¤#
###########
message A longer box now ? It seems to act the same as the regular ones, but what's with the target placement ?
4-1%%%%%%
#########
#.......#
#.o..><.#
#.o.....#
#...#...#
#########
1-3%%%%
#######
#ooooo#
#ooooo#
#.....#
#..#..#
#.....#
#vvvvv#
#^^^^^#
#######
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment