Vanilla Proxy is a simple proxy servers that enabled Packet management and protection of BDS server attacks through a end to end proxy system.
- You have all the advantages of the original BDS.
- You can modify and cancel any packets passing through the proxy using the handler system.
- You can organize the protection of your server from DDOS attacks.
- You can set the boards of the world. Blocks outside the border will not be displayed to the player. The coordinates of the corner must be divided by 16 so that the borders are displayed correctly.
- Support for a whitelist that can store the player's xbox id(xuid).
- A Player List manager that stores a players
SelfSignedID
ensuring as long as a player is signed into a XBL account, they wont get there player reset. - A priority slot system, that allows you to block off specific slots to be restricted for certain players in whitelist.
Important
You must configure BDS server.properties
to disable online-mode
and client-side-chunk-generation-enabled
- Download and install Go
- Download and run Minecraft Bedrock Dedicated Server.
- Run in the console:
git clone https://github.com/smell-of-curry/vanilla-proxy
cd vanilla-proxy
go run main.go
Configuration in the Vanilla Proxy is all managed through the config.toml. This file holds all details including database, server connection, api, world border and more.
To get started, copy the config.toml.example file and rename it to config.toml
. Inside this file you can first set the Connection
properties.
These are the most important as this is what the proxy uses to send the upstream connections too.
ProxyAddress
- This is the address that the THIS proxy server will run on. This is the address that you want people to connect too.RemoteAddress
- This is the address that the BDS server is running on. Ensure that the BDS server is running on a different port.
This vanilla proxy uses a API to fetch and set players connection details. Details such as connection IP, name, and XUID are saved for moderation capabilities.
ApiHost
- This is the API host, something likehttps://pokebedrock.com
would work.ApiKey
- This is a authentication token which will be passed as a password.
This proxy uses a database to fetch claims, and local player details that are important for operations. This must be managed to ensure the claims work correctly.
Host
- This is the host of the database, usually localhosthttp://127.0.0.1
Key
- This is the authentication key, which is passed as a password to ensure a authenticated session.Name
- This is the database name you want to connect too, it would switch between servers, something likeblack
,white
,testing
is used.Port
- This is the database port that the server is running on, which will attach toHost
when creating a request.
This proxy uses a bit of logging so that the discord and the staff team are updated on the server details. Details about sign changes, and failed to ping alerts get sent to discord webhooks to ensure the staff is alerted.
DiscordChatLogsWebhook
- this is the endpoint you want chat logs sent too.DiscordCommandLogsWebhook
- this is the endpoint where when players use commands get sent too.DiscordSignLogsIconURL
- This is a icon to be used when a sign log is sent.DiscordSignLogsWebhook
this is the destination for where sign edit logs should be sent.DiscordStaffAlertsWebhook
- this is a endpoint for staff alerts, things like failed to ping database, etc.
This is still a work in progress feature, however this configuration can allow use of custom resource packs to be downloaded by players.
PackURLs
- this is a string array of URLs that the players must download and activate to play.PackPaths
- this is a string array of pack paths that link to a folder that the player must download to play (used for local development).
Server holds less essential server configuration that changes connection aspects.
SecuredSlots
- A count of how many slots to reduce from BDS max player count, that will be reserved for players in the whitelist allowing a priority slot system.DisableXboxAuth
- specifies if authentication of players that join is disabled. If set to true, no verification will be done to ensure that the player connecting is authenticated using their XBOX Live account.Prefix
- Prefix is used to specify the current server in error logs. For exampleTESTING
would be sent with a logging endpoint to tell readers this came fromTESTING
server.ViewDistance
- Manages the distance players can view through the chunk handler. This is important for large servers.Whitelist
- If the whitelist is turned on and limiting players from joining. Whitelist can be managed through the (whitelist.json)[whitelist.json] file.
The proxy system comes with a pre-built world border that limits chunks, entities, and ticking from happening outside the world border. This is important for large servers and servers that pregenerate chunks.
Enabled
- if the world border is enabled.MaxX
&MaxZ
- Holds the Max location in the positive direction for the border, example6000
MinX
&MinZ
- Holds the Minimum location in the negative direction for the border, example-6000