Reference: ServerConfig.txt

Purpose

Contains important configuration options and variables used by the server.

File Format

List file. One entry per line.
One entry per line. Delimiters: equal sign (=)
Comment character: semicolon (;)
No header.

Properties

Property Type Purpose
ProtocolVersion integer Must match the client version for proper client behavior. Use the following values:
19: 0.06a
20: 0.06b
33: 0.8.6
37: 0.8.8
38: 0.8.9 (Ikimonogatari/EER)

Default:
33
AuthMode integer Use 0 for normal, 1 for admin mode. Normal mode was intended to connect to an external two-factor authentication site and is not supported. Admin mode relies directly on the server for verification.

Default:
1
AuthKey string A string that is merged with the password field (a salt) before it is hashed by the client and sent to the server for account authentication. This is used to generate the account's password hash. If this salt is changed, all existing accounts will fail to work.

Default:
key
RouterPort integer The listening port of the router connection. The client is hardcoded to connect to port 4242, so this should not be changed unless absolutely necessary. Some old client versions may use 4241. Only when using a specially modified client can other values be used.

Once connected, the server sends back an address and port hosting the gameplay service.

Default:
4242

SimulatorAddress string The router sends this address to the client when the client attempts to connect. This is where the gameplay connection is established.

Default:
[empty]
SimulatorPort integer The listening port of the gameplay connection. The router will include this port with the simulator address when it sends the final connection address to the client for gameplay.

Default:
4300
ThreadSleep integer Time delay, in milliseconds, for simulator thread loops to typically sleep to prevent burning up CPU cycles. Also can be used to simulate server-side lag.

Default:
1
ErrorSleep integer Time delay, in milliseconds, for threads to sleep on critical errors. Often used for re-try delays for network code to re-establish sockets.

Default:
5000
MainSleep integer Time delay, in milliseconds, for the program's main loop to sleep.

Default:
1
DefX integer Default X coordinate to place a player that has missing coordinate data.

Default:
0
DefY integer Default Y coordinate to place a player that has missing coordinate data.

Default:
0
DefZ integer Default Z coordinate to place a player that has missing coordinate data.

Default:
0
DefZone integer Default Zone ID to place a player that has missing zone/coordinate data.

Default:
81
HTTPBaseFolder string This path will be prefixed to any incoming HTTP file request when opening files for downloading. Use this or [ . ] or leave blank to substitute the current working directory. Do not include the ending slash.

Default:
[blank]
SimulatorLog bool Set to 0 or 1. If 0, simulators will not log any debug or error messages whatsoever.

Default:
0
GlobalLogging bool Set to 0 or 1. If 0, no debug or error messages of any kind will be logged.

Default:
0
LogLevelHTTPBase integer The threshold for messages logged by the HTTP base thread (listening port). Messages of a value above this threshold will not be logged.
-1 for all messages
0 for none.
1 for critical errors
2 for general errors
3 for warnings
4 for normal messages
5 for verbose output


Default:
3
LogLevelSimulatorBase integer The threshold for messages logged by the simulator base thread (listening port). Messages of a value above this threshold will not be logged.
-1 for all messages
0 for none.
1 for critical errors
2 for general errors
3 for warnings
4 for normal messages
5 for verbose output


Default:
3
LogLevelHTTPDistribute integer The threshold for messages logged by the HTTP response (content distribution) threads. Messages of a value above this threshold will not be logged.
-1 for all messages
0 for none.
1 for critical errors
2 for general errors
3 for warnings
4 for normal messages
5 for verbose output


Default:
3
HTTPListenPort integer The listening port of the HTTP service. Use 0 for no HTTP service.

Default:
80
RebroadcastDelay unsigned long Milliseconds between re-broadcasting creature position updates to the client. Must be less than 30000 (30 seconds) or else the creatures will time out, assumed to be out of listening range, and disappear from view.

Default:
25000
SceneryAutosaveTime unsigned long Milliseconds to wait between autosaving scenery edits. Default time is 5 minutes.

Default:
300000
HTTP404Header string The outgoing HTTP response header for a 404 error. If this property is used on multiple lines, the text will be appended. Each append is automatically separated by a newline.

Default:
[blank]
HTTP404Redirect integer If nonzero, the HTTP404Header field will be used in outgoing 404 responses.

Default:
0
HTTP404Message string Use this to supply HTML response text for use in displaying a 404 page. If this property is used on multiple lines, the text will be appended.

Default:
[blank]
HTTP404MessageFile string Loads the contents of an external file into HTTP404Message instead of defining each line in this file. Use this if you require a custom 404 page (the file should contain valid HTML).

Default:
[blank]
BaseSceneryID integer If no scenery additive is present in the session configuration, all newly placed scenery will begin counting off at this ID number.

Default:
1000000
ForceUpdateTime integer Millisecond time to wait after a player character stops moving to force an absolute position update to synchronize the player's location across all nearby players. Produces a somewhat unsightly snap effect when the clients are out of sync. The client estimates movements of other players, but are not always accurate. Without this synchronization, other players may appear to have fallen off platforms even when they actually haven't.

Default:
1500
ItemBindingTypeOverride integer A global override for all ItemDefs (property:mBindingType). If greater than zero, it will replace any equivalent mBindingType with zero. If set to zero, it always overrides all mBindingType values to zero.

Default:
-1
ItemArmorTypeOverride integer OBSOLETE. A global override for all ItemDefs (property:mArmorType). If greater than or equal to zero, it will replace all mArmorType values with the override. Note that shields require a proper mArmorType value to appear on a player's back when equipped)

Default:
-1
ItemWeaponTypeOverride integer A global override for all ItemDefs (property:mWeaponType). If greater than or equal to zero, it will replace all mWeaponType values with the override.

Default:
-1
MOTD_Name string The "character name" that speaks the Message of the Day. Doesn't have to be an actual character.

Default:
[blank]
MOTD_Channel string The channel name that the Message of the Day appears

Default:
[blank]
MOTD_Message string The Message of the Day that appears to a character whenever they log in. Leave blank for no message.

Default:
[blank]
MessageLevel integer Add the bit values of the desired flags:
1:Messages set to always display.
2:Critical errors.
4:Non critical errors.
8:Warnings.
16:Standard diagnostic messages.
32:Verbose diagnostic messages.
64:Extremely verbose diagnostic output.

Default:
65535
RemoteAuthenticationPassword string When using the administrative HTML webpage, the form must provide this exact authentication password to process the request.

Default:
[blank]
ProperSceneryList integer Should be set to 1. If set to zero, scenery list queries from the client will be sent a null response (no scenery) to bypass loading screens. This is bad for players since they may walk into props before they're loaded, getting stuck or locked outside boundaries that they should not normally cross.

Default:
1
BuybackLimit integer The global limit to the number of buyback items that are retained on a character. If the limit is reached, each item added to the list will push the oldest one off.

Default:
32
Upgrade integer If set to certain values, it runs pre-programmed actions.

Do not use unless you know what you're doing. This function permanently alters data files. Backup everything before using..

Possible values:

200
Erases registration keys from all accounts. If a registration key exists, a recovery key will be generated before erasure. This operation was necessary for public release as a way to obscure the registration keys, since they are required for password resets and would be insecure in their original plaintext form. Password resets via the online web form will compare the submitted key against the original key (if it still exists, prior to wipe). If not, the submitted key will be translated into a recovery key and compared to that. If it matches the account's recovery key, the original key will be restored to the account. Permanently alters all account files and Data/AccountList.txt.



Default:
0

HeartbeatIntervalMS integer Millisecond time between sending heartbeat messages to the client. The heartbeat is used to help test whether the client is connected and functioning properly. Assists detection of unexpectedly broken network connections.

Default:
10000
HeartbeatAbortCount integer Requires a modded client to function, therefore set to -1 by default. If this many heartbeat messages have been sent without responding client activity, consider the connection to be broken and forcefully disconnect from the server side.

Default:
-1
WarpMovementBlockTime integer Milliseconds to ignore movement updates from the client after a character warp has been completed. This helps reduce some synchronization bugs where the player would not appear at the proper warp target because a movement request had overridden the warped coordinates.

Default:
2000
IdleCheckVerification bool Used to check idle states and to detect botting. Disabled by default. If this is true, players may be kicked if the conditions are met.

Default:
0
IdleCheckFrequency integer Milliseconds between running idle checks for kicking. Default is 20 minutes.

Default:
1200000
IdleCheckDistance integer Unit of distance (10 units = 1 meter). If characters have not moved at least this far since the last idle check, consider them to be idle.

Default:
50
IdleCheckCast integer Number of ability activation requests from a location before triggering a verification.

Default:
6
IdleCheckCastInterval integer Milliseconds that the next idle check will be hastened by whenever the CheckCast count is reached.

Default:
60000
IdleCheckDistanceTolerance integer Unit of distance (10 units = 1 meter). Abilities used within this distance will be contributed toward the CheckCast count.

Default:
100
EnvironmentCycle string The environment is a global day/night cycle that affects all zones. A series of environment types and times is provided via Env=Time pairs, each pair separated by an ampersand (&). Time values are in seconds.

Default:
Day=7200&Sunset=3600&Night=7200&Sunrise=3600
SendLobbyHeartbeat bool Requires a modded client to function, therefore disabled by default. If set to 1, heartbeat messages are sent during the client lobby phase (character selection/creation) and will help detect broken network connections during this stage.

Default:
0
CapExperienceLevel integer If player meets or exceeds this level, all granted experience will be capped to the amount below. 70 is the maximum level limit of the experience table.

Default:
70
CapExperienceAmount integer If experience is capped by level, granted experience (such as on a kill) will never exceed this value.

Default:
0
CustomAbilityMechanics bool If set to 1, certain ability mechanics will be processed differently than Sparkplay may have intended. Disarm will affect all physical only abilities instead of autoattacks, and multipliers to core stats will affect the current total rather than base amount.

Default:
0
DebugPingServer bool Modded client required. If enabled, the server will send debug pings to all client connections at the time frequency below.

Default:
0
DebugPingClient bool Modded client required. If enabled, the client will send debug pings to the server at the time frequency below.

Default:
0
DebugPingFrequency integer Millisecond time between sending diagnostic pings, if the pings are enabled.

Default:
1000
DebugPingClientPollInterval integer Number of pings between writing the results of the collected pings to the log.

Default:
60
DebugPingServerLogThreshold integer Millisecond time. Any ping delays higher than this are reported in the log.

Default:
2000
HTTPDeleteConnectedTime integer Millisecond time to wait before a connected but inactive HTTP connection is forcefully terminated.

Default:
60000
HTTPDeleteDisconnectedTime integer Millisecond time to wait before an idle listening HTTP connection is forcefully terminated.

Default:
300000
HTTPDeleteRecheckDelay integer Millisecond time, interval between scanning HTTP connections for activity and taking action.

Default:
60000
PartyPositionSendInterval integer Millisecond time, interval between resending player location updates to party members outside of local range.

Default:
15000
VaultDefaultSize integer Number of vault slots that all characters have. If characters have not purchased any slots at all, this amount will still be available.

Default:
16
VaultInitialPurchaseSize integer Newly created characters will be given this many free slots (considered as purchased space).

Default:
8
DebugPacketSendTrigger integer Used only for debugging network issues, the interval of repeatedly unfinished send() attempts before noting a message in the log.

Default:
128
DebugPacketSendDelay integer Millisecond time, experimental delay before attempting to resend data on a socket that doesn't seem to be operating correctly.

Default:
0
DebugPacketSendMessage bool If true, display a diagnostic message if the trigger is activated.

Default:
0
GlobalMovementBonus integer If nonzero, all objects placed into an instance (players, mobs, NPCs, etc) will gain this default bonus to run speed.

Default:
0
AllowEliteMob bool Allows promotion of mobs to elite when spawned. Rules and multipliers are defined elsewhere. See EliteType.txt and EliteAffix.txt files.

Default:
1
DexBlockDivisor float If nonzero, indicates how much dexterity is needed for a bonus 1% chance to block (linear scale, fractional) if the character is capable of blocking.

Default:
0
DexParryDivisor float If nonzero, indicates how much dexterity is needed for a bonus 1% chance to parry (linear scale, fractional) if the character is capable of blocking.

Default:
0
DexDodgeDivisor float If nonzero, indicates how much dexterity is needed for a bonus 1% chance to dodge (linear scale, fractional) melee attacks.

Default:
0
SpiResistDivisor float If nonzero, indicates how spirit equates to bonus 1% resistance against life/death magic.

Default:
0
PsyResistDivisor float If nonzero, indicates how psyche equates to bonus 1% resistance against fire/frost magic.

Default:
0
ForceMaxPacketSize integer If above zero, caps outgoing network traffic to this many bytes per send() call. Improves network performance if packet sizes are too large for the network to handle gracefully. Smaller packets are easier for the network buffers to handle, as available space may vary depending on how much data is already queued.

Default:
1000
SceneryAuditDelay integer Millisecond time between scanning for pending scenery audits and writing them to file.

Default:
120000
SceneryAuditAllow bool If enabled, the scenery audit system will function, otherwise no audits will be processed. Auditing will provide a log of all prop changes made to that zone. Note that zones must still require the Audit field to be set in the ZoneDef file.

Default:
1
LootMaxRandomizedLevel integer The maximum item level for generated items found from typical mobs.

Default:
50
LootMaxRandomizedSpecialLevel integer The maximum item level for generated items found from special mobs.

Default:
55
LootNamedMobSpecial bool If enabled, named mobs are considered special for the above consideration.

Default:
1
LootMinimumMobRaritySpecial integer If the mob rarity meets or exceeds this rarity, the mob is considered special for the above consideration. 0=normal, 1=heroic, 2=epic, 3=legendary

Default:
2
HeroismQuestLevelTolerance integer How many levels above the quest level that the player is allowed to be to receive full heroism. See the Heroism property for Quest Definitions.

Default:
3
HeroismQuestLevelPenalty integer If the player is above the level tolerance for heroism, each level above the threshold will remove this many points from the bonus until none is granted. Note that 1 heroism equals 0.5 luck.

Default:
4
NamedMobDropMultiplier float Drop rate modifier applied to all named mobs (CreatureDef ExtraData namedmob=1). Stacks with all other multipliers.

Default:
4
ProgressiveDropRateBonusMult string A list of 4 floats, separated by commas. These represent the four mob rarity types (0=normal, 1=heroic, 2=epic, 3=legend). Each kill inside an instanced dungeon will raise the instance's drop multiplier by this additive amount, according to the mob's rarity type. A value of 0.01 means 1% drop chance added per kill. Only affects randomized item chances.

Default:
0.0025,0.0050,0.0100,0.0200
ProgressiveDropRateBonusMultMax float Instance base drop rates may increase as creatures are killed. This is the absolute cap that the multiplier may be. Using 1.0 will disable progressive drop rates.

Default:
2
DropRateBonusMultMax float Absolute maximum drop rate multiplier that any kill may have. Only affects randomized item drop rates.

Default:
200
UseIntegerHealth bool If set to 1, the server will transmit the Creature "health" property as a 4-byte integer instead of the usual 2-byte integer. This also controls the internal health cap used by the server, to help conform with data limitations in the client. Requires a modded client.

Default:
0
UseMessageBox bool If true, explanation messages sent to a client when it is forcefully disconnected (like a bad login) will use a popup message box instead of a floating message that disappears after a few seconds. Requires a modded client.

Default:
0
UseStopSwim bool If true, a special message will be sent whenever a player is forcefully moved or warped, that forces the client to stop any swim animation that may be playing. Fixes a potential swim flying exploit. Requires a modded client.

Default:
0
InvalidLoginMessage string The explanation message that is sent to the client when the account username or password is incorrect.

Default:
Account not found. Check username and password.
VerifyMovement bool If true, attempt to validate client movement and report unexpected speeds, coordinates, and update intervals. Offen issues false reports, so verify them for consistency. Accounts with the 'admin' permission are never validated due to conflicts with the speed command.

Default:
0
DebugLogAIScriptUse bool If true, AI Script ability use requests are printed to the log file to help determine which abilities are used, and any error states they return. This can be very helpful for debugging AI scripts. Best used in a controlled setting like a grove where only a single creature is active. May cause heavy log spam during combat.

Default:
0