JJ2+ plays like you remember, like how it should play, with the glitchy edge cases removed.

General Changes

Specific Characters

Jazz

As the main character of the game, Jazz was the best programmed and didn't need any major changes. All that's different about Jazz compared to unpatched JJ2 is the helicopter ears code (which also applies to Lori):

Spaz

Spaz is the most popular character in online multiplayer, so it was important not to change his gameplay in any way, save for a few bug fixes:

Lori

The third rabbit was introduced in the "The Secret Files" expansion, so if you don't remember her, you only ever played 1.23 or earlier. JJ2+ is a patch that can be applied to either 1.23 or 1.24 (TSF), so it doesn't add Lori to earlier versions of the game, you have to buy 1.24 for that. Anyway, she had a lot of unfinished code and art in unpatched JJ2, but JJ2+ has made some good progress on her:

Frog

You only morph into a frog in one official level, Frog Stomp from the Shareware Demo episode, and it's treated as a handicap, with limited mobility and unable to shoot star blocks. You can stick your tongue out at different angles by pressing fire, but this doesn't actually do anything, enemies still hurt you.

To make the frog a bit more useful while preserving backwards compatibility, JJ2+ adds two AngelScript properties, jjCharacters[CHAR::FROG].canRun and jjCharacters[CHAR::FROG].canHurt, to let you run and hurt enemies with your tongue but only in levels that specifically allow it.

Bug fixes:

Birds

The playable bird (from the unfinished Labrat secret level) has been split into two separate playable birds: a blue/orange bird (Chuck) who does a nosedive when you hold fire, and a red/green bird (Flip) who fires twice as many bullets as rabbits. Bird Morph Monitors exist for both of them, or you can use the JJMORPH cheat code.

Chuck can now nosedive while facing up, not just down. While nosediving, pressing the opposite key from the direction you are moving doesn't reverse your sprite. Nosedives even hurt enemies if a scriptwriter turns on jjCharacters[CHAR::BIRD2].canHurt.

Dying as a bird turns the screen black, shows a defeated message, doesn't delete all objects in multiplayer, doesn't make you stay a bird after you come back to life, and doesn't quit to the high score list on your penultimate life.

Controls: Both up and jump make you fly upwards. Running is only allowed if a scriptwriter turns on jjCharacters[CHAR::BIRD].canRun (or CHAR::BIRD2 for Chuck).

Bird players use standing/idle animations while idling on a masked tile instead of flapping in place forever.

Just like frogs, coin warps don't continuously drain your coins and ending levels as a bird in single player doesn't softlock the game.

Fixed getting stuck when warping while morphing into a bird.