Skip to content

Instantly share code, notes, and snippets.

@increpare
Created March 24, 2025 11:21
Show Gist options
  • Save increpare/b92f0fdbbc97d43dcd07aaa1dc801c93 to your computer and use it in GitHub Desktop.
Save increpare/b92f0fdbbc97d43dcd07aaa1dc801c93 to your computer and use it in GitHub Desktop.
Untitled PuzzleScript Script
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Pushbutton
author increpare
homepage www.increpare.com
verbose_logging
debug
run_rules_on_level_start
========
OBJECTS
========
Background_Real
lightgray gray
00000
00000
00100
00000
00000
Target
darkblue
.....
.000.
.0.0.
.000.
.....
Wall
darkblue darkgreen
00000
01110
01010
01110
00000
Player
yellow brown darkred darkbrown
.000.
.111.
22222
.222.
.3.3.
Crate
orange
00000
0...0
0...0
0...0
00000
Background_Virtual
white gray
00000
00000
00100
00000
00000
Target_Virtual
#00ffff
.....
.000.
.0.0.
.000.
.....
Wall_virtual
#AA5500 #AA0000
00000
01110
01010
01110
00000
Player_Virtual
#000000 #ffff00 #0000ff #000000
.000.
.111.
22222
.222.
.3.3.
Crate_virtual
#FF55FF
00000
0...0
0...0
0...0
00000
Cursor
white
0...0
.....
.....
.....
0...0
ButtonUp
transparent yellow red
00100
01110
00000
00000
00000
ButtonDown
transparent yellow red
00000
00000
00000
01110
00100
ButtonLeft
transparent yellow red
00000
01000
11000
01000
00000
ButtonRight
transparent yellow red
00000
00010
00011
00010
00000
crate_button_up
green yellow red
00100
01110
00000
00000
00000
crate_button_down
green yellow red
00000
00000
00000
01110
00100
crate_button_left
green yellow red
00000
01000
11000
01000
00000
crate_button_right
green yellow red
00000
00010
00011
00010
00000
old_player_pos
red
=======
LEGEND
=======
button = ButtonUp or ButtonDown or ButtonLeft or ButtonRight
background = Background_Real or Background_Virtual
anyPlayer = Player or Player_Virtual
anyTarget = Target or Target_Virtual
anyCrate = Crate or Crate_virtual or crate_button_up or crate_button_down or crate_button_left or crate_button_right
anywall = wall or Wall_virtual
obstacle = anywall or anycrate
. = Background_Real
# = Background_Real and Wall
P = Background_Real and Player
* = Background_Real and Crate
@ = Background_Real and Crate and Target
O = Background_Real and Target
u = Background_Real and ButtonUp
d = Background_Real and ButtonDown
l = Background_Real and ButtonLeft
r = Background_Real and ButtonRight
z = Background_Virtual
x = Background_Virtual and Wall_virtual
c = Background_Virtual and Player_Virtual
v = Background_Virtual and Crate_virtual
b = Background_Virtual and Crate_virtual and Target_Virtual
n = Background_Virtual and Target_Virtual
=======
SOUNDS
=======
Crate move 36772507
================
COLLISIONLAYERS
================
Background_Real, Background_Virtual
button, Target, Target_Virtual
anyCrate, anyPlayer, anywall
Cursor
old_player_pos
======
RULES
======
[ stationary player ] -> [ player old_player_pos ]
[ action player ] -> [ player old_player_pos ]
[ ButtonUp ] -> [ up ButtonUp ]
[ ButtonDown ] -> [ down ButtonDown ]
[ ButtonLeft ] -> [ left ButtonLeft ]
[ ButtonRight ] -> [ right ButtonRight ]
[ stationary player > button ] [ Player_Virtual ] -> [ player > button ] [ > Player_Virtual ]
[ moving button ] -> [ stationary button ]
[ > anyPlayer | anyCrate ] -> [ > anyPlayer | > anyCrate ]
late [ player button no old_player_pos ] -> again
late [ old_player_pos ] -> [ ]
late [ crate_button_up ] -> [ ButtonUp ]
late [ crate_button_down ] -> [ ButtonDown ]
late [ crate_button_left ] -> [ ButtonLeft ]
late [ crate_button_right ] -> [ buttonRight ]
late up [ ButtonUp ] [ Player_Virtual | anywall ] -> [ crate_button_up ] [ Player_Virtual | anywall ]
late down [ ButtonDown ] [ Player_Virtual | anywall ] -> [ crate_button_down ] [ Player_Virtual | anywall ]
late left [ ButtonLeft ] [ Player_Virtual | anywall ] -> [ crate_button_left ] [ Player_Virtual | anywall ]
late right [ ButtonRight ] [ Player_Virtual | anywall ] -> [ crate_button_right ] [ Player_Virtual | anywall ]
late up [ ButtonUp ] [ Player_Virtual | obstacle | obstacle ] -> [ crate_button_up ] [ Player_Virtual | obstacle | obstacle ]
late down [ ButtonDown ] [ Player_Virtual | obstacle | obstacle ] -> [ crate_button_down ] [ Player_Virtual | obstacle | obstacle ]
late left [ ButtonLeft ] [ Player_Virtual | obstacle | obstacle ] -> [ crate_button_left ] [ Player_Virtual | obstacle | obstacle ]
late right [ ButtonRight ] [ Player_Virtual | obstacle | obstacle ] -> [ crate_button_right ] [ Player_Virtual | obstacle | obstacle ]
==============
WINCONDITIONS
==============
all anyTarget on anyCrate
=======
LEVELS
=======
####..
#.O#..
#..###
#@P..#
#..*.#
#..###
####..
xxxxxx
xznxxx
xzzxxx
xbczzx
xzzvzx
xzzxxx
xxxxxx
######
#....#
#.u..#
#l.rp#
#.d..#
#....#
######
xxxxxx
xznxxx
xzzxxx
xbczzx
xzzvzx
xzzxxx
xxxxxx
######
#.up##
#ldr##
######
(if your player can't move, then the buttons become solid and pressable)
xxxxxxxxxxx
xzzzzzzzzzx
xzzzzzzzzzx
xzznzvzczzx
xzzzzzzzzzx
xzzzzzzzzzx
xxxxxxxxxxx
###########
#.........#
#..u......#
#.l.r.p...#
#..d......#
#.........#
###########
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment