Skip to content

Instantly share code, notes, and snippets.

@increpare
Created March 24, 2025 12:42
Show Gist options
  • Save increpare/037453d40db2f3b7c9c82faa2d68896b to your computer and use it in GitHub Desktop.
Save increpare/037453d40db2f3b7c9c82faa2d68896b to your computer and use it in GitHub Desktop.
Pushbutton (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
noaction
========
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
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
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
======
[ moving player ] -> again
[ stationary player ButtonUp ] [ Player_Virtual ] -> [ player ButtonUp ] [ up Player_Virtual ]
[ stationary player ButtonDown ] [ Player_Virtual ] -> [ player ButtonDown ] [ down Player_Virtual ]
[ stationary player ButtonLeft ] [ Player_Virtual ] -> [ player ButtonLeft ] [ left Player_Virtual ]
[ stationary player ButtonRight ] [ Player_Virtual ] -> [ player ButtonRight ] [ right Player_Virtual ]
[ > anyPlayer | anyCrate ] -> [ > anyPlayer | > anyCrate ]
==============
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