account {type: object}
- username
{type: string}
: The in-game playername of the account - password
{type: string}
{default: ""}
: The password of the account (only required for Mojang accounts, leave it empty for Microsoft accounts. Microsoft accounts will just get instructions in the console to put a token into microsoft.com/link - auth
{type: string}
{default: "microsoft"}
: Authentication type (options: 'microsoft', 'mojang', 'offline')
discord {type: object}
- active
{type: boolean}
{default: false}
: Whether to send Discord webhooks - webhook
{type: object}
- spam
{type: string}
{default: ""}
: Url of webhook to relay position in queue, new tunnels, connects/disconnects, and other spam - livechat
{type: string}
{default: ""}
: Url of webhook to relay livechat - status
{type: string}
{default: ""}
: Url of webhook to relay pertinent info for connecting and nothing else (e.g. joining server, low queue position)
- spam
- color
{type: number}
{default: 2123412}
: Color of Discord embeds sent to the webhooks in decimal value (you can use convertingcolors.com to find the decimal value of a color you want) - id
{type: string}
{default: 0}
: ID of the Discord user or role to ping when below the queueThreshold
queueThreshold {type: number}
{default: 21}
: Minimum queue position before toast notifications & Discord pings start getting sent
reconnectInterval {type: number}
{default: 69}
: Time (in seconds) between each reconnection attempt (see: How to Auto-Reconnect with Supervisor)
uncleanDisconnectInterval {type: number}
{default: 196}
: Time (in seconds) proxy will go without getting a single packet from 2B2T before assuming it was uncleanly disconnected and initiating a reconnect attempt
log {type: object}
- active
{type: object}
: Settings for which logging categories should be enabled- error
{type: boolean}
{default: true}
: Whether to log errors - proxy
{type: boolean}
{default: true}
: Whether to log proxy status (e.g. connecting to server, starting Mineflayer, etc.) - chat
{type: boolean}
{default: true}
: Whether to log chat - bridgeClientPackets
{type: boolean}
{default: true}
: Whether to log packets being sent from the controller to the proxy - serverPackets
{type: boolean}
{default: true}
: Whether to log packets being sent from 2b2t to the proxy - mineflayer
{type: boolean}
{default: false}
: Whether to log high-level Mineflayer events, if the Mineflayer bot is active (e.g. player join/leave, items, etc.)
- error
- cutoff
{type: number}
{default: 69000}
: Maximum size a log file can be (in bytes) before it gets split up - packetFilters
{type: object}
: Settings for which packets we shouldn't log- server
{type: array}
{default: ["map","map_chunk","player_info","entity_metadata","entity_velocity","entity_move_look","entity_look","update_time","world_particles","unload_chunk","teams","rel_entity_move","entity_head_rotation","entity_update_attributes","block_change"]}
: Packets being sent from 2b2t to not log - bridgeClient
{type: array}
{default: ["position","look","position_look","arm_animation","keep_alive"]}
: Packets being sent from the controller to not log
- server
- compression
{type: object}
: Settings for log compression. Tweak with caution. The default options maximize memory usage for the fastest speed- active
{type: boolean}
{default: false}
: [Warning, Event Thread-Blocking!] Whether to compress log files with Gzip. Leave this off unless you have a really good reason to enable it - level
{type: number}
{default: 1}
: How much compression to apply between 1 and 9. Higher values result in better compression ratio at the expense of speed ([Warning, Event Thread-Blocking!]) - memLevel
{type: number}
{default: 9}
: How much memory to allocate to the internal compression state between 1 and 9. Higher values result in better compression ratio and speed at the expense of memory usage - windowBits
{type: number}
{default: 15}
: How much memory to allocate to the history buffer between 8 and 15. Higher values result in better compression ratio at the expense of memory usage
- active
- alwaysIncrement
{type: boolean}
{default: false}
: Whether to increment the log file every session (can lead to thousands of 1kb log files in production, but is pretty useful when rapidly testing during development)
server {type: object}
: Settings for how the proxy connects to the server
- host
{type: string}
{default: "connect.2b2t.org"}
: Address of the server to connect to - version
{type: string}
{default: "1.12.2"}
: Version of Minecraft the server is on - port
{type: number}
{default: 25565}
: Port of the server to connect to
proxy {type: object}
: Settings for how you connect to the proxy
- active
{type: boolean}
{default: true}
: Whether to allow players to control the account by connecting through a tunnel - whitelist
{type: array}
: Playernames of accounts that are allowed to connect to the proxy - onlineMode
{type: boolean}
{default: true}
: Whether to enable online-mode on the proxy. This probably should never be touched - loopbackAddress
{type: string}
{default: "127.0.0.1"}
: Loopback address to connect to the proxy. (options: '127.0.0.1', 'localhost', '0.0.0.0', '::1') - port
{type: number}
{default: 25565}
: Port on the machine to connect to the proxy
ngrok {type: object}
: Settings for ngrok tunneling
- active
{type: boolean}
{default: false}
: Whether to create an ngrok tunnel - authtoken
{type: string}
{default: ""}
: The auth token for your Ngrok.io account - region
{type: string}
{default: "us"}
: Tunnel region (options: 'us', 'eu', 'au', 'ap', 'sa', 'jp', or 'in')
mineflayer {type: object}
: Settings for the mineflayer bot
- active
{type: boolean}
{default: true}
: Whether to enable Mineflayer - autoQueueMainInterval
{type: number}
{default: 690}
: Time (in seconds) between every/queue main
command - killAura
{type: object}
: Settings for killaura - autoEat
{type: object}
: Settings for autoeat- priority
{type: string}
{default: "saturation"}
: What type of food to prioritize eating (options: 'saturation', 'foodPoints', 'effectiveQuality') - startAt
{type: number}
{default: 19}
: Hunger level at which to start eating - eatingTimeout
{type: number}
{default: 6969}
: Maximum time (in ms) the proxy will attempt to eat an item before giving up - bannedFood
{type: array}
{default: ["rotten_flesh","pufferfish","chorus_fruit","poisonous_potato","spider_eye"]}
: Foods that will not be eaten - ignoreInventoryCheck
{type: boolean}
{default: false}
: Whether to disable inventory window click confirmation as a dirty hack to get around ViaBackwards' protocol noncompliance - checkOnItemPickup
{type: boolean}
{default: true}
: Whether to attempt to eat food that's picked up when below the startAt threshold - offhand
{type: boolean}
{default: false}
: Whether to use the offhand slot to eat food - equipOldItem
{type: boolean}
{default: true}
: Whether to reequip the previously held item after eating
- priority
- antiAfk
{type: object}
: Settings for antiafk- actions
{type: array}
{default: ["rotate"]}
: Actions the proxy can do (options: 'rotate', 'walk', 'jump', 'jumpWalk', 'swingArm', 'breakBlock') - fishing
{type: boolean}
{default: false}
: Whether the proxy will fish. The account must be standing in water and have a fishing rod to autofish. - chatting
{type: boolean}
{default: false}
: Whether the proxy will chat - chatMessages
{type: array}
{default: ["!pt","!queue"]}
: Chat messages that the proxy will send if chatting is enabled - chatInterval
{type: number}
{default: 690420}
: Time (in milliseconds) between each chat message
- actions
- autoTotem
{type: object}
: Settings for autototem- interval
{type: number}
{default: 50}
: Time (in milliseconds) between each totem equip attempt
- interval
experimental {type: object}
: Settings for experimental features that may be more unstable in resource usage and/or server and version parity
- spoofPlayerInfo
{type: object}
- active
{type: boolean}
{default: true}
: Whether to spoof the Player Info packet to set a custom skin - texture
{type: object}
- value
{type: string}
{default: ""}
: Base64 string of skin from https://sessionserver.mojang.com/session/minecraft/profile/?unsigned=false - signature
{type: string}
{default: ""}
: Base64 string of signed data using Yggdrasil's private key from https://sessionserver.mojang.com/session/minecraft/profile/?unsigned=false
- value
- active
- spoofPing
{type: object}
- active
{type: boolean}
{default: false}
: Whether to spoof the Status Response packet when pinging the proxy server - noResponse
{type: boolean}
{default: false}
: Whether to cancel the response entirely. Otherwise, the packet described in fakeResponse will be sent. - fakeResponse
{type: object}
- version
{type: object}
- name
{type: string}
{default: "1.12.2"}
: Spoofed server version - protocol
{type: number}
{default: 340}
: Spoofed protocol number
- name
- players
{type: object}
- description
{type: object}
- text
{type: string}
{default: "A Minecraft server"}
: Spoofed MOTD
- text
- favicon
{type: string}
{default: "undefined"}
: Spoofed Base64-encoded 64x64 png favicon
- version
- active
- disconnectIfNoController
{type: object}
- active
{type: boolean}
{default: false}
: Whether to disconnect if noone is controlling the proxy disconnectIfNoController.delay seconds after a controller disconnects from the proxy while it isn't in queue - delay
{type: number}
{default: 7}
: How long to wait (in seconds) after a controller disconnects from the proxy while it isn't in queue before disconnecting from the server
- active
- worldDownloader
{type: object}
- active
{type: boolean}
{default: false}
: [Warning, Event Thread-Blocking!] Whether to use the experimental world downloader - compression
{type: object}
: Settings for packet archive compression. Tweak with caution. The default options maximize memory usage for the fastest speed- level
{type: number}
{default: 1}
: How much compression to apply between 1 and 9. Higher values result in better compression ratio at the expense of speed ([Warning, Event Thread-Blocking!]) - memLevel
{type: number}
{default: 9}
: How much memory to allocate to the internal compression state between 1 and 9. Higher values result in better compression ratio and speed at the expense of memory usage - windowBits
{type: number}
{default: 15}
: How much memory to allocate to the history buffer between 8 and 15. Higher values result in better compression ratio at the expense of memory usage
- level
- active
- maxThreadpool
{type: object}
- active
{type: boolean}
{default: true}
: Whether to set UV_THREADPOOL_SIZE to use all possible CPU logic cores
- active
- syncGamestate
{type: object}
- active
{type: boolean}
{default: true}
: Send fake packets to attempt to sync gamestate
- active
waitForControllerBeforeConnect {type: boolean}
{default: false}
: Whether the proxy will wait for someone to take control before it connects to the server
notify {type: object}
: Settings for what the proxy will send notifications about
- whenJoining
{type: boolean}
{default: true}
: Whether to send a toast notification and status webhook message when the proxy joins the server from queue - whenBelowQueueThreshold
{type: boolean}
{default: true}
: Whether to send a toast notification and status webhook message when the proxy dips below positionqueueThreshold
in queue - whenControlling
{type: boolean}
{default: false}
: Whether to send a status webhook message when a controller connects and disconnects from the proxy
noCliGui {type: boolean}
{default: false}
: Whether to disable the cli gui
coordination {type: object}
: Settings for coordinating multiple proxies
- active
{type: boolean}
{default: false}
: Whether to use a master config file and coordinator - path
{type: string}
{default: "./../"}
: Path to the folder where the shared master-config.json and coordinator.flag files should go