Java Settlers of Catan

Developers' Page

Live server: play the latest JSettlers version


JSettlers 1.2.01 is the latest stable version (2018-05-26).
JSettlers 2.0.00 is currently being developed; branched from stable just after the 1.1.13 release.
JSettlers 3.x is the experimental branch ("v3").

The code is now developed by Jeremy Monin and this group, and hosted on this server, at github, and formerly at SourceForge,
Previous development was by a different group, which went dormant in 2005 (see previous sourceforge page). Email jsettlers @ nand (this server) to contact us.

JSettlers is released under the GPL 3.0 license. Patches, bug reports, and suggestions are welcome.


New Game options

3-player game

6-player game

Downloads and Resources

Recent Changes:

2.0 currently being developed; updated 2018-02-23: (2.0.00)

Play the new version at
  • 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
  • Game options dialog: Set maxplayers to 6 when Use Large Board is set, unless user changed max pl manually
  • Client and server refactoring
  • Other changes: see v2.0's

Stable 1.x.xx: 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
  • 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
  • In-game "Game Options" button: If an info window's already visible, show it instead of making another one
  • Server --help message: Sort game option keynames alphabetically
  • If new game options require a certain version, don't warn unless the required version is newer than 1.1.13 (released November 2011).

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:
  • Server db property for jdbc driver jar file: -Djsettlers.db.jar=sqlite-jdbc-3.7.2.jar
  • Server db easy setup script options:
  • Server db sqlite driver URLs updated in readme

Updated 2012-09-30: (1.1.14)

  • Game can require more than 10 Victory Points to win (new game option "VP")
  • Don't force-end bot turn if waiting for human discard
  • Discard dialog has "Clear" button (sourceforge bug# 3443414)
  • Show 'Server is ready' message at end of initialization
  • At server shutdown, try to disconnect from database (helpful for sqlite)
  • Debug commands are off by default, except practice games; you can enable them with:
  • Split out sql from README, add indexes (Chad McHenry idea)

Updated 2011-11-01: (1.1.13)

  • Game name maximum length is 30, was 20 previously
  • Allow player to undo their last bank trade, if the undo is the very next thing they do, by trading the same resources back. For example, give back 1 brick to get back 3 sheep.
  • Show your player's total resource count (Rowan idea)
  • 6-player board: New game option allows using this board with 2-4 players
  • 6-player board: Chat ease of use: Focus on text input field when any text area is clicked; to put the cursor in the text areas instead of the input field, click there again.
  • Remember the player checkboxes chosen in previous trade offer
  • If new game options require a certain version, don't warn unless the required version is newer than 1.1.08 (released January 2010).
  • Warn on server startup if robots take up most of maxConnections
  • On server startup, show each property's description
  • If the graphical PlayerClient starts a server, the "server is running" text on-screen now also says "Click for info" (D Sawyer idea)
  • New debug command for robots: botname:print-vars
  • If game is in progress, joining/leaving people also announced in chat area (less clutter there)
  • Don't echo info commands like *STATS* to all players
  • Bugfix: If observer closes the game window, shouldn't ask them if want to keep playing
  • Bugfix: Truncating a long player name, don't drop the first character
  • License upgrade to GPL v3

Updated 2011-01-22: (1.1.12)

  • Don't show hovering road/settlement/city if player has no more pieces
  • Feedback if 'Road Building' clicked but 0 roads left
  • Lock/unlock button for robot seats: add tooltip, fix label when first shown
  • Bugfix: Robot 'No thanks' displays after bank trade
  • When 6-player board's window loses focus, un-expand the chat area
  • If game has observers, list them when client joins
  • For debugging, new "Free Placement" mode; see README.developer
  • Further encapsulate board coordinate encoding

Updated 2010-12-31: (1.1.11)

  • Popup to confirm before you move the robber onto your own hex
  • Show robber's previous position on the board
  • Robots: Force robot turns to end after several seconds of inactivity
  • Bugfix: "Restart" button wasn't enabled if game ends after special build
  • Bugfix: Couldn't place initial road on 6-player board's northernmost edge
  • Fix infinite loop when robot leaves during game setup
  • Game last-action time tracked, to detect idle games
  • Debug commands now case-insensitive

Updated 2010-06-13: (1.1.10)

  • Game owner tracked at server
  • Security: Limit the maximum simultaneous games/chat channels created per client: Once a game/channel is removed (all members leave), they can create another.
    Defaults are 5 games, 2 channels. Use these properties to change the default:

Updated 2010-04-17: (1.1.09)

  • 4-player board: crisper graphics (images from 6-player board)
  • Practice games don't expire (Rowan H idea)
  • Show rounds remaining for "roll no 7s during first n turns" (Rowan H idea)
  • When moving robber and choosing a victim, popup shows their # VPs
  • 6-player board: Always allow to request special build, even if no resources.
    Also allowed at start of own turn, only if not rolled or played card yet, and not when you are the first player taking your first turn.
  • 6-player: During Special Building Phase, a player can ask to Special Build after the phase has begun, even if this means we temporarily go backwards in turn order. (Normal turn order resumes at the end of the SBP.) The board game does not allow this out-of-order building.
  • 6-player robots: Slow down a little: Pause 75% of 4-player's pause duration, not 50%
  • At end of game, show number of rounds along with resource stats and time elapsed
  • Easier setup of other database types (besides MySQL)
  • Robots can be automatically started when the server starts
  • Other changes: see VERSIONS.txt

JM: Updated 2010-01-12: (1.1.08)

  • Per-game options:
  • Can now sometimes reconnect after connection to server is lost, when message "A player with that nickname is already logged in" appears.
  • Smaller, cleaner building panel
  • Re-word counter offer text to: Give Them / You Get
  • Cleaner scaled graphics: Draw hex dice-number circles on hex, instead of GIFs.
  • Chat text prompt ("type here to chat") cleared when clicked (D Campbell idea)
  • Other changes:
    - Fix button redraw for Discard, Year of Plenty popups on OSX
    - Fix new-game options bg color on OSX Firefox 3.5+
    - BoardPanel faster redraw: cache image of board without pieces
    - BoardPanel javadocs explain nodeMap and initNodeMapAux
    - SOCRobotBrain refactor some message-handlers out of run() (C McNeil idea)
    - Old version history (pre-sourceforge):
        Added file src/docs/old-updates-rsthomas.html
        found on web at

JM: Updated 2009-10-31: (1.1.07)

  • Per-game options:
    	- PL  Maximum # players (2-4)
    	- RD  Robber can't return to the desert
    	- N7  Roll no 7s during first # rounds
    	- BC  Break up clumps of # or more same-type ports/hexes
    	- NT  No trading allowed
  • Other changes:
    - Re-word counter offer text
    - Hide trade offer after rejecting counteroffer (John F idea)
    - Allow debug commands in practice games
    - New applet parameter "nickname" for use with dynamic html (Rick Jones idea)
    - Framework for parsing "-" / "--" options at server commandline
    - Refactor per-turn resets from many places to new game.updateAtTurn()
    - GameList kept at server/client
    - Bugfix: Could sit down at 2 positions due to network lag
    - Rescaled board hex graphics now fall back to polygons if problem occurs
    - Removed unused hex graphics from soc/client/images
    - Fewer disconnect-reconnect debug messages from robots during idle hours
    - Don't cover board with 'choose player' popup (Rowan H idea)
    - AskDialog supports multiple lines with "\n"

JM: Updated 2009-06-01: (1.1.06)

  • Monopoly reports (privately) number of resources stolen to each victim
  • Reset practice game, at end of game: New randomly-selected robots, instead of same robots each time
  • Track and understand client version starting from connect time, not just from joingame time.
  • Can deny entry to individual games based on client's version (ex. client too old to understand a recent game feature, like 6 players)
  • Fewer debug messages from robots during idle hours
  • Bugfix: Hangs on mac osx 10.5 after a few minutes (SnippingTextArea)
  • Bugfix: After disconnect/rejoin, trade offer panel overlays your controls
  • Bugfix: "Start a local server" ignored port-number textfield, was always default port

JM: Updated 2008-09-06: (1.1.04)

  • Bugfix: Cancelling 2nd initial settlement, other players lost resources
  • Bugfix: Don't disable "play card" button after buying or playing a card
  • Bugfix: Sometimes, "hovering" road or settlement wouldn't show during initial placement
  • Give player's win/loss count at end of game, unless first game

JM: Updated 2008-08-26: (1.1.03)

  • Fix bug in board-reset of practice games
  • Fix bug: At end of game, client sometimes incorrectly showed player 0 (Blue) as winner
  • Don't show hovering road/settlement/city unless player has the resources

JM: Updated 2008-08-17: (1.1.02)

  • Fix bug in board-reset after a player leaves game
  • Fix bug in robot disconnect/reconnect

JM: Updated 2008-08-12: (1.1.01)

  • Fix bug in timing of board-reset vs lost-connection
  • Fix bug in board-reset vote reporting

JM: Updated 2008-08-09: (1.1.00)

  • Visual feedback when waiting for players to discard
  • Trade offer details shown in game text messages
  • End-turn recovery when player loses connection during their turn, or when they are discarding
  • Server, client report version on connect
  • Source code now available (see above)
  • Minor UI improvements: "play card" button when multiple cards; discard/trade message font metrics; year-of-plenty popup's "done" button
For older changes, scroll to the bottom of the
live server page.

Changes from 1.0.6 to 1.1.00:

Note that our 1.1.XX versions are based on 1.0.6, the most recently posted version on the original abandoned soureforge project. It is not based on that project's cvs version 1.1.0.
  • Play with 2-4 players, no longer requires 4
  • Ability to reset board, during or after game [sf feature req. 1110481]
  • Local "practice-game" mode, if network connection or server is unavailable
  • Can double-click jar for local server hosting (or run w. no arguments); player GUI will ask for IP and port#
  • More robust handling if client's connection to server is lost, even if current player:
    • Attempt to end turn, if current player leaves the game
    • Show pieces when rejoining after lost connection
  • Can cancel and re-place initial settlement, if you haven't yet placed the road [sf patch 1824441]
  • Larger graphics on board, resizeable for higher-resolution screens [sf patch 1929452, based on images and code of rbrooks9's sf patch 1398331]
  • Much more visually responsive to game state
  • User-friendly:
    • Can right-click on board to build, right-click ports or resource squares to trade [sf patch 1905791]
    • Can right-click face to choose a new face [sf patch 1860920]
    • Popup dialog buttons wrap if window too narrow
    • Robber doesn't disappear when must be moved, it just "ghosts" [sf patch 1812912]
    • Confirm quit before closing window
    • More advance warning when game will soon expire
    • Visual feedback when waiting for players to discard
    • Announce when longest road/largest army is stolen
    • Trade offer details shown in game text messages
    • Trade offer's checkboxes track current player
    • Less clutter in scrolling message area
    • Other minor improvements
  • Automatic dice roll after 5 seconds, if you have no playable card [sf patch 1812254]
  • End-of-game additions:
    • Hilight who won
    • Show hidden VP cards for all players [sf patch 1812497]
    • Show game duration and total connection time
  • Road-building allowed with 1 road [sf patch 1905080]
  • Can win only on your own turn; if not your turn, must wait
  • Client,server versioning; also add BUILDNUM property
  • Robot bugfix, now will re-try if makes a bad piece placement
  • New graphics: images/robot1.gif; Removed obsolete: images/arrowL.gif, arrowR.gif
  • Other sourceforge patches applied:
    • 1816668 jdmonin AWT debug help
    • 1816605 jdmonin Patch for #997263 cannot place road during game start
    • 1816581 jdmonin Fix server treater startup race
    • 1812257 jdmonin Debug help, minor comments
    • N/A sfhonza (John Vicherek) "Swinging" number of resources,
    • 1088775 drichardson (Douglas Ryan Richardson) [1039250] Auto-rejecting impossible offers; Make accept button invisible when user cannot accept offer
  • Compiles under Java 1.4 or 1.5

Jeremy D Monin - email jsettlers @ nand (this server) for more details.