# 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 ``` ## 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 ### Discord 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