Nullpo NetPlay Server v7.5 (2 players online)
          player + server statistics

Current Version: v7.5.0 (mirror)
Download this if you want to play NullpoMino. (Windows Installer)
This is the current official release / last stable build.
Alternative downloads (Mac / Linux / all OS): dmg / tarball / zip

External Links:
 - Comprehensive Installation and Game Guide
 - Description of all Game Modes
 - NullpoMino Project at Google Code:
    latest stable releases, SVN revisions, bugtracker, etc.
 - Development Blog (Version 8)
 - more info and discussion at TC and HD

Development IRC Channel:
#nullpo at (webchat)

SVN Nightly Builds: see here
Server Is Back 2012-04-13
Good News, Everyone!
After a day or two of downtime, the netplay server is now back online, enjoy.

Also note that you can find an alternative NullpoMino netplay server at
Server Statistics 2011-09-10
The netplay server code has been modified to be able to track player statistics.
The new stats page gives an overview of who are the most active players for multiplayer, singleplayer or just idling on the server. There are also some nice plots of "number of players online" over time.
Another addition is the live room list in webpage form, which allows to check easily what is going on online, without actually having to open the NullpoMino client.

Enjoy the new features!
v7.5.0 2011-01-21
The highly anticipated version 7.5.0 of NullpoMino is finally out!
Thanks to the whole dev team for this great effort, bringing you the best customizable tetris game out there! Especially NetPlay has undergone a lot of improvements, including many more single player modes, which allow you to compete online with your friends for new highscores. runs the official NetPlay server, so get on there and break some records!

Version 7.5.0 (2011/01/21) {r518-r716; Stable Release} #This version is NO LONGER compatible with 7.4.0 netplay server. +Swing/Slick: Added screen resize options. +Slick/SDL: Added Mode Folders to 1P Start menu, with featured modes at the start. +Slick: LWJGL updated to version 2.6. +Added DIG CHALLENGE mode. +Practice: Added "Hebo Hidden" option. +AI: Added "Avalanche-R" AI for Avalanche modes, "Combo Race" AI for Combo Race, and "Ranks AI". Also added Ranks AI Tool. +New "Sticky" mino skins +NetServer: Much more stable! 100% CPU bug fixed. #Enhanced Netplay features: +Improved rated system, no longer requires rule lock, instead uses server preset game types +Added MARATHON, MARATHON+, EXTREME, DIG RACE, COMBO RACE, ULTRA, TECHNICIAN, and TIME ATTACK to Netplay 1P modes +Single player modes have a leaderboard for all rules, including those not rated +Lobby and rooms now have chat history +Team colors in Netplay games +Support for changing the hole change rate in Fractional garbage style based on the number of live players. *Various other tweaks to improve the experience -Fixed PoochyBot, "No Prethink" variations are no longer needed. Instead, No Prethink is an option in the AI menu. -Fixed many, many bugs. *New icons! Default is made by gif. Another one in the file is made by virulent. *Moved some additional documents to "doc" directory. Readme files and LICENCE.txt are still in root directory. #And maybe more... See doc/svnlog7_5_0.txt for SVN log.

Download: v7.5.0 (mirror) [Windows Installer]
              dmg (mirror) [Mac]
              tarball (mirror) [Linux]
              zip archive (mirror) [all OS]
SVN Build Auto Update Script 2011-01-07
I wrote a little batch script for windows, which downloads the newest svn build and applies all previous config files, logs + replays to the new version. It then replaces the old directory to perform a seamless update. It uses wget and 7zip, so make sure you have those on your system. Please save the script to the base directory where your nullpo svn build directory is located. Before running the script, please adjust it to fit your system configuration.

Note: If the script is run with one commandline parameter (e.g. -nodl), it does not perform a fresh download, but directly takes the in the current directory.

Download: auto update batch script (for current svn builds)
Nightly SVN Builds 2011-01-04
I added nightly svn builds of NullpoMino to the system. They are a compiled snapshot of the current codebase revision, including the jar, for easy testing. This zip is updated every day at 8am GMT and can be downloaded by the static link below. It can also be found here as a zip with the revision number tag in the filename.
Feel free to test the new 7.5 version, which is almost ready for release.

I also updated the netplay server for It is now compatible with the current svn build and can be used with the new 7.5 version client. So please especially test netplay and report any new bugs you might find to us.

Download: current svn build
v7.4.0 2010-10-29
A new version (7.4.0) of NullpoMino has arrived (unstable build).
Thanks to all involved for this great new release!
I brought the nullpo server back, running the new 7.4.0 version for now. Let's hope it behaves this time. (100% CPU issue) So get on there and set some highscores on the new leaderboard!

This version is NO LONGER compatible with 7.3.0 netplay server. +Swing/Slick/SDL: Added bigger side-preview option (Enable both "SHOW NEXT ON SIDE" and "BIG SIDE NEXT" in the general options screen) +Swing/Slick/SDL: Can use different keyboard mappings in menu screens (This is in debate. Your feedback helps us.) +Swing/Slick/SDL: Default rotation is now left instead of auto. You may want to go "GAME TUNING" menu and check or change "A BUTTON ROTATE" option. +Swing/Slick/SDL: Added recommended-rule selector (appears after you select a mode). +Slick/SDL: Can reconfigure each button individually in keyboard settings screen +Slick/SDL: First-time setup screens are no longer present (Default keyboard mappings are Blockbox style) +Slick/SDL: Mouse support in some menus (Incomplete) +Slick: Added "NullpoMino.exe" executable file which will start Slick version +Avalanche/SPF: Added bigger screen option to Avalanche and SPF modes +New mino skins (Thanks 4matsy!) #Enhanced Netplay features: +Ranked Room and Leaderboard +View lobby while in a room +"NetAdmin", the administrator tool of NetServer, can ban/kick a player, can delete a record from leaderboard, and can delete any room. +Online single player room (WIP. Currently supports LINE RACE and SCORE RACE modes.)

Download: v7.4.0 (mirror)
v7.3.0 2010-08-09
#This version is NO LONGER compatible with 7.2.0 netplay server. +Swing/Slick/SDL: When saving replays, a replay folder will be created if one is not found. +Swing/Slick/SDL: Fixed location of NEXT piece when spawn offset is non-zero. +Swing/Slick/SDL: Added option to display NEXT pieces on side of playfield. +Slick: Added PERFECT FPS option (uses more CPU, does not work in menus). +Slick: LWJGL updated to version 2.5, Slick updated to build 274 +Added COMBO RACE, SQUARE, RETRO MASTERY, AVALANCHE 1P, AVALANCHE 1P FEVER MARATHON, AVALANCHE VS-BATTLE, AVALANCHE VS FEVER MARATHON, AVALANCHE VS DIG RACE, PHYSICIAN, PHYSICIAN VS-BATTLE, and SPF VS-BATTLE modes. Modes for other gametypes are either Release Candidate (AVALANCHE, PHYSICIAN) or Beta (SPF). Special thanks to Puyo Nexus for supplying Fever chain data. +Added SQUARE, AVALANCHE, PHYSICIAN, and SPF rules +Renamed CLASSIC MARATHON to RETRO MARATHON +Randomizer: Randomizers have been replaced. This breaks all replays prior to this release. +Sequencer: Added "Set piece enable" dialog. +AI: Added "Defensive" and "No Prethink" versions of PoochyBot +Engine: Added support for AVALANCHE, PHYSICIAN, and SPF type games +Engine: Added rainbow blocks and rainbow gem blocks support +Engine: Added delay canceling to properly simulate DTET and STANDARD-SUPER3 rules +Engine: Added DAS charge on blocked move, neutral DAS store and DAS redirect in delays to properly simulate NINTENDO family rules +Engine: Added Instant DAS and shift lock +Engine: Added hard block and hard garbage support +NetPlay/NetServer: Added more room creation options, separated options into tabs Garbage: B2B separation, hole change rate, toggle change rate per attack, combo block, garbage countering Bonus: Spin check type, all clear bonus -NetPlay: Now correctly forces 60 FPS in SDL version -NetPlay: Saves chat logs even when game window is closed or Java process is killed -NetPlay: You can see opponent's HOLD/NEXT pieces in any-rule 2 players game now. -NetServer: Fixed "ghost room" bug -Slick/SDL: Fixed bug where replay screen could crash if replays were deleted. +Added STANDARD-HOLDNEXT rule +Added more maps (Thanks Jenn, SecretSalamender and Magnanimous!) *Added Mac/Linux boot scripts. (Thanks croikle!) *Renamed Standard-GIZA rule to fit naming convention. *Restored JRE 1.5 compability *[Internal change] Main package changed to *[Internal change] Documentation is being translated to English.

Download: v7.3.0 (mirror)
v7.2.0 2010-06-19
#This version is NO LONGER compatible with 7.1.* netplay server. +Slick/SDL: Added new title screen. (Thanks Zircean!) +Swing/Slick/SDL: Added "Outline Ghost Piece" option. If enabled, ghost piece will be outline-styled instead of darker image of the piece. +NET-VS MAP EDIT: Added "GRAY->?" tool. When used, it will change all gray blocks on the field to different colors. +NetPlay/NetServer: It now compresses rule, map, and (if needed) field data. It will reduce a lot of packet size. -Slick: Restores title-bar texts when you come back to title screen. (Previously, name of game mode was still displayed even if you come back to the title screen) -NetPlay: Fixed tripcode spoof bug. (Thanks Wojtek!) -NetPlay: Fixed a bug that room list doesn't get cleared after you disconnect. (Thanks hebo-MAI!) -NetServer: Fixed a CPU 100% causing bug on onAccept() -GRADE MANIA 2: Leaderboard is no longer displayed when 20G option is used. (Thanks 2ch thread >>779!) *Updated hebo-MAI's rule, "StandardGIZA". Now it has faster softdrop speed. *AIs no longer not affect leaderboards. Replay file is still created. (Thanks SWR!) *[Internal change] All AIs (including PoochyBot) now extends DummyAI class instead of implementing AIPlayer interface. So, no changes are required to AIs when AIPlayer adds something. *[Internal change] PoochyBot/Crypt: Moved to different packages ( and, respectively)

Download: v7.2.0
v7.1.0 2010-06-15
#This version is NO LONGER compatible with 7.0.* netplay server. #I, the NullpoMino author, will use the name "NullNoname !bzEQ7554bc" from this version. +Added PoochyBot v1.21. Read "PoochyBot Readme.txt" for details. Thanks Poochy! (I added some Javadocs to suppress compiler warnings, but the code itself is same) +Swing/NetPlay: "Watch" feature now works with Swing version. +NetPlay: Added three new game stats: KO, Wins, and Games. KO: Number of players you knocked out in this game Wins: Total number of win/1st place (Reset to zero when you exit the room) Games: Total number of games you played in this room (Reset to zero when you exit the room) +NetPlay: Chat log is automatically saved inside the log directory. +NetServer: Added Tripcode system. A tripcode is a hashed password by which a person can be identified by others. To use it, you can enter #tripcode (password followed by a sharp) to your nickname field. (Wikipedia article: +NetServer: Added an option to display IP/Hostname in various ways. Both plaintext and hashcode are supported. Open "config/etc/netserver.cfg" with any text editor to adjust settings of your server. +Added hebo-MAI's rule, "StandardGIZA". (Thanks hebo-MAI!) -PHANTOM MANIA: Fixed grade re-award (or re-flash) bug. (Thanks Zircean!) -GRADE MANIA 3: Fixed GM-awarded-when-it-shouldn't bug. (Thanks Zircean!) MM grade with GM performance will be shown as flashing MM on results screen. -NetPlay: Doesn't stop BGM when one of opponents dies in 3P+ match (Thanks SWR!) -NetPlay: "Sit out from game" and "Change Team" buttons are enabled as soon as you die. *NetServer: Disconnect the client when message send fails (workaround for CPU 100% bug) *NetServer: Cleans up every list (including room list and player list) when everyone disconnects. (This is an workaround for ghost room bug) *NetPlay: Applied Wojtek's new fractional garbage system patch (60 denominator) *All log files are created inside the log directory.

Download: v7.1.0
v7.0.2 2010-06-06
#This version is still compatible with 7.0.0 netplay server. There is no change to the server. +NetPlay: Added tool-tips to some of Create Room options. -NetPlay: Fixed a bug that sometimes your block skin gets overwritten. -NetPlay: Fixed a bug that your default room settings get overwritten when you click "View Setting" button in an other player's room. -I forgot to include various libraries in the previous version (ouch!). Included again from this version. Looks like I was sleepy when I uploaded 7.0.1. I didn't notice that some libraries are not included until this morning. Sorry for any inconvenience.

Download: v7.0.2
v7.0.1 2010-06-05
#This version is still compatible with 7.0.0 netplay server. There is no change to the server. +Added an update checker. When new version is available, it will notify you on the title screen (or mode select screen in case of Swing version). Currently settings screen is only available on Swing version. By default, it uses Burbruee's XML file on dropbox to check updates, but it can be changed via Swing version's setting screen. +Added "previews above shadow" option to all three versions. (Thanks Wojtek!) +Slick: Keyboard settings now displays actual key names. +NetPlay: Added "View Setting" button to room screen. It lets you to view the settings of your current room without having to leave. -NetPlay: Disable "Join/Sit out" buttons after clicked until the server makes a response. (Again thanks Wojtek!) -NetPlay: Disable "Sit out from game" and "Change Team" buttons after the match starts, because they do nothing during the game. *NetPlay: Better garbage meter for fractional garbage system. *Updated STANDARD-ZERO rule to most recent version. (Rotation buttons are no longer reversed) *Support of JRE 1.5 is discontinued because the part of update checker requires JRE1.6+. *LWJGL 2.4.2 is now included in lib/LWJGL2_4_2 directory, because it seems required for 64bits systems.

Download: v7.0.1
v7.0.0 2010-06-04
#This version is NO LONGER compatible with 6.9.0.* netplay server. +Added an "all spin" option to all modes that has T-Spin bonus. To enable it, change "SPIN BONUS" setting (renamed from "T-SPIN") to "ALL". When enabled, all twists (not only T pieces) are recognized. +VS-BATTLE/NetPlay: Added map options. When enabled, every match will begin with preset pattern of blocks. To create maps, you can use newly added "TOOL-VS MAP EDIT" mode. +NetPlay: Added "Use fractional garbage system" option. When enabled, all players' attack power will be divided in 3P+ games. Garbage will not rise until the amount of garbage exceeds 1.0, but small garbages (0.1 to 0.9) must be removed before you are able to attack. You can use it with "Reduce attack power in 3P+ game" option, which will result in much longer game. +NetPlay: Re-added "Disable auto start timer after someone cancelled" feature as an selectable option. +NetPlay: Added tabs to "create a room" screen. Speed settings are moved to "Speed Settings" tab. @Instant DAS: I'm planning to implement that feature, but it'll require total rewrite of controller codes so it won't happen very soon.

Download: v7.0.0
v6.9.0.2 2010-05-08
Some bugfixes and minor changes. There are some bugs left though. (ex. You can still start a game even if everyone is on the same team) #This version is still compatible with 6.9.0.* netplay servers. However, there are some bugfixes to NetPlay server. +NetPlay: Added a proper GUI of team change. +Swing: You can double-click the mode select list box to start the game. -Slick: 64bit LWJGL libraries were still 2.4.2. Changed back to 2.1.0. -NetPlay: Fixed a ArrayIndexOutOfBoundsException bug in field updateing routine. -NetServer: Fixed various bugs of team play. (Includes disconnecting NPE bug on -NetServer: Player queue should work fine now. Oh, I forgot some more changes in the readme: -DIG MANIA: Big mode removed -Slick: Fixed "Field BG bright" option's description (128 is max, but description said 255 instead)

Download: v6.9.0.2
v6.9.0.1 2010-05-07
#This version is still compatible with netplay server. However, there is a small change to NetPlay server. +STANDARD-PLUS (Created by Blink) and STANDARD-ZERO (Created by Wojtek) rules are now bundled. +Updated batch files to both 32bit and 64bit compatible ones. (Thanks dodd!) +NetPlay: You can change your team by using "/team" command. To change your team, type "/team " to chat input box, then push Enter key. To change back to no team, type "/team" to chat input box, then push Enter key. (Yes, no proper GUI yet. I'll add a proper way from next release.) *NetPlay: Changed Ping interval to 10 seconds instead of 30 seconds. Client will automatically disconnect if there is no response from the server more than 30 seconds. *NetServer: Removed "Timer Disable" feature from TNET2-style auto start timer because I misunderstood. (I'll re-add this feature as an separated option from next release.) *Slick: Changed LWJGL back to 2.1.0 because it caused problems to some people.

Download: v6.9.0.1
v6.9.0.0 2010-05-06
#This version is NO LONGER compatible with 6.8 netplay server. +Added "DIG RACE" mode. Clear the bottommost line as fast as possible. +GARBAGE MANIA: Now fully compatible with big option. Previously, the garbage hole was too small to clear the line, but now hole is big enough. +SDL/Slick: Rule Select screen will appear after the first keyboard setup screen. +NetPlay: Added experimental team play support. If you are on a team, any team mate can't attack you, and you can't attack them. When someone dies, and if all survivors are on the same team, game ends and their team name will be displayed in chat log as the winner. +NetPlay: Added "TNET2-style auto start timer" option. When enabled, the following changes will take place: 1.Timer won't start until at least 2 players are ready. 2.When the timer runs out, all non-ready players will be moved to spectator. 3.If someone cancels the OK sign, timer will be disabled until the next match starts. -NetPlay: Fixed the following bugs: 1.when you join game in progress garbage shows on your garbage meter and you can hear danger sound 2.when you have more than 20 lines in garbage meter big black bar shows up 3.if all players but one are ready and this one player leave room or go to spectators, game wont start 4.when you are spectator, room is full and you join queue, then when you get your spot you still have spectator view and you can't go ready Thanks dodd for pointing out those bugs. *Slick: Upgraded LWGJL to 2.4.2.

Download: v6.9.0.0
v6.8.0.0 2010-04-30
#This version is NO LONGER compatible with 6.7 netplay server. +Added "Game Tuning" options. Here you can select rotation button behavior, select any block skin, adjust DAS and movement speed. To access it, select "GAME TUNING" from CONFIG menu in SDL/Slick versions, or select "1P(2P) Tuning Setting..." from config menu in Swing version. Tuning settings are shared from all 3 versions, and you can use it in netplay. (It can overcome "Same rule for all players" option!) +SDL/Slick: Enhanced joystick options menu. Now you can test your joystick from this "INPUT TEST" option. Most joystick related settings were moved from General Options menu. +NetPlay: Added "Reduce attack power in 3P+ game" option in room creation screen. When enabled, it will reduce all player's attack power in 3-6 players game. The attack power will increase when any player dies. +VS-BATTLE/NetPlay: Added "Hurryup" options. When timer reaches specific time limit, you'll hear alarm sound, then undestroyable blocks will start rising from bottom of the playfield. By default, undestroyable blocks will rise every time you put 5 pieces, but it can be changed by "Interval" setting. +NetPlay: Garbage collector will run after each game. (Yep, this is just a workaround, but it's better than nothing) -NetPlay: Cleans up player list when destroying a room. (Probably reduces memory usage) -NetServer: Fixed a memory leak bug. (Logged out player's incomplete-packet will remain) -SDL/Slick: Fixed "SCRREN SHOT" typo. *GEM MANIA: Decreased Ready&Go duration.

Download: v6.8.0.0