Addons

Client integrations, Discord status and mod rules as proxy plugins that MuteCloud downloads, configures and switches for you.

Addons are proxy plugins that MuteCloud downloads, configures and switches on command. They are placed in the plugins folder of the topmost template of the proxy group.

addon
addon install labymod
addon enable labymod
addon disable labymod
AddonWhat it doesSettings
labymodshows the current server in Discord and in the LabyMod client[labymod] in network.toml
featherDiscord status and blocked mods in the Feather and Dawn clients[feather] in network.toml
noriskgame mode in the NoRisk Client, turns off client modules[norisk] in network.toml
badlionblocks mods in the Badlion Client and limits clicks per second[badlion] in network.toml
lunarApollo, the server interface of the Lunar Clientin the plugin itself
shieldthe built-in shield in front of the proxies[shield] in network.toml

addon shows for each addon whether it is missing, ready, disabled or running. disable renames the file to .disabled instead of deleting it, enable brings it back. For labymod, feather, norisk and badlion this also switches the matching section in network.toml.

shield is not a plugin but part of the cloud. addon install shield is therefore not needed; addon enable shield and addon disable shield switch [shield] in network.toml and add the shield to the proxy template or remove it. The details are on the shield page.

Taking effect

An addon changes the proxy's template, and a proxy only picks up a changed template on its next start. Because all players briefly lose their connection when that happens, the cloud waits for approval on proxies by default:

groups Proxy rollout

Until then groups shows a note that approval is required, and a rollout-waiting alert is sent every five minutes. If you do not want this, switch the group with groups Proxy set rollout auto. Other groups renew themselves by default, server by server.

LabyMod

network.toml
[labymod]
enabled = true
discord = "on {server}"
gamemode = "{group}"
banner = ""
subtitle = ""
timer = true
address = ""
names = { BedWars = "Bed Wars" }

discord is the text in Discord, gamemode the game mode in the client, banner the URL of an image above the tab list, subtitle a line below the player name, and timer shows in Discord how long someone has been playing. Available placeholders are {server}, {group}, {player}, {online}, {address}, {state} and {map}. The values are sent to the client on join, shortly after every server switch and whenever the state or map changes.

{address} is the address from address. If it stays empty, it is the address the player joined with, for example play.example.net. {state} and {map} are reported by the game server itself, with MuteCloud.setState("INGAME") and MuteCloud.setProperty("map", "Island"). If it reports nothing, they stay empty and double spaces disappear. Under names a group gets a display name that {group} then stands for, so discord = "{group} on {map}" becomes "Bed Wars on Island".

The addon runs as its own plugin next to the Velocity bridge and stays silent without it.

Feather and Dawn

network.toml
[feather]
enabled = true
details = "{group}"
state = "on {address}"
image = ""
image_text = ""
timer = true
address = ""
names = { BedWars = "Bed Wars" }
blocked_mods = ["perspective"]
disabled_mods = ["zoom"]

details and state are the two lines in Discord, image the URL of an image with image_text as its tooltip, and timer shows how long someone has been playing. Placeholders, address and names work as with LabyMod. blocked_mods blocks mods that players cannot turn back on, disabled_mods only turns them off. The names are the short names from the Dawn mod list, such as perspective, zoom or minimap. The rules are sent on join, the Discord status also after every server switch and whenever the state or map changes.

The addon speaks the protocol directly on the proxy, nothing is needed on the game servers. It contains the messaging library of the Dawn Server API (Apache-2.0). If the official Dawn plugin also runs on a game server, keep [feather] off, otherwise the proxy answers the handshake and the plugin never sees it.

NoRisk

network.toml
[norisk]
enabled = true
gamemode = "{group} on {map}"
address = ""
names = {}
disabled_modules = ["ZOOM", "FULLBRIGHT"]

gamemode replaces the game mode shown in the NoRisk Client and uses the same placeholders as LabyMod. disabled_modules turns off client modules on join. Possible values are ZOOM, FREELOOK, FULLBRIGHT, KEYSTROKES, FPS, CPS, COORDINATES, ARMOR_STATUS, POTION_EFFECTS and HOTBAR. This applies to the current session, after restarting the client players can turn them back on. NoRisk offers neither a Discord status nor permanent blocking.

Badlion

network.toml
[badlion]
enabled = true
cps_left = 20
cps_right = 0
disabled_mods = []

From this the cloud writes plugins/BadlionClientModAPI/config.json into the proxy template and keeps it up to date. cps_left and cps_right become clicksPerSecondLimit and clicksPerSecondLimitRight there; 0 leaves the Badlion plugin without a limit. disabled_mods takes the mod names exactly as the Badlion plugin expects them in modsDisallowed.

On this page