Configuration file server.ini
The server is configured using a configuration file called server.ini. It is possible to use a different file using the -c command line parameter. In most cases the game will provide a GenerateINI program that you should execute to generate the server.ini file. Nevertheless it may be interesting to know which parameter exist and how they can be set.
If you are writing your own game, you should have a look at the provided GenerateINI programs, too.
Marauroa needs access to a database. MySQL and H2 are actively supported and tested. Other database may work too, perhaps with a few tweaks.
H2 is cool because it works out of the box without having to setup a database server: You just need to specify a filename which will be created automatically. In this example it is called marauroa-h2db and the "~" means that it is created in your home folder.
# example database connection to H2 database_adapter=marauroa.server.db.adapter.H2DatabaseAdapter jdbc_url=jdbc:h2:~/marauroa-h2db;AUTO_RECONNECT=TRUE;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE jdbc_class=org.h2.Driver
MySQL is a classical database server. As such it has to be setup separately. After creating a database and a user you can configure it like this:
# example database connection for MySQL jdbc_url=jdbc:mysql://localhost/marauroa jdbc_class=com.mysql.jdbc.Driver jdbc_user=username jdbc_pwd=password
The next section is game specific. You usually don't have to edit it. It allows the games to define classes that customize the the framework. This is explained in detail in the tutorial.
# game specific setting database_implementation=games.stendhal.server.core.engine.StendhalPlayerDatabase factory_implementation=games.stendhal.server.core.engine.StendhalRPObjectFactory world=games.stendhal.server.core.engine.StendhalRPWorld ruleprocessor=games.stendhal.server.core.engine.StendhalRPRuleProcessor python_script=
In the server section you can configure the tcp port and turn time. Normally the games provide recommendations for both settings. You can enable logging of server statistics by providing a file name for the statistics_filename parameter. And in case you need to debug the server, you can provide your own log4j configuration file.
tcp_port=32160 turn_length=300 statistics_filename=server_stats.xml log4j_url=marauroa/server/log4j.properties
Version and contact information:
server_typeGame=stendhal server_service=stendhal server_name=Stendhal server server_version=0.81 server_contact=https://sourceforge.net/tracker/?atid=514826&group_id=66537&func=browse
You can define some limits to prevent flooding by huge amounts of data, lots of message or lots of players. This is particularly useful if your server is behind a small Internet connection.
allowed_bytes_per_second=1024 allowed_messages_per_second=20 max_number_of_players=128
There is a second set of settings very similar to the above. But those ones are not about resource usage but more about preventing trouble:
account_creation_counting_time=3600 account_creation_limit=5 parallel_connection_limit=10 ip_whitelist=127.0.0.1
Account and character creation
Since Marauroa 3.8.4 it is possible to disable account and character creation using
This is useful if account creation is done using other means. For example filling the account, characters and rpobjects table from an other application. It is used on stendhalgame.org for the test server because the test database shares the accounts with the main database.
Since Marauroa 3.9.5 it is possible to define the initial status of new accounts.
RSA is the encryption algorithm used to protected the client server communication. Note: You need to generate your own pair of primes using GenerateINI. Do not use the following examples.
n=2408376769632966826891253753617412746862686794740723175774423430043927850498085639220684795629747326949838501777926669337171495421818563824539329224927899179237 e=15 d=2247818318324102371765170170042918563738507675091341630722795201374332660464879838332237004076252849654527963214772652641735279016325354691167883850414929419335