Note:  Although is completely free, the original Kye was Charity Ware. If you like what you see, please donate to any Charity that assists children. is a puzzlescript port of Kye, a puzzle game from the nighties.

Kye is notable because it combines elements that folk wisdom would tell you do not belong in puzzles: It is a real-time game, it has monsters that chase you around and levels tend to be large combinations of smaller sub-puzzles connected in some way. At its root it is a block-pushing puzzle, but the blocks have many behaviors and ways to interact with each other.

My intention was to make as close and accurate of a port as possible, while coding it in puzzlescript. It was initially just meant as a way to challenge myself (those familiar with both puzzlescript and Kye should know that puzzlescript was definitely not inteded as a way to reproduce Kye).

But with time it started to look like something more. First of all, since it is puzzle script, it runs in HTML5 so it's highly portable. It also has an undo button which makes playing Kye levels so much better. And the sprites scale up pretty well in puzzlescript. Other ports go for the smooth look, but there's something nice about the original, very pixelated sprites. Another thing about puzzlescript is that it is really easy to expand on existing scripts, source code is released under a permissive free  software license.  With some knowledge of the kye level format, you can add levels or even add new objects or modify the sprites in a very open way...

I want this to be a very good sample of the Kye experience. So that people can understand that it has a very powerful set of play pieces. It's really strange as a puzzle game. So I tried to make a nice selection of levels. I have taken a couple of levels from Colin Garbutt's original default.kye file. But I have also taken many levels from Colin Phipps' Python Kye site  and a couple of levels that I've made and released in the past, either as part of Xye or as "vexkye.kye". 


  •  up , down, left , right:  Move Kye around
  • X :  make the game go (slightly) faster : This is sometimes necessary in some levels that might require you to wait while something else happens.
  • Z or U : Undo
  • X while in a door's cell (Doors are vertical or horizontal red things that only allow movement in a particular direction, other objects other than Kye can't enter) . Create checkpoint (pressing R will take you here. To undo a checkpoint, press escape and select the level again in the level selector).

Although all of the rules and logic are compatible with vanilla puzzlescript, I had to use Auroriax Puzzle Script + fork for things such as case-sensitive characters in the level format and the larger sprites. As a bonus, there is a level selector you can easily access by pressing escape.

Unfortunately , the level format is not exactly equal to Kye's level format due to puzzlescript limitations. Basically, if you want to add existing Kye levels, you'd have to replace all the spaces in the level with a . (dot) character).

I've tried to make everything work as closely as possible as in Kye. However, there are some differences:

  • Some sprites were modified a bit to improve clarity:
    •  Clockwise/anti-clockwise turner sprites are flipped so that the symbol actually matches the movement.
    • Auto-Sliders have a more square shape, to further distinguish them from Auto-Rockies.
    • Added a red line to the Door sprites so that it is much easier to distinguish their direction.
  • As much as I tried to reproduce timings and movement direction priorities, it is simply impossible to do a 1:1 copy from Kye behavior in puzzlescript, So definitely don't expect to be able to play Colin Phipps' mystical.kye here.
  • Diagonal movement is NOT allowed. I don't think this is a very big deal, but the one level from shareware kye that required diagonal movement is now broken.
  •  Although does have 3 extra lives like in the Original Kye, there is no HUD  so you'll have to remember your number of lives.  I picked levels in which re-spawning is not necessary. Undoing a movement is much easier than relying on extra lives anyway...
  •  A lot of things are more deterministic than original Kye. There used to be a random or hard-to-predict element in some things like timer blocks.

Special thanks to jcGyo  for help with the movement logic.

If you want more Kye, take a look to "My Kye Page"  , it has some level sets, and info about other ports, including a modern Unity remake, a python version that works quite well in modern Operating systems and a really ridiculous fan sequel that adds way too many new objects and concepts.

I really hope you enjoy the included levels.

StatusIn development
Rated 5.0 out of 5 stars
(3 total ratings)
Made withPuzzleScript
TagsDemake, kye, made-with-puzzlescript

Development log


Log in with to leave a comment.

(3 edits)

I'm having a lot of fun so far! I might have to take a break and come back to this though, as I'm hopelessly stuck on a part of the level titled "ZOO". (Screenshot of trouble spot under the cut.)


You can get through that section by going along the section of five consumable blocks and waiting for the reflowing of the balls to let you push them out of the way. You'll discover there's a goldilocks strategy at play here where you've got to find the right number of yellow blocks to consume or else you'll trap yourself ;)

Thank you!

Hmmm.. I've now beaten everything in the pre-2.103 build but I can't seem to figure out Rounders.. Do I have to find a way to keep the blackhole in the south-west clear?

possible bug and spoilers below the fold:

I could be mis-reading the level intent (given that I haven't remotely figured it out!) but if you literally do nothing, the lone square-block seems to end up where you probably want it to be:

I'm assuming that you're supposed to trigger that by doing something like this (and sometimes when you do this, it can result in the pusher getting stuck in the little alcove to the right):

I think it's a bug, at the very beginning, the bouncers do something really strange if you pay attention. There are two bouncers that are perfectly aligned, but the bottom bouncer messes it up somehow.

Try with 4.107

Right, I think I know how to solve this one now, or at least how to get into the final stage of solving it. But I think the pushers in the Eastern section might still be bugged? 

Continued below (spoilers)

It's possible I'm triggering things in the wrong way, but in the screenshot below I end up like this — the vertical pusher isn't able to push the horizontal ones up any further, which prevents them from vaporising in the black hole.

Yeah,  I'll have to open up time to solve it in Xye and see what happens different. Seems I was overconfident regarding which levels would work.

(1 edit)

The Kye homepage has a screenshot of that level with three timer blocks in the bouncer area. I tried adding those to the level in the puzzlescript editor and it seemed to fix the issue above, though I'm now trying to puzzle out the rest of the solution, so perhaps I've only kicked the can down the road :)

edit: oops scrub that, I have now completed this monster of a level (phew) but it's the same issue as the first time round, where if you wait the bouncers will eventually just produce the solution without any player intervention. In this configuration, the collision between the vertical bouncer and the two horizontal ones seems to cause the lower horizontal one to desync from the upper one.

I don't understand , so are you able to beat the level in this version of the game without any modification to the level?

Regarding the behavior differences, it looks like it's impossible to make it work identically without adding a lot of lag to the game. I will likely tweak the level so that it works in this game.

These are really enjoyable! I found that on the level 'four' I could do some ninja shunting of arrow-circle-blocks so that as they popped out of the conical-flask-like-structure behind me, I could move down and up or left and right very quickly to stop them entering their opposite structure. I wasn't sure if that was part of the original game's mechanics or if I was abusing the slow tickrate of puzzlescript!

(2 edits)

It's part of the original game's mechanics, you can do the same stuff (and the tick rate is as slow, I can actually make the game twice faster in puzzlescript, but I chose it to make it work as close as possible to the original). It's usually not a great way to solve things by doing this stuff, and this is the main reason Xye has arrows that are faster than the player.

Great work! It reminds me of those days which I play kye long ago.