Downloads containing plus-readme.txt

Downloads
Name Author Game Mode Rating
JJ2 Online Starter Pack technoman Utility N/A Download file

File preview

JJ2+ Beta Release (last updated Jun 30, 2010)
   Created by BlurredD based on Neobeo's code
   With much help from Monolith
   And additional code by Grytolle

aka Carrotade v1.2X+ aka 1.23+/1.24+

Credits: Neobeo, Monolith, Cpp (Overlord), Grytolle, EvilMike, Bobby aka
Dizzy,
   Nimrod, Red^Ninja, Salface, Shane Lillie (Notepad chatlogger), cooba,
Emo
   (some guy), Cataphract, the [semi-idle], Syntax (who made the originally
   Roast Tag rules), SuPrem, the guys at CodeProject, and others who
(might?)
   know who they are.

Sections:
1. Installation and things you should know
2. Latest Changes
3. New features and bug fixes
4. Known Issues
5. Playlog
6. plus.exe - Level List and Zipping Levels
7. Remote Admin
8. Roast Tag
9. Flag Run
10. Team Last Rabbit Standing
11. Domination
12. Pit Levels
13. Special Trigger Zones
14. JCS Events
15. Plus Only Features
16. The Commands
17. New Command Line Arguments



1. Installation and things you should know
===========================================================================
=====
Installation: Extract all files into your Jazz2 directory. Read the rest of
this
readme for more details.

Some of the features included with JJ2+ can easily be misused. While
clients
are allowed to leave your server any time they choose, it is best not to
alienate them by abusing certain features. Use this program responsibly, or
don't use it at all...

Unlike Carrotade versions 1.0 through 1.2, JJ2+ is NOT ONLY A SERVER TOOL.
JJ2+ is a hybrid of Carrotade and 1.23+ features, and so you are encouraged
to
use this as a client. In fact, when the server and the client both are
running
Plus, the client can see and use additional features.

JJ2+ could be described as a sort of patch, almost like a "v1.25" with
various
new features and bug fixes. Though at this moment, it's mostly for
multiplayer
use.

JJ2+ only works with the full versions 1.23 and 1.24 (TSF), although not
all
versions of 1.23 and 1.24 are supported. In particular, TSF: LK Avalon is
not
supported.

JJ2+ is incompatible with NeoAC, Carrotade, and Grytolle's original 1.23+
patch,
and may conflict with Forest, Project Controller, and other
utilities/patches
made recently.

plus.dll MUST be in the same directory as JJ2's exe. Generally, this file
will
need to be replaced with each update of JJ2+.

plusifier.exe takes JJ2's original exe (either 1.23 or TSF) and makes a new
exe that automatically runs plus.dll on startup. The new exe will have a
plus
sign added to its filename. The Plusifier DOES NOT need to be used every
time
plus.dll or any other file gets updated. The latest version now allows for
overwriting the original exe or another file, so BE CAFEFUL and make
backups
when necessary. Tell me if you have any problems with the Plusifier.

plus.exe loads plus.dll into a running JJ2 process. If you choose to use
this
program, it's highly recommended you run plus.exe before starting/joining a
game. plus.exe can also be used to add levels to LevelList.ini and to zip
levels including their tilesets, music, and other linked levels
automatically
(see Level List and Zipping Levels section below). Use command line
argument
"-loadplus" to skip the prompt. You do NOT need to use both plusifier.exe
and
plus.exe at the same time. plus.dll should be placed in the same directory
as
JJ2's exe.

bass.dll is used to load Bass audio library into JJ2. bass.dll must be in
the
same directory as plus.dll and JJ2's exe so that the functions of BASS
audio
library are automatically loaded by JJ2+. BASS audio library allows music
support for MP3/MP2/MP1/OGG/WAV/AIFF and better music support for MOD
music.
WARNING: Users not running the latest version of JJ2+ WILL CRASH if JJ2
attempts
to load any music file that is not a supported MOD music track.

BASS version: 2.4

This readme is far from complete and poorly organized. This will change
soon
enough. There are still features and bug fixes that haven't been mentioned
yet.

See Known Issues for other things you should know.



2. Latest Changes
===========================================================================
=====
Jun 30, 2010
  - Fixed issue where CTF death pits (instant death areas in Single Player
mode
    created with CTF bases) would not work as intended in some situations.
  - Fixed glitch with "All Blue" and "All Red" modes where clients would
    sometimes see themselves on the wrong team (server-side fix).
  - Fixed issues related to players morphing characters (ideally both the
server
    and clients must be running the latest version of JJ2+).
  - Fixed glitch with chat field and menu player name field where special
accent
    mark key combinations were not handled properly.
  - Fixed glitch where random chat text was sent to others immediately
after
    pressing 't' to show the chat field (local fix). Special thanks to
FawFul
    for helping me figure out the problem.
  - Added additional parameters to events Area End Of Level, Area Warp EOL,
and
    Area Warp Secret. The new parameters allow for fast level cycling and a
    greater number of choices for the next level. See JCS Events section
below
    to learn what to do.
    - See levels SPlevel1.j2l and SPlevel2.j2l for an example. Warning:
Running
      these levels through JCS (via Save & Run) may cause the levels to
break if
      JCS.ini is not properly updated first.
  - Fixed Area Warp Secret event and Area End Of Level event with Secret
set to
    1 so that the event cannot later be retriggered when the player returns
to
    the original level after playing the secret level(s).
  - Fixed glitch with Warp event and Area Warp Secret event where the "need
x
    more" message was not displayed properly.
  - Fixed glitch with pit levels played offline in Single Player or Coop
where
    not all local split screen players will die after falling into a pit.
  - Added the ability to insert and erase characters in the middle of the
text
    of the chat field.
  - In Treasure mode, the level no longer cycles when a player reaches an
exit
    during a stopped game (both the server and clients must be running the
    latest version of JJ2+).
  - Fixed glitch with level cycling in Single Player, Coop, and Race modes.
  - Fixed cycling issues in Single Player and Coop in online games.
    - The level now cycles when any player reaches an end-of-level exit.
Note
      that bonus level exits still do not work.
    - The level now cycles when a boss is finished. Note that the server
and
      clients may not see the boss finished off at the same time.
      - Clients running the latest version of JJ2+ no longer see the level
cycle
        locally when they finish a boss while the server sees the boss as
still
        alive.
  - Fixed glitch in Playlog where Place stat would show the incorrect place
of
    players.
  - Improved collision detection for online games.
    - In Single Player and Coop, clients now lose hearts after being hit
      (client-side fix).
    - MCE and SCE events can now hit players without causing JJ2 to crash
      (server-side change).
      - WARNING: Clients not using the latest version of JJ2+ WILL CRASH if
the
        level has any MCE/SCE seeker objects.
  - Fixed issues with Extended Last Rabbit Standing:
    - Made Place stat no longer partially determined by the number of
points a
      player has.
    - Game will now only go into overtime if two or more players have the
      highest number of lives left. Previously, a winner would have been
decided
      if one of those players had a higher number of points than the rest.
  - Improved HUD.
    - Redesigned HUD for Battle-based modes and most notably for LRS-based
      modes.
    - Fixed minor HUD player list sort issue (client-side fix).
    - Fixed other miscellaneous issues.
  - Added command "/maxresolution <width>x<height>" and
configuration settings
    "MaxResolutionWidth" and "MaxResolutionHeight" (Max Resolution defaults
to
    640x480). Only players running the latest version of JJ2+ are affected.
  - For the Game List in the menu, now at most only 10 servers with the
same IP
    address will be shown.
  - Increased the maximum distance a player can be hit by TNT in online
games
    when Extended TNT Range is enabled.
  - Improved how start positions work in team games (local fix). If a level
    doesn't have a Multiplayer Level Start event for both blue team and red
    team, then players will start at any start position.
  - Latest Version Only setting now only applies to JJ2+ clients. Clients
not
    using JJ2+ will be able to join when the setting is enabled. Use Plus
Only
    setting to exclude those clients.
  - Fixes for being hit while/after warping and being killed while frozen
are
    now used for all modes and both online and offline play.
  - Fixed glitch in Treasure mode where the server was able to die after
hitting
    certain objects or events.
  - Removed command "/lives" which was used to send chat indicating each
    player's number of lives if custom mode was Extended Last Rabbit
Standing.
    This command hasn't been needed by JJ2+ users for a long while.
  - Fixed minor in-game ping issue (server-side fix).
  - "<team> scored a point" messages are now never displayed for Team
Last
    Rabbit Standing (client-side fix).
  - Most Windows-1252 characters can now be typed into the server name in
the
    menu.
  - Documentation fix: "-levellist=<filename>" should be
    "-levellistfile=<filename>".

Apr 8, 2010 (A)
  - Fixed issues with UDP packets not being properly sent to the server
(client-
    side fix).
  - Changed again how Lori's clothes colors are customized in multiplayer
games
    (local fix). Lori's clothes color is now editable by setting the value
that
    used to change the color of Lori's eyes. This means Lori's eye color
will
    always be green.
  - Improved how Lori's fur color is displayed.
  - Added note related to the last update: When there are already 16
connections
    to the server, and the 17th connection is made, all clients using a
previous
    version of JJ2+ will be kicked. Therefore, you may wish to limit the
number
    of connections to 16 (with command "/maxconnections 16") until more
people
    get the latest version of JJ2+.

Apr 8, 2010
  - If you didn't install the previous JJ2+ update, make sure to use the
updated
    Plusifier.
  - Added configuration setting "UseAnyLocalAddress" (defaults to true).
When
    false, a JJ2 will bind to a single local IP address when creating
listen
    sockets. You probably don't want to change this setting.
  - Fixed glitch where a JJ2 server would fail to bind to a single local IP
    address when creating listen sockets.
  - Server now automatically relists if it loses its connection to the list
    server.
  - Added support for downloading music files:
    - Added server command "/uploadmusic <on|off>" and configuration
setting
      "UploadMusic" (defaults to on).
    - Added server command "/maxuploadpacketsize <bytes>" and
configuration
      setting "MaxUploadPacketSize" (defaults to 1024).
    - Added client command "/downloadmusic <on|off>" and
configuration setting
      "DownloadMusic" (defaults to on). When downloading music, note that
the
      escape key can be pressed to stop downloading while staying in the
server.
    - Added client command "/downloadsamemusicversion <on|off>" and
      configuration setting "DownloadSameMusicVersion" (defaults to off).
  - plus.exe can also be used to add levels to LevelList.ini and to zip
levels
    including their tilesets, music, and other linked levels automatically
(see
    Level List and Zipping Levels section below). Use command line argument
    "-loadplus" to skip the prompt and automatically load the plus.dll into
a
    running JJ2 process.
  - Made adjustments which allow command "/changemusic
<music_filename>" to
    increase the maximum allowed length for <music_filename> from 31
to 62
    (though JJ2's chat limitations won't allow a filename that long). These
    changes make it impossible to change music through programs like
Project
    Controller.
  - Added support for up to 32 connections in a server (both the server and
    clients must be running the latest version of JJ2+). Note that clients
    running a previous version of JJ2+ cannot join servers where there are
    already 16 or more connections. However, non-Plus clients can join such
a
    server, although they won't be able to see chat from any client
(including
    themselves) who has a connection number above 15.
  - Added command "/maxconnections <number>" and configuration
setting
    "MaxConnections" (defaults to 32).
  - Improved Max Players check for joining clients.
  - Added the needless ability for the server to be able to host levels
from
    folders other than the Jazz2 directory, including the cache folder,
without
    causing problems for clients. The 31 character limit still applies to
the
    length of the path and filename of the level, and the tileset for the
level
    must exist in the Jazz2 directory.
  - No Fire Zone events now work in Single Player mode (local change).
  - Spring delays now work in all game modes (local change). Previously
spring
    delays only worked for Battle, Race, and Treasure.
  - Re-added constraint where secret levels cannot cycle to other secret
levels.
  - Improved the fix for the glitch where a player hits a warp event while
the
    level cycles and then continues warping to a random postion in the next
    level. It should now always work even if the player was frozen while
    warping. Also, the warp fix is now only for online games.
  - Most Windows-1252 characters can now be typed into the chat field.
  - Most Windows-1252 characters can now be typed into a player name in the
    menu. Also, a space character can now be used as the second character
in the
    name.
  - When editing a player name, the name is no longer displayed animated in
a
    pattern of colors.
  - Updated how chat is stored and displayed within JJ2. Most notably, chat
    lines no longer disappear if the player who said the lines leaves the
    server.
  - Updated "/ban" and "/kick" commands to "/ban [<time>{s|m|h|d}]
    {<player>|<ip_address>} [<reason>]" and "/kick
<player> [<reason>]"
    respectively.
  - Updated "/ban", "/kick", and "/unban" commands to give more error
messages
    when appropriate.
  - The old "ban" and "kick" commands (the ones that did not use a
preceding
    forward slash) no longer can be used.
  - IP addresses banned through Banlist.lst can now be unbanned through the
    "/unban" command.
  - Server now sees "<player> was kicked off" and "<player> was
BANNED" messages
    when a player is kicked and banned respectively.
  - Server now blocks attempts from banned players to join the server
sooner.
  - Updated how Remote Admin is done:
    - Added support for admin groups (uses admin configuration file
admin.ini).
    - For each admin group, the following can be set: the password, allowed
      commands (or blocked commands), Auto Admin IP addresses, and whether
the
      group is currently enabled.
    - Auto Admin IP addresses allow a user to be automatically promoted to
an
      admin for a given group when joining the server.
    - Removed restriction where admins cannot kick or ban other admins.
These
      commands can be made unavailable by adjusting the allowed or blocked
      commands for a given group.
    - Replaced command "/setadminpass <password>" with command
"/setadminpass
      <group> <password>".
    - Replaced command "/getadminpass <password>" with command
"/getadminpass
      <group> <password>".
    - Removed configuration setting "AdminPassword". Change the password of
a
      group in admin configuration file instead.
    - Added server-only commands "/admingroup <group>
<on|off>", "/addadminip
      <group> <ip_address>", "/removeadminip <group>
<ip_address>",
      "/addallowedcommand <group> <command>",
"/removeallowedcommand <group>
      <command>", "/addblockedcommand <group> <command>",
and
      "/removeblockedcommand <group> <command>".
    - Note that an admin group needs to be enabled and have a valid
password
      before users can log on that group.
    - See Remote Admin section and file admin.ini for more information.
  - Added command line arguments "-settings=<filename>",
"-admin=<filename>",
    and "-levellistfile=<filename>" for specifying configuration
files. Note
    that the configuration file must exist beforehand or else default file
will
    be used.
  - Changed parsing method for command line arguments of the form
    "-<name>=<value>" so that backslashes no longer need to be
escaped in
    <value>. Note however that to use double quotation mark in
<value>, the
    double quotation mark must be escaped by another double quotation mark.
  - Fixed command line argument "-player <number>" for TSF. It had a
name
    conflict with command line argument "-play".
  - Updated client command "/login <password>" so that if the server
is running
    JJ2+, the login command and password will not be displayed locally in
the
    chat and instead will be replaced by a message saying "Attempting to
login".
  - Updated Roast Tag so that the maximum points the player who is IT
receives
    after roasting a player is five.
  - Updated Jailbreak to better handle the case where one team no longer
has any
    free players after Pregame has ended, particularly when a player
changes
    team mid-game. When there aren't enough free players, the jails are now
    always opened or stay open afterwards.
  - In Jailbreak, jails are now always open during pregame.
  - Made minor improvement for how killing spree text is displayed in team
games
    with Friendly Fire enabled.
  - When Idle Server mode is enabled, a visual indicator is now always
    displayed, and Idle Server can now be disabled by pressing CTRL+ENTER.
  - Server is no longer hidden for clients when the server minimizes.
Server is
    now only hidden for clients when Idle Server mode is enabled.
  - Player pings are now shown on the Game Info (F9) screen when F9 is
pressed
    twice, when the tab key is held down, and when the "Always Show In-Game
    Pings" setting is enabled (both the server and clients must be running
the
    latest version of JJ2+).
  - Added command "/alwaysshowingamepings <on|off>" and configuration
setting
    "AlwaysShowInGamePings" (defaults to off).
  - Clients now must wait for server data before being able to play in a
level
    (both the server and clients must be running the latest version of
JJ2+).
    This change fixes issues related to scenery events and game objects
being
    processed at the wrong time by clients.
  - Improved how spectating works in general.
  - Fewer movement packets are now sent for Spectator mode and Idle Server
mode
    (local change).
  - Added command "/maxspectators <number>" and configuration setting
    "MaxSpectators" (defaults to 32). Note that the limit also applies to
    joining players when Joiners Spectate is enabled.
  - Server no longer spectates when Idle Server mode is on and command
    "/forcespectate all on" is used.
  - During a game when the user wants to quit and the "Are you Sure?
Yes/No"
    prompt is displayed, the arrow keys and tab key can no longer change
the
    spectated target or display the player list on the HUD respectively.
  - Added command "/allblue <on|off>" and configuration setting
"AllBlue"
    (defaults to off).
  - Added command "/allred <on|off>" and configuration setting
"AllRed"
    (defaults to off).
  - Teams are now always made more even when a new player joins the game
except
    when Even Teams is off and the joining player specifies his or her team
    while running the latest version of JJ2+
  - Fixed glitches in Team Last Rabbit Standing:
    - The incorrect number of lives were sometimes shown for a player who
joins
      the current game after previously being in Spectator mode or, in the
case
      of the server, in Idle Server mode.
    - When "/forcespectate all off" was used while a player was spectating
while
      out, spectating would be disabled for the client.
    - When "/forcespectate all on" was used while a player was spectating
while
      out, spectating would be disabled for the client.
    - When "/shuffle" command was used during normal player without enough
      active players in the server, excess reserves were given to each
team.
  - Fixed glitch in Roast Tag where a player who becomes the ring holder
    receives the improper amount of health when Health From Kills is
enabled.
  - Fixed glitch where Add-Ons (e.g. instagib) could be used in offline
games.
  - Fixed glitch in offline CTF games where the flag was never dropped when
the
    flag holder was roasted.
  - Fixed glitch where clients would keep team colors when the game mode is
    changed from CTF to another game mode (client-side fix).
  - Fixed glitch where the server would corrupt an upload to clients.
  - Fixed buffer issue with UDP packets.
  - Fixed glitch where clients would see the incorrect time left when the
server
    resets the time limit while the game is stopped.
  - Fixed glitch where clients would see negative team scores when a team's
    score is between 128 and 255 (client-side fix). No negative team scores
was
    an adjustment added in a previous JJ2+ update.
  - Fixed glitch where clients would not see certain objects spawn
initially
    after the level cycles (client-side fix).
  - Fixed glitch where a copter would cause a generated object to disappear
    (local fix). Most notably, the bouncer powerup in Bluez's Green Beret
no
    longer disappears.
  - Fixed various Lori issues:
    - Fixed glitch where Lori cannot use copters (local fix).
    - Lori's fur and clothes colors can now be properly customized in
      multiplayer games (local fix). Lori's clothes color will be editable
by
      setting the value that used to change the color of the tip of Lori's
gun.
      This means the tip of Lori's gun will stay red, but the rest of the
gun
      can still be different colors.
    - Lori Level Start (event 32) can be used to create a start position
usable
      only by Lori. Requires replacing lines in JCS.ini. See JCS Events
section
      below to learn what to do.
  - Fixed glitch where the server would hear the game end music restart
after a
    player joins.
  - Fixed UDP exploit for clients (client-side fix).
  - Fixed glitch where JJ2 would randomly crash due to sprites not being
cleared
    from a previous level.
  - Fixed minor glitch where clients not running JJ2+ don't see the correct
    health update when there is a health change.
  - Fixed minor client-side issue related to level cycle.
  - In online games, missing level backgrounds now always appear black with
no
    trails from any tiles, even when chat fills the screen.
  - Slightly improved idle player detection.
  - Removed player prediction for remote players who are spawning or
warping so
    that their positions are updated immediately (ideally both the server
and
    clients must be running the latest version of JJ2+).
  - Improved how morphing works online. Both server and client need the
latest
    version of JJ2+.
  - Frog anims are now always loaded on each level initialization.
  - When JJ2 is minimized to the tray, the same procedures are now done as
if
    JJ2 has been minimized to the taskbar.
  - Improved how game echoes are displayed when a player is roasted
(server-side
    change).
  - "Player joined/left the game" messages now always appear in all green
for
    clients (client-side fix).
  - Teams are now always internally made even when the game mode is not
CTF.
  - Server no longer sees the characters of clients who are connecting to
the
    level.
  - The right CTRL key can now be used for keyboard shortcuts that specify
the
    use of a CTRL key, e.g. CTRL+F9.
  - The main window no longer pauses when a client minimizes or when the
Sound &
    Music Properties dialog is accessed.
  - Fixed minor formatting issue with some strings.
  - Documentation fix: "/unban <ip_address>" should be "/unban
    <ip_address|all>".
  - In this readme, section "Level List" renamed to "Level List and Zipping
    Levels."

Jul 28, 2009
  - Updated the Plusifier:
    - New JJ2+ exe created with the Plusifier now no longer crashes if Data
      Execution Prevention is enabled.
    - plus.dll is now loaded earlier by JJ2+ exe.
    - The Plusifier now optionally makes backups of your original JJ2 exe.
    - NOTE: You MUST use the Plusifier again on your original JJ2 exe (i.e.
an
      exe that has not been patched by the plusifier yet) EVEN IF YOU
ALREADY
      HAVE A FUNCTIONING JJ2+ EXE.
  - Fixed problem (hopefully) where some clients timeout in a server after
30
    seconds. This is mainly a server-side fix, but to ensure all UDP
packets are
    received, clients must be running this version of JJ2+ as well. Special
    thanks to SuPrem and Cpp (Overlord) for helping me find the problem.
  - Fixed glitch where boss event attempts to use BOSS1.S3M or BOSS2.S3M
for
    music instead of BOSS1.J2B or BOSS2.J2B.
  - Players now always won't lose control (and potentially get stuck) when
they
    get hit before or after warping (local fix). This was previously a Plus
Only
    feature.
  - Players now always will be automatically unfrozen if they die and are
    freezed (local fix). This was previously a Plus Only feature.
  - Significantly improved how servers on the Game List screen is
displayed.
  - Made better fix for gem rings crashes by preventing gem rings from
being
    frozen (local fix).
  - Gem counters are now always displayed when a player collects 100 red
gems or
    an equivalent.
  - Fixed glitch in Team Last Rabbit Standing where connecting players in
    Spectator mode are changed to Out Spectator mode.
  - For the server, more packets from connecting clients that shouldn't be
    processed are now ignored.
  - Adjusted protection rules for weapons and shields not available in the
    current level. For Single Player and Coop, fixed how players sometimes
    couldn't use ammo they collected from the previous level(s). Moreover,
if
    the game mode is or was Single Player or Coop at some point during the
    current level, players can now use any weapon or shield except the
laser
    shield without being kicked/banned, and laser shots by players will be
    blocked but not count as a hack attempt.
  - Fixed glitch in Jailbreak where the last free player for a team can get
more
    than 90 seconds to free his or her teammates.
  - In Pestilence, made chat message less ambiguious. Now states: "No kills
by
    zombies for 2 minutes means random new zombie".
  - Fixed glitch where clients get kicked for an unauthorized file request
when
    the request was legitimate (server-side fix).
  - Fixed glitch where JJ2's Galaxy Music System causes a crash if Data
    Execution Prevention is enabled.
  - When No Movement on Stopped Games is enabled, objects no longer
    automatically spawn during stopped games. Use command "/spawnobjects"
to
    force all allowed objects created by generators to spawn if they aren't
    spawned already.
  - chatlogger window now uses the a new icon.
  - Added command line argument "-port=<port>" so that servers can
use ports
    other than 10052 for hosting.
    - Note: This version of JJ2+ is no longer compatible with [anonymous]'s
JJ2
      1.23 Port Changer program.
  - Added support so that clients can join servers not listening for
connections
    on port 10052 (client-side change).
  - Added support through command line and j2i files for joining servers
that
    are passworded or on a different version of JJ2. When using the command
    line, use "-connect" before the IP address.
    Formats:
      <ip_address>[:<port>] [-password=<password>]
[-version=<server_version>]
     
<ip_address>[:<port>][/[<password>][/<server_version&g
t;]]
    Values for <server_version>
      For 1.23, use: 1.23, 23, 1.21, or 21 (all map to "21  ")
      For TSF, use: 1.24 or 24 (both map to "24  ")
    Examples:
      127.0.0.1:10052 -password=abc -version=1.24
      127.0.0.1 -password="pw \w ""spaces"""
      127.0.0.1/abc/1.21
      127.0.0.1:10058//1.21
    Note that to use a double quotation mark in a password, the double
quotation
      mark must be "escaped" by another double quotation mark. Backslashes
do
      not need to be escaped.
  - TSF JJ2+ users can now join any 1.23 server whether through the Game
List in
    the menu, command line argument "-connect", or j2i file (local change).
Note
    that TSF JJ2+ users don't have to specify the server version in command
line
    and j2i file.
  - During a game when the escape key is pressed and the menu box is
displayed,
    the arrow keys and tab key can no longer change the spectated target or
    display the player list on the HUD respectively.
  - JJ2 servers now bind to a single local IP address when creating listen
    sockets.
  - Food and Fastfire (fire speed) are now always reset between levels if
the
    game mode is not Single Player or Coop. Plan multiplayer levels
accordingly.
  - Loading settings no longer turns off Spectator mode if
"AllowSpectating"
    configuration setting is set to false.
  - Changed how loading settings after startup works so that missing
settings
    are not automatically set to their defaults.
  - Command "/np" now indicates nothing is playing if the music filename is
    blank.
  - All Remote Admin logins are now publicly announced.
  - Players who attempt to use invalid shields and weapons are now always
    automatically kicked on their first hack attempt.
  - Finally added configuration settings for the following: WeakPowerups,
    NoPowerups, NoAmmoCrates, NoCarrots, and NoShields.
  - Added command "/fastpoweruprespawn <on|off>" and configuration
setting
    "FastPowerupRespawn" (defaults to off).
  - Added command "/noseekerammo <on|off>" and configuration setting
    "NoSeekerAmmo" (defaults to off).
  - Added command "/noseekerpowerups <on|off>" and configuration
setting
    "NoSeekerPowerups" (defaults to off).
  - Modified Domination so that a team gains a point for each control point
    separately depending on when it was captured. Previously, a team gained
    points all at once depending on the number of captured control points
after
    every x seconds.
  - Fixed command line arguments so that "-noddrawwin" isn't required in
    addition to "-noddraw" to prevent crashes.
  - Moved hook for chat function around. Users should see no difference
with
    chat.
  - Slowly dropping IPX support.

Apr 10, 2009
  - Fixed glitch where users crashed (usually on the menu screen) after
loading
    JJ2+.
  - For protection against players using weapons and shields not available
in
    the current level, weapons and shields added through the extra event
    parameter of events such as Gun Barrel and Bomb Crate are now properly
    detected. Also note that if JJ2+ is loaded mid-game, players can use
any
    weapon/shield except the laser shield until the level is cycled. If the
game
    mode is Single Player, players can use any weapon/shield except the
laser
    shield.

Apr 9, 2009
  - Note: This version isn't entirely incompatible with the last version.
  - Note: I made changes that may cause clients to never see any objects
when
    they first spawn. Please tell me if this happens often!
  - Fixed glitch created in the last update where the server freezes
clients
    after sending too many packets.
  - The JJ2+ build date is now displayed on the main menu screen.
  - Command "/levellist <shuffle>" now gives an error if all levels
could not be
    shuffled.
  - Command "/n" now displays the level number if the next level is from
the
    Level List.
  - Improved how Level List Cycling works in general.
  - Added command line arguments:
    Custom Mode: -rt, -lrs, -xlrs, -pest, -tb, -dctf, -jb, -fr, -tlrs, -dom
    Other: -list, -levellist [<number>], -spaz (for 1.23), -menu,
-minimize
  - User-defined fur is now always used for online games (as in for
Internet
    Play and Local Network).
    - This fixes the behavior where command line argument -connect does not
      allow user-defined fur by default.
  - Fixed glitch where command line argument -server does not assign the
server
    to a valid team.
  - Fixed glitch where flag holder's health cannot be seen when spectating
a
    flag.
  - Command "/stats" now always logs player stats if there are active
players,
    even when play has not begun.
  - Made Auto-Stop more useful:
    - When game stops, Auto-Stop now automatically logs player stats and
      announces who won.
    - Now stops overtime games.
  - On 'Game Server Setup' screen, can now use "levellist [<number>]"
in place
    of a level filename. When the server starts, JJ2+ will attempt to load
the
    first level (or the level belonging to the specified number) from the
Level
    List.
  - Fixed glitch where music could not be heard if volume was initially
muted.
  - Documentation fix: "/forcespectate <player> <on|off>" 
should be
    "/forcespectate <player|all> <on|off>".
  - Added note about Admin Chat. See Remote Admin section below for more
    details.
  - Added Plus Only Features section.
  - Reduced probability of seeing "trails" of players who died or warped.
  - Reduced probability of clients being able to lose hearts immediately
after
    spawning (the server needs latest version of JJ2+).
  - JJ2 no longer freezes or turns off sound when screensaver or monitor
low-
    power activates.
  - Fixed glitch (hopefully) where loading plus.exe on the menu screen
sometimes
    causes JJ2 to crash. Note that plus.exe still cannot be loaded on the
    connecting screen. Please notify me if crashes still occur.
  - Download bar on downloading screen should now properly indicate how
much of
    a the file was downloaded.
    - In addition, the "<x> bytes received in <y> s" message in
the spy log now
      displays the correct values.
  - Probably fixed most issues with connecting and downloading files. Tell
me if
    something fails.
    - Clients running the latest version of JJ2+ are no longer kicked if
they
      are downloading when the level cycles.
  - Changed how special trigger zones work. See special trigger zones
section
    below.
    - The changes may cause problems for levels still using the original
special
      trigger zones, though there should be no major problems if everyone
in the
      server is using the latest version of JJ2+.
  - Added a special trigger zone for an overtime trigger. See Special
Trigger
    Zones section below.
  - Fixed minor issue where the server does not always update the team
trigger
    for clients.
  - Clients in a JJ2+ server will no longer automatically flash locally
when hit
    by the shockwaves of RFs and TNT. This was previously a Plus Only
feature.
  - Holding down tab now displays player list on HUD as long as the key is
    pressed.
  - Can sort the player list on the Game Info (F9) screen differently by
    pressing CTRL+F9.
    Default is state 1. Press once for state 2, twice for state 3, and
three
      times for state 1 again.
    When F9 is pressed twice, the number of the current state will be
displayed
      to the left of the divider.
    When tab is held down, state 3 is always used.
    - State 1:
      - Sort players by player number only.
    - State 2:
      - Sort players who are not connecting before players who are
connecting.
      - Then sort players who are not spectating before players who are
        spectating.
      - Then sort players by team if CTF mode.
      - Then sort players who are not out/zombies/jailed before players who
are
        out/zombies/jailed.
      - Then sort players by player number.
    - State 3:
      - Sorts players as in state 2
      - In addition, sort players by number of points/lives/gems/deaths.
  - Added configuration settings for "GameInfo" (defaults to 0, range is
[0, 2])
    and "PlayerListSort" (defaults to 1, range is [1, 3]).
  - Adjusted No Movement on Stopped Games so that players no longer see
other
    players jitter when those other players are not actually moving. Server
and
    clients must have latest version of JJ2+.
  - Server and Remote Admin passwords are no longer automatically shown
after
    they are changed.
  - Remote Admin password no longer displayed on the HUD. In its place is
    "Remote Admin" in yellow.
  - Fixed glitch where clients sometimes see multiple objects spawn at one
place
    when only one object should have spawned. As a result, most notably
clients
    should no longer see any duplicate carrots which give "fake health"
(client-
    side fix).
  - Multiple objects spawned on the same tile with MCEs are now always
processed
    correctly when a non-local player attempts to pickup all of them at
once
    (local fix).
  - Fixed the trigger zone switch so that it only switches the trigger
state
    once on contact (local fix).
  - Fixed behavior so that when changing a trigger or triggers for a
non-Plus
    client, all triggers except the one(s) currently being set are no
longer set
    to become the same as the server's triggers.
  - Fixed glitch where clients using splitscreen do not immediately see
health
    decreases when they stomp one another (server-side fix).
  - Added more targets to that can be spectated. See "/spectate
<target>"
    command.
  - For Spectator mode, sound now corresponds to the spectated target.
  - For Idle Server mode, sound can no longer be heard.
  - Added protection against players using weapons and shields not
available in
    the current level. Players using invalid shields and weapons will have
their
    bullets blocked and will be banned if they shoot them too often. Note
that
    if "/nopowerups" or "/noshields" is used, players will still be allowed
to
    shoot bullets from powerups and shields until the level is cycled.
  - JJ2+ messages that are unrelated to commands are no longer preceded by
    "Console:".
  - Changed how basic CTF messages are displayed. Most notably each message
is
    now a single color based on the team.
  - In Flag Run, "<player> captured the flag" messages now appear
only once on
    each flag capture (local fix).
  - In Jailbreak, if prisoners are released with no active players on
either
    blue team or red team, the jails will will open until there are enough
    active players.
  - Fixed glitch where the check for the number of active players in team
games
    was incorrect.
  - Updated plus.exe to improved how levels are added to the Level List.
Users
    can now specify which section levels are added either after being
prompted
    by the program or by using "-section <section_name>" before the
level
    filename arguments. In addition, plus.exe now automatically does
renumbering
    for missing keys and blank level filenames, even when no levels are
added to
    the specified section.
  - Added command "/resetsettings" mainly so that admins can reset
settings.
  - Players running the latest version of JJ2+ who are killed or fall into
a pit
    while using a shield can now immediately use the blaster.
  - Playlog improvements:
    - Now logs Treasure games.
    - Now logs the winners of games.
    - Now logs Game Mode changes in addition to Custom Mode changes.
  - Auto-Stop now automatically stops the game if there is a winner in
Battle-
    and CTF-based modes.
    - WARNING: Reaching the score limit with Auto-Stop enabled may cause
clients
      not running JJ2+ or using an older version of JJ2+ to see the game
end
      when the level is not cycling.
  - Most generated pickups are now automatically destroyed if they fall
into a
    pit.
  - In JJ2+ servers in Treasure mode, players running the latest version of
JJ2+
    will see an arrow pointing to the nearest exit when they have enough
gems to
    win.
  - In Treasure mode, improved cycling when player with enough gems to win
    reaches exit.
  - Objects no longer automatically spawn during stopped games.
  - Added command "/spawnobjects" which forces all allowed objects to
spawn.
  - Increased maximum delay time for generated objects to 255 seconds and
added
    a JCS event parameter so that objects can optionally be delayed from
    initially spawning until after the delay time specified. Requires
replacing
    lines in JCS.ini. See JCS Events section below to learn what to do.

Nov 27, 2008
  - Fixed the Plusifier so that overwriting the original JJ2 exe actually
works.
    You do not need to use the Plusifier again if you already have a
functioning
    JJ2+ exe. If you choose to overwrite your original JJ2 exe with the
    Plusifier, MAKE A BACKUP FIRST!
  - Implemented a better fix for the glitch where downloaders can freeze
the
    server.
    - The new implementation also fixes the glitch caused by the original
      implementation where downloads of levels and tilesets were extra
slow.
  - In Team Last Rabbit Standing, lives are now distributed more evenly.
  - LivesPerTeam configuration setting now defaults to 30.
  - Added MaxTeamPlayers command and configuration setting (defaults to
16).
  - Command /setlives no longer can be used during pregame in TLRS.
  - Fixed glitch with command /setlives in TLRS related to team lives
reserves.
  - Fixed glitch in TLRS where players start with 0 lives when they join
the
    game with no other active players.
  - Made various other fixes to TLRS.
  - Fixed glitched in Spectator mode where clients see flashing hearts at
top-
    right corner when spectating flags or no one.
  - Fixed glitch where players don't immediately drop the flag when they
enter
    Spectator mode or, in the case of the server, enter Idle Server mode.
  - Added music support for MP3/MP2/MP1/OGG/WAV/AIFF and better music
support
    for MOD music.
    - Implemented BASS audio library which works on top of JJ2's Galaxy
Music
      System.
    - BASS version: 2.4
    - WARNING: Users not running the latest version of JJ2+ WILL CRASH if
JJ2
      attempts to load any music file that is not a supported MOD music
track.
  - Fixed glitch (hopefully) where the music volume would decrease without
    resetting in online games.
  - Restored original behavior for how music works in offline games (for
the
    most part).
  - Fixed how the volume works in general.
  - Added /autovolumeleveling command and configuration setting (defaults
to
    true).
  - All /loadsettings and /savesettings commands can now be used by clients
in a
    server.
  - When a client is not an admin in a server, bad commands now always give
an
    error message instead of being printed to the screen.
  - Added a better explanation for how to play/make Domination levels.
  - In Domination, the number of seconds between each score now depends on
the
    total number of control points in the level. See Domination section
below
    for more details.
  - Made minor improvement to the Playlog.
  - Fixed glitch where Level List Cycling needlessly changes the next level
    setting when the custom mode is changed.
  - When there is not enough active and potentially active players in the
server
    and the pregame countdown ends, pregame is now extended up to 3 times
for 30
    seconds. Previously pregame was only extended once for 1 minute.

Aug 28, 2008
  - Added Team Last Rabbit Standing custom mode (uses /tlrs).
  - Added /livesperteam command and configuration setting (defaults to 20).
  - Added Domination custom mode (uses /dom).
  - Fixed glitch in LRS-based modes where players may be in the game (i.e.
not
    out) with a red name.
  - Fixed glitch where countdowns for new rounds in Flag Run, Jailbreak,
and
    DCTF are done too quickly.
  - Added /loadsettings <filename> and loadsettings <filename>
commands.
  - Added /forcespectate command.
  - Added /joinersspectate command and configuration setting (defaults to
    false).
  - Disabled pause key so that JJ2 no longer freezes.
  - Idle Server mode is no longer automatically enabled when the server
    spectates.
  - Players no longer die when Idle Server mode or Spectator mode is
enabled.
  - Idle Server mode is now automatically disabled when Spectator mode is
    enabled. Similarly, Spectator mode is now automatically disabled when
Idle
    Server mode is enabled.
  - Fixed glitch in camera caused by starting normal Spectator mode after
    spectating while out in LRS-based modes.
  - Various other spectating fixes.
  - Added a warning about /shuffle: Shuffling teams several seconds after a
    level cycles or while players are still connecting may cause players to
    spawn at the wrong start positions.
  - Adjusted Death CTF so that when a player scores for the other team, no
one
    dies because of it.
  - Added /resetallteams command and configuration setting (defaults to
true).
  - Added /welcomer command and configuration setting (defaults to false).
  - Added /welcomemessage command and configuration setting (defaults to an
    empty string).
  - Fixed glitch when No Movement on Stopped Games is enabled where players
    using JJ2+ do not stop shooting after a game is stopped.
  - In LRS-based modes, any one who joins after a player places 4th or 3rd
will
    be automatically out.
  - In LRS-based modes, lives are no longer reset for the idle server and
    spectating players after a new game.
  - In XLRS, when the game ends, players can now see the adjusted points on
    their screen after the points for 1st, 2nd, and 3rd place are
multiplied by
    1.5, 1.25, and 1.125 respectively.
  - Fixed glitch in XLRS where /setlives command does not update plus users
of
    their current lives.
  - Spectating players' names in the Game Info (F9) screen now appear gray.
  - Improved spacing for how roast/deaths/lives/points are displayed in
Game
    Info (F9) screen.
  - Ice now has a more similarly behavior with server and clients.
  - Players running the latest version of JJ2+ will be automatically
unfrozen if
    they die and are freezed.
  - Added /evilice command and configuration setting (defaults to false).
  - On Game Info (F9) screen, when F9 is pressed twice:
    - "Custom Mode:" text on left side is removed.
    - Current Game Mode is now displayed when the Custom Mode is off.
    - Below the current Game/Custom mode, the start health (S), max health
(M),
      and the Plus Only status (P) is now displayed. Note that the start
health
      displayed is the minimum of the max health and the actual start
health
      value.
  - Command /setlives can now be used on connecting players.
  - Forgot to mention the optional [reset] parameter which resets the
amount of
    time left for commands /timelimit, /pgtimelimit, and /otlimit.
  - Instagib now always displays 1 heart at the top-right of the screen to
JJ2+
    users. Instagib still overrides Start Health and Max Health settings.
  - Added /smhealth command for setting both Start Health and Max Health at
the
    same time.
  - !swap, !blue, and !red messages now always appear before the consequent
    Console message.
  - Command /reset now resets lives for LRS and XLRS during pregame.
  - Fixed glitch (hopefully) where the random number generator was not
properly
    seeded.
  - In Flag Run, players running the latest version of JJ2+ can now see a
visual
    indicator of a capture point.
  - Command /mute no longer mutes all players when used by the server. See
mute
    command. If the server mutes a player, that player cannot use Self-Swap
and
    admin commands.
  - When Even Teams is enabled, clients can no longer use Self-Swap to make
    teams more uneven.
  - Added example levels for Jailbreak (JBlevel.j2l), Flag Run
(FRlevel.j2l),
    and Domination (DOMlevel.j2l).
  - Added minor descriptions on how to play Team Last Rabbit Standing and
    Domination.

Jul 3, 2008
  - Setting Max Health to 1 is now treated more similarly to instagib. Most
    notably, carrots will no longer respawn just like in instagib.
  - Fixed glitch when player warps while the level cycles and then
continues
    warping to a random warp target afterwards.
  - Removed constraint where secret levels sometimes cannot cycle to other
    levels.
  - In LRS and XLRS, players who don't get a roast every 3 minutes will no
    longer be punished by having their health set to one heart. In its
place,
    players who fail to get a roast every 2 minutes will have their
position
    announced in the server. For other incentives for players to get
roasts,
    Health From Kills can be used.
  - Fixed up how Late Joiners works with LRS and XLRS. In particular, fixed
how
    players can sometimes rejoin the server with more lives than when they
left.
  - Added more changes to reduce lag clones and hopefully without
significantly
    increasing the server's lag.
  - Command /levellist <number> now always gives an error when the
Level List
    file belonging to the specified number cannot be accessed.
  - Added /llautoshuffle command and configuration setting (defaults to
false).
  - IdleTime configuration setting now defaults to 3 minutes.

Jun 22, 2008
  - 32MB is now allocated for JJ2's main memory (previously 9MB for 1.23
and
    11MB for TSF). This basically means larger music files and levels can
be
    played locally without any Amnesia errors. Only available in the
patched JJ2
    exe made with the Plusifier. If you already have a patched exe, you
MUST use
    the Plusifier again to access this feature.
  - Updated the Plusifier with a save dialog so that any filename can be
used
    for the save file. This means you may accidently overwrite the original
exe
    or another file, so BE CAFEFUL and make backups when necessary.
  - Server now does a better job of always relaying flag holder (for CTF)
and
    ring holder (for Roast Tag) positions to clients.
  - When No Blink is enabled, clients using the latest version of JJ2+
won't see
    players blinking after they are hit (server must also have latest
version).
  - Removed /capture command (Team Battle with captures enabled led to bad
start
    positions anyway). May replace with TBCTF eventually, if DCTF isn't
good
    enough.
  - In Team Battle, arrow no longer points to flag.
  - Fixed glitch where players could not press fire to continue to next
level
    when movement was restricted, such as during spectating, when out in
    LRS/XLRS, etc.
  - Fixed how "Spectator Mode" text is displayed for spectating
splitscreeners.
  - In Last Rabbit Standing and Extended LRS, players running JJ2+ now
    automatically spectate when all local players are out.
  - Adjusted spectating so that players who are out and CTF flags in
certain
    conditions cannot be spectated. Such conditions for flags include when
the
    current game mode is not CTF and when the custom mode is Team Battle.
  - Made spectator camera work more smoothly in certain levels.
  - Made the following commands usable by remote admins: list, delist,
relist,
    public, private, servername, maxplayers, password, blockdownloads,
    multiversion, plusonly, nosplitscreeners, kickidlers, idletime,
spectating,
    ban <ip_address>, unban.
    - Needless to say, admins are now more capable of fixing/breaking a
server.
  - Reduced chance of getting an Amnesia error when /restartmusic is used.
  - Admins now always see hack attempts and the IPs of clients who get
    kicked/banned (when JJ2's default kick/ban commands are not used).
  - Changed HFK Health Increase value range from [1, 6] to [-6, 6].
  - Restored default behavior of being able to capture flags in offline
play.
  - Added info and example level for Pit Levels.
  - Fixed minor glitch with anti-hack procedures.
  - Added /autosavechatlog command and configuration setting (defaults to
    false).
  - Improved how JJ2+ logging works in general. In particular, logging for
    multiple instances of JJ2 is handled better.
  - Added ExtendedTNT and TNTDamage configuration settings.
  - Added /selfswap command and configuration setting (defaults to true).
  - Added /alwaysupdatepos command and configuration setting (defaults to
    false).
  - LateJoiners configuration setting now defaults to false.
  - In LRS and XLRS, players' lives in the Game Info (F9) screen now appear
    yellow.
  - Updated list server addresses located in JJ2's memory (i.e. NOT in
registry
    keys) to use list1.digiex.net and list2.digiex.net.
  - Added /latestversiononly command and configuration setting (defaults to
    false).
  - Added /sdteampointdec command and configuration setting (defaults to
true).
  - Added /ffpointdec command and configuration setting (defaults to
false).
  - Added a minor section about the Playlog in this readme after Known
Issues.

Apr 9, 2008
  - Fixed glitch where clients could not mute players other than the
server.
  - Fixed glitch where saving the chatlog changes the current working
directory
    of JJ2.
  - Remembered to mention the fix for "<player> captured the flag"
messages that
    appeared repeatedly for clients, which was caused by a flag holder
colliding
    into an unmasked border of a CTF level (client-side fix).
  - Added older features from Carrotade to the readme.
  - LevelList.ini updated: Removed duplicate "[TeamBattle]".

Apr 5, 2008
  - Removed Jazz2+.exe and added plusifier.exe, which can be used to make
an exe
    that can run plus.dll.
  - Made beta public, with virtually no last-minute testing.

Apr 3, 2008
  - Fixed glitch when Auto Shuffle is on during Jailbreak, and server dies
after
    warping out of jail.
  - Fixed glitch where Auto Shuffle caused players to start at the wrong
    positions.
  - Adjusted how certain packets are sent to hopefully solve sudden crashes
for
    clients in Jailbreak and Pestilence once and for all.
  - Added local fix for clients so that certain packets from the server
can't
    cause crashes.
  - Added JJ2+ server feature to help alleviate lag clones for clients.
  - Clients running JJ2+ no longer see "Game is currently..." messages when
a
    level starts.
  - Fixed glitch where game mode and max score changes kick non-Plus
clients in
    private servers and cause glitches for non-Plus clients who are
connecting.
  - When Plus Only is enabled, players running the latest version of JJ2+
    - Won't lose control (and potentially get stuck) when they get hit
before or
      after warping.
    - (clients) won't automatically flash locally when hit by the
shockwaves of
      RFs and TNT.
  - Fixed glitch where clients would flash when they aren't supposed to
(I'd
    rather not explain this one...)
  - Possibly other fixes/features I forgot to mention. I want this update
tested
    as soon as possible.

Mar 22, 2008
  - Fixed glitches caused by rushing the last update:
    - Fixed team score glitch in Team Battle when a player self-destructs
into a
      pit.
    - Fixed glitch where blinking players are allowed to cause damage to
others.
  - Fixed glitch in 1.23 where powered-up ice projectiles travel in
opposite
    directions when shot while facing left (a local fix, exactly like the
fix
    TSF has always used).
  - For clients running JJ2+, "<team> scored a point" is no longer
displayed
    when a team's score decreases.
  - Fixed minor glitch when Even Teams is on and the server joins the game
after
    spectating/idling.
  - Added /nosplitscreeners command and configuration setting (defaults to
    false).
  - Added /autoshuffle command and configuration setting (defaults to
false).
  - Adjusted /shuffle command so that it can be used at any time in CTF
mode.
  - When Plus Only is enabled in Roast Tag, players running the latest
version
    of JJ2+ now can see an arrow pointing to the ring holder if there is
one.
  - When no one has the flag in Flag Run, players running the latest
version of
    JJ2+ can now see an arrow pointing to the nearest place the flag can be
    captured.
  - Fixed glitch where spectating clients are unable to properly "rejoin"
the
    game when they stop spectating (thanks for pointing it out, cooba).
  - Added /mute and /unmute commands.
  - Renamed files from 'cade' to 'plus'. This means Jazz2+.exe and plus.exe
now
    use plus.dll.
  - Updated the dll loader (plus.exe) to use Gry's method, since the
original
    method was too unreliable.

Mar 14, 2008
  - Added /plusonly command.
  - In configuration ini file, moved HfkMaxHealth, HfkHealthInc, and
    FriendlyFire from [CustomMode] to [Add-on].
  - Added PunishSDs configuration setting.
  - Fixed glitch where Pregame Time Limit doesn't save the configuration
setting
    for 15s and 30s time limits properly.
  - HFK no longer reduces the HFK Max Health setting if HFK Max Health is
lower
    than the general Max Health, but players will still not be able to get
more
    health than the general Max Health. See /hfkmaxhealth and /maxhealth
    commands.
  - Added /starthealth and /maxhealth commands and configuration settings
(both
    default to 'Default'). WARNING: Not friendly to clients not running the
    latest version of JJ2+
  - Fixed glitch for clients related to 'CTF' games in levels that don't
have
    both flags (false "captured the flag" messages).
  - Added additional disconnect messages for the 'Network Error' screen.
  - For the server: If a player is running an old/incompatible version of
JJ2+,
    a red circle now appears behind the Plus sign shown next to that
player's
    name on the Game Info (F9) screen.
  - Friendly Fire no longer affects Roast Tag. This means there's no longer
the
    option to allow players who don't have the ring and aren't the bottom
feeder
    to hurt each other when someone has the ring (not that it was used
often).
    Friendly Fire still doesn't affect Pestilence.
  - Friendly Fire now affects team games if Plus Only is enabled (clients
need
    latest JJ2+ version).
  - When Plus Only is enabled, players will be unable to hit or push other
    players under certain conditions:
    - In Roast Tag, when there is a ring holder and neither the killer or
the
      victim is the ring holder or the bottom feeder.
    - In Pestilence, zombies can't hit/push other zombies. And when there's
at
      least one zombie, non-zombies can't hit/push other non-zombies.
    - In Jailbreak, free players can't hit/push jailed players.
  - When Passing, Friendly Fire, and Plus Only are enabled, a pass to
another
    teammate can be done with any hit.
  - Modified /swap command so that flag holder's team can be changed (it
    slightly distorts player stats, but then again, so does /k and a few
other
    commands).
  - In Jailbreak, players running the latest version of JJ2+ cannot be
freed by
    the other team or wallclimb. Specifically, players won't be able to
freeze
    objects inside the jail of the other team.

Feb 17, 2008
  - Added shortcut SHIFT+F2 for minimizing JJ2 to tray (blame Gry). Note:
cannot
    be used in fullscreen mode.
  - Fixed glitch in Flag Run where the server only sees one flag (either
red or
    blue) captured when a client steals the flag.
  - Just a note: the pepper spray fix (for respawning events) probably
requires
    clients to use it too.
  - Fixed minor glitch with autostop and autocycle commands when they are
turned
    on during a stopped game.
  - During a stopped normal untimed game, "STOPPED" is now displayed at
top-
    right corner.
  - When game is stopped, "OT", "PG", and "TG" is displayed to the left of
the
    timer for overtime, pregame, and normal timed games respectively.
  - Added timer for JJ2+ clients in JJ2+ servers.
  - Added "plus" indicator for JJ2+ clients in JJ2+ servers when F9 is
pressed
    twice (see features).
  - Current Custom Mode is now displayed on the left side of the screen
when F9
    is pressed twice.
  - Added /ban <ip_address> and /unban commands for server (cannot be
used by
    admins).
  - Fixed glitch where user gets sent to 'Start Multiplayer game' screen
after
    pressing 'Done' on 'Game Server Setup' screen. This glitch occurs after
    pressing escape on 'Players on this computer' screen.
  - On 'Game Server Setup' screen, pressing 'Done' now sets menu to 'Select
a
    Level' when level does not exist.

Jan 17, 2008
  - Fixed glitch with /shuffle where clients could not see the update
teams.
  - Modified an undocumented feature that may or may not be in the final
    release.
  - Wallclimbing configuration setting now defaults to false.
  - Added AllowSpectating configuration setting (defaults to false).
  - Fixed glitch in Treasure mode where leaving clients don't explode off
their
    gems. The problem is related to the seeker hole fix...

Jan 11, 2008
  - Added /wc (wallclimbing) command and configuration setting (defaults to
    true).
  - Sugar rush music now stops immediately after dying with a sugar rush
(not
    for splitscreeners though...).
  - Auto-Stop (still a poor command name) now stops the game after
overtime.
  - Reduced probability of clients causing damage to others by
    stomping/kicking/uppercutting the "ghost" of another player.
  - Made one more precaution before sending certain packets (in hope of
ceasing
    client crashing problems).
  - Added issue with Game Mode and Max Score changes to Known Issues.
  - Fixed glitch with /eventeams where splitscreeners don't join on the
opposite
    team of the server.
  - Fixed glitch where events on the far-left side of levels stop
respawning for
    clients (only the server must be running JJ2+). Such an event is the
    infamous copter in battle1. Special thanks goes to a random player
named Emo
    for shooting pepper spray (the cause of the glitch) in my Battle Game
XC
    server.
  - Updated the dll loader (cade.exe) so that it hopefully works on Wine
and I
    suppose all reasonably versions of Windows. It probably does. The dll
loader
    now requires the dll to be in the same directory as the JJ2 exe though.

Jan 5, 2008
  - Added /ptrigger command for changing the triggers of just one player
(Note:
    if a client is splitscreening, this command cannot be used to give each
    splitscreener of that client different triggers).
  - Significantly reduced amount of TCP sent from the server to clients in
    general.
    - This means Jailbreak and Pestilence should cause fewer crashes to
clients!
  - Fixed /maxscore command so it doesn't time-out non-Plus clients
    - Unfortunately, I'm now sending even more TCP to non-Plus clients when
      changing game mode or score, so it would be a good idea to avoid game
mode
      changes whenever possible.
  - Timers for Flag Run and Roast Tag no longer continue when game is
stopped.
  - The /rename command now says "<old_name> was renamed to
<new_name>" on
    success.
  - Clients running this program no longer see negative team scores when a
    team's score is between 128 and 255.
  - Added loading issue to Known Issues.
  - Added /changemusic, /restartmusic, and /np (now playing) commands.
  - Chat field no longer disappears on level cycle.
  - Hearts now always display right to left. This makes it easier to see
more
    than 5 hearts on the display.
  - Spectators' displays now look similar to the display of the player they
are
    spectating, including number of hearts, roasts/gems, and current weapon
    (current weapon is based on last fired shot). Since ammo cannot be
    accurately determined, an infinity sign is used instead of a number.

Dec 21, 2007
  - For LRS and XLRS:
    - amount of time for a player not roasting before health getting set to
1
      changed from 2 minutes to 3
  - Jailed name now only has 1 asterisk (i.e. "BlurredD" becomes
"*BlurredD").
  - Made order of who gets the flag in Flag Run based on captures.
    - i.e. if player 1 has 4 captures and player 2 has 3 captures, and they
both
      go for the flag at the same time, player 2 gets the flag.
    - if two or more players who go after the flag have the same number of
      captures, the flag is given to one of those players randomly.
  - Random anti-crash fixes (unfortunately no major fixes for Jailbreak
client
    crashes, yet..)
  - In Flag Run, capturing and scoring the flag is now more similar to
what's
    done in normal CTF. Basically this means clients are now more likely to
    score or capture the flag the instance they try to score or capture.

Miscellaneous features/fixes added before Dec 21, 2007
  - Fixed Team Chat.
  - Fixed cycling while minimized (for the most part).
  - Weapon Respawn fix.
  - Seeker Hole fix (local fix).
  - CTF fixes for the following:
    - Recapturing enemy flag immediately after death (fixed for the most
part).
    - Disappearing flags.
  - Fixed glitch where clients can join private server without a password
    (server-side fix).
  - Fixed online RF missle glitches:
    - Recoil from RF missles no longer causes fake health for clients.
    - Recoil from RF missles that were not powered-up now only does 1 heart
      damage.
  - Fixed glitch related to level filename lengths which cause clients to
    suddenly disconnect.
  - Reduced probability of clients getting fake health from carrots
(server-side
    fix).
  - Added Spectator Mode. Note that spectating players cannot send or
receive
    team chat.
  - Added Flag Passing, which requires the receiver to hold the up arrow
when
    shot by RF missiles by the flag holder.

3. New features and bug fixes
===========================================================================
=====
- Fixed problem (hopefully) where some clients timeout in a server after 30
  seconds. This is mainly a server-side fix, but to ensure all UDP packets
are
  received, clients must be running the latest version of JJ2+ as well.
Special
  thanks to SuPrem and Cpp (Overlord) for helping me find the problem.
- Fixed players from appearing to go outside the level (both client and
server
  need to use JJ2+).
- Fixed all major access violation issues.
- Improved how downloading files works.
- Improved how objects spawn.
- Improved issues with fake health.
- SHIFT+F2 minimizes JJ2 to tray (blame Gry). Note: cannot be used in
fullscreen
  mode.
- 32MB is now allocated for JJ2's main memory (previously 9MB for 1.23 and
11MB
  for TSF). This basically means larger music files and levels can be
played
  locally without any Amnesia errors. Only available in the patched JJ2 exe
made
  with the Plusifier.
- Added music support for MP3/MP2/MP1/OGG/WAV/AIFF and better music support
for
  MOD music.
  - Implemented BASS audio library which works on top of JJ2's Galaxy Music
    System.
  - BASS version: 2.4
  - WARNING: Users not running the latest version of JJ2+ WILL CRASH if JJ2
    attempts to load any music file that is not a supported MOD music
track.
- Added support through command line and j2i files for joining servers that
are
  passworded or on a different version of JJ2. When using the command line,
use
  "-connect" before the IP address.
  Formats:
    <ip_address>[:<port>] [-password=<password>]
[-version=<server_version>]
   
<ip_address>[:<port>][/[<password>][/<server_version&g
t;]]
  Values for <server_version>
    For 1.23, use: 1.23, 23, 1.21, or 21 (all map to "21  ")
    For TSF, use: 1.24 or 24 (both map to "24  ")
  Examples:
    127.0.0.1:10052 -password=abc -version=1.24
    127.0.0.1 -password="pw \w ""spaces"""
    127.0.0.1/abc/1.21
    127.0.0.1:10058//1.21
  Note that to use a double quotation mark in a password, the double
quotation
    mark must be "escaped" by another double quotation mark. Backslashes do
not
    need to be escaped.
- TSF JJ2+ users can now join any 1.23 server whether through the Game List
in
  the menu, command line argument "-connect", or j2i file (local change).
Note
  that TSF JJ2+ users don't have to specify the server version in command
line
  and j2i file.
- Overtime and Pregame modes.
- Spectator mode.
- Server Game Info (F9) features.
  - Plus sign shown next to name for players running Plus (blue for 1.23,
green
    for TSF).
  - A red circle appears behind the Plus sign if a player is running an
    old/incompatible version of JJ2+.
  - Exclamation point shown next to player names if they are using a
different
    version of JJ2 than the server.
- Other Game Info (F9) features (for both server and clients in Plus
servers).
  - For JJ2+ clients in JJ2+ servers, gray plus sign shown next to name for
    players running Plus.
  - "C" shown to the right of name to indicate connecting client.
  - "D" shown to the right of name to indicate downloading client.
  - "A" indicates client has admin access.
  - "S" indicates player is spectating.
  - "M" indicates player is muted.
  - Point count shown for CTF mode.
  - Death count shown for Battle and CTF modes.
  - On left side when F9 is pressed twice:
    - Below the level name and player's position, Current Game or Custom
Mode is
      displayed.
    - Below the current Game/Custom mode, the start health (S), max health
(M),
      and the Plus Only status (P) is now displayed. Note that the start
health
      displayed is the minimum of the max health and the actual start
health
      value.
- Holding down tab now displays player list on HUD as long as the key is
  pressed.
- Can sort the player list on the Game Info (F9) screen differently by
pressing
  CTRL+F9.
  Default is state 1. Press once for state 2, twice for state 3, and three
times
    for state 1 again.
  When F9 is pressed twice, the number of the current state will be
displayed to
    the left of the divider.
  When tab is held down, state 3 is always used.
  - State 1:
    - Sort players by player number only.
  - State 2:
    - Sort players who are not connecting before players who are
connecting.
    - Then sort players who are not spectating before players who are
      spectating.
    - Then sort players by team if CTF mode.
    - Then sort players who are not out/zombies/jailed before players who
are
      out/zombies/jailed.
    - Then sort players by player number.
  - State 3:
    - Sorts players as in state 2
    - In addition, sort players by number of points/lives/gems/deaths.
- Various game mode improvements.
- New custom modes:
  - For Battle Mode:
    - Pestilence (roasted rabbits get morphed into zombies, so live long
and
      roast for points).
    - Last Rabbit Standing (players have lives, last player with lives
wins).
    - Extended Last Rabbit Standing (players have lives, but win by
points).
      - Points for 1st, 2nd, and 3rd place get multiplied by 1.5, 1.25, and
        1.125 respectively.
    - Roast Tag (roast the ring holder, the player with the green name, to
      become IT).
      - Only the player who is IT or becomes IT receives points from
roasts.
  - For CTF Mode:
    - Team Battle (roast is 1 team point, i.e. Battle mode, but with
teams).
    - Death CTF (roast is 1 team point, flag score points equals 1 + number
of
      enemy team).
      - On flag scores, either the enemy team or both teams die depending
on
        settings--see /resetallteams.
    - Jailbreak (those roasted go to jail and must be freed with ice, score
by
      jailing entire enemy team).
      - For those who want to make JB levels:
        - Trigger ID 30 is for release prisoners and Trigger ID 29 is for
          overtime.
        - The overtime trigger is mainly meant to prevent freeing players
with
          ice on either team.
    - Flag Run (one flag for both teams, score by taking it into the
enemy's
      base).
    - Team Last Rabbit Standing (players have lives, team has total lives,
last
      team with lives wins).
    - Domination (teams capture control points, get 1 point for each
control
      point they own every 5-20 seconds).
- Special features which are only enabled when Plus Only is enabled. See
Plus
  Only Features section below.
- Special trigger zones that sets triggers for all players. See Special
Trigger
  Zones section below.
- New and updated JCS Events. See JCS Events section below to learn more.
- Older features and bug fixes from Carrotade:
  - Death from pits (the event at the bottom-right corner of level must be
255).
  - Level List cycling. See Level List section below.
  - Automatic level cycling.
  - Chat, stats, and IP logging.
  - Anti-cheat protection.
  - Idle player kicking.
  - Idle Server mode.
  - Remote Admin.
- Created additional command line arguments (see New Command Line Arguments
  section below).

Note: See commands below for additional features.



4. Known Issues
===========================================================================
=====
- The TSF: LK Avalon version of JJ2 is not supported and most likely will
never
  be supported.
- In the menu bar, Plus Settings does nothing useful. This will eventually
  change...
- Downloaders cannot receive chat, for lag reasons. I have other lag issues
to
  solve though.
- Downloaders not running the latest version of JJ2+ will get kicked when
the
  level changes, and this is the best solution for now.
- Loading plus.exe while starting a server (when the screen is all black),
or on
  the connecting screen will cause JJ2 to crash.
- Game Mode and Max Score changes causes glitches for splitscreeners not
running
  JJ2+.
- Changing a player's team may lead to bad triggers (such as for team-based
  triggers) depending on the level.
- Shuffling teams while splitscreeners are in the server may cause bad
triggers
  as well as other problems.
- Reaching the score limit with Auto-Stop enabled may cause clients not
running
  JJ2+ or using an older version of JJ2+ to see the game end when the level
is
  not cycling.



5. Playlog
===========================================================================
=====
About Points and Roasts in the stats:

The Points stat is based on the number of roasts a player has and includes
point
decreases from pit deaths and similar. In other words, it's the number of
"roasts" you see on the screen during a JJ2 game. The Roasts stat is
strictly
the number of kills a player has in a given game. This is true for all
custom
modes and game modes that record these stats.  For custom modes like Roast
Tag
and battle games with pits, "Points" makes a lot more sense. I know it's
not
immediately obvious what points and roasts means in the Playlog, especially
in
team games, but now you know. I am considering using the word "Points" in
the
HUD for Battle mode in the near future.



6. Level List and Zipping Levels
===========================================================================
=====
plus.exe can be used to load plus.dll into a running JJ2 process (use
command
line argument "-loadplus" to skip prompt). plus.exe also serves two other
purposes: adding levels to the Level List (in file LevelList.ini) and
zipping
levels including their tilesets, music, and other linked levels
automatically.
Note that levels can be added to the Level List and a zip file at the same
time.

6.1. Level List
========================================
To add levels to the Level List, you can select the levels within your JJ2
folder and drag them over plus.exe. Arguments can be used to skip the
prompts.

plus.exe arguments for Level List:
  -addtolist
    Used to add levels to the Level List.
  -section <section_name>
    Specifies which section levels are added.
  -link, -nolink
    Add/Don't add the levels linked to the specified levels.
  -excludefile <filename>
    Specifies file which lists files to exclude from being added to the
Level
      List.
    See default exclude file plus-exclude.txt which is automatically used.
  -noexclude
    Exclude no files from being added to the Level List. This overrides the
      default where files listed in
      plus-exclude.txt are automatically excluded.

Example shortcuts:
  plus.exe -addtolist -nolink
    Add levels, don't get linked levels, prompt for section name.
  plus.exe -addtolist -section CTF -link
    Add levels to Level List section "CTF", get linked levels (useful for
level
      packs).

In addition, plus.exe automatically does renumbering for missing keys and
blank
level filenames, even when no levels are added to the specified section.
You can
also write the filenames directly into LevelList.ini directly. The "j2l"
extension must be included. This is the general format of LevelList.ini:

[Battle]
001=levelfilename.j2l

The default section names, based on gamemode, are Battle, TeamBattle, CTF,
Treasure, SinglePlayer, Race, FlagRun, and Jailbreak. The number before the
equal sign must be between 001 and 999, and the leading zeros are required.

On 'Game Server Setup' screen, you can use "levellist [<number>]" in
place of a
level filename. When the server starts, JJ2+ will attempt to load the first
level (or the level belonging to the specified number) from the Level List.

See Cycling and Next Level Commands in the Server Only Commands section for
the
Level List commands.

6.2. Zipping Levels
========================================
To zip levels to a zip file, you can select the levels you want and drag
them
over plus.exe or simply click plus.exe and follow the prompts to add levels
from
a Level List section. Arguments can be used to skip the prompts.

plus.exe arguments for Zipping Levels:
  -addtozip
    Used to add levels to a zip file.
  -zip <zip_filename>
    Specifies zip filename. This argument doesn't need to be used with
      -addtozip.
  -overwrite
    If zip file exists, overwrite zip.
  -append
    If zip file exists, append files to zip and overwrite duplicate files
within
      the original zip.
    Zip file cannot contain passworded files.
  -fastappend
    If zip file exists, append files to zip. Duplicate files within the
original
      zip are always added, which will lead to a situation where more than
one
      file has the same filename. Note that this option is not provided as
a
      prompt.
  -addsection, -nosection
    Add/Don't add the levels from a Level List section.
  -section <section_name>
    Add all levels from the specified Level List section to the zip. This
      argument doesn't need to be used with -addsection.
  -link, -nolink
    Add/Don't add the levels linked to the specified levels.
  -tilesets, -notilesets
    Add/Don't add the tilesets of the specified levels.
  -music, -nomusic
    Add/Don't add the music of the specified levels.
  -excludefile <filename>
    Specifies file which lists files to exclude from being zipped.
    See default exclude file plus-exclude.txt which is automatically used.
  -noexclude
    Exclude no files from being zipped. This overrides the default where
files
      listed in plus-exclude.txt are automatically excluded.

Example shortcuts:
  plus.exe -addtozip -overwrite -nosection -link
    Zip levels, prompt for zip save filename, overwrite existing zip, get
linked
      levels, prompt for getting tilesets and music.
  plus.exe -addtozip -zip mypack.zip -append -addsection -nolink -tilesets
    -music
    Zip levels, add to zip file "mypack.zip", append files to existing zip,
add
      section from Level List specified through prompt, don't get linked
levels,
      get tilesets and music.

7. Remote Admin
========================================
When Remote Admin is enabled, a client can be promoted to an admin and
given
access to certain server commands. A client can become an admin either by
typing
the command "/login <password>" or, for newer versions of JJ2+, by
having an
Auto Admin IP address.

The latest versions of JJ2+ offers the ability to manage admin groups. For
each
admin group, the following can be set: the password, allowed commands (or
blocked commands), Auto Admin IP addresses, and whether the group is
currently
enabled. Auto Admin IP addresses allow a user to be automatically promoted
to an
admin for a given group when joining the server. The password must be
between 8
to 20 characters long and must contain only letters and numbers. If no
password
or an invalid password has been stored for an admin group in the admin
configuration file (admin.ini), a valid password will have to be specified
later
before that group can be used. Passwords are NOT case sensitive. Any
attempt to
login (whether Remote Admin is enabled or not) as well as any command
issued by
an admin will be hidden to any player in the server who is not an admin.

For the commands "/c <level_filename>" and "/n
<level_filename>", the admin is
limited to the levels that can be found in the Level List (LevelList.ini).
The
server and admins are able to use Admin Chat--chat only viewable by the
server
and admins--by prefixing their chat messages with ">". For players
running JJ2+,
F9 can be used to see who has Admin Access. Those who do will have a green
"A"
next to their name.

Since an admin may have considerable access to server commands, it is
especially
important to make sure those who have the admin password can be trusted.



8. Roast Tag
========================================
This is a custom gametype where one player can become IT (i.e. the player
who
has "Eva's ring" and has a green name), and everyone else tries to roast
that
player. When no one is IT yet, there is a free-for-all, and the first
player to
get a roast receives three points then becomes IT. Afterwards, any time a
player
kills the one that is IT, the killer will become IT. In addition, the
player
with the least points and most deaths will become the BOTTOM FEEDER and
will get
a red name. Whenever someone is IT, the other players, excluding the BOTTOM
FEEDER, cannot receive points unless they roast the player who is IT. The
BOTTOM
FEEDER can receive one point for roasting normal players (i.e. players
without
colored names).

After the first roast, the player who is IT receives one point for roasting
a
normal player, and the points received increase by one after each roast of
a
normal player for a maximum of five points. Whoever is IT will always
receive
three points for roasting the BOTTOM FEEDER. Furthermore, the player that
is IT
must get a roast every 90 seconds, or else that player will lose a point
and
cease to be IT. After that, there is another free-for-all.



9. Flag Run
========================================
There is one "flag" which both teams can capture, usually located somewhere
in
the middle of the level. The flag holder must return the flag to the
opponent's
base before time runs out or else the flag holder will self-destruct and
lose
the flag. The flag holder's team has 45 seconds to score on flag captures,
and
30 seconds to score on flag steals. A flag can be stolen by roasting the
flag
holder when he/she has 15 seconds or less to score.

Scoring:
    45-31 seconds left: 3 points + extra points
    30-16 seconds left: 2 points + extra points
    15-0  seconds left: 1 point  + extra points

    On flag captures, extra points start at 0.
    On flag passes and flag steals, extra points get set to 1.
    Each roast by the flag holder adds 1 extra point.
    Extra points can be 3 at the most.



10. Team Last Rabbit Standing
========================================
Teams have a set number of lives which are divided among the players of a
team.
No player cannot receive more points than Max Lives. If there are lives
left
over, they go into a team's reserves. When players lose all their lives,
and
their team has reserves, the remaining reserves are divided among all
players of
the same team who are out. Game ends when only one team has remaining lives
left.



11. Domination
========================================
Teams try to capture the control points in a level. Each team gains a point
for
each control point separately every 5-20 seconds depending on when it was
captured. The number of seconds between each score depends on the total
number
of control points in the level:
     1-4  control points:  5 seconds
     5-8  control points: 10 seconds
     9-12 control points: 15 seconds
    13-16 control points: 20 seconds

Neutral control points (that is, control points not controlled by any team
yet)
are shown as a spinning white circle. Once a player touches it, after a one
second delay the control point will turn into a Super Gem in the color of
the
player's team. Captured control points can then be captured by another team
in a
similar manner. The team that currently holds a control point can prevent
its
capture by another team by touching the control point within a second after
another team has touched it.

In JCS, control points are created by marking any event as Easy or Hard.
Control
points marked as "Easy" face to the right, while control points marked as
"Hard"
face to the left. If the event used is a text event, the control point is
named
after the text string used with that event. If the event used is NOT a text
event, the control point will be automatically named based on it's relative
position to other control points. For example, if there are two control
points
and none of them use a text event, the control point closest to the top and
furthest to the left would be named "Control Point 1", and the other
control
point would be named "Control Point 2." The control point ordering goes
from top
to bottom and left to right.



12. Pit Levels
========================================
See pitlevelex.j2l for a basic idea of what a level with pits looks like.
For a
level to be able to use pits, the event at the bottom-right corner of level
must
be 255 (see below). Fly carrots, airboards, copters, and water are
recommended
not to be used with pits. Start positions, warp targets, and platforms
should
not be placed too close to the bottom of a level since this may cause
clients to
get stuck at the bottom. Warp targets where players can fall into a pit
without
landing on a platform must especially be avoided. Ammo, carrots, and other
shootable events should be placed in areas where if they are shot down,
they
can't fall into a pit.

How to set event 255 at the bottom-right corner of a level:
  1.) Right-click the bottom-right corner and choose "Select Event."
  2.) Click the box for "Create a generator for this event."
  3.) Change the Event number to 255 then click "OK."
  4.) Select the event again, uncheck "Create a generator," then click
"OK."



13. Special Trigger Zones
========================================
Some things to know first: Whenever a client first spawns in a level, the
client
receives all of the server's trigger settings. This behavior is needed to
make
many levels work, but causes problems for others. Levels that will have
problems
include those which use a trigger for team-based routes. This section
addresses
these issues.

With JJ2+, the trigger IDs of the trigger zones placed on the bottom row of
a
level will receive special properties. Several trigger zones have specific
uses.
When the server sends its trigger settings to clients, the trigger settings
will
be adjusted depending on the client. For the following triggers, note that
"Position <number>" means place the trigger zone at position
(<number>,
<level_height>) in JCS. For example, to set the server trigger in a
level with
50 as its height, you would place a trigger zone at (2, 50).

-Position 1: Team trigger
    -When the trigger zone's onoff state equals 0, the trigger is set on
for red
      team, off for blue team.
    -When the trigger zone's onoff state equals 1, the trigger is set on
for
      blue team, off for red team.
-Position 2: Server trigger
    -The trigger is set on for server, off for clients.
-Position 3: Overtime trigger
    -The trigger is always set on when overtime begins.

Any other trigger zone placed on the bottom row of a level will have its
trigger
set to off when trigger settings are sent to clients. In addition, clients
running the latest version of JJ2+ will always ignore their trigger
settings.

Note: I plan on giving other uses for trigger zones after position 3, so if
you
want a trigger to always be off/ignored by clients, place its trigger zone
at
the bottom right of your level.



14. JCS Events
========================================
To use special events recognized only by JJ2+, you must replace certain
lines in
your JCS.ini, which should be located in the same folder as JCS.exe.

WARNING: If a level takes advantage of these JCS event changes, users who
don't
have their JCS.ini updated may lose some of the level's data when they
attempt
to save it.

- Lori Level Start (event 32) can be used to create a start position usable
only
  by Lori.
- Replace the line for event 32 with the following:
32=Lori Level Start                 |+|StartPos  |Lori   |Start

- Generator (event 216) now has a maximum delay time for generated objects
to
  255 seconds and an extra parameter so that objects can optionally be
delayed
  from initially spawning until after the delay time specified. The new
maximum
  delay time and the optional initial delay can also be used with MCE
events
  (see MCE Event below).
- Replace the line for event 216 with the following:
216=Generator                       |+|Generator |Gene-  |rator 
|Event:8|Delay Secs:8|Initial Delay:1

- MCE Event (event 255) can be used to create MCE events with no unwanted
side
  effects. It has the same parameters as the Generator event.
- Replace the line for event 255 with the following:
255=MCE Event                       |+|Area      |MCE    |Event 
|Event:8|Delay Secs:8|Initial Delay:1

- The end-of-level events now have additional parameters to allow fast
level
  cycling and a greater number of choices for the next level. The TextID
  parameter is used for the help string number, and each help string can
contain
  multiple filenames separated by a vertical bar (|). If TextID is zero,
the
  default next level filename is used. The Offset parameter is used to
select
  the filename within the help string. For example, if the help string is
  "beachlevel|castlelevel" and Offset is 1, castlelevel is used
end-of-level
  event.
- See levels SPlevel1.j2l and SPlevel2.j2l for an example. Warning: Running
  these levels through JCS (via Save & Run) may cause the levels to
break if
  JCS.ini is not properly updated first.
- Replace the lines for events 17, 18, and 26 with the following:
17=Area End Of Level                |+|Area      |End    |Area  
|Secret:1|Fast:1|TextID:4|Offset:4
18=Area Warp EOL                    |+|Area      |End    |Warp  
|Empty:1|Fast:1|TextID:4|Offset:4
26=Area Warp Secret                 |+|Area      |Warp   |Secret
|Coins:10|TextID:4|Offset:4

15. Plus Only Features
========================================
Certain features are only available when Plus Only is enabled:

- When Friendly Fire is also enabled during a team game, teammates are able
to
  hit each other.
- Players will be unable to hit or push other players under certain
conditions:
  - In Roast Tag, when there is a ring holder and neither the killer or the
    victim is the ring holder or the bottom feeder.
  - In Pestilence, zombies can't hit/push other zombies. And when there's
at
    least one zombie, non-zombies can't hit/push other non-zombies.
  - In Jailbreak, free players can't hit/push jailed players.
- When Passing and Friendly Fire are also enabled, a flag pass to another
  teammate can be done with any hit.
- In Roast Tag, players will see an arrow pointing to the ring holder if
there
  is one.



16. The Commands
===========================================================================
=====
16.1. For Server Only
========================================

--> Main Server Commands
  /list
    Lists server.
  /delist
    Delists server.
  /relist
    Relists server.
  /public
    Makes server public.
  /private
    Makes server private
  /servername <server_name>
    Renames server. Server name cannot exceed 30 characters.
  /maxplayers <number>
    Sets the max number of players allowed in server. Must be between 1 and
32.
  /gamemode <mode>
    Sets Game Mode. Mode must be either sp, coop, battle, race, treasure,
or
      ctf.
    Warning: Game Mode changes causes glitches for splitscreeners not
running
      JJ2+.
  /password <password>
    Sets server password. Password cannot exceed 14 characters.
  /bluescore <number>
    Sets Blue Team's score.
  /redscore <number>
    Sets Red Team's score.
  /maxscore <number>
    Sets Max Score.
    Warning: Max Score changes causes glitches for splitscreeners not
running
      JJ2+.
    Note: In CTF mode, setting Max Score above any team's score will cause
the
      level to cycle.
  /alwaysupdatepos <on|off>
    Enables/disables always updating clients of other players' positions.
    This feature should only be used by servers with fast enough internet
      connections.
  /blockdownloads <on|off>
    Enables/disables blocking downloads by clients.
  /uploadmusic <on|off>
    Enables/disables uploading music to clients.
  /maxuploadpacketsize <bytes>
    Sets the number bytes for the maximum upload packet size for clients
using
      the latest version of JJ2+.*
  /maxconnections <number>
    Sets the maximum number of connections allowed for the server. This is
      different than Max Players which accounts for splitscreeners. Note
that
      clients running JJ2+ but not the latest version cannot join servers
where
      there are 16 or more connections. However, non-Plus clients can join
such
      a server, although they won't be able to see chat from any client
      (including themselves) who has a connection number above 15.
  /multiversion <on|off>
    Allows players from other JJ2 versions to join the server.
    Sprites will automatically display correctly for a player's character
if
      clients do not edit their JJ2 version before joining.
  /plusonly <on|off>
    Allows only players with JJ2+ to be in the server.
    All players not running JJ2+ are automatically kicked.
    See Plus Only Features section.
  /latestversiononly <on|off>
    Restricts the players allowed in the server to all players not running
JJ2+
      and players running a JJ2+ version that is equal to or greater than
the
      server's JJ2+ version.
    All JJ2+ players not running the latest JJ2+ version are automatically
      kicked.
    Note that to use Plus Only features, Plus Only must be enabled.
  /nosplitscreeners <on|off>
    Allows only players who aren't splitscreeners join the server.
  /welcomer <on|off>
    When enabled, clients joining the server are greeted with a custom
message.
  /welcomemessage <message>
    Sets the welcome message clients see when they join the server if the
      Welcomer is on.
    For longer messages, manually edit the setting in the configuration
file.
    Welcome message cannot exceed 50 characters.
  /rename <player> <new_name>
    Changes player's name to a new name.
  /swapversion <player>
    Changes whether or not a player is using the same version as the
server.
    This command is used to correctly display sprites of clients using
other JJ2
      versions.
  /k <player>
    Kills player (not counted as a death).
  /spawnobjects
    Forces all allowed objects created by generators to spawn if they
aren't
      spawned already.

--> Idle Player Management
  /kickidlers <on|off>
    Enables/disables automatically kicking idlers.
  /idletime <minutes>
    Sets the max number of minutes a client can idle.

--> Idle Server Commands
  /idleserver <on|off>
    Enables/disables Idle Server mode.*
    Automatically enabled after an hour (or 5 minutes if minimized) of
server
      inactivity in a Battle or CTF game.

--> Resolution Command
  /maxresolution <width>x<height>
    Sets the maximum viewable area for online games.
    Only players running the latest version of JJ2+ are affected.

--> Spectating
  /spectating <on|off>
    Enables/disables spectating for all players running JJ2+.
  /joinersspectate <on|off>
    Enables/disables automatic spectating for players joining with JJ2+.
    Players not running JJ2+ will not be able to join the server.
  /maxspectators <number>
    Sets the maximum number of players who are allowed to spectate. If the
limit
      is reached, players will not be able to spectate with the "/spectate"
      commands. Note that the limit also applies to joining players when
Joiners
      Spectate is enabled.
  /forcespectate <player|all> <on|off>
    Forces spectator mode to turned on/off for specified player or all
players.
    Players not running JJ2+ cannot be forced to spectate.

--> Remote Admin
  /remoteadmin <on|off>
    Enables/disables admin access.*
  /admingroup <group> <on|off>
    Enables/disables the specified admin group.*
  /setadminpass <group> <password>
    Sets password needed for admins to login for the specified group.*
    Password must be only letters and numbers and between 8 and 20
characters.
  /getadminpass <group>
    Displays password needed for admins to login for the specified group.*
  /addadminip <group> <ip_address>
    Adds an Auto Admin IP address for the specified group.*
  /removeadminip <group> <ip_address>
    Removes an Auto Admin IP address for the specified group.*
  /addallowedcommand <group> <command>
    Adds an allowed command for the specified group.*
  /removeallowedcommand <group> <command>
    Removes an allowed command for the specified group.*
  /addblockedcommand <group> <command>
    Adds a blocked command for the specified group.*
  /removeblockedcommand <group> <command>
    Removes a blocked command for the specified group.*

--> Kick/Ban Commands
  /kick <player> [<reason>]
    Kicks player. If reason is specified, all players running the latest
version
      of JJ2+ will see the reason.
  /ban [<time>{s|m|h|d}] {<player>|<ip_address>}
[<reason>]
    Bans specified player or IP address. Asterisks can be used as wildcards
for
      the IP address.
    When banning an IP address, players who have the banned IP will NOT be
      automatically kicked.
    The optional ban time can be set to a number of seconds, minutes,
hours, or
      days, and ban time must be between 5 seconds and 30 days. If no ban
time
      is specified, the player or IP address is banned indefinitely.
    If reason is specified, all players running the latest version of JJ2+
will
      see the reason.
    Examples:
      "/ban 30s 2 Bye" bans player 2 for 30 seconds with a reason of "Bye".
      "/ban 5h 127.0.0.1" bans IP 127.0.0.1 for 5 hours with no reason
given.
  /unban <ip_address|all>
    Removes ban for a single or all IP addresses. Asterisks can be used as
      wildcards.
    This command cannot be used to unban IP addressses banned through JJ2's
      default ban command or Banlist.lst.

--> Start/Stop, & Time-Based Commands
  /start
    Starts game.
  /cstart
    Starts game with a countdown.
  /stop
    Stops game
  /nomovement <on|off>
    Enables/Disables no movement for when a game is stopped.
    When enabled and game is stopped:
      -Players running JJ2+ are restricted of movement.
      -Players not running JJ2+ are sent to the bottom-left corner.
    When enabled and game is started:
      -Players running JJ2+ are allowed to move again.
      -Players not running JJ2+ are roasted (and flags will be lost).
  /autostart <on|off>
    Enables/disables Auto-Start. Game automatically starts after the level
      cycles.
  /time
    Displays time limit and time left.
  /pregame
    Enables/disables Pregame.
    Pregame is automatically extended if there is not enough active players
in
      the server.
  /pgtimelimit <minutes|30s|10s> [reset]
    Sets Pregame time limit.
  /overtime <on|off>
    Enables/disables Overtime.
  /otlimit <minutes> [reset]
    Sets Overtime limit.
  /autocycle <on|off>
    Enables/disables Auto-Cycling. Level automatically cycles after the
time
      limit is reached.
  /autostop <on|off>
    Enables/disables Auto-Stop. Game automatically stops after the time
limit is
      reached or after a player/team wins in a Battle- or CTF-based mode.
(I'm
      still working on the command names...)
    WARNING: Reaching the score limit with Auto-Stop enabled may cause
clients
      not running JJ2+ or using an older version of JJ2+ to see the game
end
      when the level is not cycling.
  /timelimit <minutes> [reset]
    Sets time limit for when the game is in Normal (i.e. when it's not
Pregame
      or Overtime).

--> Cycling and Next Level Commands
  /c
    Cycles to the next level.
  /c <level_filename>
    Sets next level to <level_filename> if it exists, then cycles.
  /nr
    Sets next level to current level.
  /n
    Displays level filename of the next level.
  /n <level_filename>
    Sets next level to <level_filename> if it exists.
  /r <level_filename>
    Restarts level (i.e. cycles to current level).
  /levellist <on|off>
    Enables/disables Level List Cycling.
  /levellist shuffle
    Shuffles levels within the Level List.
  /levellist <number>
    Sets next level to the Level List file belonging to the specified
number.
  /llautoshuffle <on|off>
    Enables/disables automatic shuffling of the levels within the Level
List.

--> General CTF Mode Commands
  /eventeams <on|off>
    Enables/disables Even Teams. Teams are only made more even when a
player
      joins.
  /allblue <on|off>
    When enabled, all players in the server are changed to blue team, and
all
      new players join on blue team.
  /allred <on|off>
    When enabled, all players in the server are changed to red team, and
all new
      players join on red team.
  /selfswap <on|off>
    Enables/disables clients to change their own team. When enabled,
clients can
      use !swap, !blue, and !red to change teams.
  /passing <on|off>
    Enables/disables Flag Passing between teammates.
    To pass a flag, the flag holder must hit at a teammate who is pressing
up.
    If Friendly Fire and Plus Only are enabled, any hit can be used for
passing,
      otherwise only RFs can be used.
  /capturewait <on|off>
    Enables/disables Capture Wait.
  /ctfmessages <on|off>
    Enables/disables CTF+ messages.
  /shuffle
    Shuffles all players' teams. Must be done at the beginning of the game.
    Doesn't make sure splitscreeners stay on the same teams.
    Shuffling teams several seconds after a level cycles or while players
are
      still connecting may cause players to spawn at the wrong start
positions.
  /autoshuffle
    Automatically shuffles all player's teams at the start of the level.
    Doesn't make sure splitscreeners stay on the same teams.
    Also, players may not always start at the correct start positions.
  /swap <player>
    Changes player's team.
    Doesn't make sure splitscreeners stay on the same teams.

--> Add-on Commands
  /starthealth <number|default>
    Sets the amount of health players start with. Can be between 1 and 7.
    Setting Start Health to "default" sets Start Health to the default of
the
      current game mode, which is 5 for Battle and 3 for CTF. If the start
      health is greater than max health, players will start with max
health.
    WARNING: If start health isn't equal to the game mode's default,
clients not
      running JJ2+ will be glitched. It is HIGHLY recommended to enable
Plus
      Only.
  /maxhealth <number|default>
    Sets the maximum amount of health players can get. Can be between 1 and
7
    Setting Max Health to "default" sets Max Health to the default of the
      current game mode, which is 5 for Battle and 3 for CTF.
    WARNING: If max health isn't equal to the game mode's default, and
there are
      carrots in the level, clients not running JJ2+ will be glitched. It
is
      HIGHLY recommended to enable Plus Only.
  /smhealth <number|default>
    Sets both Start Health and Max Health at the same time. See above
commands
      for more information.
  /instagib <on|off>
    Enables/disables Instagib. When enabled, all unshielded hits roast
opponents
      instantly.
  /frustration <on|off>
    Enables/disables Frustration. When enabled, players who get a roast
will
      also die themselves.
  /hfk <on|off>
    Enables/disables Health From Kills. Roast gives players health.
  /hfkmaxhealth <number>
    Sets HFK Max Health. Must be between 1 and 7.
    If HFK Max Health is greater than the general max health, players will
start
      with general max health.
  /hfkhealthinc <number>
    Sets HFK Health Increase. Must be between -6 and 6.
  /da <on|off>
    Enables/disables Damage Amplifier. Fired shots do +1 extra damage.
  /noblink <on|off>
    Enables/disables No Blink Mode.
  /friendlyfire <on|off>
    Enables/disables Friendly Fire for team games.
    Note: To have an affect, Plus Only must be enabled.
  /punishsds <on|off>
    Enables/disables Punishment for Self-Destructs.
  /sdteampointdec <on|off>
    Enables/disables team point decreases for Self-Destructs.
    When disabled, a pit death causes a point increase for the other team.
  /ffpointdec <on|off>
    Enables/disables point decreases for Friendly Fire.
    When disabled, friendly fire causes a point increase for the other
team.
  /fastammorespawn <on|off>
    Enables/disables Fast Ammo Respawn (every 5 seconds at the most).
  /fastpoweruprespawn <on|off>
    Enables/disables Fast Powerup Respawn (every 5 seconds at the most).
  /weakpowerups <on|off>
    Enables/disables Weak Powerups. Makes powerups only do +1 damage.
  /nopowerups <on|off>
    Enables/disables No Powerups.
  /noammocrates <on|off>
    Enables/disables No Ammo Crates.
  /noseekerammo <on|off>
    Enables/disables No Seeker Ammo.
  /noseekerpowerups <on|off>
    Enables/disables No Seeker Powerups.
  /nocarrots <on|off>
    Enables/disables No Carrots.
  /noshields <on|off>
    Enables/disables No Shields.
  /extendedtnt <on|off>
    When enabled, the maximum distance a player can be hit by TNT in online
      games increases.
  /tntdamage <number>
    Sets amount of damage TNT can inflict. Must be between -6 and 7.
  /evilice <on|off>
    When enabled, ice shot by players does 1 heart damage if the victim
isn't
      frozen already.

--> Settings
  /resetsettings
    Loads configution settings of plus.ini (automatically done at startup).
    Mainly meant for admins. See "/loadsettings" commands below.

--> Player Stats
  /stats
    Logs player stats.*

--> Logging Commands
  /chatlog <on|off>
    Enables/disables Chatlog (requires restart).*
  /playlog <on|off>
    Enables/disables Playlog (requires restart).*
  /iplog <on|off>
    Enables/disables IPlog (requires restart).*
  /autosavechatlog <on|off>
    Enables/disables automatic saving of the chatlog.*

--> The ALMIGHTY Trigger Commands
  Note: Changing the trigger state of the Server Trigger or Team Trigger
may
    cause unintended results.
  /trigger <trigger|all> <on|off>
    Turns specified trigger or all triggers on/off for all players.
  /ptrigger <player> <trigger|all> <on|off>
    Turns specified trigger or all triggers on/off for specified player.

--> Custom Mode Commands
  /off
    Turns Custom Mode off.
  /latejoiners <on|off>
    Enables/disables Allowing Late Joiners (affects LRS, XLRS, and
Pestilence).
  /resetallteams <on|off>
    When enabled, both teams have their ammo and health reset after a round
ends
      in Death CTF or Jailbreak.
    For the time being, this means both teams get roasted after a round
ends.
  /maxlives <number>
    Sets Max Lives. Must be between 1 and 100.
  /setlives <player> <lives>
    Sets player lives. Lives must be between 1 and 100.
    Can only be used for LRS, XLRS, and TLRS. Cannot be used during pregame
in
      TLRS.
  /livesperteam <lives>
    Sets number of lives each team receives in Team Last Rabbit Standing.
Lives
      must be between 1 and 100.
  /maxteamplayers <number>
    For Team Last Rabbit Standing, sets the max number of players allowed
to
      have lives on each team.
    Must be between 1 and 16.
  /rt
    Changes custom mode to Roast Tag.
  /lrs
    Changes custom mode to Last Rabbit Standing.
  /xlrs
    Changes custom mode to Extended Last Rabbit Standing.
  /pest
    Changes custom mode to Pestilence.
  /tb
    Changes custom mode to Team Battle.
  /dctf
    Changes custom mode to Death CTF.
  /jb
    Changes custom mode to Jailbreak.
  /release
    Releases all players in jail if custom mode is Jailbreak.
  /fr
    Changes custom mode to Flag Run.
  /tlrs
    Changes custom mode to Team Last Rabbit Standing.
  /dom
    Changes custom mode to Domination.
  /reset
    Resets the game.

* This command cannot be used by admins.

16.2. For Clients and Server running JJ2+
========================================
--> Settings
  /loadsettings
    Loads configution settings of plus.ini (automatically done at startup).
    See "/resetsettings" command above.
  /loadsettings <filename>
    Loads configution settings of the filename specified.
  /savesettings
    Saves configution settings to plus.ini.
  /savesettings
    Saves configution settings to the filename specified.
    Filename must be at least 5 characters long ending with the ".ini"
      extension.

--> Spectating
  /spectate <on|off>
    Enables/disables Spectator Mode if user is in a JJ2+ server and
Spectating
      is enabled. The limit of Max Spectators may prevent spectating. If
you are
      spectating because you are out in a LRS/XLRS game, "/spectate on"
will
      make you enter normal Spectator Mode.
  /spectate <target>
    Spectate target if user is in a JJ2+ server and Spectating is enabled.
The
      limit of Max Spectators may prevent spectating.
    Target can be:
      A player number
      "blue flag"
      "red flag"
      "flag" if Flag Run
      "flag holder" if Roast Tag
      "bottom feeder" if Roast Tag
      "cp <number>" for Control Point if Domination

--> Music
  /autovolumeleveling <on|off>
    Enables Auto Volume Leveling for music files loaded with BASS audio
library.
    When enabled, it automatically attempts to raise the volume level of
the
      music track if it is not loud enough. This feature may momentarily
cause a
      slight slow down to JJ2 as the appropriate volume level is found.
JJ2's
      music volume setting is never adjusted.
    Note that j2b files cannot use this feature.
  /changemusic <music_filename>
    Changes next level to <music_filename> if it exists.
    May cause JJ2 to crash with an Amnesia error.
  /restartmusic
    Restarts the music currently being played.
    May cause JJ2 to crash with an Amnesia error, but probably not.
  /np
    Indicates which music file is now playing.

--> Other
  /wc <on|off>
    Enables/disables Wall Climbing. When disabled, it becomes harder to get
      stuck in ceilings.
  /alwaysshowingamepings <on|off>
    Enables/disables always displaying in-game pings on the Game Info (F9)
      screen.
  /mute <player>
    Mutes chat from specified player.
    If the server mutes a player, that player cannot use Self-Swap and
admin
      commands.
  /unmute <player>
    Unmutes chat from specified player.

16.3. For Clients running JJ2+
========================================
--> Downloads
  /downloadmusic <on|off>
    Enables/disables downloading music from the server if the server allows
it.
    Audio formats client can download: J2B, XM, IT, S3M, MOD, MTM, UMX,
MO3,
      MP3, OGG.
    When downloading music, note that the escape key can be pressed to stop
      downloading while staying in the server.
  /downloadsamemusicversion <on|off>
    When enabled with the Downloading Music setting also enabled, client
always
      downloads music even if a music file with the same name already
exists but
      is a different version (that is, the music file has a different CRC
than
      the version the server has).

16.4. For All Clients in JJ2+ Server
========================================
--> Remote Admin
  /login <password>
    Allows a client to login if the server allows remote admins and the
password
      is correct.
    No other players, including the server, will be able to see the login
      attempt. If the server is running JJ2+, the login command and
password
      will not be displayed locally in the chat and instead will be
replaced by
      a message saying "Attempting to login". Password is NOT case
sensitive.

17. New Command Line Arguments
========================================
--> Basic
  -port=<port>
    Sets server port used for listening for client connections. Default
port is
      10052.
  -list
    Lists the server on the Internet. Requires -server.
  -levellist [<number>]
    Enables Level List Cycling and loads the first level (or the level
belonging
      to the specified number) from the Level List. Requires -server.
  -spaz
    For offline games, sets character to spaz.
    Added for 1.23 only since TSF already has this functionality.
  -player <number>
    Sets number of local players.
    Added for TSF to fix a parsing issue.
  -menu
    Skips the intro and goes directly to the menu screen.
  -minimize
    Minimizes JJ2 to the tray on startup.
  -settings=<filename>
    Sets the main configuration file (file must exist). If not specified,
      defaults to plus.ini.
  -admin=<filename>
    Sets the admin configuration file (file must exist). If not specified,
      defaults to admin.ini.
  -levellistfile=<filename>
    Sets the Level List file (file must exist). If not specified, defaults
to
      level.ini.

--> Custom Mode (requires -server)
  -rt
    Changes custom mode to Roast Tag.
  -lrs
    Changes custom mode to Last Rabbit Standing.
  -xlrs
    Changes custom mode to Extended Last Rabbit Standing.
  -pest
    Changes custom mode to Pestilence.
  -tb
    Changes custom mode to Team Battle.
  -dctf
    Changes custom mode to Death CTF.
  -jb
    Changes custom mode to Jailbreak.
  -fr
    Changes custom mode to Flag Run.
  -tlrs
    Changes custom mode to Team Last Rabbit Standing.
  -dom
    Changes custom mode to Domination.

--> New formats for -connect
  -connect <ip_address>[:<port>] [-password=<password>]
[-version=<server_version>]
  -connect
<ip_address>[:<port>][/[<password>][/<server_version&g
t;]]
    Values for <server_version>
      For 1.23, use: 1.23, 23, 1.21, or 21 (all map to "21  ")
      For TSF, use: 1.24 or 24 (both map to "24  ")