Тестировалось при установленной Terraia 1.4.4.9 на MacOS купленной и скачанной из Steam. Теоритически, со взломками и старыми версиями также будет работать.
Перед использованием моих скриптов нужно скачать последнюю версию TShock в папку Documents вашего мака.
Сделать это можно командой cd ~/Documents && git clone https://github.com/Pryaxis/TShock.git --recurse-submodules.
(*) чтобы команда отработала у вас должен быть установлен Git: brew install git
После установки открываете папку TShock внутри папки документов.
И добавляете туда два моих скрипта start.sh и build.sh.
В обоих скриптах нужно изменить ваш никнейм пользователя в пути до папок и файлов.
Вместо /Users/makstashkevich написать что-то свое например /Users/vasia-pupkin
Нужен для того чтобы собрать образ TShock Launcher на версию MacOS ARM.
(*) Перед запуском скрипта установите DotNET 9.0 с официального сайта https://dotnet.microsoft.com/en-us/download/dotnet
Нужен для того чтобы запустить сервер TShock на MacOS с выбранной картой.
Путь до карты нужно указывать в самом скрипте.
Скрипт запустит сервер таким образом, чтобы сервер мог работать в фоновом режиме компьютера.
Если вы закроете консоль - сервер всеравно останется работать.
Подключится к текущей консоли сервера можно всегда по команде screen -x tschock
Сервер можно перезапустить заного запустив скрипт ./start.sh
Но я рекомендую зайти в консоль сервера и прописать stop чтобы сервер правильно выключился и сохранил данные карты.
А после заного запускать сервер по необходимости.
Также не забудьте изменить путь до файла .wld вашей карты мира которая будет использоваться сервером.
Плагины сервера будут хранится в папке ~/Documents/TShock/TShockLauncher/bin/Release/net9.0/osx-arm64/ServerPlugins
Нужно зайти в настройки роутера 192.168.0.1
И добавить перенаправление портов с внутреннего айпи адреса компьютера в сети на порт 7777 по протоколу TCP.
Внутренний айпи адрес MacOS можно узнать введя команду ifconfig в консоли.
Нужно искать строку вида:
inet 192.168.0.200 netmask 0xffffff00 broadcast 192.168.0.255
Где 192.168.0.200 является внутренним айпи адресом внутри домашней сети.
Вводим переадресацию с 192.168.0.200 и порта 7777 на внешний порт 7777 (чтобы могли подключится игроки).
Сохраняем найстройки роутера.
Далее заходим на сайт 2ip.ru и отправляем друзьям наш айпи адрес для подключения.
Чтобы подключится им нужно будет ввести айпи адрес из 2ip.ru и порт 7777.
Внутренний айпи адрес и внешний будут переодически менятся, поэтому игроки не смогут подключится и надо будет производить настройку снова и игрокам довать новый айпи адрес для подключения.
Как правило, по опыту, система сбрасывается раз в 2-3 дня.
Можно использовать сервис duckdns для того чтобы автоматически менять внешний айпи адрес.
Регистрируемся на сайте.
Устанавливаем скрипт на мак командой brew install duckdns
Далее создаем файл по пути ~/.duckdns с текстом
DOMAIN="domain-name"
TOKEN="ХХХХ-ХХХХ-ХХХХ-ХХХХ"
Указываем свой домен и токен при регистрации на сервисе.
Далее сохраняем файл и запускаем скрипт командой brew services start duckdns.
Все, теперь система автоматически будет обновлять домен, чтобы тот подключался на актуальный внешний айпи адрес.
К сожалению автоматизировать обновление внутреннего айпи адреса мака не получится, поэтому если он слетит, нужно будет заходить в настройки роутера 192.168.0.1 и снова обновлять все в ручную.