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

Specific Weapons

1: Blaster

2: Blue Bullet Bouncers

3: Frostbiter ("Ice")

4: Missile Launcher ("Seekers")

5: Really Fast Missile Launcher ("RFs")

6: Toaster

7: TNT

8: Pepper Spray

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

Shields

Laser Shield

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:

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.)