59 Configuration
ME1312 edited this page 2021-07-09 01:28:10 -04:00

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