# Configuration file ## Location The configuration file is automatically created in the working directory. The file name is `config.json`. ## Example This is an example configuration file with two servers. Remember to install [the chat command plugin](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands) and to configure the permissions. ```json { "Servers": { "ServerName1": { "Addr": "minetest.local:30000" }, "ServerName2": { "Addr": "minetest.local:30001" } } } ``` ## Format The configuration file contains JSON data. The fields are as follows. > `NoPlugins` ``` Type: bool Default: false Description: Plugins are not loaded if this is true. ``` > `CmdPrefix` ``` Type: string Default: ">" Description: A chat message is handled as a chat command if it is prefixed by this. ``` > `RequirePasswd` ``` Type: bool Default: false Description: Empty passwords are rejected if this is true. ``` > `SendInterval` ``` Type: float32 Default: 0.09 Description: The recommended send interval for clients. The proxy itself doesn't have a fixed send interval. ``` > `UserLimit` ``` Type: int Default: 10 Description: The maximum number of players that can be connected to the proxy at the same time. ``` > `AuthBackend` ``` Type: string Default: "files" Values: "files" Description: The authentication backend to use. Files are the only option at the moment. This mainly exists for future expandability. ``` > `NoTelnet` ``` Type: bool Default: false Description: The telnet server is not started if this is true. ``` > `TelnetAddr` ``` Type: string Default: "[::1]:40010" Description: The telnet server will listen for new clients on this address. ``` > `BindAddr` ``` Type: string Default: ":40000" Description: The proxy will listen for new clients on this address. ``` > `Servers` ``` Type: map[string]Server Default: map[string]Server{} Description: The list of internal servers served by this proxy. The first server is the default server new clients are connected to. It also acts as a fallback server if a connection to another server fails or closes. ``` > `Server.Addr` ``` Type: string Default: "" Description: The network address and port of an internal server. ``` > `Server.MediaPool` ``` Type: string Default: Server name (map key) Description: The media pool this server is part of. See [media_pools.md](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/media_pools.md) for more information. ``` > `Server.Fallbacks` ``` Type: []string Default: []string{} Description: The names of the servers a client should fall back to if this server shuts down or crashes gracefully. Connection attempts are made in the order in which the servers are given. As soon as a connection is successful the other fallback servers in this list will be ignored. ``` > `ForceDefaultSrv` ``` Type: bool Default: false Description: Players are connected to the default server instead of the server they were playing on if this is true. ``` > `CSMRF` ``` Type: CSMRF Default: CSMRF{} Description: The CSM Restriction Flags to send to clients. Don't rely on this since it can trivially be bypassed. ``` > `CSMRF.NoCSMs` ``` Type: bool Default: false Description: Loading CSMs is disabled if this is true. ``` > `CSMRF.ChatMsgs` ``` Type: bool Default: false Description: CSMs can send chat messages if this is true. ``` > `CSMRF.ItemDefs` ``` Type: bool Default: false Description: CSMs can read item definitions. ``` > `CSMRF.NodeDefs` ``` Type: bool Default: false Description: CSMs can read node definitions. ``` > `CSMRF.NoLimitMapRange` ``` Type: bool Default: false Description: CSMs can look nodes up no matter how far away they are. ``` > `CSMRF.PlayerList` ``` Type: bool Default: false Description: CSMs can access the player list. ``` > `MapRange` ``` Type: uint32 Default: 0 Description: The maximum distance from which CSMs can read the map. ``` > `FallbackServers` ``` Type: []string Default: []string{} Description: General Fallback servers if server stopps and clients are connected. ``` > `DropCSMRF` ``` Type: bool Default: false Description: Servers cannot override CSM Restriction Flags if this is true. ``` > `Groups` ``` Type: map[string][]string Default: map[string][]string{} Description: The list of permission groups. ``` > `Groups[k]` ``` Type: []string Default: []string{} Description: The list of permissions the group has. ``` > `UserGroups` ``` Type: map[string]string Default: map[string]string{} Description: This sets the group of a user. ``` > `UserGroups[k]` ``` Type: string Default: "default" Description: The group of the user. ``` > `List` ``` Type: List Default: List{} Description: This contains information on how to announce to the server list. ``` > `List.Enable` ``` Type: bool Default: false Description: If this is set to true server list announcements are sent. ``` > `List.Addr` ``` Type: string Default: "" Description: The base URL of the list server. ``` > `List.Interval` ``` Type: int Default: 300 Description: The interval between server list announcements. ``` > `List.Name` ``` Type: string Default: "" Values: Any non-zero string Description: The name to be displayed on the server list. ``` > `List.Desc` ``` Type: string Default: "" Description: The description for the server list. ``` > `List.URL` ``` Type: string Default: "" Description: The website for this server. ``` > `List.Creative` ``` Type: bool Default: false Description: The creative server list flag. ``` > `List.Dmg` ``` Type: bool Default: false Description: The damage server list flag. ``` > `List.PvP` ``` Type: bool Default: false Description: The PvP server list flag. ``` > `List.Game` ``` Type: string Default: "" Description: The subgame displayed on the server list. ``` > `List.FarNames` ``` Type: bool Default: false Description: The server list flag that shows whether far players are visible. ``` > `List.Mods` ``` Type: []string Default: []string{} Description: The list of mods to be displayed on the server list. ```