Skip to content

Configuration

Pugmatt edited this page Jun 7, 2025 · 14 revisions

BedrockConnect can be configured through three ways:

  • Through startup arguments (e.g. java -jar BedrockConnect-1.0-SNAPSHOT.jar user_servers=false server_limit=100)

  • Configuration file, by adding the file config.yml to the root directory where your BedrockConnect jar is present, containing settings in YAML format. Example:

user_servers: false
server_limit: 100
  • Environment variables. Any setting can be defined through an environment variable, as long as it's prefixed with BC_ (e.g. BC_USER_SERVERS, BC_SERVER_LIMIT, etc)

List of settings

Setting Description Default Value
db_type Database Type to use for storing player data. (accepts values mysql, postgres, mariadb, or none) When value is none (default value), JSON files inside a 'players' folder located in the directory of the JAR file will be used for storage. none
db_host Database Host localhost
db_db Database Name bedrock-connect
db_user Database Username root
db_pass Database Password
server_limit How many servers a new player can have in their serverlist 100
port Port of the server (Should only be changed for debugging on PC. Port needs to be on 19132 for the bypass to work on game consoles) 19132
bindip IP that the BedrockConnect server will bind to 0.0.0.0
auto_reconnect If true, Make Mysql and MairaDB auto reconnect to the database when disconnected false
generatedns If true, generate a DNS zone file using user input (Only needed if you're using the mod0Umleitung DNS software) false
kick_inactive If true, players will be kicked after 10 minutes of inactivity with the serverlist UI true
custom_servers Sets the path to a custom server file, for specifying your servers in the list for all players. See custom servers.
user_servers If true, players can add and remove servers on the serverlist. If false, the options are hidden. true
featured_servers If true, the featured servers will be displayed in the serverlist. If false, the servers are hidden. true
whitelist Specify file containing list of whitelisted players. (Should be a text file with the player names specified on seperate lines)
fetch_featured_ips If true, dynamically grab the featured server IPs from the domain names. If false, a file featured_server_ips.json will be generated, containing the hard-coded featured server IPs, and to allow changing them if needed. true
fetch_ips If true, dynamically grab the server IPs from domain names, of any server a user is attempting to join. false
language Specify a file containing language customizations. See guide for changing wording
debug If true, debug level logs will display in the program output. true
motd Specify a text file containing wording for a MOTD (Message of the day) screen. Message shows before showing the server list.
motd_first_join If true, MOTD screen (if one is set) will display to new players. If false, it will only display to returning players. true
motd_cooldown Number of days to wait until showing MOTD (if one is set) to a player after they already viewed it once. (Value of 0 shows every time) 0
store_display_names If true, player displays names will be included in the stored player data. true
packet_limit Number of datagram packets each address can send within one tick (10ms) 200
global_packet_limit Number of all datagrams that will be handled within one tick (10ms) before server starts dropping any incoming data. 100000

Defining custom servers

When hosting your own serverlist server, you add your own custom servers to the top of the serverlist for all players. To get started, create a JSON file and follow this format:

[
	{
		"name": "My Custom Server 1",
		"iconUrl": "https://i.imgur.com/nhumQVP.png",
		"address": "mc1.example.com",
		"port": 19132
	},
	{
		"name": "My Custom Server 2",
		"iconUrl": "https://i.imgur.com/nhumQVP.png",
		"address": "mc2.example.com",
		"port": 19132
	}
]

You can also specify groups, such as the following format:

[
        {
		"name": "My Server Group",
		"iconUrl": "https://i.imgur.com/3BmFZRE.png",
		"content": [
			{
				"name": "Server in Group 1",
				"iconUrl": "https://i.imgur.com/3BmFZRE.png",
				"address": "mc1.example.com",
				"port": 19132
			},
		]
	},
	{
		"name": "My Custom Server 1",
		"iconUrl": "https://i.imgur.com/3BmFZRE.png",
		"address": "mc1.example.com",
		"port": 19132
	},
	{
		"name": "My Custom Server 2",
		"iconUrl": "https://i.imgur.com/3BmFZRE.png",
		"address": "mc2.example.com",
		"port": 19132
	}
]

Then, set custom_servers in your BedrockConnect configuration to the path of the json file. (e.g. Setting through an argument to your startup script: custom_servers=[path to json file])

The icon URL is not required, if omitted it will show the default icon.

Customize wording/language

For cases where you want to change the wording/language of your BedrockConnect server, you can do this by creating a JSON file in the same directory as the BedrockConnect JAR. The contents of this file should contain the parts of the wording you want to overwrite.

You can find all the options that can be overwritten here: https://github.com/Pugmatt/BedrockConnect/blob/master/serverlist-server/src/main/resources/language.json

Example custom language file:

{
	"main": {
		"heading": "My Cool ServerList",
		"connectBtn" : "Hop in a server!"
	},
	"disconnect": {
		"exit": "Goodbye!"
	}
}

Then, set language in your BedrockConnect configuration to the path of the json file. (e.g. Setting through an argument to your startup script: language=my_lang.json Replace "my_lang" with the name of your file")

Logging Settings

There's a couple of settings that can be passed-in to the startup script to customize the logging behavior.

Enable Log Files -DlogFile=true

e.g. java -DlogFile=true -jar BedrockConnect-1.0-SNAPSHOT.jar

Disable Colors -DstripColors=true

e.g. java -DstripColors=true -jar BedrockConnect-1.0-SNAPSHOT.jar

Clone this wiki locally