Table of Contents
This page explains how to configure the SubServers 2 Add-ons. This page will remain updated to the latest snapshot version. Options are all assumed to be required unless otherwise noted.
Topics on This Page:
SubServers.Bungee
SubServers.Host
SubServers.Sync
SubServers.Client
Value Types
The text in square brackets represents the type of value expected. The word List
defines a list of values of the type before the word. When multiple are specified, you may chose whichever one is the most convenient. The following value types are used on this page:
Address
- A String containing an IPv4 address ('127.0.0.1'
)
Address Mask
- A String containing an IPv4 address and Subnet mask ('192.168.0.0/16'
)
Boolean
- A value which can only be true
or false
Colored String
- A String that parses color codes ('&b&lHello There!'
)
Enum Value
- A String value that matches one from a predefined set
File Path
- A String value representing a file path. Relative paths begin from the working directory unless otherwise specified.
Item
- A String that represents an item in-game ('1:6'
, 'minecraft:polished_andesite'
)
Integer
- A number value
Integer Range
- Two Integers representing any number between them (25500-25559
)
Object
- A group containing other settings
Socket Address
- A String containing an IPv4 address and port number ('127.0.0.1:25565'
)
String
- A text value ('Hello There!'
)
Version
- A String that accepts version formatting ('2.13a/pr4'
)
Value Modifiers
The text in parenthesis is the modifier of the value. The following modifiers are used on this page:
System
- The system set this value, so it is not recommended for you to change it
Required
- The value is required for SubServers to function normally
Optional
- The value is not required for SubServers to function normally
<Platform> Only
- The value is only required to be correct on a specific platform. All other platforms can safely ignore this value.
SubServers.Bungee
/config.yml (Bungee Configuration)
This is the main configuration file for BungeeCord itself. For values not added or modified by SubServers, please refer to the BungeeCord configuration documentation.
servers:
Lobby:
display: 'TheHub'
group:
- 'ExampleGroup'
motd: '&1Just another BungeeCord - Forced Host'
address: localhost:25565
restricted: false
hidden: false
extra: {}
servers
[Object]: Settings for each Server. It is required that you have at least one server defined here for BungeeCord to start. Note that servers defined here may be overridden by SubServers with the same name. When this happens, the configuration options for the SubServer will overwrite the options saved here; making the content of these values redundant.
<Server Name>
[Object]: The name of this group of settings is the name of your server
display
[String] (Optional): Set the display name for the server
group
[String List] (Optional): Set what groups the server is in (Creates new groups if needed)
motd
[Colored String]: Set the MOTD of the server
address
[Socket Address]: Tell BungeeCord how to connect to the server
restricted
[Boolean]: Require players to have a permission to be able join the server
hidden
[Boolean] (Optional): Hide the server from server list commands like /server
extra
[Object] (Optional): A key/value store of data that plugins can make use of
/SubServers/config.yml (Global Configuration)
This is the main configuration file for the SubServers platform. Other add-ons use settings in this configuration in addition to their own to work properly.
Settings:
Version: '00w00a'
Strict-Server-Linking: true
Disabled-Overrides:
- '/server'
Smart-Fallback:
Enabled: true
Fallback: true
Reconnect: false
DNS-Forward: false
UPnP:
Forward-Proxy: true
Forward-SubData: false
Forward-Servers: false
SubData:
Address: '0.0.0.0:4391'
Password: 'default'
Encryption: 'RSA/AES'
Whitelist:
- '127.0.0.1'
- '192.168.0.128/25'
- '192.168.1.0/24'
Settings
[Object]: Settings for the SubServers.Bungee add-on
Version
[Version] (System): Configuration version
Strict-Server-Linking
[Boolean]: Keeps servers from creating new connection definitions during server linking
Disabled-Overrides
[String List]: Disables certain features that SubServers overrides by name. Valid values:
-> /server
: SubServers' version of /server
-> /glist
: SubServers' version of /glist
Smart-Fallback
[Object]: Settings for the smarter, confidence-based server fallback system
Enabled
[Boolean]: Enables Smart-Fallback for when you join initially
Fallback
[Boolean]: Reroutes you to a fallback server when the server you're on goes down
Reconnect
[Boolean]: Saves the server you were last on (Requires the reconnect_yaml
module)
DNS-Forward
[Boolean]: Routes you based on the address that was entered (pvp.me1312.net
-> PvP
)
UPnP
[Object]: Automatic Port Forwarding Options
Forward-Proxy
[Boolean]: Whether or not to forward the proxy's listeners
Forward-SubData
[Boolean]: Whether or not to forward SubData
Forward-Servers
[Boolean]: Whether or not to forward the SubServers
SubData
[Object]: Settings for the SubData Server
Address
[Socket Address]: Address for SubData to listen on (0.0.0.0
for all addresses)
Password
[String] (Optional): Password for incoming AES connections
Encryption
[Enum Value]: Set which cipher to use for encrypting SubData. Valid values include, but are not limited to:
-> NONE
: Disables encryption
-> AES
: An alias for AES-128
-> AES-128
-> AES-192
-> AES-256
-> RSA/AES
: An alias for RSA-2048/AES-128
-> RSA-2048/AES-128
-> RSA-3072/AES-192
-> RSA-4096/AES-256
Whitelist
[Address Mask List]: Whitelist addresses SubServers doesn't know about. You can use simple addresses or you can select groups of addresses using CIDR notation.
Hosts:
'~':
Enabled: true
Display: 'Default'
Driver: 'VIRTUAL'
Address: '127.0.0.1'
Port-Range: 25500-25559
Directory: './SubServers/Servers'
Git-Bash: '%ProgramFiles%\Git'
Log-Creator: true
Extra: {}
Hosts
[Object]: Settings for each Host
<Host Name>
[Object]: The name of this group of settings is the name of the host
Enabled
[Boolean]: Whether this host is enabled
Display
[String] (Optional): Set the display name for of host
Driver
[Enum Value]: Set which driver this host should use. Valid values include, but are not limited to:
-> VIRTUAL
: For hosting servers from the same machine
-> NETWORK
: For use with SubServers.Host
Address
[Address]: The address of this host. All subservers on this host will use this address.
Port-Range
[Integer Range]: A range of ports to be auto selected from when no port number is supplied to SubCreator
Directory
[File Path]: Path to where the servers will be saved on the machine
Git-Bash
[File Path] (Windows Only): Path to the install location of Git Bash. This value can include system variables.
Log-Creator
[Boolean]: Whether SubCreator should log the output of it's scripts to console
Extra
[Object] (Optional): A key/value store of data that plugins can make use of
/SubServers/servers.yml (Global Configuration)
This is the configuration file that defines the SubServers themselves. Other add-ons use settings in this configuration in addition to their own to work properly.
Settings:
Version: '00w00a'
Run-On-Launch-Timeout: 15
Servers:
'Example':
Enabled: false
Display: 'MyCoolServer'
Host: '~'
Template: 'Vanilla'
Group:
- 'ExampleGroup'
Port: 25567
Motd: '&aThis is a SubServer'
Log: true
Directory: './Example'
Executable: 'java -Djline.terminal=jline.UnsupportedTerminal -jar Spigot.jar'
Stop-Command: 'stop'
Stop-Action: 'NONE'
Run-On-Launch: false
Restricted: false
Incompatible:
- 'OtherServer'
Hidden: false
Extra: {}
Settings
[Object]: Settings for the SubServers.Bungee add-on
Version
[Version] (System): Configuration version
Run-On-Launch-Timeout
[Integer] (Optional): The amount of seconds the auto-starter should wait for a SubData connection from a subserver before moving on to the next one
Servers
[Object]: Settings for each SubServer
<Server Name>
[String]: The name of this group of settings is the name of your subserver
Enabled
[Boolean]: Whether this subserver is enabled
Display
[String] (Optional): Set the display name of this subserver
Host
[Enum Value]: Set which host this subserver belongs to
Template
[Enum Value] (Optional): Set which template created this subserver
Group
[String List] (Optional): Set what groups the subserver is in (Creates new groups when needed)
Port
[Integer]: Set the port number to connect to this subserver with
Motd
[Colored String]: Set the MOTD of the subserver
Log
[Boolean]: Whether this subserver should log to console
Directory
[File Path]: The path to the server directory relative to the path set by the host
Executable
[File Path/String]: A command to execute or the path to a script to execute relative to the directory set above. This value can use the following variables in addition to the system's own:
-> java
: The full path of the current java executable
-> name
: The name of the server
-> host
: The host this server belongs to
-> address
: The bind address of the host
-> port
: The port number of the server
Stop-Command
[String]: A command that will shutdown the server program
Stop-Action
[Enum Value]: Set what should happen after the server stops. Valid values:
-> NONE
: Do nothing on stop
-> RESTART
: Restart if it stopped unexpectedly
-> REMOVE_SERVER
: Remove the server from memory on stop
-> RECYCLE_SERVER
: Move the server files to 'Recently Deleted' on stop
-> DELETE_SERVER
: Delete the server files on stop
Run-On-Launch
[Boolean]: Whether this subserver will start as soon as it's loaded
Restricted
[Boolean]: Require players to have a permission to be able join the subserver
Incompatible
[Enum Value List] (Optional): List of subservers that cannot be run at the same time as this one
Hidden
[Boolean] (Optional): Hide the server from subserver list commands like /server
Extra
[Object] (Optional): A key/value store of data that plugins can make use of
/SubServers/lang.yml (Global Language File)
This a language file containing all messages that are visible to players. It is updated quite frequently and is pretty self explanatory in it's structure. Everything in the Lang
object is a Colored String that you may change as needed.
/SubServers/Templates/<Template Name>/template.yml
SubCreator Templates have their own directory structure and template configurations. This is covered in-depth on the SubCreator page.
SubServers.Host
/config.yml
Settings:
Version: '00w00a'
Console-Log: true
Network-Log: true
Download-Templates: true
Server-Bind: '127.0.0.1'
UPnP:
Forward-Servers: false
SubData:
Name: 'ExampleHost'
Address: '127.0.0.1:4391'
Password: 'default'
Settings
[Object]: Settings for the SubServers.Host add-on
Version
[Version] (System): Configuration version
Console-Log
[Boolean]: Whether SubCreator/SubServers should log to the console
Network-Log
[Boolean]: Whether SubCreator/SubServers should send log messages to SubServers.Bungee over the network.
Download-Templates
[Boolean]: Whether SubCreator should download templates from SubServers.Bungee over the network.
Server-Bind
[Address]: Local address for servers created by SubCreator to bind to
UPnP
[Object]: Automatic Port Forwarding Options
Forward-Servers
[Boolean]: Whether or not to forward the SubServers
SubData
[Object]: Settings to connect to SubData with
Name
[Enum Value]: The name of the Host as defined in the global configuration. Additionally, the host specified needs to be equipped with a driver that can handle a SubData connection.
Address
[Socket Address]: The address to connect to the SubData Server with
Password
[String] (Optional): The password to login with AES
SubServers.Sync
/SubServers/sync.yml
Settings:
Version: '00w00a'
Disabled-Overrides:
- '/server'
Smart-Fallback:
Enabled: true
Fallback: true
Reconnect: false
DNS-Forward: false
UPnP:
Forward-Proxy: true
SubData:
Name: 'ExampleProxy'
Address: '127.0.0.1:4391'
Password: 'default'
Settings
[Object]: Settings for the SubServers.Sync add-on
Version
[Version] (System): Configuration version
Disabled-Overrides
[String List]: Disables certain features that SubServers overrides by name. Valid values:
-> /server
: SubServers' version of /server
-> /glist
: SubServers' version of /glist
Smart-Fallback
[Object]: Settings for the smarter, confidence-based server fallback system
Enabled
[Boolean]: Enables Smart-Fallback for when you join initially
Fallback
[Boolean]: Reroutes you to a fallback server when the server you're on goes down
Reconnect
[Boolean]: Saves the server you were last on (Requires the reconnect_yaml
module)
DNS-Forward
[Boolean]: Routes you based on the address that was entered (pvp.me1312.net
-> PvP
)
UPnP
[Object]: Automatic Port Forwarding Options
Forward-Proxy
[Boolean]: Whether or not to forward the proxy's listeners
SubData
[Object]: Settings to connect to SubData with
Name
[String] (Optional): The name that this proxy will be registered with. If this value is not present it will use a randomly generated UUID.
Address
[Socket Address]: The address to connect to the SubData Server with
Password
[String] (Optional): The password to login with AES
Sync:
Disabled-Commands: false
Forced-Hosts: true
Motd: false
Player-Limit: false
Server-Priorities: true
Sync
[Object] (Optional): Additional options to be synced from SubServers.Bungee
Disabled-Commands
[Boolean]: Sync disabled_commands
(BungeeCord)
Forced-Hosts
[Boolean]: Sync forced_hosts
(BungeeCord)
Motd
[Boolean]: Sync motd
(BungeeCord)
Player-Limit
[Boolean]: Sync player_limit
and max_players
(BungeeCord)
Server-Priorities
[Boolean]: Sync priorities
(BungeeCord)
SubServers.Client
<Plugin Directory>/config.yml
This configuration remains the same on all server platforms for ease of use.
Settings:
Version: '00w00a'
API-Only-Mode: false
Allow-Deletion: false
Show-Addresses: false
Use-Title-Messages: true
PlaceholderAPI-Ready: false
PlaceholderAPI-Cache-Interval: 300
Connect-Address: '192.168.1.34'
SubData:
Name: 'Example'
Address: '127.0.0.1:4391'
Password: 'default'
Settings
[Object]: Settings for the SubServers.Client plugin
Version
[Version] (System): Configuration version
API-Only-Mode
[Boolean]: Whether the interface and commands will be available (toggles API-only mode)
Allow-Deletion
[Boolean]: Enables the /sub delete
command on this server
Show-Addresses
[Boolean]: Toggle server addresses' visibility in the interface
Use-Title-Messages
[Boolean]: Toggle the use of title messages in the interface
PlaceholderAPI-Ready
[Boolean]: Starts caching for PAPI immediately instead of waiting for a placeholder to be used
PlaceholderAPI-Cache-Interval
[Integer] (Optional): Adjusts how quickly PAPI refreshes this cache (in seconds)
Connect-Address
[Address] (Optional): The address with which proxies will route players to connect to this server
SubData
[Object]: Settings to connect to SubData with
Name
[Enum Value] (Optional): The name of the Server as defined in the global or bungee configuration. When this value is not present the server will try to guess which server this connection belongs to using it's address and port number. If this fails, this value becomes required.
Address
[Socket Address]: The address to connect to the SubData Server with
Password
[String] (Optional): The password to login with AES