mirror of
https://github.com/Sanae6/SmoOnlineServer.git
synced 2024-11-16 08:35:07 +00:00
88 lines
No EOL
3.2 KiB
Markdown
88 lines
No EOL
3.2 KiB
Markdown
# Super Mario Odyssey: Online Server
|
|
|
|
The official server for the [Super Mario Odyssey: Online](https://github.com/CraftyBoss/SuperMarioOdysseyOnline) mod.
|
|
|
|
|
|
## Windows Setup
|
|
|
|
1. Download latest build from [Releases](https://github.com/Sanae6/SmoOnlineServer/releases)
|
|
2. Run `Server.exe`
|
|
3. `settings.json` is autogenerated in step 2, modify it however you'd like.
|
|
|
|
## Building (Mac/Linux Setup)
|
|
|
|
Must have the [.NET 6 SDK](https://dotnet.microsoft.com/en-us/download) and Git installed.
|
|
Run these commands in your shell:
|
|
```shell
|
|
git clone https://github.com/Sanae6/SmoOnlineServer
|
|
cd SmoOnlineServer
|
|
# replace run with build to only build the server
|
|
dotnet run --project Server/Server.csproj -c Release
|
|
```
|
|
If you ran `dotnet build` instead of `dotnet run`, you can find the binary at `Server/bin/net6.0/Release/Server.exe`
|
|
|
|
## Running under systemd
|
|
|
|
If you have systemd, you can use the existing systemd serivce.
|
|
```shell
|
|
cp smo.serivce /etc/systemd/system/smo.service
|
|
# edit ExecStart to your path for the server executable and change WorkingDirectory to the server directory
|
|
chmod +x filepath to the server executable
|
|
systemctl enable --now smo.service
|
|
# for TTY access i would recommand conspy but there is also reptyr, chvt
|
|
```
|
|
|
|
## Run docker image
|
|
|
|
If you have [docker](https://docs.docker.com/) on your system, you can use the existing docker image.
|
|
That way you don't have to build this server yourself or manually handle executables.
|
|
|
|
```shell
|
|
docker run --rm -it -p 1027:1027 -v "/$PWD/data/://data/" ghcr.io/sanae6/smo-online-server
|
|
# on Windows, depending on the shell you're using, $PWD might not work. Use an absolute path instead.
|
|
```
|
|
|
|
To always check for and use the latest server version you can add `--pull=always` to the options.
|
|
|
|
Alternatively there's a `docker-compose.yml` for [docker-compose](https://docs.docker.com/compose/) to simplify the command line options:
|
|
```shell
|
|
# update server
|
|
docker-compose pull
|
|
|
|
# start server
|
|
docker-compose up -d
|
|
|
|
# open the server cli
|
|
docker attach `docker-compose ps -q` --sig-proxy=false
|
|
|
|
# watch server logs
|
|
docker-compose logs --tail=20 --follow
|
|
|
|
# stop server
|
|
docker-compose stop
|
|
```
|
|
|
|
## Commands
|
|
|
|
Run `help` to get what commands are available in the server console.
|
|
Run the `loadsettings` command in the console to update the settings without restarting.
|
|
Server address and port will require a server restart, but everything else should update when you run `loadsettings`.
|
|
|
|
[//]: # (TODO: Document all commands, possibly rename them too.)
|
|
|
|
## Settings
|
|
|
|
### Server
|
|
Address: the ip address of the server, default: 0.0.0.0 # this shouldn't be changed
|
|
Port: the port of the server, default 1027
|
|
Maxplayers: the max amount of players that can join, default: 8
|
|
Flip: flips the player upside down, defaults: enabled: true, pov: both
|
|
Scenario: sync's scenario's for all players on the server, default: false
|
|
Banlist: banned people are unable to join the server, default: false
|
|
PersistShines/Moons: Allows the server to remember moon progress across crashes/restarts
|
|
|
|
### Discord
|
|
Note: Token and LogChannel needs to a string puts "" around it
|
|
Token: the token of the bot you want to load into, default: null
|
|
Prefix: the bot prefix to be used, default: $
|
|
LogChannel: logs the server console to that channel, default: null |