Updated Configuration (markdown)

RaidMax 2022-04-05 11:20:14 -05:00
parent d6cf4dd097
commit f5680119e7

@ -1,5 +1,4 @@
### Configuration
#### Initial Configuration
## Initial Configuration
When **IW4MAdmin** is launched for the _first time_, you will be prompted to setup your configuration.
`Enable webfront`
@ -43,58 +42,142 @@ After initial configuration is finished, you will be prompted to configure your
`Enter server RCon password`
* The *\(R\)emote (Con)sole* password set in your server configuration (can be obtained via `rcon_password`)
* Default — `n/a`
`Enter number of reserved slots`
* The number of client slots reserved for privileged players (unavailable for regular users to occupy)
* For example, if you enter **2** reserved slots on an **18** slot server, you will have **16** publicly available slots
* Default — `0`
#### Advanced Configuration
## Advanced Configuration
If you wish to further customize your experience of **IW4MAdmin**, the following configuration file(s) will allow you to changes core options using any text-editor.
#### `IW4MAdminSettings.json`-- this file is created after initial setup
* This file uses the [JSON](https://en.wikipedia.org/wiki/JSON#JSON_sample) specification, so please validate your configuration before running **IW4MAdmin**
### Servers
| Name | Description | Validation | Default |
|--------------------|--------------------------------------------------------|---------------------------------------------------|---------|
| IPAddress | Internet Protocol Address | [IPv4 format](https://en.wikipedia.org/wiki/IPv4) | -- |
| Port | Communication endpoint | 1-65535 | -- |
| Password | RCon password | Not empty | -- |
| Rules | List of rules | Not null | [] |
| AutoMessages | List of messages to broadcast automatically | Not null | [] |
| ManualLogPath | Override game log path | -- | null |
| ReservedSlotNumber | Number of client slots to reserve for privileged users | 0-32 | 0 |
| GameLogServerUrl | HTTP Url for the Game Log Server | HTTP endpoint | null |
| CustomHostname | Override server title (hostname) | Length >= 3 &mdash; Length <= 128 | null |
### Application
| Name | Description | Validation | Default |
|-----------------------|-----------------------------------------------------------|---------------------------------------------------|---------|
|WebfrontBindUrl | Specifies the address and port the webfront will listen on. ([Note for Reverse Proxies](https://github.com/RaidMax/IW4M-Admin/issues/208#issuecomment-855258215))| HTTP Uri | http://0.0.0.0:1624
|ManualWebfrontUrl | URL for webfront (useful for things like [YADB](https://forum.awog.at/topic/89/release-yadb-yet-another-discord-bridge)) | HTTP Uri | null|
|WebfrontPrimaryColor | Hex Value for the Primary Webfront color. | Hex Color Code | --
|WebfrontSecondaryColor | Hex Value for the Secondary Webfront color. | Hex Color Code | --
|WebfrontCustomBranding | Name of application. | Text | IW4MAdmin
|ContactUri | Website/email/etc.. that users can contact the administrator on | Text | this server's website|
|CommandPrefix | Prefix indicating the chat message is a command | Not empty | ! |
|BroadcastCommandPrefix | Prefix indicating the chat message is a broadcast command | Not empty | @ |
|MasterUrl | HTTP Url location of the master server | HTTP Uri | http://api.raidmax.org:5000|
|CustomLocale | Specifies a [locale name](https://msdn.microsoft.com/en-us/library/39cwe7zf.aspx) to use instead of system default | Not empty | windows-1252
|ConnectionString | Specifies the [connection string](https://www.connectionstrings.com/mysql/) to a MySQL server that is used instead of SQLite | Not empty | null
|DatabaseProvider | Specifies the database provider **IW4MAdmin** should use. (Possible values &mdash; `sqlite`, `mysql`, `postgresql`) | Not empty | sqlite
|IgnoreBots | Disables bots from being registered and tracked by **IW4MAdmin** | true/false | false
|RConPollRate | Specifies (in milliseconds) how often to poll each server for updates | Number | 5000
|AutoMessagePeriod | Specifies (in seconds) how often messages should be broadcasted to each server | Number | 60
|GlobalRules | Specifies the list of rules that apply to **all** servers` | Not empty | []
|BanDurations | Specifies the dropdown ban duration list for webfront bans | Not empty | 1h, 6h, 1d, 2d, 1w, 4w |
|PresetPenaltyReasons | Specifies the dropdown penalty reason list for webfront | Not empty | afk, ci |
|EnablePrivilegedUserPrivacy | Hides privileged user levels and chat history from guests on webfront | True or False | False |
| Name | Description | Validation | Default |
|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|-----------------------------|
| Enable WebfrontFront | Indicates if the webfront (web based GUI) is active | true or false | -- |
| WebfrontBindUrl* | Specifies the address and port the webfront will listen on. ([Note for Reverse Proxies](https://github.com/RaidMax/IW4M-Admin/issues/208#issuecomment-855258215)) | HTTP Uri | http://0.0.0.0:1624 |
| ManualWebfrontUrl* | URL for webfront (useful for things like [YADB](https://forum.awog.at/topic/89/release-yadb-yet-another-discord-bridge)) | HTTP Uri | null |
| WebfrontPrimaryColor* | Hex Value for the Primary Webfront color | Hex Color Code | -- |
| WebfrontSecondaryColor* | Hex Value for the Secondary Webfront color | Hex Color Code | -- |
| WebfrontCustomBranding* | Name of community to display on webfront. (If Community Information is enabled, it will override this value) | Text | IW4MAdmin |
| WebfrontConfiguration | Configuration options related to the webfront | WebfrontConfiguration | -- |
| EnableMultipleOwners | Indicates if more than one client to be promoted to level of `Owner` | true or false | false |
| EnabledSteppedHierarchy | Indicates if privileged clients can promote other clients to the level below their current level | true or false | false |
| UseLocalTranslations | Indicates if IW4MAdmin should use the local translation files or download the most recent translation data from the master server at runtime | true or false | false |
| IgnoreBots | Disables bots from being registered and tracked by **IW4MAdmin** | true or false | false |
| EnableCustomSayName | Indicates if IW4MAdmin should set a custom say name. i.e. the in-game broadcast messages contain a specified prefix | true or false | false |
| CustomSayName | Value of the custom say name (broadcast message prefix) if enabled | Text | -- |
| EnableSocialLink* | Indicates if the webfront should display a social (media?) link in the navigation tab | true or false | false |
| SocialLinkAddress* | Http Uri of the social link (e.g. twitter/youtube/facebook/vk) | Http Uri | -- |
| SocialLinkTitle* | Title of the social link navigation on the webfront | Text | -- |
| ContactUri | Website/email/etc.. that users can contact the administrator on. (Displayed on ban messages) | Text | this server's website |
| EnableCustomParserEncoding | Indicates if IW4MAdmin should use a custom character set encoding when parsing log files and RCon | true or false | false |
| CustomParserEncoding | [Windows CodePage](https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) identifier | .NET name | -- |
| EnableWebfrontConnectionWhitelist* | Indicates if the webfront connection whitelist (only whitelisted ips can connect) should be enabled | true or false | false |
| WebfrontConnectionWhitelist* | Collection of IP Addresses that are allowed to connect to the webfront | Collection of text | [] |
| EnableCustomLocale | Indicates if IW4MAdmin should override the system's default locale (display format based on country & language code) | true or false | false |
| CustomLocale | Specifies [ISO Language Code](https://www.andiamo.co.uk/resources/iso-language-codes/) to use instead of system's default | Text (ISO 639-1 code) | -- |
| CommandPrefix | Prefix indicating the chat message is a command | Not empty | ! |
| BroadcastCommandPrefix | Prefix indicating the chat message is a broadcast command | Not empty | @ |
| DatabaseProvider | Specifies the database provider **IW4MAdmin** should use. (Possible values &mdash; `sqlite`, `mysql`, `postgresql`) | Not empty | sqlite |
| ConnectionString | Specifies the [connection string](https://www.connectionstrings.com/mysql/) to a MySQL server that is used instead of SQLite | Not empty | null |
| RConPollRate | Specifies (in milliseconds) how often to poll each server for updates | Number | 5000 |
| MaximumTempBanTime | Specifies the maximum duration of a temporary ban | TimeSpan `days.hours:minutes` | 30.00:00 |
| EnableColorCodes* | Indicates if color codes are displayed on the webfront | true or false | false |
| IngameAccentColorKey | Specifies the color key used to substitute for `Color::Accent` references | Text | Cyan |
| AutoMessagePeriod | Specifies (in seconds) how often messages should be broadcasted to each server | Number | 60 |
| Automessages | Collection of global messages sent to _all_ servers | Collection of text | [] |
| GlobalRules | Specifies the list of rules that apply to **all** servers` | Not empty | [] |
| DisallowedClientNames | Collection of names (exact match) that will be automatically kicked when a join attempt is detected | Collection of text | [] |
| MapChangeDelaySeconds | Specifies how long to wait (in seconds) before executing the map rotate or load map command | Number >= 0 | 5 |
| BanDurations | Specifies the dropdown ban duration list for webfront bans | Not empty | 1h, 6h, 1d, 2d, 1w, 4w |
| PermissionSets | Specifies permissions per level. See [Permission Sets](https://github.com/RaidMax/IW4M-Admin/wiki/Permission-Sets) | Collection of permission sets | -- |
| PresetPenaltyReasons | Specifies the dropdown penalty reason list for webfront | Not empty | afk, ci |
| EnablePrivilegedUserPrivacy | Hides privileged user levels and chat history from guests on webfront | true or false | false |
| EnableImplicitAccountLinking | Indicates if user should be associated based on IP Address (legacy feature recommended to be disabled) | true or false | false |
| RecentAliasIpLinkTimeLimit | Specifies the duration to attempt to tie evading user's account to previous ban penalty | TimeSpan `days.hours:minutes` | 7.0:00:00 |
| MaxClientHistoryTime* | Specifies the duration of the client history graph on the webfront server overview | TimeSpan `days.hours:minutes` | 0.12:00:00 |
| ServerDataCollectionInterval | Specifies the interval at which server data (client count, map, concurrent player etc..) is collected | TimeSpan `days.hours:minutes` | 0.0:05:00 |
| ServerConnectionAttempts | Specifies the number of RCon connection attempts are made before a server is marked as unreachable | Number >= 0 | 6 |
| OverridePermissionLevelNames | Specifies the mapping of default permission level names to custom permission level names | Collection of Permission->Name | -- |
| Servers | Specifies the collection of servers to be monitored by IW4mAdmin | `ServerConfiguration` | -- |
| MinimumNameLength | Specifies the minimum amount of characters a client's name must contain to play | Number > 0 | -- |
| Id | Identifier for your IW4MAdmin instance (Think of this like a server key and don't share it) | Guid | -- |
| SubscriptionId | Identifier for the [plugin store](https://store.raidmax.org) | Email address | -- |
| IgnoreServerConnectionLost | Indicates if IW4MAdmin should notify when a server connection is lost or not | true or false | false |
| MasterUrl | HTTP Url location of the master server | HTTP Uri | http://api.raidmax.org:5000 |
*\* Will be moved to the `WebfrontConfiguration` in the near future*
### Server Configuration
| Name | Description | Validation | Default |
|--------------------|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------|
| IPAddress | Internet Protocol Address | [IPv4 format](https://en.wikipedia.org/wiki/IPv4) | -- |
| Port | Communication endpoint | 1-65535 | -- |
| Password | RCon password | Not empty | -- |
| Rules | List of rules | Not null | [] |
| AutoMessages | List of messages to broadcast automatically | Not null | [] |
| ManualLogPath | Override game log path | -- | null |
| ReservedSlotNumber | Number of client slots to reserve for privileged users | 0-32 | 0 |
| GameLogServerUrl | HTTP Url for the Game Log Server | HTTP endpoint | null |
| CustomHostname | Override server title (hostname) | Length >= 3 &mdash; Length <= 128 | null |
| RConParserVersion | Specifies the name of the RCon parser to use | Parser name | -- |
| EventParserVersion | Specifies the name of the event parser to use | Parser name (should be same as `RConParserVersion`) | -- |
| ReservedSlotNumber | Specifies the number of client slots reserved for privileged players (unavailable for regular users to occupy) | Number >= 0 | 0 |
#### Parser Names
| Game | Parser Name |
|--------------------------------|-------------------------------------|
| Call of Duty (Pre CoD4) | CoD |
| IW4x | IW4x Parser |
| IW6x | IW6x Parser |
| S1x | S1x Parser |
| CoD4x | CoD4x Parser |
| Plutonium IW5 | Plutonium IW5 Parser |
| Plutonium T6 | Plutonium T6 Parser |
| Plutonium T4 (Multiplayer) | Plutonium T4 MP Parser |
| Plutonium T4 (CO-OP & Zombies) | Plutonium T4 CO-OP/Zombies Parser |
| Tekno MW3 | Tekno MW3 Parser |
| Rekt T5m | RektT5m Parser |
| T5 (World at War Retail) | Call of Duty 5: World at War Parser |
| T7 (Black Ops 3 Retail) | Black Ops 3 Parser |
| CS: GO | CS:GO Parser |
| CS: GO /w SourceMod | CS:GO (SourceMod) Parser |
### Webfront Configuration
| Name | Description | Validation | Default |
|-----------------|--------------------------------------------------------------|-------------------|---------|
| ScriptInjection | Specifies JavaScript source injected into the webfront pages | Text (JavaScript) | -- |
### Community Information
Used to configure information for your community
| Name | Description | Validation | Default |
|----------------|--------------------------------------------------------------|------------------------------------------------------------|-------------------------------------------------|
| Name | Name of your community | Text | IW4MAdmin - Configure In IW4MAdminSettings.json |
| Description | Description of your community | Text | -- |
| EnableBanner | Displays a banner on the top of the `About` page in webfront | Banner is located at `wwwroot/images/community/banner.png` | true |
| SocialAccounts | Collection of `SocialAccountConfiguration` | Collection | [] |
| IsEnabled | Indicates if the social/about page should be displayed | true or false | true |
#### Social Account Configuration
Used to configure your communities social account links/icons
| Name | Description | Validation | Default |
|---------|-----------------------------------------------|-------------------------------------|---------|
| Title | Title of the social link | -- | -- |
| Url | Absolute url to the social link/media | -- | -- |
| IconUrl | Absolute or relative* url to icon | Use `IconUrl` or `IconId`, not both | -- |
| IconId | [OpenIconic](https://useiconic.com/open) name | Use `IconUrl` or `IconId`, not both | |
*\*if using relative url, file must be in the `wwwroot/images/*` directory*
`AutoMessages`
* Specifies the list of messages that are broadcasted to **all** servers
* Specially formatted **tokens** can be used to broadcast dynamic information
* Specially formatted **tokens** can be used to broadcast dynamic information
* `{{TOTALPLAYERS}}` &mdash; displays how many players have connected
* `{{TOPSTATS}}` &mdash; displays the top 5 players on the server based on performance
* `{{MOSTPLAYED}}` &mdash; displays the top 5 players based on number of kills
@ -102,11 +185,3 @@ If you wish to further customize your experience of **IW4MAdmin**, the following
* `{{VERSION}}` &mdash; displays the version of **IW4MAdmin**
* `{{ADMINS}}` &mdash; displays the currently connected and *unmasked* privileged users online
* `{{NEXTMAP}}` &mdash; displays the next map and gametype in rotation
`Maps`
* Specifies the list of maps for each supported game
* `Name`
* Specifies the name of the map as returned by the game (usually the file name sans the file extension)
* `Alias`
* Specifies the display name of the map (as seen while loading in)