Java Electronic Soccer Management Simulator

This site is still under construction, please have some patience.
In the meanwhile if you need some help for installing/using JEsMS feel free to post questions at our JEsMS forums.


Eli Bendersky's ESMS Software is a soccer management simulator used to run play-by-email soccer leagues. A play-by-email (PBEM) soccer league consists of an administrator, who runs the league, and managers, each managing one or more teams in the league.

JEsMS is a porting/enhancement of ESMS for the Java language. While the algorithms running game logic are still the same used in ESMS (and therefore it's a porting) i tried to enhance classic ESMS using all advantages that Java has on C/C++ for this kind of programs (since the first time i saw ESMS i was sure that it was perfect for a Java implementation). Below i list several features specific to JEsMS:

  • Inherently Multiplatform
    This is hardly an issue since ESMS, being written in ANSI C/C++, can be compiled on several platforms without many problems, anyway JEsMS doesn't even need recompilation, you just download the same "binary" package and run it on your Windows, Linux, MacOSX operating system.
  • XML Input/Output
    Thanks to the native XML support of the Java platform JEsMS uses XML files as input/output instead of custom defined text files used by ESMS. This has several advantages:
    • XML is a widely supported format, several ready-to-use parser has been developed for it and this means that integrating future third-party tools (even not realized in Java) with JEsMS is really easy.
    • In fact, the XML format used by JEsMS can be extended by third-party developers and JEsMS will continue to work without any problem (for an example of this look at extra-fields used by JEsMS Applet GUI)
    • XML can be easily converted in XML/HTML/TXT/Whatever-you-want and therefore a league administrator may upload directly the XML file generated by JEsMS to the league web-site and visitor's browser will automagically show it as a web page.
  • Applet support
    ESMS leagues exists mainly around a league web-site, every manager browse the site to examine league tables, fixtures or even match results. Applets are particular Java applications which are downloaded from a web site and executed directly in a web browser. Using core classes developed for JEsMS program was possible to develop an Applet (see here for an example running AsiloLeague) able to show matches in "Championship Manager" style, to show team rosters, to support creation of teamsheets and to show fixtures and statistics for a particular league. Without considering that all these features works on every operatings system (yes, it is a sort of cross-platform ESMS GUI) without any software installation , just point your java-enabled browser to the league site and play.
  • Servlet support
    Java Servlets are server-side applets, they run on web server allowing developers to extend web server functionality. Considering that servlet are simply programs written in Java, it's very easy to transform JEsMS in a web application. Instead of building PHP wrappers around ESMS native code, servlet approach should be more efficient, elegant and robust.

Upgrading from ESMS

JEsMS is derived from ESMS but unfortunately, several features of JEsMS (most notably the usage of XML as primary file format) makes it not compatible with classic ESMS.

However, with the proper XSL file, JEsMS tools can be instructed to generate classical ESMS output and several classical ESMS files (rosters, teamsheets and language.dat) can be converted into the JEsMS XML format directly by JEsMS tools as depicted here.


Being a derivative work of ESMS, JEsMS share the same license, the GNU General Public License, and basically it means not only that you can freely use and re-distribute the software, but also that you're free to browse and modify its source code.

If you're a developer and you're thinking to realize a derivative work from JEsMS (or ESMS since they're both GPL-ed) GPL means also that you must release your derivative work under GPL too.