Terraria arkadaşlarla oynandığında çok daha eğlenceli, ama oyun içinden "Host & Play" ile açılan dünya siz oyunu kapattığınızda herkes için kapanır. Kalıcı bir dünya istiyorsanız çözüm Terraria dedicated server: dünyayı 7/24 açık tutan, oyuncu bağlantılarını sizin bilgisayarınızdan bağımsız yöneten ayrı bir sunucu süreci. Bu rehberde Terraria sunucu kurma işini iki yoldan anlatıyoruz: oyunla birlikte gelen resmi (vanilla) sunucu ve topluluğun en çok kullandığı yönetim katmanı TShock.
Bilgileri Terraria'nın resmi wikisi terraria.wiki.gg ile TShock'un GitHub deposu ve wikisinden aldık. Port, parametre ve config anahtarlarını bu kaynaklarda nasıl geçiyorsa öyle verdik; kaynaklarda bulunmayan RAM ya da oyuncu başına donanım rakamları uydurmadık.
Vanilla sunucu mu, TShock mu?

Vanilla sunucu Terraria ile birlikte gelir, kurulumu en basit olandır ve küçük bir arkadaş grubu için yeterlidir. Ancak yönetim araçları sınırlıdır: konsoldan kick/ban, şifre ve MOTD gibi temel işler yapılabilir, oyuncu hesabı, yetki grubu veya eklenti sistemi yoktur. TShock ise kendi tanımıyla "Terraria sunucuları ve toplulukları için bir araç kutusu"dur; sunucu taraflı karakter (SSC), hile önleme ve topluluk yönetim araçları ekler.
| Özellik | Vanilla sunucu | TShock |
|---|---|---|
| Kurulum | Oyunla gelir (TerrariaServer) | GitHub sürüm paketi, .NET 9 runtime |
| Hesap ve giriş | Yok | /register, /login, kullanıcı hesapları |
| Yetki grupları | Yok | guest, default, vip, newadmin, admin, trustedadmin, owner |
| Eklenti | Yok | ServerPlugins klasörü |
| Varsayılan port | 7777 | 7777 (REST API açılırsa 7878) |
Vanilla Terraria sunucusu kurulumu
Windows
Windows'ta sunucu dosyası TerrariaServer.exe'dir ve Terraria'nın kurulu olduğu klasörde (Steam kullanıyorsanız genellikle steamapps\common\Terraria) bulunur. Aynı klasördeki start-server.bat sunucuyu serverconfig.txt ile başlatır ve çökerse yeniden açar. Steam arkadaşlarınızın katılabilmesi için start-server-steam-friends.bat dosyası da vardır.
- Terraria klasöründe
serverconfig.txtdosyasını açın ve aşağıdaki tablodaki ayarları düzenleyin. start-server.batile sunucuyu başlatın. Dünya yoksa konsol sizi dünya oluşturma adımlarına yönlendirir.- Aynı ağdan bağlanacaksanız oyunda Multiplayer, Join via IP ile yerel IP adresinizi ve 7777 portunu girin.
Linux
Linux için Terraria'nın resmi sitesindeki dedicated server zip paketini indirip açarsınız. Paket içinde sürüm numarasıyla adlandırılmış klasörün altındaki Linux dizinine geçip ikili dosyayı çalıştırılabilir yapmanız gerekir. Wiki, sunucunun arka planda açık kalması için tmux kullanmayı önerir; dünya dosyaları ~/.local/share/Terraria/Worlds/ altında tutulur.
cd <surum-klasoru>/Linux
chmod +x TerrariaServer.bin.x86*
# 64 bit sistemde:
./TerrariaServer.bin.x86_64 -config serverconfig.txtmacOS'ta Apple Silicon işlemcili makineler için Rosetta 2 gerekir ve her güncellemeden sonra Gatekeeper karantina işaretinin kaldırılması gerekir; wiki bunun için bir start.sh betiği tarif ediyor. Raspberry Pi gibi diğer platformlarda ise sunucu Mono ile çalıştırılabilir.
serverconfig.txt ayarları
Config dosyasında # ile başlayan satırlar yorumdur. Bir ayarı etkinleştirmek için baştaki # işaretini kaldırıp değeri yazmanız yeterli. Wikide belgelenen anahtarlar şunlar:
| Anahtar | Ne işe yarar |
|---|---|
world | Yüklenip başlatılacak dünya dosyasının yolu |
autocreate | Dünya yoksa oluşturur: 1 küçük, 2 orta, 3 büyük |
seed | Otomatik oluşturulacak dünyanın seed değeri |
worldname | Otomatik oluşturulacak dünyanın adı |
difficulty | 0 Normal, 1 Expert, 2 Master, 3 Journey |
maxplayers | Azami oyuncu sayısı (1-255; varsayılan 16) |
port | Dinlenecek port (varsayılan 7777) |
password | Sunucu şifresi |
motd | Giriş mesajı (message of the day) |
worldpath | Dünya dosyalarının klasörü |
banlist | Ban listesi dosyası (varsayılan banlist.txt) |
secure | 1 yapılırsa ek hile koruması açılır |
language | Dil kodu: en-US, de-DE, it-IT, fr-FR, es-ES, ru-RU, zh-Hans, pt-BR, pl-PL |
upnp | 1 yapılırsa otomatik port yönlendirme denenir |
npcstream | Düşmanların "atlamasını" azaltır, karşılığında bant genişliği kullanır; 0 kapatır |
priority | Süreç önceliği: 0 (Realtime) ile 5 (Idle) arası, varsayılan 1 (High) |
journeypermission_* | Journey modu güçleri: 0 herkese kapalı, 1 yalnızca host, 2 herkes |
world=/home/terraria/.local/share/Terraria/Worlds/Dunyam.wld
autocreate=2
worldname=Dunyam
difficulty=1
maxplayers=8
port=7777
password=GucluBirSifre
motd=Sunucumuza hoş geldiniz!
secure=1Aynı ayarları komut satırından da verebilirsiniz: -config, -port, -maxplayers, -password, -motd, -world, -autocreate, -worldname, -seed, -banlist, -secure, -noupnp, -ip ve -forcepriority wikide listelenen parametrelerdir.
Port 7777 ve ağ ayarları
Terraria sunucusu varsayılan olarak TCP 7777 portunu kullanır. Evden barındırıyorsanız ve modem arkasındaysanız (NAT) bu portu sunucu bilgisayarına yönlendirmeniz gerekir. Wiki, AWS veya GCP gibi bulut sağlayıcılarda 7777 portunun hem TCP hem UDP için açılmasını söylüyor. Linux sunucuda güvenlik duvarı kullanıyorsanız kuralı ekleyin:
sudo ufw allow 7777/tcp
sudo ufw allow 7777/udpGüvenlik duvarı ayrıntıları için UFW rehberimize, portun dışarıdan açık görünüp görünmediğini kontrol etmek için port sorgulama rehberine bakabilirsiniz.
Konsol komutları
![Konsol komutları: help, playing, kick <isim> / ban <isim>, password [şifre]](/assets/blog/terraria-sunucu-kurulumu-b5.webp)
Vanilla sunucu konsolunda komutlar eğik çizgi olmadan yazılır. En çok kullanılanlar:
| Komut | İşlev |
|---|---|
help | Komut listesini gösterir |
playing | Bağlı oyuncuları listeler |
kick <isim> / ban <isim> | Oyuncuyu atar / banlar |
password [şifre] | Şifreyi gösterir veya değiştirir |
motd [mesaj] | MOTD'yi gösterir veya değiştirir |
say <mesaj> | Sunucu adına mesaj yazar |
save | Dünyayı kaydeder |
exit / exit-nosave | Kaydedip kapatır / kaydetmeden kapatır |
dawn, noon, dusk, midnight | Oyun saatini değiştirir |
settle | Suları yerleştirir |
Bir oyuncunun banını kaldırmak için Terraria klasöründeki banlist.txt dosyasından ismini ve IP adresini silmeniz gerekir.
TShock kurulumu
Bu yazının hazırlandığı tarihte TShock GitHub sürüm sayfasındaki en güncel sürüm TShock 6.2.1 ve Terraria 1.4.5.8 içindir. TShock 6 serisi .NET 9 desteğiyle geldi; resmi wiki .NET 9 runtime (eklenti geliştirecekseniz SDK) ve en az 1 GB bellek istiyor. Terraria güncellendiğinde TShock'un o sürüme uygun paketi çıkmadan oyuncular bağlanamayabilir; sürüm eşleşmesini her zaman sürüm sayfasından kontrol edin.
Adım adım ilk kurulum
- Sisteminize .NET 9 runtime kurun.
- GitHub'daki son kararlı TShock sürümünü indirin ve zip'in tamamını tek bir klasöre açın.
- Windows'ta
TShock.Server.exe, Linux ve macOS'ta./TShock.Serverile başlatın. İlk açılışta veritabanı ve ayarlar içintshockklasörü oluşur ve birkaç kurulum sorusu sorulur. - Terraria'yı açıp sunucuya bağlanın (aynı makinedeyseniz
localhost, değilse sunucunun IP adresi). - Sunucu konsolunda görünen setup kodunu oyun içi sohbete
/setup kodşeklinde yazın. Bu size geçici yönetici yetkisi verir. - Kalıcı bir sahip (owner) hesabı oluşturun, o hesapla giriş yapın, ardından setup sistemini
/setupile kapatın.
/setup 12345
/user add kullaniciadi GucluSifre owner
/login kullaniciadi GucluSifre
/setupLinux'ta Mono gerekmez; ./TShock.Server doğrudan çalıştırılır. Eski TShock 4 kurulumundan geçiyorsanız wiki, tshock klasörünü yeni sunucuya kopyalayıp TShock.Server ile başlatmanızı söylüyor. Güncelleme öncesinde ise sürüm notları sunucunun ve tüm dosyaların tam yedeğini almayı şart koşuyor.
Docker ile TShock
TShock resmi bir Docker imajı yayınlıyor (ghcr.io/pryaxis/tshock:stable). Docker sayfasında belgelenen bağlama noktaları /tshock (ayar, log), /worlds (dünyalar) ve /plugins (eklentiler), portlar ise 7777 (Terraria) ve 7878 (REST API) olarak geçiyor. İmaj adından sonra yazdığınız argümanlar TShock'a aktarılır; -world yolu konteyner içindeki yol olmalıdır.
docker run -it -p 7777:7777 \
-v /srv/tshock:/tshock \
-v /srv/terraria/worlds:/worlds \
-v /srv/tshock/plugins:/plugins \
ghcr.io/pryaxis/tshock:stable \
-world /worlds/Dunyam.wld -motd "Hoş geldiniz"Docker Compose ile kalıcı kurulum yapmak isterseniz Docker Compose rehberimize göz atın.
TShock config.json: önemli ayarlar
TShock ayarları tshock klasöründeki config.json içindedir. Resmi config açıklama sayfasından seçtiğimiz önemli anahtarlar ve varsayılan değerleri:
| Anahtar | Varsayılan | Açıklama |
|---|---|---|
ServerPassword | boş | Sunucuya katılmak için gereken şifre |
ServerPort | 7777 | Sunucunun çalıştığı port |
MaxSlots | 8 | Aynı anda bağlı azami istemci |
ReservedSlots | 20 | Ayrılmış oyuncular için ek slot |
AutoSave | True | Oyunun yerleşik otomatik kaydı |
BackupInterval | 10 | Yedekler arası süre (dakika), tshock/backups klasörüne |
BackupKeepFor | 240 | Yedeklerin saklanma süresi (dakika) |
RequireLogin | False | Oynamadan önce kayıt/giriş zorunluluğu |
SpawnProtection | True | Spawn çevresinde blok koymayı engeller |
SpawnProtectionRadius | 10 | Korunan yarıçap (blok) |
DefaultRegistrationGroupName | default | Yeni kayıt olan kullanıcının grubu |
DefaultGuestGroupName | guest | Giriş yapmamış oyuncunun grubu |
StorageType | sqlite | Veritabanı türü: sqlite veya mysql |
RestApiEnabled | False | REST API açık/kapalı |
RestApiPort | 7878 | REST API portu |
PvPMode | normal | normal, always, pvpwithnoteam, disabled |
EnableWhitelist | False | whitelist.txt içindeki IP'lere göre beyaz liste |
TShock grupları ve izinleri
![TShock grupları ve izinleri: /group add <ad> [izinler], /group addperm <grup> <izinler...>, /group delperm <grup> <izinler...>, /group parent <grup> <üst grup>](/assets/blog/terraria-sunucu-kurulumu-b8.webp)
TShock varsayılan olarak bir grup zinciri oluşturur: guest, default, vip, newadmin, admin, trustedadmin ve owner. Her grup bir üst gruptan (parent) izinleri devralır. Grupları /group komutuyla yönetirsiniz; bunun için tshock.admin.group izni gerekir. Kullanıcı hesaplarını yöneten /user komutu ise tshock.superadmin.user iznine bağlıdır.
| Komut | İşlev |
|---|---|
/group add <ad> [izinler] | Yeni grup oluşturur |
/group addperm <grup> <izinler...> | Gruba izin ekler |
/group delperm <grup> <izinler...> | Gruptan izin kaldırır |
/group parent <grup> <üst grup> | Grubun üst grubunu değiştirir |
/group listperm <grup> | Grubun izinlerini listeler |
/group prefix <grup> <önek> | Sohbette görünen öneki ayarlar |
/user group <kullanıcı> <grup> | Kullanıcının grubunu değiştirir |
/user password <kullanıcı> <yeni şifre> | Kullanıcının şifresini değiştirir |
Örnek: moderatörler için atma yetkisi olan, ama eşya spawnlayamayan bir grup kurmak:
/group add moderator
/group parent moderator vip
/group addperm moderator tshock.admin.kick tshock.tp.self
/user group ahmet moderatorİzin adlarının tam listesi TShock wikisindeki izin açıklamaları sayfasında. Örneğin tshock.admin.ban /ban komutunu, tshock.item.spawn /item komutunu, tshock.world.modify dünyayı değiştirme yetkisini, tshock.account.register oyun içi kaydı kontrol eder.
tModLoader sunucuları hakkında kısa not
Modlu Terraria için kullanılan tModLoader'ın kendi sunucu yapısı vardır ve vanilla ya da TShock kurulumundan farklı işler. Terraria wikisinin sunucu sayfası tModLoader sunucu kurulumunu anlatmıyor; modlu sunucu kuracaksanız tModLoader projesinin kendi GitHub wikisindeki güncel talimatları izleyin. Modlu sunucuda bağlanan oyuncuların da aynı mod setine sahip olması gerektiğini unutmayın.
Pterodactyl panelde Terraria sunucusu
Barındırma firmalarının çoğu Terraria sunucularını Pterodactyl gibi bir panel üzerinden sunar. Pterodactyl'in resmi tanıtım sayfası Terraria'yı çekirdek olarak desteklenen oyunlar arasında sayar. Panelde genellikle vanilla ve TShock için ayrı "egg" (kurulum şablonu) bulunur; sürüm, dünya adı, dünya boyutu ve oyuncu sayısı gibi değerler Startup sekmesindeki değişkenlerden ayarlanır, config dosyaları ise dosya yöneticisi veya SFTP ile düzenlenir. Panelin genel kullanımını Pterodactyl panel rehberimizde anlattık.
Sık karşılaşılan sorunlar
- Arkadaşlarım bağlanamıyor: 7777 portunun modemde sunucu cihazına yönlendirildiğini ve güvenlik duvarında açık olduğunu kontrol edin. Bulut sunucuda TCP ve UDP 7777 açık olmalı.
- Sürüm uyuşmazlığı: Oyun istemcisi sunucudan farklı sürümdeyse bağlanamaz. Terraria güncellendikten sonra sunucu dosyalarını veya TShock paketini de güncelleyin.
- TShock'ta yönetici yetkim yok: Setup kodunu konsolda arayın; owner hesabını oluşturup
/loginile giriş yaptığınızdan emin olun. - Gecikme: Ağ kaynaklı sorunlarda genel teşhis adımları için lag giderme rehberimize bakın.
Sık Sorulan Sorular
Terraria sunucusu hangi portu kullanır?
Varsayılan port 7777'dir ve serverconfig.txt içindeki port anahtarı veya -port parametresiyle değiştirilebilir. TShock'ta REST API açılırsa ek olarak 7878 kullanılır.
Kaç oyuncu bağlanabilir?
Vanilla sunucuda maxplayers 1 ile 255 arasında ayarlanabilir, varsayılan 16'dır. TShock'ta ise config.json içindeki MaxSlots belirleyicidir (varsayılan 8). Donanımın kaç oyuncuyu rahat taşıyacağı dünya boyutuna ve oyun tarzına bağlıdır; resmi kaynaklarda oyuncu başına donanım rakamı verilmez.
TShock setup kodunu kaçırdım, ne yapmalıyım?
Kod sunucu konsolunda gösterilir. TShock kaynak kodu, kodu ayrıca tshock klasöründe setup-code.txt dosyasında tuttuğunu ve setup kapatılınca bu dosyayı sildiğini gösteriyor. Owner hesabınızı oluşturduktan sonra /setup ile sistemi kapatmayı unutmayın.
Mevcut dünyamı sunucuya nasıl taşırım?
Dünyanın .wld dosyasını sunucunun dünya klasörüne kopyalayın (Linux'ta varsayılan ~/.local/share/Terraria/Worlds/) ve serverconfig.txt içindeki world anahtarına ya da -world parametresine bu dosyanın yolunu yazın. TShock Docker imajında yol, konteyner içindeki /worlds altındaki yol olmalıdır.
Oyun ve yazılım adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen geliştiricilerle ortaklık ilişkisi bulunduğu anlamına gelmez.
İlgili içerikler: Pterodactyl panel rehberi · Valheim sunucu kurulumu · SteamCMD nedir? · Minecraft sunucu kurulumu · DDoS koruma rehberi