Puyo Puyo Compendium

From Puyo Nexus Wiki
Jump to: navigation, search
Puyo Puyo Compendium
Screenshot PuyoPuyoCompendium Battle.png
ModesStory, Versus, Endless

Puyo Puyo Compendium is the latest in the series of Puyo Puyo fangames from Xerodox. It is still in development and versions are being released as more things are completed. Puyo Puyo Compendium was started in 2008. The game's engine was originally written from scratch for the use of a sequel for Counter Conundrum (which was scrapped), but after several months of no development the engine was ripped apart and the base used for Puyo Puyo Compendium.

Graphics and Effects

Puyo Puyo Compendium currently uses graphics which are all completely designed by Soph. Her graphic skills are above any of the previous games in the series so far. The game uses 3D accelerated Puyo rendering to perform dynamic Puyo deformation, making it the first fan-game to properly implement Puyo squishing as it was in Puyo Puyo Fever. 3D is also used for magic attack trails, allowing them to streak across the screen to the destination while having a curved trail, which would've been inefficient with software rendering. The game engine currently has one working board, the Legacy Board. The soundtrack is still being finalized, but the current soundtrack spans a huge variety of Puyo Puyo games including both the Madou and Fever series. There are also some tracks from games in the Sinoc's Factory series, from Sinoc's Factory Fever upwards. All music is compiled by Koretetsu, and as part of the special event, he sequenced Rulue's Theme from Puyo Puyo~n as a track for the game, as well as worked on a Chiptune rendition of the Labyrinth music from Madou Monogatari.


Since Puyo Puyo Compendium is still in development, there are still plans that have or have not been carried out yet. Below is a rough listing of the plans for this game, which may change at any time:

This list may be out of date. Please help us by updating this list and removing this note.

  • Allow people to make custom characters, and give them as much room as the developers to make them.
  • Allow people to make Puyo themes.
  • Allow people to make boards. (stages)
  • Allow people to make sound effect themes.
  • Allow people to share custom content online via a game server.
  • Include a huge variety of modes to make the game highly customizable. This will go above the amount Sinoc's Factory 6 has, if possible.
  • Allow people to play each other online using a game server with emblems and rankings.
  • 60 characters to choose from with the final release.
  • 8 player mode offline (4 player online if possible).



Arrow keys
Change selection
Accept a menu choice
Cancel or exit


In-game controls are changeable at any time in the options menu. They can be set to keyboard or gamepad buttons. The default keys are shown below.

Player 1

Cursor key left/right
Move the piece left or right respectively.
Cursor key down
Move the piece down.
Rotate pieces clockwise or anti-clockwise respectively.

Player 2

A and D
Move the piece left or right respectively.
Move the piece down.
Rotate pieces clockwise or anti-clockwise respectively.


Puyo Puyo Compendium currently uses the same game mechanics as Puyo Puyo Fever. At current the game supports only two players, but there are plans for a maximum of eight offline, with four online. The only mode playable at the moment is Fever rules. You enter fever after getting seven counters and have to complete chains to get the next one. Puyo Puyo Compendium currently has 391 custom made fever chains (a total of 10 sets). These were created by Koretetsu largely, with contributions from Kumachom, the #1 Puyo Puyo player in both Japan and the World.

There are a wide range of endless modes to play from, with more to come as the game progresses. Currently classic endless, fever endless and constant fever work. There are also plans for Task and Puzzle modes.

Existing Modes

Below is a list of modes that currently are playable in Puyo Puyo Compendium. More are constantly being made and any suggestions from players are welcome for new modes.

  • Fever Rules
  • Classic Rules (Puyo Puyo Tsu)
  • Infinite Fever
  • Rotation
  • Sun Puyo
  • Point Puyo
  • Hard Puyo
  • Excavation
  • SFF Fever
  • Small Puyo
  • Big Puyo
  • Wildcard Puyo
  • Sudden Death
  • Accretion
  • Color Battle
  • Mania
  • Item (not complete)


Puyo Puyo Compendium's story mode will be split up into several locations, also known as "Stages". When the game is complete 19 different locations will exist all with their own music themes. Currently playable locations are below:

  • Legacy Stage
  • Desert Stage
  • Classroom Stage
  • PPF Stage
  • The Woods Stage

Custom Content

Puyo themes and sound effect themes are currently internal only. These will also be expanded on at a later date.

Custom Characters

The characters in the game are being created using a custom scripting language designed for Puyo Puyo Compendium. It allows the designer to animate their character in a huge range of ways and is incredibly flexible. One feature that no other Puyo game has yet is Puyo Puyo Compendium's character select animation. During the character select the characters can be scripted to show a small looping animation when the cursor is over them.

This scripting language, PPCScript, is currently available to the public. Documentation along with a custom packer is available for helping with the creation of characters. This enables people to fully create custom characters along with animations.


Starting from version 3.3, a character editor was released to the public for help with creating scripts. It is accessible from the options menu > character creator when running Puyo Puyo Compendium. It loads the unpacked character's scripts and resources for hassle free editing and testing before packing.


  • Syntax highlighting (color codes commands and parameters alike)
  • Syntax hinting (shows all the parameters required and the current one the user is filling)
  • Error highlighting (highlights incomplete commands and invalid ones)
  • Animation testing without packing
  • Saving/loading of scripts
  • Reloading of resources of any are edited

Custom Boards

Custom boards were introduced in version 3.1, however the scripting is still internal use only. The only use of this scripting language so far is the Puyo Puyo Fever style board. The scripting makes use of a new override system which lets the scripter move and change any element of the board. It is unknown as to when the scripting will be released to the public. Also, none of the commands are documented in the custom documentation yet.

Custom AI

As of version 3.6, an AI scripting language was incorporated into the game. It was tested in an earlier version but was too slow to keep running. It was discontinued until 3.6, when the interpreter was recoded to be much more efficient. The AI scripting is in the form of a psuedo-C style language, and is available to custom characters as well as the internal ones.

An example script is below:

#include "game.Player.exs";
#include "game.Rules.exs";
int game.AICore.challow;
int game.AICore.feverchain;
int game.AICore.maxchain;
int game.AICore.puyos;
int game.AICore.column;
int game.AICore.rotation;
  string debug;
  int boneness;
  int maxchain;
  int fc;
  fc = game.Player.fevercounters + 5;
  if (game.Rules.grid.width == 6) {
    random(boneness, 100);
  if (game.Player.infever == 0) {
    if (game.AICore.challow > 1) {
      game.AICore.challow = 6;
      if ((game.AICore.puyos > 20) && (game.AICore.puyos < 58)) {
        if (game.AICore.puyos < 50) {
          if (boneness <= game.AICore.puyos * fc) {
            if (game.AICore.maxchain > 1) {
              game.AICore.challow = game.AICore.maxchain;
          } else {
            if (game.AICore.maxchain > 1) {
              game.AICore.challow = game.AICore.maxchain;
            } else {
              random(challow, 2);
      if (game.AICore.puyos > 57) {
        game.AICore.challow = game.AICore.challow - 1;
      if (game.AICore.challow < 1) {
        game.AICore.challow = 1;
  } else {
    game.AICore.challow = game.Player.feverchain - 1;