diff --git a/CHANGELOG.md b/CHANGELOG.md index e97338de..4c548cac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -91,6 +91,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin * Update tracker now uses TLS (@pandabear41) * When deleting an user account, any player logged in to that account is now logged out properly (@Enerdy) * Add NPCAddBuff data handler and bouncer (@AxeelAnder) +* Improved config file documentation (@Enerdy) ## TShock 4.3.25 * Fixed a critical exploit in the Terraria protocol that could cause massive unpreventable world corruption as well as a number of other problems. Thanks to @bartico6 for reporting. Fixed by the efforts of @QuiCM, @hakusaro, and tips in the right directioon from @bartico6. diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index c68c2fbc..863260b7 100644 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -27,497 +27,497 @@ using Rests; namespace TShockAPI { - /// ConfigFile - The config file class, which contains the configuration for a server that is serialized into JSON and deserialized on load. + /// The config file class, which contains the configuration for a server that is serialized into JSON and deserialized on load. public class ConfigFile { - /// InvasionMultiplier - The equation for calculating invasion size = 100 + (multiplier * (number of active players > 200 hp)). - [Description("The equation for calculating invasion size is 100 + (multiplier * (number of active players with greater than 200 health)).")] + /// Determines the size of invasion events. The equation for calculating invasion size = 100 + (multiplier * (number of active players > 200 hp)). + [Description("Determines the size of invasion events.\nThe equation for calculating invasion size is 100 + (multiplier * (number of active players with greater than 200 health)).")] public int InvasionMultiplier = 1; - /// DefaultMaximumSpawns - The default max spawns per wave. - [Description("The default maximum mobs that will spawn per wave. Higher means more mobs in that wave.")] + /// The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave. + [Description("The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave.")] public int DefaultMaximumSpawns = 5; - /// DefaultSpawnRate - The default spawn rate. + /// The delay between waves. Lower values lead to more mobs. [Description("The delay between waves. Lower values lead to more mobs.")] public int DefaultSpawnRate = 600; - /// ServerPort - The configured server port. + /// The port the server runs on. [Description("The port the server runs on.")] public int ServerPort = 7777; - /// EnableWhitelist - boolean if the whitelist functionality should be turned on. - [Description("Enable or disable the whitelist based on IP addresses in whitelist.txt.")] + /// Enable or disable the whitelist based on IP addresses in the whitelist.txt file. + [Description("Enable or disable the whitelist based on IP addresses in the whitelist.txt file.")] public bool EnableWhitelist; - /// InfiniteInvasion - Whether or not infinite invasion mode should be on. - [Description("Enable the ability for invasion size to never decrease. Make sure to run /invade, and note that this adds 2 million+ goblins to the spawn queue for the map.")] + /// Enables never-ending invasion events. You still need to start the event. + [Description("Enables never ending invasion events. You still need to start the event, such as with the /invade command.")] public bool InfiniteInvasion; - /// PvPMode - The server PvP mode (normal, always, or disabled). - [Description("Set the server pvp mode. Valid types are: \"normal\", \"always\" and \"disabled\".")] + /// Sets the PvP mode. Valid types are: "normal", "always", "disabled". + [Description("Sets the PvP mode. Valid types are: \"normal\", \"always\" and \"disabled\".")] public string PvPMode = "normal"; - /// SpawnProtection - Enables the spawn protection system. + /// Prevents tiles from being placed within SpawnProtectionRadius of the default spawn. [Description("Prevents tiles from being placed within SpawnProtectionRadius of the default spawn.")] public bool SpawnProtection = true; - /// SpawnProtectionRadius - The spawn protection tile radius. - [Description("Radius from spawn tile for SpawnProtection.")] + /// The tile radius around the spawn tile that is protected by the SpawnProtection setting. + [Description("The tile radius around the spawn tile that is protected by the SpawnProtection setting.")] public int SpawnProtectionRadius = 10; - /// MaxSlots - The server's max slots. - [Description("Max slots for the server. If you want people to be kicked with \"Server is full\" set this to how many players you want max and then set Terraria max players to 2 higher.")] + /// Maximum number of clients connected at once. If lower than Terraria's setting, the server will kick excess connections. + [Description("Maximum number of clients connected at once.\nIf you want people to be kicked with \"Server is full\" set this to how many players you want max and then set Terraria max players to 2 higher.")] public int MaxSlots = 8; - /// RangeChecks - Whether or not the anti-grief system based on range should be enabled. - [Description("Global protection agent for any block distance based anti-grief check.")] + /// Enable or disable anti-cheat range checks based on distance between the player and their block placements. + [Description("Enable or disable anti-cheat range checks based on distance between the player and their block placements.")] public bool RangeChecks = true; - /// DisableBuild - Whether or not building should be enabled. - [Description("Disables any building / placing of blocks.")] + /// Disables any placing, or removal of blocks. + [Description("Disables any placing, or removal of blocks.")] public bool DisableBuild; - /// SuperAdminChatRGB - The chat color for the superadmin group. - [Description("#.#.# = Red/Blue/Green - RGB Colors for the Admin Chat Color. Max value: 255.")] + /// The chat color for the superadmin group. + [Description("The chat color for the superadmin group.\n#.#.# = Red/Blue/Green\nMax value: 255")] public int[] SuperAdminChatRGB = { 255, 255, 255 }; - /// SuperAdminChatPrefix - The superadmin chat prefix. - [Description("Super admin group chat prefix.")] + /// The superadmin chat prefix. + [Description("The superadmin chat prefix.")] public string SuperAdminChatPrefix = "(Super Admin) "; - /// SuperAdminChatSuffix - The superadmin chat suffix. - [Description("Super admin group chat suffix.")] + /// The superadmin chat suffix. + [Description("The superadmin chat suffix.")] public string SuperAdminChatSuffix = ""; - /// BackupInterval - The backup frequency in minutes. - [Description("Backup frequency in minutes. So, a value of 60 = 60 minutes. Backups are stored in the \\tshock\\backups folder.")] + /// The interval between backups, in minutes. Backups are stored in the tshock/backups folder. + [Description("The interval between backups, in minutes. Backups are stored in the tshock/backups folder.")] public int BackupInterval; - /// BackupKeepFor - Backup max age in minutes. - [Description("How long backups are kept in minutes. 2880 = 2 days.")] + /// For how long backups are kept in minutes. + [Description("For how long backups are kept in minutes.\neg. 2880 = 2 days.")] public int BackupKeepFor = 60; - /// RememberLeavePos - Whether or not to remember where an IP player was when they left. - [Description("Remembers where a player left off. It works by remembering the IP, NOT the character.\neg. When you try to disconnect, and reconnect to be automatically placed at spawn, you'll be at your last location. Note: Won't save after server restarts.")] + /// Remembers where a player left off, based on their IP. Does not persist through server restarts. + [Description("Remembers where a player left off, based on their IP. Does not persist through server restarts.\neg. When you try to disconnect, and reconnect to be automatically placed at spawn, you'll be at your last location.")] public bool RememberLeavePos; - /// HardcoreOnly - Whether or not HardcoreOnly should be enabled. - [Description("Hardcore players ONLY. This means softcore players cannot join.")] + /// Prevents non-hardcore players from connecting. + [Description("Prevents non-hardcore players from connecting.")] public bool HardcoreOnly; - /// MediumcoreOnly - Whether or not MediumCore only players should be enabled. - [Description("Mediumcore players ONLY. This means softcore players cannot join.")] + /// Prevents softcore players from connecting. + [Description("Prevents softcore players from connecting.")] public bool MediumcoreOnly; - /// KickOnMediumcoreDeath - Whether or not to kick mediumcore players on death. - [Description("Kicks a mediumcore player on death.")] + /// Whether or not to kick mediumcore players on death. + [Description("Whether or not to kick mediumcore players on death.")] public bool KickOnMediumcoreDeath; - /// BanOnMediumcoreDeath - Whether or not to ban mediumcore players on death. - [Description("Bans a mediumcore player on death.")] + /// Whether or not to ban mediumcore players on death. + [Description("Whether or not to ban mediumcore players on death.")] public bool BanOnMediumcoreDeath; - /// AutoSave - Whether or not to use Terraria's built-in world auto save. - [Description("Enable/disable Terraria's built in auto save.")] + /// Enable or disable Terraria's built-in world auto save. + [Description("Enable or disable Terraria's built-in world auto save.")] public bool AutoSave = true; - /// AnnounceSave - Whether or not to broadcast world saves. - [Description("Enable/disable save announcements.")] + /// Enable or disable world save announcements. + [Description("Enable or disable world save announcements.")] public bool AnnounceSave = true; - /// MaximumLoginAttempts - Number of failed login attempts before kicking a player. + /// Number of failed login attempts before kicking the player. [Description("Number of failed login attempts before kicking the player.")] public int MaximumLoginAttempts = 3; - /// ServerName - Used when replying to a REST /status request or sent to the client. + /// Replaces the world name during a session if UseServerName is true. [Description("Replaces the world name during a session if UseServerName is true.")] public string ServerName = ""; - /// UseServerName - Whether or not to use ServerName in place of the world name. - [Description("Sends ServerName in place of the world name to clients.")] + /// Whether or not to use ServerName in place of the world name. + [Description("Whether or not to use ServerName in place of the world name.")] public bool UseServerName = false; - /// StorageType - The type of SQL database to use when storing data (either "sqlite" or "mysql"). - [Description("Valid types are \"sqlite\" and \"mysql\".")] + /// The type of database to use when storing data (either "sqlite" or "mysql"). + [Description("The type of database to use when storing data (either \"sqlite\" or \"mysql\").")] public string StorageType = "sqlite"; - /// MySqlHost - The hostname and port to to use when connecting to a MySQL database. + /// The MySQL hostname and port to direct connections to. [Description("The MySQL hostname and port to direct connections to.")] public string MySqlHost = "localhost:3306"; - /// MySqlDbName - The database name to use when connecting to a MySQL database. - [Description("Database name to connect to.")] + /// The database name to connect to when using MySQL as the database type. + [Description("The database name to connect to when using MySQL as the database type.")] public string MySqlDbName = ""; - /// MySqlUsername - The username for the login credentials used when connecting to a MySQL database. - [Description("Database username to connect with.")] + /// The username used when connecting to a MySQL database. + [Description("The username used when connecting to a MySQL database.")] public string MySqlUsername = ""; - /// MySqlPassword - The password for the login credentials used when connecting to a MySQL database. - [Description("Database password to connect with.")] + /// The password used when connecting to a MySQL database. + [Description("The password used when connecting to a MySQL database.")] public string MySqlPassword = ""; - /// MediumcoreBanReason - The reason given if banning mediumcore players on death. - [Description("The reason given when banning a mediumcore player on death if BanOnMediumcoreDeath is set to true.")] + /// The reason given if banning a mediumcore player on death. + [Description("The reason given if banning a mediumcore player on death.")] public string MediumcoreBanReason = "Death results in a ban"; - /// MediumcoreKickReason - The reason given if kicking mediumcore players on death. - [Description("The reason given when kicking a mediumcore player on death if KickOnMediumcoreDeath is set to true.")] + /// The reason given if kicking a mediumcore players on death. + [Description("The reason given if kicking a mediumcore players on death.")] public string MediumcoreKickReason = "Death results in a kick"; - /// EnableIPBans - Whether or not to kick players on join that match a banned IP address. - [Description("Enables kicking of banned users by matching their IP Address.")] + /// Enables kicking banned users by matching their IP Address. + [Description("Enables kicking banned users by matching their IP Address.")] public bool EnableIPBans = true; - /// EnableUUIDBans - Whether or not to kick players on join that match a banned UUID. - [Description("Enables kicking of banned users by matching their client UUID.")] + /// Enables kicking banned users by matching their client UUID. + [Description("Enables kicking banned users by matching their client UUID.")] public bool EnableUUIDBans = true; - /// EnableBanOnUsernames - Whether or not to kick players on join that match a banned character name. - [Description("Enables kicking of banned users by matching their Character Name.")] + /// Enables kicking banned users by matching their Character Name. + [Description("Enables kicking banned users by matching their Character Name.")] public bool EnableBanOnUsernames; - /// DefaultRegistrationGroupName - The default group name to place newly registered users under. - [Description("Selects the default group name to place new registrants under.")] + /// The default group name to place newly registered users under. + [Description("The default group name to place newly registered users under.")] public string DefaultRegistrationGroupName = "default"; - /// DefaultGuestGroupName - The default group name to place unregistered players under. - [Description("Selects the default group name to place unregistered players under.")] + /// The default group name to place unregistered players under. + [Description("The default group name to place unregistered players under.")] public string DefaultGuestGroupName = "guest"; - /// DisableSpewLogs - Whether or not to send logs as messages to players with the log permission. - [Description("Force-disable printing logs to players with the log permission.")] + /// Disables sending logs as messages to players with the log permission. + [Description("Disables sending logs as messages to players with the log permission.")] public bool DisableSpewLogs = true; - /// DisableSecondUpdateLogs - Prevents OnSecondUpdate() checks from writing to the log file. + /// Prevents OnSecondUpdate checks from writing to the log file. [Description("Prevents OnSecondUpdate checks from writing to the log file.")] public bool DisableSecondUpdateLogs = false; - /// HashAlgorithm - The hash algorithm used to encrypt user passwords. + /// The hash algorithm used to encrypt user passwords. /// Valid types: "sha512", "sha256" and "md5". Append with "-xp" for the xp supported algorithms. [Description("The hash algorithm used to encrypt user passwords. Valid types: \"sha512\", \"sha256\" and \"md5\". Append with \"-xp\" for the xp supported algorithms.")] public string HashAlgorithm = "sha512"; - /// ServerFullReason - The reason given when kicking players when the server is full. - [Description("String that is used when kicking people when the server is full.")] + /// The reason given when kicking players that attempt to join while the server is full. + [Description("The reason given when kicking players that attempt to join while the server is full.")] public string ServerFullReason = "Server is full"; - /// WhitelistKickReason - The reason given when kicking players for not being on the whitelist. - [Description("String that is used when a user is kicked due to not being on the whitelist.")] + /// The reason given when kicking players for not being on the whitelist. + [Description("The reason given when kicking players for not being on the whitelist.")] public string WhitelistKickReason = "You are not on the whitelist."; - /// ServerFullNoReservedReason - The reason given when kicking players when the server is full and there are no reserved slots open. - [Description("String that is used when kicking people when the server is full with no reserved slots.")] + /// The reason given when kicking players that attempt to join while the server is full with no reserved slots available. + [Description("The reason given when kicking players that attempt to join while the server is full with no reserved slots available.")] public string ServerFullNoReservedReason = "Server is full. No reserved slots open."; - /// SaveWorldOnCrash - Attempts to save world in the server crashes due to an unhandled exception. - [Description("This will save the world if Terraria crashes from an unhandled exception.")] + /// Whether or not to save the world if the server crashes from an unhandled exception. + [Description("Whether or not to save the world if the server crashes from an unhandled exception.")] public bool SaveWorldOnCrash = true; - /// EnableGeoIP - Whether or not to announce a player's location on join. - [Description("This will announce a player's location on join.")] + /// Whether or not to announce a player's geographic location on join, based on their IP. + [Description("Whether or not to announce a player's geographic location on join, based on their IP.")] public bool EnableGeoIP; - /// EnableTokenEndpointAuthentication - Whether or not to require token authentication for the public REST API endpoints. - [Description("This will turn on token requirement for the public REST API endpoints.")] + /// Whether or not to require token authentication to use the public REST API endpoints. + [Description("Whether or not to require token authentication to use the public REST API endpoints.")] public bool EnableTokenEndpointAuthentication; - /// RestApiEnabled - Enable/disable the REST API. - [Description("Enable/disable the REST API.")] + /// Enable or disable the REST API. + [Description("Enable or disable the REST API.")] public bool RestApiEnabled; - /// RestApiPort - The port used by the REST API. - [Description("This is the port which the REST API will listen on.")] + /// The port used by the REST API. + [Description("The port used by the REST API.")] public int RestApiPort = 7878; - /// DisableTombstones - Disable tombstone dropping during death for all players. - [Description("Disable tombstone dropping during death for all players.")] + /// Disables tombstone dropping during death for all players. + [Description("Disables tombstone dropping during death for all players.")] public bool DisableTombstones = true; - /// DisplayIPToAdmins - Displays a player's IP on join to everyone with the log permission. - [Description("Displays a player's IP on join to everyone who has the log permission.")] + /// Displays a player's IP on join to users with the log permission. + [Description("Displays a player's IP on join to users with the log permission.")] public bool DisplayIPToAdmins; - /// KickProxyUsers - If the GeoIP service is running, this will kick users under a proxy. - [Description("Kicks users using a proxy as identified with the GeoIP database.")] + /// If GeoIP is enabled, this will kick users identified as being under a proxy. + [Description("If GeoIP is enabled, this will kick users identified as being under a proxy.")] public bool KickProxyUsers = true; - /// DisableHardmode - If set to true, hardmode will not be activated by the Wall of Flesh or the /starthardmode command. - [Description("Disables hardmode, can't never be activated. Overrides /starthardmode.")] + /// If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command. + [Description("If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command.")] public bool DisableHardmode; - /// DisableDungeonGuardian - Disables the dungeon guardian from being spawned while sending players to their spawn point instead. - [Description("Disables the dungeon guardian from being spawned while sending players to their spawn point instead.")] + /// Prevents the dungeon guardian from being spawned while sending players to their spawn point instead. + [Description("Prevents the dungeon guardian from being spawned while sending players to their spawn point instead.")] public bool DisableDungeonGuardian; - /// DisableClownBombs - Disables clown bomb projectiles from spawning. + /// Disables clown bomb projectiles from spawning. [Description("Disables clown bomb projectiles from spawning.")] public bool DisableClownBombs; - /// DisableSnowBalls - Disables snow ball projectiles from spawning. + /// Disables snow ball projectiles from spawning. [Description("Disables snow ball projectiles from spawning.")] public bool DisableSnowBalls; - /// ChatFormat - Controls the in-game chat format. {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message. + /// Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message. [Description("Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message.")] public string ChatFormat = "{1}{2}{3}: {4}"; - /// ChatAboveHeadsFormat - Modifies the player name when using chat above heads. Same formatting options as ChatFormat. - [Description("Change the player name when using chat above heads. This begins with a player name wrapped in brackets, as per Terraria's formatting. Same formatting as ChatFormat(minus the text aka {4}).")] + /// Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting.\nSame formatting as ChatFormat without the message. + [Description("Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting.\nSame formatting as ChatFormat without the message.")] public string ChatAboveHeadsFormat = "{2}"; - /// ForceTime - Can be either "normal", "day" or "night". When set to one of the latter two, the blocks other. - [Description("Force the world time to be normal, day, or night.")] + /// Forces the world time to be normal, day, or night. + [Description("Forces the world time to be normal, day, or night.")] public string ForceTime = "normal"; - /// TileKillThreshold - Disables/reverts a player if this number of tile kills is exceeded within 1 second. - [Description("Disables/reverts a player if this number of tile kills is exceeded within 1 second.")] + /// Disables a player and reverts their actions if this number of tile kills is exceeded within 1 second. + [Description("Disables a player and reverts their actions if this number of tile kills is exceeded within 1 second.")] public int TileKillThreshold = 60; - /// TilePlaceThreshold - Disables/reverts a player if this number of tile placements is exceeded within 1 second. - [Description("Disables/reverts a player if this number of tile places is exceeded within 1 second.")] + /// Disables a player and reverts their actions if this number of tile places is exceeded within 1 second. + [Description("Disables a player and reverts their actions if this number of tile places is exceeded within 1 second.")] public int TilePlaceThreshold = 20; - /// TileLiquidThreshold - Disables a player if this number of liquid sets is exceeded within 1 second. + /// Disables a player if this number of liquid sets is exceeded within 1 second. [Description("Disables a player if this number of liquid sets is exceeded within 1 second.")] public int TileLiquidThreshold = 15; - /// ProjectileThreshold - Disables a player if this number of projectiles is created within 1 second. + /// Disable a player if this number of projectiles is created within 1 second. [Description("Disable a player if this number of projectiles is created within 1 second.")] public int ProjectileThreshold = 50; - /// HealOtherThreshold - Disables a player if this number of HealOtherPlayer packets is sent within 1 second. + /// Disables a player if this number of HealOtherPlayer packets is sent within 1 second. [Description("Disables a player if this number of HealOtherPlayer packets is sent within 1 second.")] public int HealOtherThreshold = 50; - /// ProjIgnoreShrapnel - Whether or not to ignore shrapnel from crystal bullets for the projectile threshold count. - [Description("Ignore shrapnel from crystal bullets for projectile threshold.")] + /// Whether or not to ignore shrapnel from crystal bullets for the projectile threshold count. + [Description("Whether or not to ignore shrapnel from crystal bullets for the projectile threshold count.")] public bool ProjIgnoreShrapnel = true; - /// RequireLogin - Requires all players to register or login before being allowed to play. - [Description("Requires all players to register or login before being allowed to play.")] + /// Require all players to register or login before being allowed to play. + [Description("Require all players to register or login before being allowed to play.")] public bool RequireLogin; - /// DisableInvisPvP - Whether or not to turn a player invisible if using invisibility potions during PvP. - [Description("Disables invisibility potions from being used in PvP (Note, can be used in the client, but the effect isn't sent to the rest of the server).")] + /// Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients. + [Description("Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients.")] public bool DisableInvisPvP; - /// MaxRangeForDisabled - The maximum distance, in tiles, that disabled players can move from. - [Description("The maximum distance players disabled for various reasons can move from.")] + /// The maximum distance, in tiles, that disabled players can move from. + [Description("The maximum distance, in tiles, that disabled players can move from.")] public int MaxRangeForDisabled = 10; - /// ServerPassword - The server password required to join the server. - [Description("Server password required to join the server.")] + /// The server password required to join the server. + [Description("The server password required to join the server.")] public string ServerPassword = ""; - /// RegionProtectChests - Whether or not region protection should apply to chests. - [Description("Protect chests with region and build permissions.")] + /// Whether or not region protection should apply to chests. + [Description("Whether or not region protection should apply to chests.")] public bool RegionProtectChests; - /// RegionProtectGemLocks - Whether or not region protection should apply to gem locks. - [Description("Protect gem locks with region and build permissions.")] + /// Whether or not region protection should apply to gem locks. + [Description("Whether or not region protection should apply to gem locks.")] public bool RegionProtectGemLocks = true; - /// DisableLoginBeforeJoin - This will prevent users from being able to login before connecting. - [Description("Disable users from being able to login with account password when joining.")] + /// Prevents users from being able to login before they finish connecting. + [Description("Prevents users from being able to login before they finish connecting.")] public bool DisableLoginBeforeJoin; - /// DisableUUIDLogin - This will disable automatic login through a saved client UUID. - [Description("Disable users from being able to login with their client UUID.")] + /// Prevents users from being able to login with their client UUID. + [Description("Prevents users from being able to login with their client UUID.")] public bool DisableUUIDLogin; - /// KickEmptyUUID - Kick clients that don't send a UUID to the server. - [Description("Kick clients that don't send a UUID to the server.")] + /// Kick clients that don't send their UUID to the server. + [Description("Kick clients that don't send their UUID to the server.")] public bool KickEmptyUUID; - /// AllowRegisterAnyUsername - Allows users to register a username that doesn't necessarily match their character name. - [Description("Allows users to register any username with /register.")] + /// Allows users to register a username that doesn't necessarily match their character name. + [Description("Allows users to register a username that doesn't necessarily match their character name.")] public bool AllowRegisterAnyUsername; - /// AllowLoginAnyUsername - Allows users to login to any account even if the username doesn't match their character name. - [Description("Allows users to login with any username with /login.")] + /// Allows users to login to any account even if the username doesn't match their character name. + [Description("Allows users to login to any account even if the username doesn't match their character name.")] public bool AllowLoginAnyUsername = true; /// The maximum damage a player/NPC can inflict. - [Description("The maximum damage a player/npc can inflict.")] + [Description("The maximum damage a player/NPC can inflict.")] public int MaxDamage = 1175; /// The maximum damage a projectile can inflict. [Description("The maximum damage a projectile can inflict.")] public int MaxProjDamage = 1175; - /// KickOnDamageThresholdBroken - Whether or not to kick users when they surpass the MaxDamage threshold. - [Description("Kicks a user if set to true, if they inflict more damage then the max damage.")] + /// Whether or not to kick users when they surpass the MaxDamage threshold. + [Description("Whether or not to kick users when they surpass the MaxDamage threshold.")] public bool KickOnDamageThresholdBroken = false; - /// IgnoreProjUpdate - Ignores checking to see if player 'can' update a projectile. - [Description("Ignores checking to see if player 'can' update a projectile.")] + /// Ignores checks to see if a player 'can' update a projectile. + [Description("Ignores checks to see if a player 'can' update a projectile.")] public bool IgnoreProjUpdate = false; - /// IgnoreProjKill - Ignores checking to see if player 'can' kill a projectile. - [Description("Ignores checking to see if player 'can' kill a projectile.")] + /// Ignores checks to see if a player 'can' kill a projectile. + [Description("Ignores checks to see if a player 'can' kill a projectile.")] public bool IgnoreProjKill = false; - /// AlllowIce - Allows ice placement even where a user cannot usually build. - [Description("Allow ice placement even when user does not have canbuild.")] + /// Allows ice placement even where a user cannot usually build. + [Description("Allows ice placement even where a user cannot usually build.")] public bool AllowIce = false; - /// AllowCrimsonCreep - Enables or disables crimson to spread when a world is in hardmode. - [Description("Allows crimson to spread when a world is hardmode.")] + /// Allows the crimson to spread when a world is in hardmode. + [Description("Allows the crimson to spread when a world is in hardmode.")] public bool AllowCrimsonCreep = true; - /// AllowCorruptionCreep - Enables or disables corruption to spread when a world is in hardmode. - [Description("Allows corruption to spread when a world is hardmode.")] + /// Allows the corruption to spread when a world is in hardmode. + [Description("Allows the corruption to spread when a world is in hardmode.")] public bool AllowCorruptionCreep = true; - /// AllowHallowCreep - Enables or disables hallow to spread when a world is in hardmode. - [Description("Allows hallow to spread when a world is hardmode.")] + /// Allows the hallow to spread when a world is in hardmode. + [Description("Allows the hallow to spread when a world is in hardmode.")] public bool AllowHallowCreep = true; - /// StatueSpawn200 - How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning. - [Description("How many things a statue can spawn within 200 pixels(?) before it stops spawning. Default = 3.")] + /// How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning. + [Description("How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning.\nDefault = 3.")] public int StatueSpawn200 = 3; - /// StatueSpawn600 - How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning. - [Description("How many things a statue can spawn within 600 pixels(?) before it stops spawning. Default = 6.")] + /// How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning. + [Description("How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning.\nDefault = 6.")] public int StatueSpawn600 = 6; - /// StatueSpawnWorld - How many NPCs a statue can spawn before it stops spawning. - [Description("How many things a statue can spawn before it stops spawning. Default = 10.")] + /// How many NPCs a statue can spawn before it stops spawning. + [Description("How many NPCs a statue can spawn before it stops spawning.\nDefault = 10.")] public int StatueSpawnWorld = 10; - /// PreventBannedItemSpawn - Prevents banned items from being spawned with commands. - [Description("Prevent banned items from being /i or /give.")] + /// Prevent banned items from being spawned or given with commands. + [Description("Prevent banned items from being spawned or given with commands.")] public bool PreventBannedItemSpawn = false; - /// PreventDeadModification - Prevent players from interacting with the world if dead. - [Description("Prevent players from interacting with the world if dead.")] + /// Prevent players from interacting with the world while they are dead. + [Description("Prevent players from interacting with the world while they are dead.")] public bool PreventDeadModification = true; - /// EnableChatAboveHeads - Whether or not to display chat messages above players' heads. - [Description("Displays chat messages above players' heads, but will disable chat prefixes to compensate.")] + /// Whether or not to display chat messages above players' heads. + [Description("Whether or not to display chat messages above players' heads.")] public bool EnableChatAboveHeads = false; - /// ForceXmas - Force Christmas-only events to occur all year. - [Description("Force Christmas-only events to occur all year.")] + /// Forces Christmas-only events to occur all year. + [Description("Forces Christmas-only events to occur all year.")] public bool ForceXmas = false; - /// AllowAllowedGroupsToSpawnBannedItems - Allows groups on the banned item allowed list to spawn banned items even if is set to true. - [Description("Allows groups on the banned item allowed list to spawn banned items.")] + /// Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true. + [Description("Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true.")] public bool AllowAllowedGroupsToSpawnBannedItems = false; - /// IgnoreChestStacksOnLoad - Allows stacks in chests to be beyond the stack limit during world load. - [Description("Allows stacks in chests to be beyond the stack limit.")] + /// Allows stacks in chests to go beyond the stack limit during world loading. + [Description("Allows stacks in chests to go beyond the stack limit during world loading.")] public bool IgnoreChestStacksOnLoad = false; - /// LogPath - The path of the directory where logs should be written to. - [Description("The path of the directory where logs should be written into.")] + /// The path to the directory where logs should be written to. + [Description("The path to the directory where logs should be written to.")] public string LogPath = "tshock"; - /// UseSqlLogs - Whether or not to save logs to a SQL database instead of a text file. - [Description("Save logs to an SQL database instead of a text file. Default = false.")] + /// Whether or not to save logs to the SQL database instead of a text file. + [Description("Whether or not to save logs to the SQL database instead of a text file.\nDefault = false.")] public bool UseSqlLogs = false; - /// RevertToTextLogsOnSqlFailures - Number of times the SQL log must fail to insert logs before falling back to the text log. + /// Number of times the SQL log must fail to insert logs before falling back to the text log. [Description("Number of times the SQL log must fail to insert logs before falling back to the text log.")] public int RevertToTextLogsOnSqlFailures = 10; - /// PreventInvalidPlaceStyle - Prevents players from placing tiles with an invalid style. + /// Prevents players from placing tiles with an invalid style. [Description("Prevents players from placing tiles with an invalid style.")] public bool PreventInvalidPlaceStyle = true; - /// BroadCastRGB - The RGB values used for the color of broadcast messages. - [Description("#.#.# = Red/Blue/Green - RGB Colors for broadcasts. Max value: 255.")] + /// The RGB values used for the color of broadcast messages. + [Description("The RGB values used for the color of broadcast messages.\n#.#.# = Red/Blue/Green\nMax value: 255")] public int[] BroadcastRGB = { 127, 255, 212 }; - /// ApplicationRestTokens - A dictionary of REST tokens that external applications may use to make queries to your server. + /// A dictionary of REST tokens that external applications may use to make queries to your server. [Description("A dictionary of REST tokens that external applications may use to make queries to your server.")] public Dictionary ApplicationRestTokens = new Dictionary(); - /// ReservedSlots - The number of reserved slots past your max server slot that can be joined by reserved players. - [Description("The number of reserved slots past your max server slot that can be joined by reserved players.")] + /// The number of reserved slots past your max server slots that can be joined by reserved players. + [Description("The number of reserved slots past your max server slots that can be joined by reserved players.")] public int ReservedSlots = 20; - /// LogRest - Whether or not to log REST API connections. - [Description("Enable/disable the REST API connection log.")] + /// Whether or not to log REST API connections. + [Description("Whether or not to log REST API connections.")] public bool LogRest = false; - /// RespawnSeconds - The number of seconds a player must wait before being respawned. + /// The number of seconds a player must wait before being respawned. [Description("The number of seconds a player must wait before being respawned.")] public int RespawnSeconds = 5; - /// RespawnBossSeconds - "The number of seconds a player must wait before being respawned if there is a boss nearby. + /// The number of seconds a player must wait before being respawned if there is a boss nearby. [Description("The number of seconds a player must wait before being respawned if there is a boss nearby.")] public int RespawnBossSeconds = 10; - /// TilePaintThreshold - Disables a player if this number of tiles is painted within 1 second. + /// Disables a player if this number of tiles is painted within 1 second. [Description("Disables a player if this number of tiles is painted within 1 second.")] public int TilePaintThreshold = 15; - /// ForceHalloween - Forces Halloween-only events to occur all year. - [Description("Forces your world to be in Halloween mode regardless of the data.")] + /// Forces Halloween-only events to occur all year. + [Description("Forces Halloween-only events to occur all year.")] public bool ForceHalloween = false; - /// AllowCutTilesAndBreakables - Allows players to break temporary tiles (grass, pots, etc) even if they cannot typically build in a region. - [Description("Allows anyone to break grass, pots, etc.")] + /// Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build. + [Description("Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build.")] public bool AllowCutTilesAndBreakables = false; - /// CommandSpecifier - Specifies which string starts a command. + /// Specifies which string starts a command. /// Note: Will not function properly if the string length is bigger than 1. - [Description("Specifies which string starts a command.")] + [Description("Specifies which string starts a command.\nNote: Will not function properly if the string length is bigger than 1.")] public string CommandSpecifier = "/"; - /// CommandSilentSpecifier - Specifies which string starts a command silently. + /// Specifies which string starts a command silently. /// Note: Will not function properly if the string length is bigger than 1. - [Description("Specifies which string starts a command silently.")] + [Description("Specifies which string starts a command silently.\nNote: Will not function properly if the string length is bigger than 1.")] public string CommandSilentSpecifier = "."; - /// KickOnHardcoreDeath - Whether or not to kick a hardcore player on death. - [Description("Kicks a hardcore player on death.")] + /// Whether or not to kick hardcore players on death. + [Description("Whether or not to kick hardcore players on death.")] public bool KickOnHardcoreDeath; - /// BanOnHardcoreDeath - Whether or not to ban a hardcore player on death. - [Description("Bans a hardcore player on death.")] + /// Whether or not to ban hardcore players on death. + [Description("Whether or not to ban hardcore players on death.")] public bool BanOnHardcoreDeath; - /// HardcoreBanReason - The reason given when banning a hardcore player on death. - [Description("Bans a hardcore player on death.")] + /// The reason given when banning hardcore players on death. + [Description("The reason given when banning hardcore players on death.")] public string HardcoreBanReason = "Death results in a ban"; - /// HardcoreKickReason - The reason given when kicking a hardcore player on death. - [Description("Kicks a hardcore player on death.")] + /// The reason given when kicking hardcore players on death. + [Description("The reason given when kicking hardcore players on death.")] public string HardcoreKickReason = "Death results in a kick"; - /// AnonymousBossInvasions - Whether or not to announce boss spawning or invasion starts. - [Description("Whether bosses or invasions should be anonymously spawned.")] + /// Whether or not to announce boss spawning or invasion starts. + [Description("Whether or not to announce boss spawning or invasion starts.")] public bool AnonymousBossInvasions = true; - /// MaxHP - The maximum allowable HP, before equipment buffs. - [Description("The maximum allowable HP, before equipment buffs.")] + /// The maximum HP a player can have, before equipment buffs. + [Description("The maximum HP a player can have, before equipment buffs.")] public int MaxHP = 500; - /// MaxMP - The maximum allowable MP, before equipment buffs. - [Description("The maximum allowable MP, before equipment buffs.")] + /// The maximum MP a player can have, before equipment buffs. + [Description("The maximum MP a player can have, before equipment buffs.")] public int MaxMP = 200; - /// SaveWorldOnLastPlayerExit - Whether or not to save the world when the last player disconnects. - [Description("Determines if the server should save the world if the last player exits.")] + /// Whether or not to save the world when the last player disconnects. + [Description("Whether or not to save the world when the last player disconnects.")] public bool SaveWorldOnLastPlayerExit = true; - /// BCryptWorkFactor - Determines the BCrypt work factor to use. If increased, all passwords will be upgraded to new work-factor on verify. + /// Determines the BCrypt work factor to use. If increased, all passwords will be upgraded to new work-factor on verify. /// The number of computational rounds is 2^n. Increase with caution. Range: 5-31. [Description("Determines the BCrypt work factor to use. If increased, all passwords will be upgraded to new work-factor on verify. The number of computational rounds is 2^n. Increase with caution. Range: 5-31.")] public int BCryptWorkFactor = 7; - /// MinimumPasswordLength - The minimum password length for new user accounts. - [Description("The minimum password length for new user accounts. Minimum value is 4.")] + /// The minimum password length for new user accounts. Can never be lower than 4. + [Description("The minimum password length for new user accounts. Can never be lower than 4.")] public int MinimumPasswordLength = 4; - /// RESTMaximumRequestsPerInterval - The maximum REST requests in the bucket before denying requests. + /// The maximum REST requests in the bucket before denying requests. Minimum value is 5. [Description("The maximum REST requests in the bucket before denying requests. Minimum value is 5.")] public int RESTMaximumRequestsPerInterval = 5; - /// RESTRequestBucketDecreaseIntervalMinutes - How often in minutes the REST requests bucket is decreased by one. + /// How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute. [Description("How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute.")] public int RESTRequestBucketDecreaseIntervalMinutes = 1; - /// ShowBackupAutosaveMessages - Whether or not to show backup auto save messages. - [Description("Show backup autosave messages.")] + /// Whether or not to show backup auto save messages. + [Description("Whether or not to show backup auto save messages.")] public bool ShowBackupAutosaveMessages = true; /// @@ -613,4 +613,4 @@ namespace TShockAPI File.WriteAllText("ConfigDescriptions.txt", sb.ToString()); } } -} \ No newline at end of file +}