The Game
The objective of the game is to push all the red gems to the goal squares, which are marked with green glassy round things on the floor.
Use the cursor keys or the mouse to move about. If you move onto a gem using the cursor keys or the middle mouse button, and there is nothing blocking it on the opposite side, then you will push the gem. It isn't possible to pull the gems, so if you push a gem into a corner it will be stuck there. You can't step over the gems either, so you can also get trapped in a part of the maze by blocking the way with gems. Also note that it isn't possible to push more than one gem at a time.
If you notice that you have moved the gems in such a way that the level is impossible to solve, then you can always use the undo feature to go back to a position where the mistake has not yet been made. You can of course also restart the level from the very beginning.

Controls
Key	Action
Cursor keys	Move one square in a direction
Cursor keys	Move as far as possible in a direction without pushing any gems
Cursor keys	Move as far as possible in a direction, pushing any gem in the way
Left mouse button	Move to any place in the maze that can be reached without pushing any gems
Middle mouse button or U	Undo the last move
Right mouse button	Move up/down/left/right in a straight line, pushing any gem in the way
Mouse wheel	Traverse the history
R	Redo the last undone move
N	Go to the next level in the current level collection
P	Go to the previous level in the current level collection
	Restart the current level
Q	Quit the game

Loading external levels
has the ability to load external sokoban levels from text files. You can load levels using the menu entry Game Load levels... , or by specifying the level file as a command line argument when starting from a shell.
The external levels must be defined using the standard characters shown in the table below. If the file contains more than one level, the levels should be separated by blank lines. The file may also contain text between the levels.
Character	Meaning
#	Wall
(space)	Empty square
.	Goal square
$	Object on an empty square
*	Object on a goal square
@	Start position on an empty square
+	Start position on a goal square
As an example, below is a text representation of the first level in the Microban level collection:

####
# .#
#  ###
#*@  #
#  $ #
#  ###
####