Weapons
360 Degree Aiming
When 360° aiming is allowed, players may fire bullets at any angle no matter which direction they're facing or moving, rather than always firing straight ahead.
Currently this is implemented as mouse aim: you fire in the direction of your mouse cursor. Use the mouse wheel to change weapon. (This works badly in splitscreen.) The right stick on controllers can be used to move the cursor too, but a better controller implementation is in the pipeline.
Your hands are probably in different positions when controlling JJ2 with a keyboard and mouse, compared to controlling JJ2 with just a keyboard, so there's a "Kbd/Mouse" control scheme for 360° aiming, editable in the Esc > Controls menu.
In order to use 360° aiming, the server must have Allow Mouse Aim turned on, and you must locally have Mouse Aim turned on. This two-part setup means that you can choose to fire normally even when other players in the server are using 360 degree aiming, for example, if you don't have a mouse.
360° aiming is turned off in local SP/Coop games. A menu option to enable it is in the pipeline, but for now, scriptwriters must use jjChat to activate the /allowMouseAim on and /mouseAim on commands.
"Decimation" in the Home-Cooked Levels episode (only in GOG.com's distribution of JJ2+) is an example of this.
(This fixes various bugs with firing weapons diagonally underwater, especially RFs and Pepper Spray.)
General Changes
- In multiplayer, ammo pickups are drawn either powered-up or not based on which powerups the viewing player has, rather than which powerups player 1 has.
- Some fanmade levels feature bullets that are shot by the level itself, rather than players. ("MCEs" and "SCEs.") These are fixed to hurt players the proper amount, to not crash the game, and to move correctly. (Some weird legacy movement is maintained for bullets inside crates, for backwards compatibility with some popular levels.)
- Fixed powerup monitors to not give more than 99 ammo when shot in single player.
- Fixed fastfire and ammo pickups to not decrease your ammo or fastfire if you already had higher fastfire or ammo than the maximum.
Automatically switching to a missile-like weapon (seekers, RFs, TNT) by firing the last bullet of a non-missile-like weapon no longer instantly fires a bullet of the missile-like weapon.- You can't fire while pushing an object, but you can fire while standing next to one. (Previously only some objects prevented you from firing, but not all, and even when you were standing next to them instead of pushing them.)
- Fixed glitch where players standing against the far left or right edges of the level couldn't be hurt by other players' bullets.
- When a bullet hits a player in a server, clients will see the bullet explode (after a brief delay based on connection speed).
Specific Weapons
1: Blaster
- In any gamemode other than Single Player and Cooperative, each player's fastfire and food numbers are reset between levels.
- Blaster powerups and fastfire pickups are drawn (to each subscreen) based on the viewing player's character (Jazz/Spaz/Lori).
2: Blue Bullet Bouncers
- Bounce angles are now synchronized between players in servers.
3: Frostbiter ("Ice")
- Applied the 1.24 ice powerup code to 1.23 too, so facing left doesn't shoot bullets in the wrong directions.
- Added Evil Ice setting to make ice hurt (as well as freeze) other players in multiplayer matches. When Strong Powerups is also on, powered-up ice hurts for two hearts.
- Players who die while frozen will unfreeze as part of respawning.
- Various fixes to frozen enemies so that they don't damage players in various circumstances.
- Freezing gem rings no longer crashes the game.
- Fixed glitch of players' glowing trails getting stuck in a loop while the players were frozen.
4: Missile Launcher ("Seekers")
- Fixed the "seeker hole" bug from servers, where a client who'd left the server could still be targeted by seekers.
- Seekers now seek players in Race, like they do in all other non-SP/Coop gamemodes.
5: Really Fast Missile Launcher ("RFs")
- Fixed explosion recoil to do the proper amount of damage to clients in servers.
6: Toaster
- The toaster powerup monitor uses the same colors as powered-up toaster pickups.
- Enemies killed by powered-up toaster explode into smoking blue particles, not orange.
- Powered-up toaster bullets don't suddenly teleport upon hitting a wall.
- Every other powered-up toaster bullet does 2 damage to enemies instead of 1, so on average it does 1.5 times as much damage as regular toaster.
7: TNT
- In unpatched JJ2, TNT didn't hurt clients in servers. JJ2+ introduces the TNT Damage setting to control how many hearts it takes away, and the Extended TNT setting to make it more likely to hit fast-moving targets.
- TNT now only sends pickups and bullets flying, not enemies and bosses. (It still does damage, though.)
- TNT now causes shootable poles to fall in the correct direction.
8: Pepper Spray
- Fixed bizarre Pepper Spray glitch that caused objects on the far left side of multiplayer levels to stop regenerating.
- Added Strong Powerups setting which makes powered-up pepper spray use different graphics and do extra damage. (This is on by default in local games.)
Fireball
Weapon 8 comes in two varieties: the familiar Pepper Spray, and a new Fireball gun based loosely on JJ2 beta versions. Regular bullets are orange, powered-up are purple.
The fireball flies straight ahead, like the basic blaster, but flies much faster and longer. It also passes through enemies (and most destructible blocks) instead of exploding upon contact.
A level or server can choose between pepper spray and fireballs using the Fireball setting, which is off by default in local single player games, and also the AngelScript jjWEAPON::spread property.
9: Electroblaster
- Added Strong Powerups setting. When on, powered-up electroblaster hurts 2 hearts and is blue (and causes killed enemies to explode into smoking blue particles) instead of orange. (This is on by default in local games.)
- Powered-up electroblaster does 2 damage to enemies instead of 1.
Shields
Fixed occasional crashes from buttstomping with a shield.- Shields are no longer drawn at reduced height while using special moves such as Jazz's uppercut.
- The bubble shield now looks better when drawn near a side of the window.
- Fixed glitch of shield monitors (and other monitors) sometimes ceasing to animate.
- Fixed glitch of shields not losing time in servers when hit by Hurt events or enemies.
Laser Shield
There is a proper laser shield monitor like the other three shields. (In unpatched JJ2, you could only get it using cheat codes.)- Firing lasers no longer crashes servers.
- Enemies killed by lasers explode into smoking gray particles.
- Lasers are better at destroying large numbers of destructible blocks in a single shot.
Frozen barrels destroyed by lasers drop their items, same as when destroyed any other way.- Triggers toggled by trigger crates destroyed by lasers are synced in servers.
- Laser shields are drawn to match the brightness of their lasers, in case the latter is altered via AngelScript.
Other Objects
Everything but weapons. Several of these objects also have new options in the level editor, but this section focuses on features and fixes to the code that was already there.
Airboards
Rabbits with shields/flags and airboards now see the shield/flag following them as they bounce up and down.
Helicopter ears don't mess up your physics when collecting airboards.
Birds
Companion birds (from shooting birdcages) now work in servers. Other players see your bird following you around (until you lose it), you don't lose health if hurt while you still have a bird, and your bird attacks other players (by shooting or nosediving) just as if they were enemies.
Restored two unused animation sequences: circling around players, freaking out when players get hurt.
If you end a level with a companion bird in SP/Coop, it will still be with you when you begin the next level, just like in Jazz Jackrabbit 1. (This doesn't fully work with secret levels yet.)
The math for determining whether blue birds can attack an enemy (or other players) is more generous. They use their proper nosediving animation while attacking.
Companion birds are frozen when you're frozen. If you're cold, they're cold.
Blocks
All the different types of destructible blocks can now be configured to regenerate, just like any other object. (Previously this only happened in local splitscreen games.) If a player is nearby, they delay regenerating until the player is far enough away to not get stuck inside the block.
Using flipped animated tiles as destructible blocks (or trigger scenery) no longer crashes the game.
Using non-animated tiles as destructible blocks (or trigger scenery) now works sometimes.
You can create weapon-specific destructible blocks for ice, pepper spray, and electroblaster, just like all the other weapons.
Improved syncing of block destruction in servers.
Fixed glitch where bullets passing in front of "collapse scenery" events could not collide with other objects at the same time.
Carrots
Various network code fixes so that clients don't think they have more health than they really do.
Fixed glitch of buttstomping enemies or collecting carrots sometimes giving you less invincibility instead of more.
The invincibility visual effect now handles bright colors much better in 16-bit color.
Cheshire2s
Cheshire2s no longer start flying when touched by bird and frog players.
Fixed glitchy movement from grabbing a Cheshire2 while holding down jump to use helicopter ears.
Copters
Players may now move freely in all directions while using copters.
Lori can grab copters now, just like Jazz and Spaz.
Fixed "invisible copter" bug from clients pressing jump immediately after grabbing copters.
Helicopter ears don't mess up your physics when grabbing copters either (or fly carrots, or when entering water).
Crates
Restored unused animation of crates shattering when destroyed.
Buttstomping a crate/barrel/monitor should always destroy it now, if it can be destroyed at all. (Previously sometimes you would destroy it and sometimes you would land on it, seemingly at random.)
In servers, pickups (ammo, carrots, etc.) inside crates and barrels are now synced among players, and eventually flicker away if nobody collects them.
Fixed glitch of generators occasionally beginning to rapidly spawn their objects after a non-local player destroys a crate. This was most commonly known for making all players in the server impossible to damage with projectiles (by making the host reach the object limit and thus unable to spawn bullets)
By altering their direction property in AngelScript, crates/barrels/monitors/birdcages may be made to fall upwards instead of downwards, allowing for all-new level design possibilities.
Food
Players with Sugar Rushes flash rainbow colors and drop rainbow stars.
Sugar Rush music stops when you die (unless you have multiple local players).
Having a Sugar Rush no longer prevents you from destroying buttstomp blocks using kicks/uppercuts.
In any gamemode other than Single Player and Cooperative, each player's food and fastfire numbers are reset between levels.
The Beta Sprites setting replaces the sprites for Soda and Soft Drink food pickups with their beta versions.
Gems
Your gem counter doesn't disappear once you've collected 100 gems in a level.
The AngelScript property jjWarpsTransmuteCoins lets scriptwriters disable the single player behavior where coins turn into gems after you use a coin warp.
The Beta Sprites setting replaces all gem sprites with their (handdrawn, not 3D) beta versions.
Fixed glitch where shooting a super gem from the left with powered-up ice would freeze it instead of breaking it.
Gem Rings
Shooting ice bullets at gem rings no longer crashes the game.
Gem rings give you 800 points (100 points × 8 gems) instead of 0.
Gem rings rotate clockwise.
Morph Monitors
Destroying a rabbit morph monitor by kick/uppercut now morphs you only once, not twice, and can also morph you to Lori instead of only to Jazz and Spaz. (Except in quirks mode.) It also shows the same visual morphing effect as when destroyed by a bullet.
If playing The Secret Files,, the rabbit morph monitor has an extra yellow arrow, representing Lori.
Bird morph monitors can now be destroyed by stomp/kick/uppercut, not just bullets.
Fixed camera glitch from holding up or down while destroying a bird morph monitor (or turning into a frog).
Pinball Objects
Fixed buttstomping onto paddles.
Carrots from carrot bumpers work in servers. If not collected, they eventually fade away like items from crates or barrels.
500 bumpers give you 500 points the first time you touch them.
Signposts
Signpost objects ("End of Level signpost" and "Bonus Level signpost") now work in servers too, not just local games.
Fixed glitch of signpost objects restarting the current level instead of cycling to the next/secret level, when shot by players with only one remaining life.
Restored broken code to make bonus signposts animate after being shot.
Springs
Spring delays (as seen in the third Race level) now work in all gamemodes.
Players now collide with ceiling springs more reliably.
Fixed glitch of springs floating toward the top left corner of the level, if placed underneath monitors or other such objects.
Swinging Platforms
Swinging platforms don't work in servers (except for SP/Coop servers) by default, but level makers may now get around this by setting them as "multiplayer only."
Obscure fixed glitches:
- Fast players falling through swinging platforms
- Players falling off fast swinging platforms
- Spike bolls sometimes crashing JJ2 (or disabling its sound system) when shot down
- Wind events not affecting players standing on swinging platforms
- Swinging platforms with non-0 Swing parameters drawing to the wrong spot while frozen
- Swinging platforms becoming permanently immobile if frozen in front of a tile with the 12th parameter bit set to 1
- Moving a little too fast when stepping from one platform to another
Warps
Coin warps can require any number of coins, not just 10/20/50/100.
Entering a warp with no connected warp target sends you to the upper left corner of the level instead of crashing the game.
Getting shot by other players immediately before or after warping no longer takes away your control.
Entering a warp just before the level changes, in servers, no longer causes you to warp in the new level.
Coin warps don't continuously drain coins from frog and bird players.
Coin warps don't constantly make noise until the level finishes cycling, if a local player is standing on one when the level ends.
Zones
These are the things in JJ2 that you can place in a level but aren't quite objects, they don't have dedicated sprites of their own. In some levels they may even be invisible.
Echo
The amount of echo now resets between levels.
Hurt
Hurt events now work online, the health loss is properly synced among clients.
No Fire Zone
Works in all gamemodes now.
(This event never appeared in the official levels, but it takes away your ability to fire. It's mostly used for levels where you can fight other players using only physical attacks.)
Poles
Fixed glitch of getting stuck in the floor under an H-Pole if you were injured while spinning around the pole. (Except in quirks mode.)
Sucker Tube
Fixed players getting stuck from falling into sucker tubes directly after warping.
Fixed players getting stuck inside sucker tubes with some diagonal speeds.
Fixed the "Trig Sample" parameter to play a noise. (This parameter was included in the level editor but didn't actually do anything in unpatched JJ2.)
Fixed the "WaitTime" parameter in level row or column 512 or greater.
Trigger Zone
The "Switch" parameter now works only once when you touch the event, rather than constantly.
TriggerID 0 is no longer broken.
(This event never appeared in the official levels, but it's the invisible equivalent to the silver "trigger crates" that cause blocks to appear and disappear.)