diff --git a/Configuration.md b/Configuration.md index 72f0b2d..42289f6 100644 --- a/Configuration.md +++ b/Configuration.md @@ -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 — 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 — `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 — `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 — 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}}` — displays how many players have connected * `{{TOPSTATS}}` — displays the top 5 players on the server based on performance * `{{MOSTPLAYED}}` — 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}}` — displays the version of **IW4MAdmin** * `{{ADMINS}}` — displays the currently connected and *unmasked* privileged users online * `{{NEXTMAP}}` — 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) \ No newline at end of file