...
In the latest versions of NWN:EE many of these are now available in the Options menu making it a lot easier to tinker with the core settings.tml for your server - you can do it on the client and copy the file over to your server. It also makes doing simple co-op runs a lot easier.
This section has the most "settings.tml only" options, listed at the end of this bit in a separate section.
Also note: Many settings that are not in this section do affect servers, weird isn't it? See sections above for more info.
| Option Panel Name (if available) | settings.tml name | Default Value | Options | settings.tml values | Description and Notes | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Client | ||||||||||||||||||||||||||||||||
| Player Name | [client] [client.identity] name | "" | Text field | Text field | Your player name to join servers with | |||||||||||||||||||||||||||
| Server | ||||||||||||||||||||||||||||||||
| Server Name | [server] [server.identity] name | "" | Text field | Text field | Sets the server name | |||||||||||||||||||||||||||
[server] [server.identity] game-region | 0 | The server region. Unused in NWN:EE server browser. | ||||||||||||||||||||||||||||||
[server] [server.identity] game-type | -1 | The server type. Unused in NWN:EE server browser. | ||||||||||||||||||||||||||||||
| Post Game To Internet | [server] [server.identity] public | true | Enabled (Ticked) | Post Game To Internet | true | Enabled (Ticked) Disabled (Unticked) | true false | If ticked (on) it will post the game to Beamdogs centralised server list. | ||||||||||||||||||||||||
| Server Port | 5121 | [server] [server.net] port | 5121 | 1 - 65535 | 1 - 65535 | The TCP port your server will initiate connections on. UDP firewall punching is used as well by the game. | ||||||||||||||||||||||||||
| Player Pausing | [server] allow-player-pausing | false | Enabled (Ticked) Disabled (Unticked) | true false | If true it will allow players to have DM-like powers to pause a server. In singleplayer mode always set to: Enabled | |||||||||||||||||||||||||||
| Server Restore Spell Uses On Login | [server] restore-spell-uses-on-login | false | Enabled (Ticked) Disabled (Unticked) | true false | If disabled (default) a players spells and feats used will be saved and will be reapplied on login for server vault characters. If enabled, it will act as if the player had rested if they rejoin and restore all their limited spell and feat uses. It's not recommended to enable this usually on a normal server. | |||||||||||||||||||||||||||
| Only One Party | [server] one-party-only | true | Enabled (Ticked) Disabled (Unticked) | true false | All players will join the first players party (first real player - DMs cannot run a party). Very useful for DM or coop playthroughs where there is only one expected party. Obviously disable this on any server where there may be more than one party travelling around. | |||||||||||||||||||||||||||
| PVP Setting | [server] pvp-mode | 1 - Party | None Party Full | 0 1 2 | Changes the Player versus Player setting allowing or disallowing what you can attack with a hostile action. This is still dependant on the area PvP settings. Full PvP: When full PvP is in effect, a PC can take hostile actions against any other PC. This includes outright attacks, pick pocket attempts, and (presumably accidentally) affecting party members with harmful area of effect spells that do not specifically exclude friends (such as fireball). That is, the full range of Player versus Player actions are available. This setting is only available under the "D&D hardcode rules" and "very difficult" difficulty settings. Party PvP: When party PvP is in effect, a PC can take hostile actions against any PC not in the same party. This is similar to the full PvP setting, but protects party members from hostile actions. This setting is only available under the "D&D hardcode rules" and "very difficult" difficulty settings. No PvP: When no PvP is in effect, a PC cannot take hostile actions against any other PC. | |||||||||||||||||||||||||||
| Item Level Restrictions | [ruleset] item-level-restrictions | false | Enabled (Ticked) Disabled (Unticked) | true false | If enabled it enforces Item Level Restrictions, ie the character level can only equip things based on the value limit set in itemvalue.2da In singleplayer mode always set to: Disabled | |||||||||||||||||||||||||||
| Enforce Legal Characters | [ruleset] enforce-legal-characters | true | Enabled (Ticked) Disabled (Unticked) | true false | Known as "ELC". In multiplayer if enabled it checks that suibmitted characters (new and levelups) adhere to the game rules, since both character generation and levelup are technically done client side and sent to the server for validation. It is highly recommended to leave this enabled and use NWNX to alter its behaviour for special things, unless you run a friends only game. In singleplayer mode always set to: Disabled | |||||||||||||||||||||||||||
| Ruleset Min Character Level | 1 | [ruleset] min-character-level | 1 | 1 - 401 - 40 | 1 - 40 | Minimum level to play on the the server. This only realistically works with Local Vault characters, since all Server Vault characters created start at level 1. In singleplayer mode always set to: Disabled | ||||||||||||||||||||||||||
| Ruleset Max Character Level | [ruleset] max-character-level | 40 | 1 - 40 | 1 - 40 | Maximum level to play on the server and presumably an enforced maximum level you can obtain on any one character by levelling - once there it won't award any more XP. In singleplayer mode always set to: Disabled | Server - Advanced | ||||||||||||||||||||||||||
[server] reload-when-empty | true | Server Disallow Shouting | false | Enabled (Ticked) Disabled (Unticked) | true false | Stops If the yellow-coloured server wide shouts from being possible to do. You can also do a similar thing with OnPlayerChat which can alter the volume of a sent message (so you can convert it to a normal chat). | Server Show Dm Join Messages | true | Enabled (Ticked) Disabled (Unticked) | true false | If enabled it will show in grey a message "So and so joined as a DM." to all players. Set to false to hide this. | server is empty, reload the module. Usually you'd have this set to false to disable your server reloading as one person logs in and one out, since modern servers take some time to spawn in all things and reload the module (sometimes several minutes). | ||||||||||||||||||||
[server] savegames-store-characters | true | true false | For co-op this is useful since it stores the players in the save game, retaining their relevant quest and XP and item progression (no need to export them each time) Persistent worlds don't (or shouldn't) use save games so this is irrelevant for them. | |||||||||||||||||||||||||||||
[server] savegames-vault-characters-only | false | true false | Untested. Likely will only save to save games vault characters, which obviously can be a thing you do - DM run session with vault-only characters or somesuch. Needs some testing to work out how exactly it interacts with the above setting (likeiy if savegames-store-characters is false, this won't do anything regardless). | |||||||||||||||||||||||||||||
| Server - Advanced | ||||||||||||||||||||||||||||||||
| Server Disallow Shouting | [server] disallow-shouting | false | Server Tweaks Use Threaded Timers | true | Enabled (Ticked) Disabled (Unticked) | true false | If enabled it...seems to make combat messages kinda go a bit wonky, with damage messages commonly appearing before the attack rolls. This needs further testing or developer insight since disabling it helps in singleplayer. Disable this and let us know if you have any further information - post it here! | Server Tweaks Threaded Timers Resolution | 100 | 1 - 1000 | 1 - 1000 | Presumably the resolution (timing) of the tweak above, maybe in milliseconds? | Stops the yellow-coloured server wide shouts from being possible to do for players (DMs can always do them). You can also do a similar thing with OnPlayerChat which can alter the volume of a sent message (so you can convert it to a normal chat). | |||||||||||||||||||
| Server Show Dm Join Messages | [server] show-dm-join-messages | true | Enabled (Ticked) Disabled (Unticked) | true false | If enabled it will show in grey a message "So and so joined as a DM." to all players. Set to false to hide this. | |||||||||||||||||||||||||||
| Server Tweaks Use Threaded Timers | [server] [server.tweaks] use-threaded-timers | true | Enabled (Ticked) Disabled (Unticked) | true false | If enabled it...seems to make combat messages kinda go a bit wonky, with damage messages commonly appearing before the attack rolls. This needs further testing or developer insight since disabling it helps in singleplayer. Disable this and let us know if you have any further information - post it here! | |||||||||||||||||||||||||||
| Server Tweaks Threaded Timers Resolution | [server] [server.tweaks] threaded-timers-resolution | 100 | Server Tweaks resman Max Memory Usage | 0.125 | 0.01 - 0.8 | 0.01 - 0.8 | The memory assigned to resman - the games memory cache of objects. Obviously servers don't load textures or models but they do load a lot of other things. This should be a % of system memory, and given the game is now 64bit could be increased to suitably use more memory on a server. Also note while the default value is 0.125 (12.5%) the in game options panel displays only 0.XX increments meaning it gets rounded to 0.13. | Server Tweaks 2da Engine Cache Size | 11 | 1 - 1000 | 1 - 1000 | Presumably the resolution (timing) of the tweak above, maybe in milliseconds? | ||||||||||||||||||||
| Server Why are there two similar settings? No idea! The amount of non-engine 2das cached for use with Get2DAString. All the engine 2da files (eg; spells.2da, or classes.2da) are automatically cached at game load. This would affect servers with a lot of custom 2da files, perhaps used for storing treasure generation tables or metadata. You may need to alter Server Tweaks resman Max Memory Usage if you increase this value significantly. | [server] [server.tweaks] [server.tweaks.resman] max-memory-usage | 0.125 | 0.01 - 0.8 | 0.01 - 0.8 | The memory assigned to resman - the games memory cache of objects. Obviously servers don't load textures or models but they do load a lot of other things. This should be a % of system memory, and given the game is now 64bit could be increased to suitably use more memory on a server. Also note while the default value is 0.125 (12.5%) the in game options panel displays only 0.XX increments meaning it gets rounded to 0.13. | |||||||||||||||||||||||||||
| Server Tweaks 2da Engine Cache Size | [server] [server.tweaks] 2da-engine-cache-size | 11 | 1 - 1000 | 1 - 1000 | This should affect the amount of engine 2da caching the game does. The main 2da files that are not permanently cached in memory are things like iprp_ files and the packages.2da related files. Increasing this number should lead to less loading hiccups on larger servers. You may need to alter Server Tweaks resman Max Memory Usage if you increase this value significantly. | |||||||||||||||||||||||||||
| Server Tweaks 2da User Cache Size | [server] [server.tweaks] 2da-user-cache-size | 10 | 1 - 1000 | 1 - 1000 | The amount of non-engine 2das cached for use with Get2DAString. Most of the engine 2da files (eg; spells.2da, or classes.2da) are automatically cached at game load, but as noted above some are a not, and all of the non-standard 2da files (des_* files, or custom ones) will use this cache. You may need to alter Server Tweaks resman Max Memory Usage if you increase this value significantly. | |||||||||||||||||||||||||||
| Server Tweaks Game Object Cache Size | [server] [server.tweaks] game-object-cache-size | 16 | 12 - 20 | 12 - 20 | Not sure what this does, but increasing it might improve performance on higher memory systems (which nowadays is everything). You may need to alter Server Tweaks resman Max Memory Usage if you increase this value significantly. | |||||||||||||||||||||||||||
| Server Tweaks Power Saving Clients Required To Disable | [server] [server.tweaks] [server.tweaks.power-saving] clients-required-to-disable | 1 | 1 - 255 | 1 - 255 | Do not increase this number. The old server would sleep for 10ms each game update. This was fine on small servers but caused severe performance issues on large servers. We added a new config option called Clients Required To Disable CPU Sleep (under Game Options) with an integer value which can be used to toggle this behaviour back on. By default, the server will retain the old behaviour until one or more players join, then it will enter high performance mode without any sleeping. You can change this value to something that is greater than the maximum players allowed on your server if you never want the server to enter high performance mode. It is recommended this is set to 1 in the modern age of processors else can cause server lag and stuttering for players. | |||||||||||||||||||||||||||
| Server Net accept Relayed Connections | [server] [server.net] accept-relayed-connections | true | Enabled (Ticked) Disabled (Unticked) | true false | Not sure - relayed connections via. ActivatePortal or just the usual UDP firewall punching? Probably the latter. Leave it on for maximum benefits for connectivity. | |||||||||||||||||||||||||||
| Login | ||||||||||||||||||||||||||||||||
| Player Password | [server] [server.login] player-password | Text field | Text field | The password needed to join if a player, or blank if no password. | ||||||||||||||||||||||||||||
| DM Password | [server] [server.login] dm-password | Text field | Text field | The password needed to join if a DM, or blank if no password. For proper servers you also may want to do validation of DM logins (or log it's happening) OnClientEnter or using NWNX. | ||||||||||||||||||||||||||||
[server] [server.login] admin-password | Text field | Text field | This might not be used in the EE version of the nwnserver application but in 1.69 it allowed some remote control of the server without logging in as a client. | |||||||||||||||||||||||||||||
| Max Players | [server] [server.login] max-players | 6 | 1 - 255 | 1 - 255 | ||||||||||||||||||||||||||||
[server] [server.login] [server.login.player-dm] enabled | true | true false | If true it allows the "DM Login" feature in the debug menu to work allowing a player to sudo up to a DM role dynamically. | |||||||||||||||||||||||||||||
| Autosave | ||||||||||||||||||||||||||||||||
| Enabled | [server] [server.autosave] enabled | false | Enabled (Ticked) Disabled (Unticked) | true false | This will make the game autosave as per the below setting timer. Possibly useful for DM run or coop games where you might forget to save for a bit and lose progress due to a crash or lots of dying. In singleplayer mode always set to: Disabled | |||||||||||||||||||||||||||
| Interval | [server] [server.autosave] interval | 5 | 1 - 30 | 1 - 30 | Amount of minutes between autosaves, if enabled above. | |||||||||||||||||||||||||||
| Vault Characters | ||||||||||||||||||||||||||||||||
| Vault Characters | [server] [server.vault] mode | 1 | Local Server | 1 0 | Set to 0 for server vault, which is where the BIC files are stored on the server, and a new player has to create a new character to join. In singleplayer mode always set to: 1 | |||||||||||||||||||||||||||
| Vault Characters - Advanced | ||||||||||||||||||||||||||||||||
| Suppress Base | [server] [server.vault] supress-base | false | Enabled (Ticked) Disabled (Unticked) | true false | Determines if characters in the root server vault directory are made available to players (in addition to characters in their subdirectories). An odd setting you'll probably never enable unless in a DM run game (where you provide some characters to all players to pick from). Although most server vaults won't have anything in the root by default so it essentially does nothing either way on a new server. | |||||||||||||||||||||||||||
| Sticky Player Names | [server] [server.vault] sticky-player-names | false | Server Tweaks 2da User Cache Size | 10 | 1 - 1000 | 1 - 1000 | Why are there two similar settings? No idea! The amount of non-engine 2das cached for use with Get2DAString. All the engine 2da files (eg; spells.2da, or classes.2da) are automatically cached at game load. This would affect servers with a lot of custom 2da files, perhaps used for storing treasure generation tables or metadata. You may need to alter Server Tweaks resman Max Memory Usage if you increase this value significantly. | Server Tweaks Game Object Cache Size | 16 | 12 - 20 | 12 - 20 | Not sure what this does, but increasing it might improve performance on higher memory systems (which nowadays is everything). You may need to alter Server Tweaks resman Max Memory Usage if you increase this value significantly. | Server Tweaks Power Saving Clients Required To Disable | 1 | 1 - 255 | 1 - 255 | Do not increase this number. The old server would sleep for 10ms each game update. This was fine on small servers but caused severe performance issues on large servers. We added a new config option called Clients Required To Disable CPU Sleep (under Game Options) with an integer value which can be used to toggle this behaviour back on. By default, the server will retain the old behaviour until one or more players join, then it will enter high performance mode without any sleeping. You can change this value to something that is greater than the maximum players allowed on your server if you never want the server to enter high performance mode. It is recommended this is set to 1 in the modern age of processors else can cause server lag and stuttering for players. | Server Net accept Relayed Connections | true | Enabled (Ticked) Disabled (Unticked) | true false | Not sure - relayed connections via. ActivatePortal or just the usual UDP firewall punching? Probably the latter. Leave it on for maximum benefits for connectivity. | Login | Player Password | Text field | Text field | The password needed to join if a player, or blank if no password. | DM Password | of details | |||
| By Player Name | [server] [server.vault] by-player-name | false | Enabled (Ticked) Disabled (Unticked) | true false | Not sure of details | |||||||||||||||||||||||||||
| Backup Server Characters | [server] [server.vault] backup-server-characters | Text field | Text field | The password needed to join if a DM, or blank if no password. For proper servers you also may want to do validation of DM logins (or log it's happening) OnClientEnter or using NWNX. | Max Players | 6 | 1 - 255 | 1 - 255 | Autosave | Enabled | false | Enabled (Ticked) Disabled (Unticked) | true false | This will make the game autosave as per the below setting timer. Possibly useful for DM run or coop games where you might forget to save for a bit and lose progress due to a crash or lots of dying. In singleplayer mode always set to: Disabled | Interval | 5 | 1 - 30 | 1 - 30 | Amount of minutes between autosaves, if enabled above. | Vault Characters | ||||||||||||
| Vault Characters | [server.vault] mode | 1 | Local Server | 1 0 | Set to 0 for server vault, which is where the BIC files are stored on the server, and a new player has to create a new character to join. In singleplayer mode always set to: 1 | |||||||||||||||||||||||||||
) | true false | Determines if saved characters are backed up on exit. Presumably if a server shuts down correctly all currently in-memory BIC changes are saved, but if it crashes they won't be. This will sort a backup of them in those cases. | ||||||||||||||||||||||||||||||
| Privacy | ||||||||||||||||||||||||||||||||
| Client Privacy Advertise Device Capabilities | [client] [client.privacy] advertise-device-capabilities | true | Enabled (Ticked) Disabled (Unticked) | true false | Client only setting - if unticked then the client won't send information such as game version, window size and other pertinent information to the server for use in newer EE features. | |||||||||||||||||||||||||||
| [server.log] | ||||||||||||||||||||||||||||||||
[server] [server.log] [server.log.creature-deaths] enabled = false | false | true false | Logs all creature deaths to the server log. This can be replicated (with of course possibly more useful information) in a creatures OnDeath event. | |||||||||||||||||||||||||||||
[server] [server.log] [server.log.debug-mode-sends-to-players] enabled = true | true | true false | Not sure, needs testing. | |||||||||||||||||||||||||||||
[server] [server.log] [server.log.heartbeats] enabled = false | false | true false | Presumably logs all OnHeartbeat event scripts firing. I mean I guess you might want to see how many are firing, but it also would add more lag since it of course is logging each one. | |||||||||||||||||||||||||||||
[server] [server.log] [server.log.rotation] enabled = true | true | true false | Rotate the server log files when the server shuts down. Needs some testing such as when the server crashes, does it check at startup and rotate or rotate on clean shutdown? | Vault Characters - Advanced | Suppress Base | false | Enabled (Ticked) Disabled (Unticked) | true false | Determines if characters in the root server vault directory are made available to players (in addition to characters in their subdirectories). An odd setting you'll probably never enable unless in a DM run game (where you provide some characters to all players to pick from). | Sticky Player Names | false | Enabled (Ticked) Disabled (Unticked) | true false | Not sure of details | By Player Name | false | Enabled (Ticked) Disabled (Unticked) | true false | Not sure of details | Backup Server Characters | false | Enabled (Ticked) Disabled (Unticked) | true false | Not sure of details | Privacy | Client Privacy Advertise Device Capabilities | true | Enabled (Ticked) Disabled (Unticked) | true false | Client only setting - if unticked then the client won't send information such as game version, window size and other pertinent information to the server for use in newer EE features. |