User Tools

Site Tools


server:running_the_server:etc_crossfire_configuration_files

This is an old revision of the document!


/etc/crossfire Configuration Files Directory

List of files found in the {prefix}/etc/crossfire configuration directory, alphabetically ordered; except for the settings file, which is to be found at the bottom due to it's many entries.
FIXME: These config files ought to have some .CFG or .CONF file_name.extension on day … :?:

ban_file

List of client IPs and user names to ban. Probably only useful if the user owns and deploys a dedicated IP.

dm_file

List of NAMES : PASSWORDS : HOSTS for Dungeon Masters. Each field accepts the wildcard (*) . *:*:* should allow everyone from everywhere to gain DM status using any password.

exp_table

Large comma separated list of numbers to reach levels. The default ends at level 115. Just add some more numbers, and there will be higher levels :?: or delete some zeros at the end of thy numbers, and become a hero very fast.
:!: The sever has no possibility to be started with some -easy, -medium, -hard, -extreme parameters.

forbid

:!: This is a very misleading file. It says:

# This file lets you limit playing time. Example:
Mon 8-12
msg
Playing is forbidden during working hours.

Which would suggest, that players are getting a forced log out and new connections or login requests are denied with a message msg .
But instead the server will refuse to start if started in times of these entries. Exitcode would be -1 .

In static void init_startup(void) in server/server/init.c :

if (forbid_play()) { /* Maybe showing highscore should be allowed? */
      LOG(llevError, "CrossFire: Playing not allowed.\n");
      exit(-1);

The function forbid_play is to be found in server/server/server.c :

int forbid_play(void)
#if !defined(_IBMR2) && !defined(___IBMR2) && defined(PERM_FILE)
 
        if (!strncmp (buf, "msg", 3)) {
	    if (forbit)
		while (fgets (buf, MAX_BUF, fp))  /* print message */
		    fputs (buf, logfile);
	    break;
 
	} else if (sscanf (buf, "%s %d%*c%d\n", day, &start, &stop) != 3) {
	    LOG(llevDebug, "Warning: Incomplete line in permission file ignored.\n");
	    continue;
	}
 
        for (i=0; i< 7; i++) {
	    if (!strncmp (buf, days[i], 3) && (tm->tm_wday == i) && 
		(tm->tm_hour >= start) && (tm->tm_hour < stop))
		forbit = 1;
return forbit;
#else
 return 0;
#endif

This forbid file is defined in server/include/config.h : #define PERM_FILE “forbid” .
In opposite to the arch and maps files, it does not need an endmsg entry.

This forbid file would make “slightly sense” , when playing on a local machine by a script, that launches the server and afterwards the client to auto-connect to each other (with metaserver-support disabled at compile time) . In that way, parents could hinder their children at least to start-up the server at certain times. It does not interrupt a running server.
FIXME: The server should re-read the forbid file each hour like it does for the help files or the dm_file when help or the dm commands are invoked.

shutdown

Similar as for the forbid file : When the server at it's initial start finds that file in it's config folder, then it exits with an exitcode 1 , printing the content of that file .

The code for processing the shutdown file is also found in init_startup in server/server/init.c :

#ifdef SHUTDOWN_FILE
  sprintf(buf,"%s/%s",settings.confdir,SHUTDOWN_FILE);
  if ((fp = open_and_uncompress(buf, 0, &comp)) != NULL) {
    while (fgets(buf, MAX_BUF-1, fp) != NULL)
      printf("%s", buf);
    close_and_delete(fp, comp);
    exit(1);
  }
#endif

The SHUTDOWN_FILE variable is by default defined in server/include/config.h : #ifndef SHUTDOWN_FILE #define SHUTDOWN_FILE “shutdown” .
It could probably make sense to manually disable the SHUTDOWN_FILE definition before server compiling .

Example “shutdown” file message :

Shutdown File for Crossfire 1.10.0
Farewell, and have a nice time.
Bye Bye …

:!: Here is some kind of abuse possible, by people on a shared machine might just create such a shutdown file, to confuse, anger or trouble other users, who are playing Crossfire regularly on that machine.

Informational Files

Send to the client, when the client connects to the server.
Might print a lot of messages. They are easier to read, when the gtk+-1 client works in “split Windows” and-or “Splash Window” and-or “Popup Windows” modes that pop up an extra login-window.

motd

Motto Of The Day - simple text file.

news

Simple text file send to players when they connect. Headline functionality.

rules

Simple text file, that accepts some kind of html-formatting like [B]BIG[/B] .
Printed in the message window of the client, when it connects, and before the user logs on.

settings

Large file with around 40 possible entries; now has it it's own page here on the wiki : settings .

Known setting variable names, listed in alphabetical order :

  1. balanced_stat_loss true
  2. casting_time false
  3. create_home_portals TRUE
  4. death_penalty_levels 1
  5. death_penalty_percentage 10
  6. dm_mail monster@monstermail.monster
  7. dynamiclevel 5
  8. explore_mode false
  9. fastclock Zero (0) or positive integer (1)
  10. item_power_factor 1.0
  11. log_timestamp TRUE
  12. log_timestamp_format %y-%m-%d %H:%M:%S
  13. metaserver_comment Test server port 11100
  14. metaserver_host 1.2.3.4
  15. metaserver_notification on
  16. metaserver_port 13326
  17. metaserver_server crossfire.real-time.com
  18. motd motd
  19. no_player_stealing TRUE
  20. permanent_experience_percentage 96
  21. pk_luck_penalty 10
  22. port 11100
  23. real_wiz true
  24. recycle_tmp_maps false
  25. resurrection false
  26. search_items true
  27. set_friendly_fire 5
  28. set_title true
  29. spell_encumbrance true
  30. spell_failure_effects true
  31. spellpoint_level_depend true
  32. stat_loss_on_death false
  33. who_format %N %T%t%n Level %l Flags %h%d%a%b%n <%M>
  34. who_wiz_format %N %T%t%h%d%b%nLevel %l <%m>(@%i)(%c)
  35. worldmapstartx 100
  36. worldmapstarty 100
  37. worldmaptilesizex 50
  38. worldmaptilesizey 50
  39. worldmaptilesx 30
  40. worldmaptilesy 30
server/running_the_server/etc_crossfire_configuration_files.1520092360.txt.gz · Last modified: 2018/03/03 09:52 by karl