Java Settlers of Catan To play online, download and run the JSettlers JAR file.

Connect to nand.net port 14203 Play a settler on the newly populated island of Catan. Build settlements, roads, and cities by taking commodities from the land around you. Turn a sheep, lumber, rocks and some grain into a settlement, bricks and wood into road, or try to complete other combinations for more advanced buildings and services. Take advantage of trades with other players, or at local seaports to get commodities you might lack. The first player to gain 10 points from a combination of roads, settlements, and special cards wins. JSettlers is inspired by the board game that you can buy from the good people at Catan GmbH. Games expire after 90 minutes, use " *ADDTIME* " to extend a game.

If you would like to practice offline or run your own server, see the Downloads section below. To play, enter a nickname and then either enter a new name for a game, or double click on a game in the list to join it. Be patient when you join a game, it takes a while to load. If you try to join a game, and there is someone in the game with the same nickname as yours, it won't work. Just enter a new nickname and try again. Screenshots











Downloads and Resources Complete JAR (includes client and full server)

Server-only JAR - requires command-line parameters; for a user-friendly server, download the client and use its GUI to run a server.

Full download, including server and client JAR files, optional SQL files, etc.

Full source code

Developers' Page

GitHub project site

Old SourceForge page The Settlers of Catan is available from Catan GmbH and Mayfair Games. The Settlers of Catan was originally published in German by Franckh-Kosmos Verlags-GmbH & Co. as Die Siedler von Catan. Original game design by Klaus Teuber. This program is not intended to replace the original board game in any way. Updated 2020-07-05: (2.4.00) Gameplay: Pirate can be placed next to any coastline, even those near edge of board For consistency, calculate Longest Route and Largest Army only at server, not also at client

Client: Add client preference: Remember face icon when changed Game window: Game stats: If player leaves at end of game, keep showing their statistics

Network/Message traffic: When client joins a game: Server sends players' current trade offers Bugfix: When client is v1.x, send seat lock state CLEAR_ON_RESET as UNLOCKED not LOCKED so they can take over a "marked" bot seat

Other changes: see Versions.md Updated 2020-05-25: (2.3.00) Gameplay: New optional house rule: On 6-player board, allow Special Building phase only if game actually has 5 or 6 players Bugfixes at server: Forgotten Tribe scenario: If a ship claimed a Special Victory Point and was later moved, player silently lost that SVP Forgotten Tribe scenario: While Special Building a ship, if a port was picked up and placed, turn order afterwards was incorrectly resumed at next clockwise player Through The Desert scenario: Could not build roads on some edges of desert strip

Client: Game window: Hotkeys: Roll dice with Ctrl-R/Alt-R/Cmd-R End turn (Done) with Ctrl-D/Alt-D/Cmd-D Accept/ReJect/Counter trade offers when just one is visible, with Ctrl or Alt or Cmd + A/J/C Since chat input field already has a hotkey for Ctrl/Alt/Cmd-A when focused: When cursor is in chat, hit Ctrl/Alt/Cmd-A once to select all text, again to Accept the trade offer Bugfix: If player had SVP, square showing SVP amount overlapped current trade offer, revealed VP cards, name of player's Wonder Bugfix: If started a practice game, then connected to a server game: Practice game trades stopped working; might've joined server game as "Player" or "null"

Bots/AI: When offering a trade to human players, shorten max wait to 30 seconds (was 100)

Server Administration: Expanded functions, added more stats Improved admin user-friendliness Admin users can chat and run commands while observing a game

For developers: Can save/load some games using local files and debug commands

Other changes: see Versions.md Updated 2020-02-29: (2.2.00) Client: Game window: Remember recently sent chat text; browse history with Up/Down arrow keys in input field (based on Chad McHenry idea) At end of game, reveal VP cards in players' hand panels If user clicks board to dismiss the right-click build menu, don't show "to build pieces, right-click" reminder dialog

Server: *STATS* command: Send client how long they've been connected and, if at least 1 game won or lost, their win-loss count for this session If client joins a game that's already over, send final scores and revealed VP cards Let debug user also chat and run commands while observing a game SQLite database: For convenience, if JVM properties don't contain org.sqlite.tmpdir but that property is set in jsserver.properties file or command line, copy it into JVM properties

Other changes: see Versions.md Updated 2020-01-19: (2.1.00) Client: New Game dialog: If "force UI scale" option is changed, use new value for new game's window Game Options dialog: If Enter pressed while in text field, save prefs instead of saying "Game with this name already exists" While joining game, try to prevent game-list window from getting in front of that game's new window

Server: Bugfix when client sits down, taking over a bot's seat, during first initial-settlement round: Some players' first placement was skipped because "first player" changed during that bot replacement

Other changes: see Versions.md Updated 2020-01-02: (2.0.00) Large sea board, including ships and Seafarers scenarios

Game Scenarios (named collections of Game Options with special rules)

I18N framework in place, with Spanish translation so far

High-DPI support based on screen resolution, user preference, or running with JVM parameter -Djsettlers.uiScale=2

Added second set of hex graphics; in new-game options, can choose Classic or the new set (contributed by qubodup)

Client and server refactoring

Other changes: see Versions.md Updated 2018-05-26: (1.2.01) Game reset no longer hangs when game had bot(s) and someone locked all bots' seats

Game expiration: Initial game length increased: Now 2 hours, was 90 minutes Warns 5 or 6 minutes earlier Ensure at least 1 warning before ending game

Client: Game window bugfix: Join Game hangs on Windows Java 9 Sound prompt when client player is offered a trade Game windows: Render board with antialiasing

Players can end their turn during Free Road placement if dice were rolled before playing the card

Server game cleanup: If the last human player leaves a game with bots and observers, don't continue that game as bots-only

Details and other changes: see VERSIONS.txt Updated 2017-10-05: (1.2.00) Simple sound effects for game events: Start of client player's turn, resource stolen by robber, etc

Game windows have same size as previous game if resized, not small default size

Re-word trade offers to clarify who would give which resources

Persistent client preferences for settings like sound effects and game window size

Optional database Schema Upgrade, adds: Game stats: Winner, duration, options, etc BCrypt password hashing Case-insensitive usernames/nicknames

Details and other changes: see v1.2.00's VERSIONS.txt Updated 2016-10-24: (1.1.20) Game board graphics updated to be smoother when window resized

For new players: When game starts, clicking the board reminds you to right-click to build

Bots no longer leave practice games after 4 hours idle

For server config, new optional properties file

Server can set Game Option defaults on command line or properties file

If using an optional user database, easier password reset

Server admins can list all currently connected users with command *WHO* *

or any game's members with *WHO* gamename

or any game's members with Details and other changes: see v1.1.20's VERSIONS.txt Updated 2014-11-27: (1.1.19) New game option for house rule: Roll no 7s until a city is built

Trading port/harbor graphics updated

Reset board during initial placement: Pick randomly-selected robots, instead of keeping same robots

Check client password when "New game" is clicked, not later after filling out game options

For servers using an optional user database, new config options about creating or requiring accounts.

Other changes: see v1.1.19's VERSIONS.txt Updated 2013-04-02: (1.1.18) Reset board: Keep player chat text; Confirm before restarting after end of a practice game

Chat text field: Word-wrap long lines

Don't limit the number of simultaneous practice games

6-player board: Focus cursor on input field when the chat window expands; scroll chat/game text to bottom when it shrinks

If saving completed games to db, save if any human players, even if some have left/rejoined

Bugfix: Client creating a game on a server newer than itself might show a second New Game Options window

Other changes: see v1.1.18's VERSIONS.txt Updated 2012-12-12: (1.1.17) Road Building: Player may skip (cancel) placing second free road, if they want to use just one road piece

If jar client can't connect to server, returns to first panel, with buttons to connect or practice

If try to start server in JSettlers.jar, but port already in use, show message instead of exiting immediately

If server's debug commands are on, warn at connect

Get Practice Game options from practice server, not from most recently started game

If join a server after a practice game, re-enable name and password fields

Chat text field: If a long line is truncated, keep the rest of it in the textfield

Debug commands: dev cards: Send card type numbers with help message

Server DB setup script: Ignore net errors when running script and exiting Updated 2012-10-27: (1.1.16) Bugfix: 1.1.15 can't start practice games

If jar client loses server connection, returns to first panel, with buttons to connect to a server or practice Updated 2012-10-21: (1.1.15) Bugfix: Occasional hangs creating new game, when old game isn't yet cleared

Bugfix: Hangs on mac osx 10.7, 10.8 after a few minutes (SnippingTextArea) - thanks olivierdeckers

Server command line simplified: port number, max conns, db info now optional

Can save all completed game results in database, with new option: -Djsettlers.db.save.games=Y

Server db property for jdbc driver jar file: -Djsettlers.db.jar=sqlite-jdbc-3.7.2.jar

Server db easy setup script options: -Djsettlers.db.url=jdbc:sqlite:jsettlers.sqlite -Djsettlers.db.script.setup=../src/bin/sql/jsettlers-tables.sql

Server db sqlite driver URLs updated in readme Earlier Updates: See the Developers' Page for a list of earlier updates. Jeremy D Monin - email jsettlers @ nand (this server) for more details.