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
- plus.ini: This config file lives in your JJ2+ folder. Open it in a text editor such as Notepad and edit anything you want. This is currently the only way to change preferences permanently, other changes to JJ2+ settings only persist until you close the game.
If your folder doesn't contain a plus.ini, use Save Settings. - Dropdown Menu: In windowed mode, JJ2+ adds many items to the window's dropdown menus. Some only appear when you are hosting a server, but others, like the Video and Music menus, are always available.
- Command Line: Some options are set when you launch JJ2+. This could be from the actual command line (
cmd.exe), or from a shortcut if there are options like-menuthat you always want enabled. If you're using GOG Galaxy, you can edit command line options inSettings → Manage Installation → Configure → Features → Custom executables / arguments. - Chat Commands: While in a server, press T to bring up a chat prompt, type a command, and press
Enterto send. The command (if typed properly) will take immediate effect instead of being sent to other players as a normal chat message. (JJ2+ also lets you chat commands in local non-SP/Coop games, again by pressing T, but not all commands are supported in local games.)
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:
- In windowed mode, from the "Video" dropdown menu
- From the root menu, choose Options → Video
- While playing a level, press Ctrl+F7 for 800×600 (or Ctrl+F6 for 640×480, and so on for smaller resolutions).
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:
- The start button and the right and left bumpers can now be used to select items in menus and menu-like environments (previously only the A/B/X/Y buttons could be used for this)
- The back/select button now works as the Esc key in most contexts.
- You may move your rabbit using a controller while chatting. (Moving using the keyboard remains disabled.)
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:
- The Options menu is not available in servers, only in local games. Esc → Controls is available in all games.
- The Options → Controls menu doesn't let you assign the same key to both Keyboard 1 and Keyboard 2. By default, Keyboard 1 uses arrow keys and Keyboard 2 uses WASD, so this is particularly inconvenient if you want to use WASD for player 1. Esc → Controls lets you do whatever you want.
- Esc → Controls lets you set the mouse buttons as keys. (Though if you do this, and then view your controls from Options → Controls, your game may crash.)
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.
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:
- If you use JCS a lot, you could move tilesets you're not interested in using, so they wouldn't show up in JCS but would still load in JJ2+.
- Store all levels except your own (and the official levels) in your cache folder.
- Add a general folder for large music files, shared by multiple JJ2+ installs.
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:
- A third playable character (Lori)
- Six new enemies (two new in 1.24 specifically, plus four from 1.23x, Holiday Hare 1998)
- New file format for levels and tilesets (up to 4096 tiles, instead of 1024 like in 1.23 and below)
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
- Fixed "Access Violation" errors to show only one error window, not infinite.
- Raised JJ2's memory limit to 128MB.
- Fixed internet disconnection in Windows 8 and above when entering full screen in a server.
- Fixed all known issues with running JJ2 in long folder paths.
- Fixed crash from trying to load levels or tilesets that don't exist or are corrupted. Servers refuse to cycle to them, and local games return to the main menu system with detailed error messages.
- Either left Ctrl or right Ctrl can now be used for hotkeys, e.g. Ctrl+F9.
- Pressing F12 to take a screenshot now works even when you are holding down Ctrl.
- Pressing number keys to switch weapons no longer works while recording macros.
- Holding F3 to reduce screen size is now less buggy when playing with vertical splitscreen, more than two local players, or side-by-side 3D.
- The various F# keys may now be used while chatting.
- Using the menu or pressing Alt no longer freezes the game.
- Added hotkey Shift+F2 for minimizing JJ2 to tray.
- Removed code preventing JJ2 from running official levels from the command line (e.g.
jazz2.exe castle1). Previously only custom levels could be run from the command line without using workarounds. - Preciser filename comparison for applying translated help strings to levels. Previously, "train.j2l" would use the strings (in your selected language) from trainer.j2l, "brat.j2l" would use the strings from labrat2.j2l, and so on.
- Camera view is now cropped in levels whose dimensions are smaller than the current window resolution.
- Fixed glitch of layers with auto speeds sometimes resetting their positions after scrolling for too long.
- Starting a level with no start positions in multiplayer no longer crashes.
- Starting a level with animated tiles in textured backgrounds (or other attempts to draw undefined tiles), or translucent tiles in textured backgrounds at certain resolutions, no longer crashes.
- Fixed command line arguments so that
-noddrawwinisn't required in addition to-noddrawto prevent crashes. - The Continue screen no longer crashes in large levels.
- Trying to exit JJ2+ from the Continue screen will take you to the High Scores list, a small improvement from doing nothing.