Settings

JJ2+ adds hundreds of settings to let you customize your gameplay, sound, visuals, and so on. They are used in four different ways, but many settings are available in multiple formats depending on what you find most convenient

Click here for the full list of settings. Each one tells you where and how to use that setting. For example, if a setting says [General]AlwaysOnTop, that means you should find the [General] section in plus.ini, then the line that says AlwaysOnTop within that section.

Boolean properties should be entered as True or False in plus.ini. For chat commands, any of the following are allowed: on/true/yes/y or off/false/no/n

String properties should be surrounded by double quotation marks in plus.ini if they contain any space characters.

Except for strings like passwords or names, everything should be case-insensitive.

Resolutions

JJ2+ increases the maximum game resolution to 800×600. You can change the resolution in three ways:

JJ2+ also adds 800×450 as an always-available windowed resolution if you want a 16×9 aspect ratio instead of 4×3.

Some levels, especially older levels, may be designed for 640×480. Servers (and levels) may enforce this with the Max Resolution command.

The list of DirectDraw (fullscreen) resolutions comes from your graphics card. To add more resolutions (but nothing bigger than 800×600), look for a program on your computer called something like "Intel Graphics Control Panel" or "Nvidia Control Panel." We cannot give an exhaustive list of resources or instructions here, each graphics card may work differently. Check your card-specific documentation.

Borderless fullscreen is in the pipeline but is not currently offered directly by JJ2+. Community members have reported success using DirectDraw wrappers. We have not specifically tested or endorsed these programs.

JJ2+ also restores a Video → Rescalable Window dropdown menu option that was coded for JJ2 but dummied out.

We do not plan to increase the maximum any higher than 800×600.

Controllers

JJ2+ improves DirectInput controller support. In particular, D-pads are now supported for movement (not just the left analog stick), and the left/up keys aren't pressed constantly when receiving unfamiliar controller data.

If you want to use Joystick 1's right analog stick to move the mouse (usually for 360 degree aiming), you must first set Joystick 1 Mouse Axis in plus.ini. (Different controller models use different axis numbers for the right stick, so unfortunately JJ2+ can't guess on its own which numbers your particular controller uses.)

JJ2+ works with all the controllers that we have access to for testing, but there are many controller models out there. If you have trouble, please submit a bug report and include the results of the -joyinfo command line argument.

As in regular JJ2, if you plug in a controller after launching JJ2+, you can press J in the main menu system to try to detect it.

Miscellaneous controller changes:

Keyboard Control Schemes

The Esc Menu Box has a new option, "Controls," which brings up a mini-menu for changing keyboard controls. It has three tabs:

Keyboard1 and Keyboard2

These are mostly the same as editing keyboard controls from JJ2's normal Options → Controls menu from the root menu, but:

Kbd/Mouse

Special control scheme for when you're not playing in splitscreen and 360 Degree Aiming is on. This is used instead of your standard Keyboard1 controls, because you'll want to have one hand on the keyboard and one hand on the mouse.

In a future JJ2+ release, these additions will be incorporated into the main Options → Controls menu, and the Esc Menu Box's version will be made obsolete, but this is where they live for now.

Chatlog

If your Chatlog setting is on, then whenever you open JJ2+, a second "chatlog" window will open alongside the JJ2+ window. Normally chat vanishes off your screen after a few seconds, but the chatlog saves a record of all the chat you see while your game is open, and also some chatlog-exclusive messages, like AngelScript errors.

If Auto Save Chatlog is on, then chatlogs will be saved to chatlog001.txt in your JJ2+ folder, so you can look up old conversations days or years later. (Or chatlog002.txt and so on, if you have multiple instances of JJ2+ open at once.)

The Chatlog Theme setting lets you pick between light and dark modes. Some very basic options for choosing font/size are are also included in the window itself.

Chat may also be output to stdout.

Additional File Folders

If you have multiple JJ2+ installs, it's annoying trying to run a file in one folder and discovering that it relies on a file in another. JJ2+ introduces the plus.ini setting [General]AdditionalFileFolders, a comma-separated list of folders for JJ2+ to check whenever it tries to find a file. For example, if you have 1.23 installed in C:\Games\Jazz2, and 1.24 installed in C:\Games\Jazz2TSF, your 1.23 plus.ini would look like this:

AdditionalFileFolders="C:\Games\Jazz2TSF, C:\Games\Jazz2TSF\Cache"

And your 1.24 plus.ini:

AdditionalFileFolders="C:\Games\Jazz2, C:\Games\Jazz2\Cache"

In local games or as the host of an server, JJ2+ will check all additional file folders after checking your main folder (the folder your JJ2+ executable is in) but before checking your cache. Clients in servers reverse the search order, checking first the cache, then the additional file folders, then the main folder.

Not every file-loading operation uses this list of folders—for instance, the Home Cooked Levels list will only return .j2l files in your JJ2+ folder and its subfolders—but most of them do, including all AngelScript functions and any code you should need while cycling to levels in a multiplayer server.

Some more ideas:

Music Playback

JJ2+ uses the BASS audio library for playback of everything except J2B and 669 tracks. This adds support for MP3/MP2/MP1/OGG/AIFF tracks and improves playback on some module music. Various fixes have also been made to music volume in particular, and music doesn't crash when Data Execution Prevention is enabled anymore.

The Play/Pause media key (available on some keyboards) makes JJ2+ pause or resume its current music track.

Related settings/actions: Auto Volume Leveling, Change Music, Download Music, Download Same Music Version, Max Upload Packet Size, Module Music Only, Restart Music, Upload Music

Related scripting API: jjGetModOrder, jjGetModRow, jjGetModSpeed, jjGetModTempo, jjMusicActive, jjMusicFileName, jjMusicLoad, jjMusicPause, jjMusicPlay, jjMusicResume, jjMusicStop, jjMusicVolume, jjSetModSpeed, jjSetModTempo, jjSlideModChannelVolume

Splash Screens

JJ2+ adds two all-new splash screens drawn by community members. By default a splash screen is chosen at random from a limited pool, but the [General]TitleScreen plus.ini setting may be set to 1.23, 1.23+, TSF+, XMAS, or vanilla to force one particular screen.

Every December, the main menu (and logo) are additionally styled after the Christmas Chronicles expansion.

Multiversion Support

History

JJ2 was initially released as version 1.20, then received several free patches to bring it up to version 1.23.

Version 1.24 was released as a paid expansion pack, "The Secret Files," with the following main technical features:

For years, 1.23 and 1.24 were not interoperable and players of one version of JJ2 could not join servers hosted by the other version. Additionally, 1.23 players could not run levels or tilesets saved in 1.24’s level editor, and the new enemies did not appear for 1.23 players at all.

JJ2+

1.23+ and 1.24+ clients may now join each other’s servers freely and not notice any difference, and all JJ2+ players may run levels and tilesets saved in either format. The new enemies also work for 1.23 players, using the graphics of older, equivalent enemies. Lori is still only playable in 1.24, so 1.23 clients will see her as Jazz online.

If you got JJ2+ through GOG, you already have 1.24 and don’t need to worry about any of this!

In the player list, players who are running the opposite JJ2 version from you have teal player numbers (and maybe a - or + depending on their JJ2+ version).

Pausing

Fixed softlock from pausing JJ2 in a server (either the Pause key or Game → Pause from the windowed dropdown menu). Instead, the game may be unpaused by pressing fire or clicking the game window.

Unfocusing the window (except in servers) also pauses JJ2. In either case, there are onscreen instructions for how to unpause.

While the game is paused, pressing Esc or entering local menus (such as the F1 help page) now unpauses the game instead of permanently drawing the menus at half brightness.

Fixed visual glitches with textured backgrounds and high ambient lighting while the game is paused.

Miscellaneous Fixes