# Online Multiplayer
Back to Frequently Asked Questions
Is online multiplayer supported?
There was experimental support for online multiplayer since version 0.6.2. Experimental support has been temporarily removed in version 1.0.0 and a new implementation is being developed. However, the public version has not yet been released. All the things mentioned here are only at the preliminary design stage.
It supports cross-platform play between all supported platforms – Windows, Linux, macOS, Android, Switch and Xbox. Players with Jazz² Resurrection cannot connect to players with original game and vice versa.
You can connect to public or local server from main menu. List of these server is also available here. To connect to private server, you have to run Jazz2.exe
with /connect:<ip>:<port>
parameter, where <ip>
is IP address and <port>
is port of dedicated server. Default port is 7438
.
How to run dedicated server?
Dedicated server can be started using /server
startup parameter. Servers with public IP address are automatically published on server list.
The server uses UDP port 7438
to communicate with clients.
The server can be run with following optimal parameters:
/port:<number>
– run the server on different port. Default is7438
./name:"<text>"
– set server name to<text>
./min-players:<number>
– set min. number of players to<number>
. Default is2
./max-players:<number>
– set max. number of players to<number>
. Default is64
./level:<id>
– set starting level to<id>
, level can be changed withset level <id>
command./level-type:<type>
– set multiplayer level type (mode) to<type>
.- It must be one of following values:
Battle
,TeamBattle
,CaptureTheFlag
,Race
,TreasureHunt
.
- It must be one of following values:
/config:<path>
– start server with initial server configuration from file<path>
./unloaded
– start server in unloaded state, players cannot connect to it in this state until level is set./private
– disable publishing on public server list./upnp
– try to use UPnP to enable port forwarding.
The server supports following commands:
exit
/quit
– close the serverclear
– clear console output (event log) Not implemented yet!help
– show helpinfo
– show info and connected playersset
– list all server variablesset <name> <value>
– set server variable by<name>
to<value>
(see Available server variables)load_config <path>
– load server configuration from filenext_level
– change level to next level if playlist mode is activeendpoints
– manage endpoints (enable/disable allowed network interfaces) Not implemented yet!ban
Not implemented yet!unban
Not implemented yet!kick :all
– kick all playerskick <id>
– kick player by<id>
kill :all
– kill all playerskill <id>
– kill player by<id>
show_message :all <message>
– show in-game message<message>
to all playersshow_message <id> <message>
– show in-game message<message>
to player by<id>
Available server variables
allow_friendly_fire
– iftrue
, friendly fire will be allowed. Default isfalse
. Not implemented yet!allow_spectating
– iftrue
, player can switch to spectate mode. Default istrue
. Not implemented yet!kick_idle_players
– iftrue
, player will be kicked after 10 minutes of inactivity. Default isfalse
. Not implemented yet!level
– set current level in<episode>/<level> <mode>
format. Level will be immediately changed to new value. Following modes are available:b
/battle
/Battle
– Battletb
/team-battle
/TeamBattle
– Team Battlectf
/capture-the-flag
/CaptureTheFlag
– Capture the Flagr
/race
/Race
– Raceth
/treasure-hunt
/TreasureHunt
– Treasure Hunt
name
– set server name shown in server list. Default isUnnamed server
.only_known_clients
– iftrue
, only clients with known client identifier can join server. Default isfalse
. Not implemented yet!only_unique_clients
– iftrue
, only clients with unique client identifier can join server. Default isfalse
.password
– set password needed to join server. Default is no password. Not implemented yet!player_health
– set respawn player health. Default is5
.spawning
– iftrue
, dead player will be automatically respawned. Default istrue
.
Battle-specific variables
battle_total_kills
– set max. number of kills. Player with this number of kills will win a match. Default is10
. Not implemented yet!battle_max_time
– set max. time. A match will end after specified amount of minutes. Default is-1
(disabled). Not implemented yet!
Capture·the·Flag-specific variables
ctf_total_flags
– set max. number of flags. Team with this number of captured flags will win a match. Default is10
. Not implemented yet!ctf_max_time
– set max. time. A match will end after specified amount of minutes. Default is-1
(disabled). Not implemented yet!
Race-specific variables
race_total_laps
– set max. number of completed laps. Player with this number of completed laps will win a match. Default is3
. Not implemented yet!
Treasure·Hunt-specific variables
th_total_gems
– set max. number of collected gems. Player with this number of gems will win a match. Default is100
. Not implemented yet!th_max_time
– set max. time. A match will end after specified amount of minutes. Default is-1
(disabled). Not implemented yet!
Server configuration files
Server configuration can be loaded from file. This file is in JSON
format with following structure:
{
"ServerName": "Unnamed server",
"Port": 10666,
"MinPlayers": 2,
"MaxPlayers": 64,
"PlaylistRandom": false,
"Playlist": [
{
"LevelName": "unknown/battle1",
"LevelType": "Battle",
"TotalKills": 10,
"PlayerHealth": 5
},
{
"LevelName": "unknown/race1",
"LevelType": "Race",
"TotalLaps": 4,
"PlayerHealth": 5
},
{
"LevelName": "unknown/treasur1",
"LevelType": "TreasureHunt",
"TotalGems": 100
},
...
]
}
Every parameter is optional. Some fields correspond to server parameters (see How to run dedicated server?). Port
and MaxPlayers
fields are allowed only on server initialization (run Jazz2.exe /server /config:<path>
). Playlist
field allows to specify playlist of levels. PlaylistRandom
field allows to specify if playlist should be played sequentially or randomly. Playlist can have unlimited number of levels. Each playlist entry must have at least LevelName
and LevelType
. Another optional fields are TotalKills
, TotalLaps
, TotalGems
and PlayerHealth
. Level can be skipped with next_level
command if playlist mode is active. set level <...>
command automatically turns off playlist mode. If no startup server configuration file is specified, server tries to load Jazz2.Server.default
file if exists. Startup parameters are overriden by server configuration everytime, so use only one of them.
What is missing?
This list outlines missing features of Multiplayer and its progress.
- Game modes
- Battle
- Capture the Flag
- Race
- Team Battle
- Treasure Hunt
- Story in cooperation
- Gameplay features
- Spectate mode
- Server-side features
- Console commands with suggestions
- Player movement interpolation
- Server-side object/collectible spawning
- Server-side collision checking
- Persistent configuration
- Server-side scripting and plugins
- Client-side features
- HUD elements for respective game modes
- Common - list of players
- Battle - number of kills and deaths
- Capture the Flag
- Race - number of laps, time
- Team Battle
- Treasure Hunt - number of collected gems
- In-game admin commands
- In-game chat
- Player names
- Local server discovery
- Public server list
- Automatic download of levels and tilesets from servers and caching
- HUD elements for respective game modes
- Misc. features
- Welcome messages/announcements
- Discord integration to allow quick join
- Enable multiplayer on WebAssembly platform with automatic WebSocket proxy (lower performance is expected)