diff --git a/docs/_sidebar.md b/docs/_sidebar.md index d2c292e7..68fc93f2 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -3,3 +3,8 @@ * [Command line parameters](/command-line-parameters.md) * [Tile providers](/tile-providers.md) * [Message of the day](/motd.md) + +* Field definitions + * [Permissions](/permission-descriptions.md) + * [config.json fields](/config-file-descriptions.md) + * [sscconfig.json fields](/ssc-config.md) diff --git a/docs/config-file-descriptions.md b/docs/config-file-descriptions.md new file mode 100644 index 00000000..7cbee17d --- /dev/null +++ b/docs/config-file-descriptions.md @@ -0,0 +1,685 @@ +## AllowAllowedGroupsToSpawnBannedItems +Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true. +* **Field type**: `Boolean` +* **Default**: `False` + +## AllowCorruptionCreep +Allows the corruption to spread when a world is in hardmode. +* **Field type**: `Boolean` +* **Default**: `True` + +## AllowCrimsonCreep +Allows the crimson to spread when a world is in hardmode. +* **Field type**: `Boolean` +* **Default**: `True` + +## AllowCutTilesAndBreakables +Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build. +* **Field type**: `Boolean` +* **Default**: `False` + +## AllowHallowCreep +Allows the hallow to spread when a world is in hardmode. +* **Field type**: `Boolean` +* **Default**: `True` + +## AllowIce +Allows ice placement even where a user cannot usually build. +* **Field type**: `Boolean` +* **Default**: `False` + +## AllowLoginAnyUsername +Allows users to login to any account even if the username doesn't match their character name. +* **Field type**: `Boolean` +* **Default**: `True` + +## AllowRegisterAnyUsername +Allows users to register a username that doesn't necessarily match their character name. +* **Field type**: `Boolean` +* **Default**: `False` + +## AnnounceSave +Enable or disable world save announcements. +* **Field type**: `Boolean` +* **Default**: `True` + +## AnonymousBossInvasions +Whether or not to announce boss spawning or invasion starts. +* **Field type**: `Boolean` +* **Default**: `True` + +## ApplicationRestTokens +A dictionary of REST tokens that external applications may use to make queries to your server. +* **Field type**: `Dictionary`2` +* **Default**: `System.Collections.Generic.Dictionary`2[System.String,Rests.SecureRest+TokenData]` + +## AutoSave +Enable or disable Terraria's built-in world auto save. +* **Field type**: `Boolean` +* **Default**: `True` + +## BackupInterval +The interval between backups, in minutes. Backups are stored in the tshock/backups folder. +* **Field type**: `Int32` +* **Default**: `10` + +## BackupKeepFor +For how long backups are kept in minutes. +eg. 2880 = 2 days. +* **Field type**: `Int32` +* **Default**: `240` + +## BanOnHardcoreDeath +Whether or not to ban hardcore players on death. +* **Field type**: `Boolean` +* **Default**: `False` + +## BanOnMediumcoreDeath +Whether or not to ban mediumcore players on death. +* **Field type**: `Boolean` +* **Default**: `False` + +## BCryptWorkFactor +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. +* **Field type**: `Int32` +* **Default**: `7` + +## BombExplosionRadius +Determines the range in tiles that a bomb can affect tiles from detonation point. +* **Field type**: `Int32` +* **Default**: `5` + +## BroadcastRGB +The RGB values used for the color of broadcast messages. +#.#.# = Red/Blue/Green +Max value: 255 +* **Field type**: `Int32[]` +* **Default**: `System.Int32[]` + +## ChatAboveHeadsFormat +Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting. +Same formatting as ChatFormat without the message. +* **Field type**: `String` +* **Default**: `{2}` + +## ChatFormat +Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message. +* **Field type**: `String` +* **Default**: `{1}{2}{3}: {4}` + +## CommandSilentSpecifier +Specifies which string starts a command silently. +Note: Will not function properly if the string length is bigger than 1. +* **Field type**: `String` +* **Default**: `.` + +## CommandSpecifier +Specifies which string starts a command. +Note: Will not function properly if the string length is bigger than 1. +* **Field type**: `String` +* **Default**: `/` + +## DebugLogs +Whether or not the server should output debug level messages related to system operation. +* **Field type**: `Boolean` +* **Default**: `False` + +## DefaultGuestGroupName +The default group name to place unregistered players under. +* **Field type**: `String` +* **Default**: `guest` + +## DefaultMaximumSpawns +The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave. +* **Field type**: `Int32` +* **Default**: `5` + +## DefaultRegistrationGroupName +The default group name to place newly registered users under. +* **Field type**: `String` +* **Default**: `default` + +## DefaultSpawnRate +The delay between waves. Lower values lead to more mobs. +* **Field type**: `Int32` +* **Default**: `600` + +## DisableBuild +Disables any placing, or removal of blocks. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableClownBombs +Disables clown bomb projectiles from spawning. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableCustomDeathMessages +Allows you to disable or enable protection against creating custom messages with death. Created for developers who came up with a more original solution to this problem. +* **Field type**: `Boolean` +* **Default**: `True` + +## DisableDefaultIPBan +Disbales IP bans by default, if no arguments are passed to the ban command. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableDungeonGuardian +Prevents the dungeon guardian from being spawned while sending players to their spawn point instead. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableHardmode +If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableInvisPvP +Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableLoginBeforeJoin +Prevents users from being able to login before they finish connecting. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableModifiedZenith +Prohibit the use of Zenith projectile with different objects instead of weapons. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisablePrimeBombs +Disables Skeletron Prime Bombs from spawning, useful for preventing unwanted world destruction on for the worthy seed world. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableSecondUpdateLogs +Prevents OnSecondUpdate checks from writing to the log file. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableSnowBalls +Disables snow ball projectiles from spawning. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisableSpewLogs +Disables sending logs as messages to players with the log permission. +* **Field type**: `Boolean` +* **Default**: `True` + +## DisableTombstones +Disables tombstone dropping during death for all players. +* **Field type**: `Boolean` +* **Default**: `True` + +## DisableUUIDLogin +Prevents users from being able to login with their client UUID. +* **Field type**: `Boolean` +* **Default**: `False` + +## DisplayIPToAdmins +Displays a player's IP on join to users with the log permission. +* **Field type**: `Boolean` +* **Default**: `False` + +## EnableChatAboveHeads +Whether or not to display chat messages above players' heads. +* **Field type**: `Boolean` +* **Default**: `False` + +## EnableGeoIP +Whether or not to announce a player's geographic location on join, based on their IP. +* **Field type**: `Boolean` +* **Default**: `False` + +## EnableTokenEndpointAuthentication +Whether or not to require token authentication to use the public REST API endpoints. +* **Field type**: `Boolean` +* **Default**: `False` + +## EnableWhitelist +Enable or disable the whitelist based on IP addresses in the whitelist.txt file. +* **Field type**: `Boolean` +* **Default**: `False` + +## ForceHalloween +Forces Halloween-only events to occur all year. +* **Field type**: `Boolean` +* **Default**: `False` + +## ForceTime +Forces the world time to be normal, day, or night. +* **Field type**: `String` +* **Default**: `normal` + +## ForceXmas +Forces Christmas-only events to occur all year. +* **Field type**: `Boolean` +* **Default**: `False` + +## HardcoreBanReason +The reason given when banning hardcore players on death. +* **Field type**: `String` +* **Default**: `Death results in a ban` + +## HardcoreKickReason +The reason given when kicking hardcore players on death. +* **Field type**: `String` +* **Default**: `Death results in a kick` + +## HardcoreOnly +Prevents non-hardcore players from connecting. +* **Field type**: `Boolean` +* **Default**: `False` + +## HealOtherThreshold +Disables a player if this number of HealOtherPlayer packets is sent within 1 second. +* **Field type**: `Int32` +* **Default**: `50` + +## IgnoreChestStacksOnLoad +Allows stacks in chests to go beyond the stack limit during world loading. +* **Field type**: `Boolean` +* **Default**: `False` + +## IgnoreProjKill +Ignores checks to see if a player 'can' kill a projectile. +* **Field type**: `Boolean` +* **Default**: `False` + +## IgnoreProjUpdate +Ignores checks to see if a player 'can' update a projectile. +* **Field type**: `Boolean` +* **Default**: `False` + +## InfiniteInvasion +Enables never ending invasion events. You still need to start the event, such as with the /invade command. +* **Field type**: `Boolean` +* **Default**: `False` + +## InvasionMultiplier +Determines the size of invasion events. +The equation for calculating invasion size is 100 + (multiplier * (number of active players with greater than 200 health)). +* **Field type**: `Int32` +* **Default**: `1` + +## KickEmptyUUID +Kick clients that don't send their UUID to the server. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnDamageThresholdBroken +Whether or not to kick users when they surpass the MaxDamage threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnHardcoreDeath +Whether or not to kick hardcore players on death. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnHealOtherThresholdBroken +Whether or not to kick users when they surpass the HealOther threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnMediumcoreDeath +Whether or not to kick mediumcore players on death. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnProjectileThresholdBroken +Whether or not to kick users when they surpass the Projectile threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnTileKillThresholdBroken +Whether or not to kick users when they surpass the TileKill threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnTileLiquidThresholdBroken +Whether or not to kick users when they surpass the TileLiquid threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnTilePaintThresholdBroken +Whether or not to kick users when they surpass the TilePaint threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickOnTilePlaceThresholdBroken +Whether or not to kick users when they surpass the TilePlace threshold. +* **Field type**: `Boolean` +* **Default**: `False` + +## KickProxyUsers +If GeoIP is enabled, this will kick users identified as being under a proxy. +* **Field type**: `Boolean` +* **Default**: `True` + +## LogPath +The path to the directory where logs should be written to. +* **Field type**: `String` +* **Default**: `tshock/logs` + +## LogRest +Whether or not to log REST API connections. +* **Field type**: `Boolean` +* **Default**: `False` + +## MaxDamage +The maximum damage a player/NPC can inflict. +* **Field type**: `Int32` +* **Default**: `1175` + +## MaxHP +The maximum HP a player can have, before equipment buffs. +* **Field type**: `Int32` +* **Default**: `500` + +## MaximumLoginAttempts +Number of failed login attempts before kicking the player. +* **Field type**: `Int32` +* **Default**: `3` + +## MaxMP +The maximum MP a player can have, before equipment buffs. +* **Field type**: `Int32` +* **Default**: `200` + +## MaxProjDamage +The maximum damage a projectile can inflict. +* **Field type**: `Int32` +* **Default**: `1175` + +## MaxRangeForDisabled +The maximum distance, in tiles, that disabled players can move from. +* **Field type**: `Int32` +* **Default**: `10` + +## MaxSlots +Maximum number of clients connected at once. +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. +* **Field type**: `Int32` +* **Default**: `8` + +## MediumcoreBanReason +The reason given if banning a mediumcore player on death. +* **Field type**: `String` +* **Default**: `Death results in a ban` + +## MediumcoreKickReason +The reason given if kicking a mediumcore players on death. +* **Field type**: `String` +* **Default**: `Death results in a kick` + +## MediumcoreOnly +Prevents softcore players from connecting. +* **Field type**: `Boolean` +* **Default**: `False` + +## MinimumPasswordLength +The minimum password length for new user accounts. Can never be lower than 4. +* **Field type**: `Int32` +* **Default**: `4` + +## MySqlDbName +The database name to connect to when using MySQL as the database type. +* **Field type**: `String` +* **Default**: `` + +## MySqlHost +The MySQL hostname and port to direct connections to. +* **Field type**: `String` +* **Default**: `localhost:3306` + +## MySqlPassword +The password used when connecting to a MySQL database. +* **Field type**: `String` +* **Default**: `` + +## MySqlUsername +The username used when connecting to a MySQL database. +* **Field type**: `String` +* **Default**: `` + +## PreventBannedItemSpawn +Prevent banned items from being spawned or given with commands. +* **Field type**: `Boolean` +* **Default**: `False` + +## PreventDeadModification +Prevent players from interacting with the world while they are dead. +* **Field type**: `Boolean` +* **Default**: `True` + +## PreventInvalidPlaceStyle +Prevents players from placing tiles with an invalid style. +* **Field type**: `Boolean` +* **Default**: `True` + +## ProjectileThreshold +Disable a player if this number of projectiles is created within 1 second. +* **Field type**: `Int32` +* **Default**: `50` + +## ProjIgnoreShrapnel +Whether or not to ignore shrapnel from crystal bullets for the projectile threshold count. +* **Field type**: `Boolean` +* **Default**: `True` + +## PvPMode +Sets the PvP mode. Valid types are: "normal", "always" and "disabled". +* **Field type**: `String` +* **Default**: `normal` + +## RangeChecks +Enable or disable anti-cheat range checks based on distance between the player and their block placements. +* **Field type**: `Boolean` +* **Default**: `True` + +## RegionProtectChests +Whether or not region protection should apply to chests. +* **Field type**: `Boolean` +* **Default**: `False` + +## RegionProtectGemLocks +Whether or not region protection should apply to gem locks. +* **Field type**: `Boolean` +* **Default**: `True` + +## RememberLeavePos +Remembers where a player left off, based on their IP. Does not persist through server restarts. +eg. When you try to disconnect, and reconnect to be automatically placed at spawn, you'll be at your last location. +* **Field type**: `Boolean` +* **Default**: `False` + +## RequireLogin +Require all players to register or login before being allowed to play. +* **Field type**: `Boolean` +* **Default**: `False` + +## ReservedSlots +The number of reserved slots past your max server slots that can be joined by reserved players. +* **Field type**: `Int32` +* **Default**: `20` + +## RespawnBossSeconds +The number of seconds a player must wait before being respawned if there is a boss nearby. Valid range: 0 (default) to 30 seconds. Use at your own risk. +* **Field type**: `Int32` +* **Default**: `0` + +## RespawnSeconds +The number of seconds a player must wait before being respawned. Valid range: 0 (default) to 15 seconds. Use at your own risk. +* **Field type**: `Int32` +* **Default**: `0` + +## RestApiEnabled +Enable or disable the REST API. +* **Field type**: `Boolean` +* **Default**: `False` + +## RestApiPort +The port used by the REST API. +* **Field type**: `Int32` +* **Default**: `7878` + +## RESTMaximumRequestsPerInterval +The maximum REST requests in the bucket before denying requests. Minimum value is 5. +* **Field type**: `Int32` +* **Default**: `5` + +## RESTRequestBucketDecreaseIntervalMinutes +How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute. +* **Field type**: `Int32` +* **Default**: `1` + +## RevertToTextLogsOnSqlFailures +Number of times the SQL log must fail to insert logs before falling back to the text log. +* **Field type**: `Int32` +* **Default**: `10` + +## SaveWorldOnCrash +Whether or not to save the world if the server crashes from an unhandled exception. +* **Field type**: `Boolean` +* **Default**: `True` + +## SaveWorldOnLastPlayerExit +Whether or not to save the world when the last player disconnects. +* **Field type**: `Boolean` +* **Default**: `True` + +## ServerFullNoReservedReason +The reason given when kicking players that attempt to join while the server is full with no reserved slots available. +* **Field type**: `String` +* **Default**: `Server is full. No reserved slots open.` + +## ServerFullReason +The reason given when kicking players that attempt to join while the server is full. +* **Field type**: `String` +* **Default**: `Server is full` + +## ServerName +Replaces the world name during a session if UseServerName is true. +* **Field type**: `String` +* **Default**: `` + +## ServerPassword +The server password required to join the server. +* **Field type**: `String` +* **Default**: `` + +## ServerPort +The port the server runs on. +* **Field type**: `Int32` +* **Default**: `7777` + +## ShowBackupAutosaveMessages +Whether or not to show backup auto save messages. +* **Field type**: `Boolean` +* **Default**: `True` + +## SoftcoreOnly +Prevents non-softcore players from connecting. +* **Field type**: `Boolean` +* **Default**: `False` + +## SpawnProtection +Prevents tiles from being placed within SpawnProtectionRadius of the default spawn. +* **Field type**: `Boolean` +* **Default**: `True` + +## SpawnProtectionRadius +The tile radius around the spawn tile that is protected by the SpawnProtection setting. +* **Field type**: `Int32` +* **Default**: `10` + +## SqliteDBPath +The path of sqlite db. +* **Field type**: `String` +* **Default**: `tshock.sqlite` + +## StatueSpawn200 +How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning. +Default = 3. +* **Field type**: `Int32` +* **Default**: `3` + +## StatueSpawn600 +How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning. +Default = 6. +* **Field type**: `Int32` +* **Default**: `6` + +## StatueSpawnWorld +How many NPCs a statue can spawn before it stops spawning. +Default = 10. +* **Field type**: `Int32` +* **Default**: `10` + +## StorageType +The type of database to use when storing data (either "sqlite" or "mysql"). +* **Field type**: `String` +* **Default**: `sqlite` + +## SuperAdminChatPrefix +The superadmin chat prefix. +* **Field type**: `String` +* **Default**: `(Super Admin) ` + +## SuperAdminChatRGB +The chat color for the superadmin group. +#.#.# = Red/Blue/Green +Max value: 255 +* **Field type**: `Int32[]` +* **Default**: `System.Int32[]` + +## SuperAdminChatSuffix +The superadmin chat suffix. +* **Field type**: `String` +* **Default**: `` + +## SuppressPermissionFailureNotices +Whether or not the server should suppress build permission failure warnings from regions, spawn point, or server edit failure. +* **Field type**: `Boolean` +* **Default**: `False` + +## TileKillThreshold +Disables a player and reverts their actions if this number of tile kills is exceeded within 1 second. +* **Field type**: `Int32` +* **Default**: `60` + +## TileLiquidThreshold +Disables a player if this number of liquid sets is exceeded within 1 second. +* **Field type**: `Int32` +* **Default**: `50` + +## TilePaintThreshold +Disables a player if this number of tiles is painted within 1 second. +* **Field type**: `Int32` +* **Default**: `15` + +## TilePlaceThreshold +Disables a player and reverts their actions if this number of tile places is exceeded within 1 second. +* **Field type**: `Int32` +* **Default**: `32` + +## UseServerName +Whether or not to use ServerName in place of the world name. +* **Field type**: `Boolean` +* **Default**: `False` + +## UseSqlLogs +Whether or not to save logs to the SQL database instead of a text file. +Default = false. +* **Field type**: `Boolean` +* **Default**: `False` + +## WhitelistKickReason +The reason given when kicking players for not being on the whitelist. +* **Field type**: `String` +* **Default**: `You are not on the whitelist.` + diff --git a/docs/permission-descriptions.md b/docs/permission-descriptions.md new file mode 100644 index 00000000..ff11f678 --- /dev/null +++ b/docs/permission-descriptions.md @@ -0,0 +1,596 @@ +## tshock.accountinfo.details +Player can see advanced information about any user account. +* **Commands**: `None` + +## tshock.ignore.sendtilesquare +Allow unrestricted SendTileSquare usage, for client side world editing. +* **Commands**: `None` + +## tshock.ignore.dropbanneditem +Allow dropping banned items without the item being eaten. +* **Commands**: `None` + +## tshock.annoy +User can annoy others. +* **Commands**: `/annoy, /rocket, /firework` + +## tshock.admin.antibuild +User can set build protection status. +* **Commands**: `/antibuild` + +## tshock.admin.ban +User can ban others. +* **Commands**: `/ban` + +## tshock.world.time.bloodmoon +User can force a blood moon. +* **Commands**: `None` + +## tshock.admin.broadcast +User can broadcast messages. +* **Commands**: `/broadcast (/bc /say)` + +## tshock.buff.self +User can buff self. +* **Commands**: `/buff` + +## tshock.buff.others +User can buff other players. +* **Commands**: `/gbuff (/buffplayer)` + +## tshock.npc.butcher +User can kill all enemy npcs. +* **Commands**: `/butcher` + +## tshock.ignore.ssc +Bypass server side character checks. +* **Commands**: `None` + +## tshock.world.modify +User can modify the world. +* **Commands**: `None` + +## tshock.account.changepassword +User can change password in game. +* **Commands**: `/password` + +## tshock.canchat +Player can chat. +* **Commands**: `None` + +## tshock.account.login +User can login in game. +* **Commands**: `/login` + +## tshock.account.logout +User can logout in game. +* **Commands**: `/logout` + +## tshock.world.paint +User can paint tiles. +* **Commands**: `None` + +## tshock.partychat +User can use party chat in game. +* **Commands**: `/party (/p)` + +## tshock.account.register +User can register account in game. +* **Commands**: `/register` + +## tshock.thirdperson +User can talk in third person. +* **Commands**: `/me` + +## tshock.projectiles.usebanned +Player can use banned projectiles. +* **Commands**: `None` + +## tshock.tiles.usebanned +Player can place banned tiles. +* **Commands**: `None` + +## tshock.cfg.password +User can edit the server password. +* **Commands**: `/serverpassword` + +## tshock.cfg.reload +User can reload the configurations file. +* **Commands**: `/reload` + +## tshock.accountinfo.check +Player can check if a username is registered and see its last login time. +* **Commands**: `/accountinfo (/ai)` + +## tshock.clear +User can clear items or projectiles. +* **Commands**: `/clear` + +## tshock.npc.clearanglerquests +User can clear the list of users who have completed an angler quest that day. +* **Commands**: `/clearangler` + +## tshock.world.converthardmode +User can convert hallow into corruption and vice-versa. +* **Commands**: `None` + +## tshock.cfg.createdumps +User can create reference files of Terraria IDs and the permission matrix in the server folder. +* **Commands**: `/dump-reference-data` + +## tshock.tp.demonconch +User can use the Demon Conch. +* **Commands**: `None` + +## tshock.world.time.dropmeteor +User can drop a meteor. +* **Commands**: `None` + +## tshock.world.setdungeon +User can set the dungeon's location. +* **Commands**: `/setdungeon` + +## tshock.world.time.eclipse +User can force an eclipse. +* **Commands**: `None` + +## tshock.world.editregion +Allows you to edit regions. +* **Commands**: `None` + +## tshock.world.editspawn +Allows you to edit the spawn. +* **Commands**: `/protectspawn` + +## tshock.world.time.fullmoon +User can force a full moon. +* **Commands**: `None` + +## tshock.tp.getpos +User can get the position of players. +* **Commands**: `/pos` + +## tshock.item.give +User can give items. +* **Commands**: `/give (/g)` + +## tshock.godmode +Player recovers health as damage is taken. Can be one shotted. +* **Commands**: `/godmode (/god)` + +## tshock.godmode.other +User can godmode other players. +* **Commands**: `None` + +## tshock.world.grow +User can grow plants. +* **Commands**: `/grow` + +## tshock.world.growevil +User can grow evil biome plants. +* **Commands**: `None` + +## tshock.world.sethalloween +User can force the server to Halloween mode. +* **Commands**: `/forcehalloween` + +## tshock.world.hardmode +User can change hardmode state. +* **Commands**: `/hardmode` + +## tshock.heal +User can heal players. +* **Commands**: `/heal` + +## tshock.tp.home +User can use /home. +* **Commands**: `/home` + +## tshock.npc.hurttown +User can hurt town NPCs. +* **Commands**: `None` + +## tshock.ignore.damage +Prevents your actions from being ignored if damage is too high. +* **Commands**: `None` + +## tshock.ignore.hp +Prevents you from being disabled by abnormal HP. +* **Commands**: `None` + +## tshock.ignore.removetile +Prevents you from being reverted by kill tile abuse detection. +* **Commands**: `None` + +## tshock.ignore.liquid +Prevents you from being disabled by liquid set abuse detection. +* **Commands**: `None` + +## tshock.ignore.mp +Prevents you from being disabled by abnormal MP. +* **Commands**: `None` + +## tshock.ignore.paint +Prevents you from being disabled by paint abuse detection. +* **Commands**: `None` + +## tshock.ignore.placetile +Prevents you from being reverted by place tile abuse detection. +* **Commands**: `None` + +## tshock.ignore.projectile +Prevents you from being disabled by projectile abuse detection. +* **Commands**: `None` + +## tshock.ignore.itemstack +Prevents you from being disabled by stack hack detection. +* **Commands**: `None` + +## tshock.admin.noban +Prevents you from being banned. +* **Commands**: `None` + +## tshock.admin.nokick +Prevents you from being kicked. +* **Commands**: `None` + +## tshock.npc.invade +User can start an invasion. Warning: high network use. Easy to abuse. +* **Commands**: `None` + +## tshock.item.spawn +User can spawn items. +* **Commands**: `/item (/i)` + +## tshock.journey.biomespreadfreeze +User can use Creative UI to stop the biome spread of the world. +* **Commands**: `None` + +## tshock.journey.research +User can contribute research by sacrificing items +* **Commands**: `None` + +## tshock.journey.godmode +User can use Creative UI to toggle character godmode. +* **Commands**: `None` + +## tshock.journey.placementrange +User can use Creative UI to toggle increased placement range. +* **Commands**: `None` + +## tshock.journey.rain.freeze +User can use Creative UI to stop the world rain strength from changing. +* **Commands**: `None` + +## tshock.journey.rain.strength +User can use Creative UI to set world rain strength/seed. +* **Commands**: `None` + +## tshock.journey.setdifficulty +User can use Creative UI to set world difficulty/mode. +* **Commands**: `None` + +## tshock.journey.setspawnrate +User can use Creative UI to set the NPC spawn rate of the world. +* **Commands**: `None` + +## tshock.journey.time.freeze +User can use Creative UI freeze time. +* **Commands**: `None` + +## tshock.journey.time.set +User can use Creative UI to set world time. +* **Commands**: `None` + +## tshock.journey.time.setspeed +User can use Creative UI to set world time speed. +* **Commands**: `None` + +## tshock.journey.wind.freeze +User can use Creative UI to stop the world wind strength from changing. +* **Commands**: `None` + +## tshock.journey.wind.strength +User can use Creative UI to set world wind strength/seed. +* **Commands**: `None` + +## tshock.admin.kick +User can kick others. +* **Commands**: `/kick` + +## tshock.kill +User can kill others. +* **Commands**: `/kill (/slay)` + +## tshock.admin.viewlogs +Specific log messages are sent to users with this permission. +* **Commands**: `/displaylogs` + +## tshock.tp.magicconch +User can use the Magic Conch. +* **Commands**: `None` + +## tshock.cfg.maintenance +User is notified when an update is available, user can turn off / restart the server. +* **Commands**: `/checkupdates, /off (/exit /stop), /off-nosave (/exit-nosave /stop-nosave), /version` + +## tshock.world.events.bloodmoon +User can use the 'bloodmoon' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.world.events.eclipse +User can use the 'eclipse' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.world.events +User can use the 'worldevent' command +* **Commands**: `/worldevent` + +## tshock.world.events.fullmoon +User can use the 'fullmoon' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.admin.group +User can manage groups. +* **Commands**: `/group` + +## tshock.world.events.invasion +User can use the 'invasion' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.admin.itemban +User can manage item bans. +* **Commands**: `/itemban` + +## tshock.world.events.lanternsnight +User can use the 'lanternsnight' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.world.events.meteor +User can use the 'meteor' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.admin.projectileban +User can manage projectile bans. +* **Commands**: `/projban` + +## tshock.world.events.rain +User can use the 'rain' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.admin.region +User can manage regions. +* **Commands**: `/region` + +## tshock.world.events.sandstorm +User can use the 'sandstorm' subcommand of the 'worldevent' command +* **Commands**: `None` + +## tshock.admin.tileban +User can manage tile bans. +* **Commands**: `/tileban` + +## tshock.admin.warp +User can manage warps. +* **Commands**: `None` + +## tshock.npc.maxspawns +User can edit the max spawns. +* **Commands**: `/maxspawns` + +## tshock.world.movenpc +User can change the homes of NPCs. +* **Commands**: `None` + +## tshock.admin.mute +User can mute and unmute users. +* **Commands**: `/mute (/unmute)` + +## tshock.tp.pylon +User can use pylons to teleport +* **Commands**: `None` + +## tshock.world.rain +User can turn on or off the rain. +* **Commands**: `None` + +## tshock.npc.rename +User can rename NPCs. +* **Commands**: `/renamenpc` + +## tshock.reservedslot +Allows you to bypass the max slots for up to 5 slots above your max. +* **Commands**: `None` + +## tshock.respawn +Player can respawn themselves. +* **Commands**: `/respawn` + +## tshock.respawn.other +Player can respawn others. +* **Commands**: `None` + +## tshock.tp.rod +User can use the Rod of Discord. +* **Commands**: `None` + +## tshock.world.sandstorm +User can turn on or off sandstorms. +* **Commands**: `None` + +## tshock.admin.savessi +User can save all the players SSI (server side character) state. +* **Commands**: `/overridessc (/ossc), /savessc` + +## tshock.admin.seeplayerids +User can see the id of players with /who. +* **Commands**: `None` + +## tshock.sendemoji +Player can send emotes. +* **Commands**: `None` + +## tshock.info +User can get the server info. +* **Commands**: `/serverinfo` + +## tshock.admin.tempgroup +User can elevate other users' groups temporarily. +* **Commands**: `/tempgroup` + +## tshock.slap +User can slap others. +* **Commands**: `/slap` + +## tshock.tp.spawn +User can use /spawn. +* **Commands**: `/spawn` + +## tshock.npc.spawnboss +User can spawn bosses. +* **Commands**: `/spawnboss (/sb)` + +## tshock.npc.spawnmob +User can spawn npcs. +* **Commands**: `/spawnmob (/sm)` + +## tshock.npc.spawnpets +User can spawn pets. Warning: high network use. Easy to abuse. +* **Commands**: `None` + +## tshock.npc.spawnrate +User can edit the spawnrate. +* **Commands**: `/spawnrate` + +## tshock.npc.startdd2 +User can start the dd2 event. +* **Commands**: `None` + +## tshock.npc.startinvasion +User can start invasions (Goblin/Snow Legion) using items. +* **Commands**: `None` + +## tshock.su +Allows a user to elevate to superadmin for 10 minutes. +* **Commands**: `/su, /sudo` + +## tshock.npc.summonboss +User can summon bosses using items. +* **Commands**: `None` + +## tshock.synclocalarea +Player can resync themselves with server state. +* **Commands**: `/sync` + +## tshock.world.time.set +User can set the time. +* **Commands**: `/time` + +## tshock.world.toggleexpert +User can change expert state. +* **Commands**: `/worldmode (/gamemode)` + +## tshock.world.toggleparty +Player can toggle party event. +* **Commands**: `None` + +## tshock.tp.self +User can teleport to others. +* **Commands**: `/tp` + +## tshock.tp.allothers +User can teleport *everyone* to them. +* **Commands**: `None` + +## tshock.tp.block +Users can stop people from teleporting. +* **Commands**: `/tpallow` + +## tshock.tp.npc +User can teleport to an NPC. +* **Commands**: `/tpnpc` + +## tshock.tp.others +User can teleport other people. +* **Commands**: `/tphere` + +## tshock.tp.override +Users can override teleport blocks. +* **Commands**: `None` + +## tshock.tp.pos +User can teleport to tile positions. +* **Commands**: `/tppos` + +## tshock.tp.tppotion +User can use Teleportation Potions. +* **Commands**: `None` + +## tshock.tp.silent +Users can teleport to people without showing a notice +* **Commands**: `None` + +## tshock.ssc.upload +User can upload their joined character data as SSC data. +* **Commands**: `/uploadssc` + +## tshock.ssc.upload.others +User can upload other players join data to the SSC database. +* **Commands**: `None` + +## tshock.item.usebanned +Allows you to use banned items. +* **Commands**: `None` + +## tshock.superadmin.user +Meant for super admins only. +* **Commands**: `/user` + +## tshock.admin.userinfo +User can get other users' info. +* **Commands**: `/userinfo (/ui)` + +## tshock.world.time.usesundial +Player can use the Enchanted Sundial item. +* **Commands**: `None` + +## tshock.warp +User can use warps. +* **Commands**: `/warp` + +## tshock.whisper +User can whisper to others. +* **Commands**: `/reply (/r), /whisper (/w /tell /pm /dm), /wallow (/wa)` + +## tshock.cfg.whitelist +User can modify the whitelist. +* **Commands**: `/whitelist` + +## tshock.world.wind +User can modify the wind. +* **Commands**: `/wind` + +## tshock.world.info +User can get the world info. +* **Commands**: `/worldinfo` + +## tshock.world.save +User can save the world. +* **Commands**: `/save` + +## tshock.world.settleliquids +User can settle liquids. +* **Commands**: `/settle` + +## tshock.world.setspawn +User can set the world spawn. +* **Commands**: `/setspawn` + +## tshock.tp.wormhole +User can use wormhole potions. +* **Commands**: `None` + +## tshock.world.setxmas +User can force the server to Christmas mode. +* **Commands**: `/forcexmas` + diff --git a/docs/ssc-config.md b/docs/ssc-config.md new file mode 100644 index 00000000..c9feb52c --- /dev/null +++ b/docs/ssc-config.md @@ -0,0 +1,35 @@ +## Enabled +Enable server side characters, causing client data to be saved on the server instead of the client. +* **Field type**: `Boolean` +* **Default**: `False` + +## LogonDiscardThreshold +Time, in milliseconds, to disallow discarding items after logging in when ServerSideCharacters is ON. +* **Field type**: `Int32` +* **Default**: `250` + +## ServerSideCharacterSave +How often SSC should save, in minutes. +* **Field type**: `Int32` +* **Default**: `5` + +## StartingHealth +The starting default health for new players when SSC is enabled. +* **Field type**: `Int32` +* **Default**: `100` + +## StartingInventory +The starting default inventory for new players when SSC is enabled. +* **Field type**: `List`1` +* **Default**: `System.Collections.Generic.List`1[TShockAPI.NetItem]` + +## StartingMana +The starting default mana for new players when SSC is enabled. +* **Field type**: `Int32` +* **Default**: `20` + +## WarnPlayersAboutBypassPermission +Warns players and the console if a player has the tshock.ignore.ssc permission with data in the SSC table. +* **Field type**: `Boolean` +* **Default**: `True` +