TShock是一個功能齊全的伺服器管理程式,包含權限組管理、物品禁用以及大量方便且實用的指令。
安裝伺服器
影片步驟說明:
文字步驟說明:
- 下載完成後解壓縮並開啟 TerrariaServer.exe ,解壓縮工具可使用WinRAR或7-zip
- 出現的黑色視窗中顯示Choose World(選擇世界),每個世界名稱前面的數字對應著它們的位置,輸入那些數字以開啟對應的世界來當作伺服器世界
- Max Players-最大玩家數,如果直接按下Enter跳過則是預設值8位玩家
- Server port-伺服器端口,若直接按下Enter則為預設值7777
- Automatically forward port-自動轉發端口(是/否),是否由Terraria自動轉發端口,必須注意的是其僅在路由器啟用UPnP的情況下才能夠自動轉發端口,它的意思是是否要嘗試通過UPnP在自身和路由器之間建立有效的連結。當路由器支援且啟用UPnP時會在它收到伺服器連線請求時嘗試自動轉發端口
- Server password-伺服器的密碼,若直接按下Enter則為無密碼
- 一切準備就緒後,如果伺服器為首次開啟會出現一串黃字寫道:
TShcok Notice: To become SuperAdmin, join the game and type /auth xxxxxxx. This token will display until disabled by verification. (/auth-verify)
意旨如果要成為超級管理員就要加入遊戲並且輸入 /auth xxxxxxx 其中的xxxxxxx為一串隨機數字,每個人都不一樣,並且如果要停止這個提示的顯示就必須在遊戲中輸入 /auth-verify 來關閉
在一切準備就緒前,可能會遇到一些問題,請確認你的作業系統擁有以下條件:
- Microsoft .NET Framework 4.5 (Windows作業系統)
- Mono 4+ (Linux/BSD/UNIX 衍生作業系統上)
- 2GB 記憶體 (僅分配給Terraria的記憶體,不是代表電腦中的總記憶體量)
如果日後要升級伺服器版本,請
- 將伺服器資料夾中的TerrariaServer.exe 替換成新版本的檔案。
- 將伺服器資料夾中的所有dll文件替換成新版本的dll文件。
- 最新的插件可以在論壇的插件資源列表中找到。
配置設定檔
設定超級管理員成功後,請在黑窗輸入 exit 關閉你的伺服器,並進入 tshock 資料夾中開啟 config.json
檔案中的內容說明如下,可依自身情況調整:
設定值名稱 | 描述 | 預設值 |
AllowAllowedGroupsToSpawnBannedItems | 是否允許權限組生成伺服器禁用物品 | false |
AllowCorruptionCreep | 當世界處於困難模式時是否要讓腐敗之地蔓延 | true |
AllowCrimsonCreep | 當世界處於困難模式時是否要讓血敗之地蔓延 | true |
AllowCutTilesAndBreakables | 是否允許任何人破壞雜草、盆子等等 | false |
AllowHallowCreep | 當世界處於困難模式時是否要讓神聖之地蔓延 | true |
AllowIce | 即使玩家沒有放置權限,也可以放置冰塊 | false |
AllowLoginAnyUsername | 允許玩家使用 /login 指令登入任何名稱 | true |
AllowRegisterAnyUsername | 允許玩家使用 /register 指令註冊任何名稱 | false |
AnnounceSave | 開啟或關閉伺服器保存公告 | true |
AnonymousBossInvasions | 是否匿名召喚入侵事件或BOSS | true |
AutoSave | 開啟或關閉Terraria內建的自動保存 | true |
BackupInterval | 以分鐘為單位的備份頻率,0表示禁用 | 0 |
BackupKeepFor | 備份檔案留存時間,單位分鐘 | 60 |
BanOnHardcoreDeath | 自動封鎖在困難模式情況下死亡的角色(角色難度,並非世界難度) | false |
BanOnMediumcoreDeath | 自動封鎖在普通模式情況下死亡的角色(角色難度,並非世界難度) | false |
BroadcastRGB | 伺服器公告的RGB色碼 | System.Int32[] |
ChatAboveHeadsFormat | 玩家聊天泡泡格式(與ChatFormat格式相同) | {2} |
ChatFormat | 更改遊戲中的聊天格式:{0} =群組名稱,{1} =群組前綴,{2} =玩家名稱,{3} =群組後綴,{4} =聊天訊息 | {1} {2} {3}:{4} |
CommandSilentSpecifier | 指定特定字串為無提示方式執行命令 | . |
CommandSpecifier | 指定特定字串為執行命令開頭 | / |
DefaultGuestGroupName | 未註冊之玩家的權限組 | guest |
DefaultMaximumSpawns | 預設每波最大生成怪物數量 | 5 |
DefaultRegistrationGroupName | 已註冊之玩家的預設權限組 | default |
DefaultSpawnRate | 每波怪物生產的間隔值(較低的值意味著更多的怪物) | 600 |
DisableBuild | 禁用建造/放置方塊的權力 | false |
DisableClownBombs | 禁止生產炸彈小丑 | false |
DisableDungeonGuardian | 禁止地牢守護者於重生點生成 | false |
DisableHardmode | 禁用(世界)困難模式,意味著就算打敗肉牆也不會開啟困難模式(強制開啟指令將忽略此設定值 [/starthardmode]) | false |
DisableInvisPvP | 禁止在PvP模式下使用隱形藥水(自身仍然看得見效果,但效果封包並不會發送到伺服器,亦表示其他玩家不會看到你隱身) | false |
DisableLoginBeforeJoin | 禁止玩家在加入伺服器時使用帳號密碼登錄 | false |
DisableSecondUpdateLogs | 關閉OnSecondUpdate檢查寫入日誌文件 | false |
DisableSnowBalls | 禁止生成雪球(拋射物狀態) | false |
DisableSpewLogs | 強制禁用將日誌顯示給具有日誌權限的玩家 | true |
DisableTombstones | 禁用玩家死亡時的墓碑掉落 | true |
DisableUUIDLogin | 禁止玩家使用其客戶端UUID登入 | false |
DisplayIPToAdmins | 向擁有日誌權限的人顯示加入玩家的IP地址 | false |
EnableBanOnUsernames | 開啟通過匹配其字符名稱來封鎖玩家 | false |
EnableChatAboveHeads | 開啟玩家的聊天泡泡 | false |
EnableGeoIP | 在玩家加入時顯示玩家的GeoIP(該IP所在國家) | false |
EnableIPBans | 開啟IP封鎖功能 | true |
EnableUUIDBans | 允許使用UUID來封鎖玩家 | true |
EnableWhitelist | 是否開啟白名單(匹配IP地址) | false |
ForceHalloween | 無論你幹了什麼事情,都強制啟用萬聖節模式 | false |
ForceTime | 鎖定世界時間,可填入 normal, day, night | normal |
ForceXmas | 強迫你每天都過聖誕節 | false |
HardcoreBanReason | 因困難模式死亡遭封鎖的理由 | Death results in a ban |
HardcoreKickReason | 因困難模式死亡遭踢除的理由 | Death results in a kick |
HardcoreOnly | 僅限角色是困難模式之玩家加入,意味著普通模式之玩家無法加入 | false |
HashAlgorithm | 玩家密碼的加密方式,有效類型:sha512, sha256, md5 | sha512 |
HealOtherThreshold | 在一秒內發送此設定值之封包數將自動封鎖該玩家 | 50 |
IgnoreChestStacksOnLoad | 允許箱子中的物品堆疊數超過限制 | false |
IgnoreNoClip | 忽略所有玩家的穿牆檢查 | false |
IgnoreProjKill | 忽略檢查玩家是否可以把拋射物殺死 | false |
IgnoreProjUpdate | 忽略檢查玩家是否可以更新拋射物 | false |
InfiniteInvasion | 啟用入侵大小永不減少的功能,確保可以使用 /invade 指令,值的注意的是,它最多可以.生成兩百萬個哥布林壓爛你的CPU | false |
InvasionMultiplier | 入侵事件乘數(公式為 [ 100 +(乘數*(大於200生命之玩家的數量))]。 | 1 |
KickEmptyUUID | 自動踢除空UUID之玩家 | false |
KickOnDamageThresholdBroken | 如果設置為true,則踢出一個玩家,如果他們造成更多的傷害,就以最大傷害來回敬他 | false |
KickOnHardcoreDeath | 踢除在角色困難模式下死亡的玩家 | false |
KickOnMediumcoreDeath | 踢除在角色普通模式下死亡的玩家 | false |
KickProxyUsers | 踢除使用代理伺服器IP登入的玩家(由GeoIP資料庫檢查) | true |
LogPath | 日誌位置 | tshock |
MaxDamage | 最大傷害 | 1175 |
MaxHP | 最大生命 | 500 |
MaxMP | 最大魔力 | 200 |
MaximumLoginAttempts | 最大登入失敗的嘗試次數(超過則踢除玩家) | 3 |
MaxRangeForDisabled | 最大距離 | 10 |
MaxSlots | 伺服器最大玩家數量 | 8 |
MediumcoreBanReason | 因角色普通模式死亡而遭到封鎖的理由 | Death results in a ban |
MediumcoreKickReason | 因角色普通模式死亡而遭到踢除的理由 | Death results in a kick |
MediumcoreOnly | 僅限角色普通模式玩家加入 | false |
MinimumPasswordLength | 最小密碼長度 | 4 |
MySqlDbName | MySQL資料庫名稱 | |
MySqlHost | MySQL資料庫位置 | localhost:3306 |
MySqlUsername | MySQL資料庫帳號 | |
MySqlPassword | MySQL資料庫密碼 | |
PreventBannedItemSpawn | 禁止使用 /i , /give 指令生成物品 | false |
PreventDeadModification | 如果玩家死亡,阻止玩家與世界進行互動 | true |
PreventInvalidPlaceStyle | 防止玩家放置具有無效樣式的物品 | true |
ProjectileThreshold | 自動封鎖在一秒內拋射物生成超過此設定值之數量的玩家 | 50 |
PvPMode | 設置伺服器的PvP模式,有效類型:normal, always, disabled | |
RangeChecks | 檢查玩家的手是否太長 | true |
RegionProtectChests | 用區域保護箱子並構建權限 | false |
RegionProtectGemLocks | 使用區域和構建權限保護Gem鎖 | true |
RememberLeavePos | 記住玩家最後離線位置(使用IP做記錄;數據在伺服器關閉後消失) | false |
RequireLogin | 要求所有玩家在遊玩之前註冊或登入 | false |
ReservedSlots | 伺服器預留玩家數 | 20 |
RespawnBossSeconds | 如果附近有BOSS,玩家重生需等待的秒數 | 10 |
RespawnSeconds | 玩家重生需等待的秒數 | 5 |
SaveWorldOnCrash | 如果Terraria伺服器崩潰的話,這可以拯救世界 | true |
ServerFullNoReservedReason | 伺服器因滿人而遭到踢除的理由 | Server is full. No reserved slots open. |
ServerFullReason | 伺服器滿人的訊息 | Server is full |
ServerName | 伺服器名稱 | |
ServerPassword | 伺服器密碼 | |
ServerPort | 伺服器端口 | 7777 |
ShowBackupAutosaveMessages | 是否顯示伺服器備份訊息 | true |
SpawnProtection | 防止玩家放置方塊在重生點保護區 | true |
SpawnProtectionRadius | 重生點保護區範圍 | 10 |
StorageType | 資料儲存類型,mysql或sqlite | sqlite |
SuperAdminChatPrefix | 超級管理員聊天前綴 | (Admin) |
SuperAdminChatSuffix | 超級管理員聊天後綴 | |
SuperAdminChatRGB | 超級管理員聊天顏色 | System.Int32[] |
設定完畢後方可再度開啟伺服器。
如果資料儲存類型是選擇sqlite而非mysql的話,資料都會存在 tshock 資料夾中的 tshock.sqlite 檔案中,可使用SQLite檢視工具如 SQLiteBrowser 來檢視其中的內容。
不管是使用mysql或sqlite儲存,儲存的資料表都有 Bans(禁止的玩家)、Grouplist(所有權限組)、ItemBans(禁止的物品)、ProjectileBans(禁止的投射物)、Regions(區域保護資料)、RememberedPos(玩家最後存在的地點)、TileBans(禁止的方塊)、Users(用戶資料)、Warps(傳送點資料)、tsCharacter(SSC角色資料)。
基礎權限
玩家應該擁有的基礎權限,架設者可自己衡量是否給予:
權限節點 | 說明 |
tshock.world.modify | 破壞放置權力 |
tshock.account.changepassword | 更改自己的密碼 |
tshock.canchat | 能夠輸入文字聊天 |
tshock.account.register | 能夠註冊(沒有註冊和登入就不能用權限) |
tshock.account.login | 能夠登入(沒有註冊和登入就不能用權限) |
tshock.world.paint | 能用油漆 |
tshock.tp.home | 可以使用/home回到床或重生點 |
tshock.ignore.damage | 不會被偵測傷害過高 |
tshock.ignore.removetile | 不會被偵測頻繁挖掘(尤其是挖礦機) |
tshock.ignore.liquid | 不會被偵測頻繁使用液體桶 |
tshock.ignore.paint | 不會被偵測頻繁使用油漆 |
tshock.ignore.placetile | 不會被偵測頻繁放置方塊 |
tshock.ignore.projectile | 不會被偵測頻繁使用子彈 |
tshock.tp.rod | 可以使用不諧和棒(傳送法仗) |
tshock.tp.wormhole | 可以使用蟲洞藥水(隊伍傳送藥水) |
tshock.tp.spawn | 可使用/spawn回到伺服重生點 |
tshock.npc.summonboss | 使玩家可以使用道具召喚BOSS |
tshock.npc.startinvasion | 使玩家可以使用道具召喚事件 |
tshock.npc.hurttown | 使玩家可以對友方NPC(如嚮導、商人)造成傷害(還是需要裝備能傷害該NPC的道具 如:巫毒娃娃) |
礙於篇幅,其他權限可以到我的網站上去查找 [點擊前往]
指令說明
有用戶權限(USER)和群組權限(GROUP)
若在遊戲中皆需要在字首加入 / (可在設定文件中更改)
輸入指令時不需加入<>,username為用戶名稱、password為密碼、group為群組、permissions為權限節點、newpassword為新密碼、newgroup為新的群組
用戶權限
指令 | 說明 |
user help | 查看幫助 |
user add <username> <password> <group> | 新增用戶至資料庫 |
user del <username> | 從資料庫中刪除用戶 |
user <password> <username> <newpassword> | 更改用戶密碼 |
user group <username> <newgroup> | 將用戶移至新的群組 |
群組權限
指令 | 說明 |
group help <1/2/3> | 查看幫助 |
group add <name> | 新增群組 |
group addperm <group> <permissions> | 新增權限至該群組 |
group color <group> <rrr,ggg,bbb> | 修改群組聊天顏色(RGB色碼) |
group del <group> | 刪除群組 |
group delperm <group> <permissions> | 刪除該群組的某個權限 |
group list | 檢視目前所有群組 |
group listperm <group> | 檢視該群組的所有權限 |
group prefix <group> <prefix> | 修改群組前綴 |
group suffix <group> <suffix> | 修改群組後綴 |
常用指令
指令 | 說明 |
rain <start/stop> | 開/關下雨 |
maxspawns <數量> | 修改怪物生成最大數量 (最大只能200) |
spawnboss | 重生特定BOSS |
spawnmob | 重生特定生物 |
dropmeteor | 召喚隕石 |
eclipse | 召喚日蝕 |
bloodmoon | 召喚血月 |
time <moon/night/day> | 修改時間 |
fullmoon | 更改為滿月 |
hardmode | 開/關困難模式 |
save | 保存地圖 |
savessc | 保存SSC玩家資料 |
godmode | 上帝模式 |
heal | 治療特定玩家 |
kill | 殺死特定玩家 |
world | 顯示該世界的資訊 |
who | 顯示在線玩家 |
playing | 顯示在線玩家 |
setspawn | 把你站的地方設為世界重生點 |
home | 回家(回到世界重生點或你設置的床) |
更多指令可以在遊戲中輸入 /help 查看
Server Side Characters(SSC) 伺服端角色資料配置方法
開啟 tshcok 資料夾中的 sscconfig.json
設定值內容
{ "Enabled": false, #SSC的開啟與關閉 開啟用true 關閉則用false "ServerSideCharacterSave": 5, #這是儲存伺服器角色資料的時間,單位是分鐘 "LogonDiscardThreshold": 250, #登入後禁止丟棄物品的時間 "StartingHealth": 100, #新進玩家起始生命值 預設是100 "StartingMana": 20, #新進玩家起始魔力 預設是20 "StartingInventory": [ #這些是新進玩家身上拿到的東西,可以自己改,預設是銅劍 銅稿 銅斧 { "netID": -15, #物品ID "prefix": 0, #物品前綴修飾符,可以增強或減弱物品的屬性,類似於給哥布林工匠鑄造後的屬性修飾符 "stack": 1 #數量 }, { "netID": -13, "prefix": 0, "stack": 1 }, { "netID": -16, "prefix": 0, "stack": 1 } ] } |
有任何疑問歡迎留言或到Discord找我 > Discord社群
以上諮詢方式若不適用可以寄站內信給我
謝謝,我是5026,很榮幸能夠在這裡為大家介紹新事物。