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 mu, TShock mu? Kurulum, Hesap ve giriş, Yetki grupları, Eklenti

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.

ÖzellikVanilla sunucuTShock
KurulumOyunla gelir (TerrariaServer)GitHub sürüm paketi, .NET 9 runtime
Hesap ve girişYok/register, /login, kullanıcı hesapları
Yetki gruplarıYokguest, default, vip, newadmin, admin, trustedadmin, owner
EklentiYokServerPlugins klasörü
Varsayılan port77777777 (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.txt dosyasını açın ve aşağıdaki tablodaki ayarları düzenleyin.
  • start-server.bat ile 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.

bash
cd <surum-klasoru>/Linux
chmod +x TerrariaServer.bin.x86*
# 64 bit sistemde:
./TerrariaServer.bin.x86_64 -config serverconfig.txt

macOS'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:

AnahtarNe işe yarar
worldYüklenip başlatılacak dünya dosyasının yolu
autocreateDünya yoksa oluşturur: 1 küçük, 2 orta, 3 büyük
seedOtomatik oluşturulacak dünyanın seed değeri
worldnameOtomatik oluşturulacak dünyanın adı
difficulty0 Normal, 1 Expert, 2 Master, 3 Journey
maxplayersAzami oyuncu sayısı (1-255; varsayılan 16)
portDinlenecek port (varsayılan 7777)
passwordSunucu şifresi
motdGiriş mesajı (message of the day)
worldpathDünya dosyalarının klasörü
banlistBan listesi dosyası (varsayılan banlist.txt)
secure1 yapılırsa ek hile koruması açılır
languageDil kodu: en-US, de-DE, it-IT, fr-FR, es-ES, ru-RU, zh-Hans, pt-BR, pl-PL
upnp1 yapılırsa otomatik port yönlendirme denenir
npcstreamDüşmanların "atlamasını" azaltır, karşılığında bant genişliği kullanır; 0 kapatır
prioritySü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
ini
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=1

Aynı 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:

bash
sudo ufw allow 7777/tcp
sudo ufw allow 7777/udp

Gü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]

Vanilla sunucu konsolunda komutlar eğik çizgi olmadan yazılır. En çok kullanılanlar:

Komutİşlev
helpKomut listesini gösterir
playingBağlı oyuncuları listeler
kick &lt;isim&gt; / ban &lt;isim&gt;Oyuncuyu atar / banlar
password [şifre]Şifreyi gösterir veya değiştirir
motd [mesaj]MOTD'yi gösterir veya değiştirir
say &lt;mesaj&gt;Sunucu adına mesaj yazar
saveDünyayı kaydeder
exit / exit-nosaveKaydedip kapatır / kaydetmeden kapatır
dawn, noon, dusk, midnightOyun saatini değiştirir
settleSuları 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.Server ile başlatın. İlk açılışta veritabanı ve ayarlar için tshock klasö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 /setup ile kapatın.
text
/setup 12345
/user add kullaniciadi GucluSifre owner
/login kullaniciadi GucluSifre
/setup

Linux'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.

bash
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:

AnahtarVarsayılanAçıklama
ServerPasswordboşSunucuya katılmak için gereken şifre
ServerPort7777Sunucunun çalıştığı port
MaxSlots8Aynı anda bağlı azami istemci
ReservedSlots20Ayrılmış oyuncular için ek slot
AutoSaveTrueOyunun yerleşik otomatik kaydı
BackupInterval10Yedekler arası süre (dakika), tshock/backups klasörüne
BackupKeepFor240Yedeklerin saklanma süresi (dakika)
RequireLoginFalseOynamadan önce kayıt/giriş zorunluluğu
SpawnProtectionTrueSpawn çevresinde blok koymayı engeller
SpawnProtectionRadius10Korunan yarıçap (blok)
DefaultRegistrationGroupNamedefaultYeni kayıt olan kullanıcının grubu
DefaultGuestGroupNameguestGiriş yapmamış oyuncunun grubu
StorageTypesqliteVeritabanı türü: sqlite veya mysql
RestApiEnabledFalseREST API açık/kapalı
RestApiPort7878REST API portu
PvPModenormalnormal, always, pvpwithnoteam, disabled
EnableWhitelistFalsewhitelist.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>

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 &lt;ad&gt; [izinler]Yeni grup oluşturur
/group addperm &lt;grup&gt; &lt;izinler...&gt;Gruba izin ekler
/group delperm &lt;grup&gt; &lt;izinler...&gt;Gruptan izin kaldırır
/group parent &lt;grup&gt; &lt;üst grup&gt;Grubun üst grubunu değiştirir
/group listperm &lt;grup&gt;Grubun izinlerini listeler
/group prefix &lt;grup&gt; &lt;önek&gt;Sohbette görünen öneki ayarlar
/user group &lt;kullanıcı&gt; &lt;grup&gt;Kullanıcının grubunu değiştirir
/user password &lt;kullanıcı&gt; &lt;yeni şifre&gt;Kullanıcının şifresini değiştirir

Örnek: moderatörler için atma yetkisi olan, ama eşya spawnlayamayan bir grup kurmak:

text
/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 /login ile 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