Creating a crate that takes 2 tiles of size?

22 views
Skip to first unread message

ArchSinccubus

unread,
Oct 29, 2025, 11:48:26 AMOct 29
to PuzzleScript
So I want to rapid prototype an idea I have for a puzzle game. And for that, I want to be able to create a crate that's 2 tiles wide, and requires two player instances to push it together. Any idea on how I would do that?

ArchSinccubus

unread,
Oct 29, 2025, 7:23:10 PMOct 29
to PuzzleScript
So I got the basics to work, but now I'm in a different, related issue. 

I have a two block conglomerate. I push one part of it left with one player, and the other right with the other. They split anyway. Any way to fix that?

ArchSinccubus

unread,
Oct 29, 2025, 7:23:12 PMOct 29
to PuzzleScript
I got really close with this:

Title: Two-Player 2x1 Crate (fixed colors)
Author: Ursula 
===========
OBJECTS
===========

Background
#222222

Wall
#555555

Player
#00AA00

CrateLeft
#964B00

CrateRight
#A0522D

Target
#FFFF00

===========
LEGEND
===========

. = Background
# = Wall
P = Player
L = CrateLeft
R = CrateRight
X = Target

=======
SOUNDS
=======

===========
COLLISIONLAYERS
===========

Background
Target
Player, CrateLeft, CrateRight, Wall

===========
RULES
===========

[ down Player | CrateLeft ] [ down Player | CrateRight ] -> [ down Player | down CrateLeft ] [ down Player | down CrateRight ]

[ up Player | CrateLeft ] [ up Player | CrateRight ] -> [ up Player | up CrateLeft ] [ up Player | up CrateRight ]


But for some reason, the blocks will move with the players even if they're not being pushed? Like, if they're above the players and I move down, so they shouldn't move, they move with the players anyway. Any ideas as to why?
On Wednesday, October 29, 2025 at 5:48:26 PM UTC+2 ArchSinccubus wrote:

Chris Pickel

unread,
Oct 29, 2025, 7:48:56 PMOct 29
to ArchSinccubus, PuzzleScript
Those rules check that the player is moving up/down next to the crates, but don’t check that the movement is up/down towards the crates. What you’d want is:

down [ > Player | CrateLeft ] [ > Player | CrateRight ] -> [ > Player | > CrateLeft ] [ > Player | > CrateRight ]
up [ > Player | CrateLeft ] [ > Player | CrateRight ] -> [ > Player | > CrateLeft ] [ > Player | > CrateRight ]

These blocks will break apart when pushed against a corner. If you don’t want that, you might need to cancel movement:

[ > Solid | stationary Solid ] -> [ Solid | Solid ]
right [ stationary CrateLeft | moving CrateRight ] -> [ CrateLeft | CrateRight ]
right [ moving CrateLeft | stationary CrateRight ] -> [ CrateLeft | CrateRight ]

Although once the block reaches a corner, it becomes immovable, since there’s no way to get two players under it. Canceling movement like this also lets you simplify the pushing:

Title: Two-Player 2x1 Crate (fixed colors)
Author: Ursula
===========
OBJECTS
===========

Background
#222222

Wall
#555555

Player
#00AA00

CrateLeft
#964B00

CrateRight
#A0522D

CrateSolo
#A65840


Target
#FFFF00

===========
LEGEND
===========

. = Background
# = Wall
P = Player
L = CrateLeft
R = CrateRight
X = Target
S = CrateSolo
Crate = CrateLeft or CrateRight or CrateSolo
Solid = Player or Crate or Wall


=======
SOUNDS
=======

===========
COLLISIONLAYERS
===========

Background
Target
Player, Crate, Wall

===========
RULES
===========

[ > Player | Crate ] -> [ > Player | > Crate ]
[ > Solid | stationary Solid ] -> [ Solid | Solid ]
right [ stationary CrateLeft | moving CrateRight ] -> [ CrateLeft | CrateRight ]
right [ moving CrateLeft | stationary CrateRight ] -> [ CrateLeft | CrateRight ]

===============
WINCONDITIONS
===============

all Target on Crate

=======
LEVELS
=======

PPXX##
##LR..
......
..S...
.X####

--
You received this message because you are subscribed to the Google Groups "PuzzleScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puzzlescript...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/puzzlescript/4633fd02-b3a5-4e4c-bb47-075e9d6b29e8n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages