RoodyProxy · Archivos
config.yml
# ============================================================
# RoodyProxy · config.yml · by Roody
# Texts: lang/<language>.yml. /rproxy reload reloads this file, lang/
# and the modules. storage, redis and proxy-id need a proxy restart.
# ============================================================
# Language of the messages: the name of a file in lang/ (en, es, or your own). Kick screens,
# the console and Discord posts use this language.
language: en
# true = each player sees the messages in their Minecraft language when lang/ has that file
# (es_es.yml or es.yml...). On Discord, replies to slash commands and buttons use the language
# of each user's Discord client the same way.
per-player-language: false
# More names for each command. If another plugin already uses a name, that plugin keeps it.
command-aliases:
roodyproxy: [rproxy]
lobby: [hub]
glist: []
plist: []
proxy: []
pproxy: []
find: []
send: []
alert: []
maintenance: []
staffchat: [sc]
adminchat: [ac]
scmute: []
acmute: []
stafflist: [slist]
inspect: []
helpop: []
helpops: []
helpop-claim: []
helpop-reply: []
helpop-close: []
report: []
reports: []
report-claim: []
report-reply: []
report-close: []
ticket: []
stafftop: [topstaff]
msg: [tell, w]
reply: [r]
ignore: []
msgtoggle: []
socialspy: []
msglog: []
friend: [f]
link: []
unlink: []
linked: []
stream: []
streams: []
twitch: []
youtube: []
tiktok: []
# Name of this proxy. With several proxies, each one needs a different one.
proxy-id: "proxy-1"
# Time zone for the dates of /msglog and /inspect ("" = the system's). Example: Europe/Madrid
time-zone: ""
storage:
# mongodb or memory (memory keeps nothing after a restart: only for tests).
type: mongodb
mongodb:
uri: "mongodb://localhost:27017"
database: "RoodyProxy"
# Several proxies. With a single proxy leave it off.
redis:
enabled: false
host: "127.0.0.1"
port: 6379
password: ""
database: 0
ssl: false
modules:
# Lobbies: where players go, what happens when they are kicked, and /lobby (/hub).
lobbies:
enabled: true
servers:
- "lobby-1"
# Login servers: being kicked from here disconnects you, and leaving here takes you to
# the emptiest lobby.
ignored:
- "auth"
# Every how many seconds the lobbies are pinged to know which ones are up.
ping-seconds: 10
# Failed connections in a row (the kick included) before disconnecting the player.
max-failures: 3
# Maximum seconds without a server after a kick. 0 = no limit.
max-limbo-seconds: 60
# Joining the network and the commands glist, plist, proxy, pproxy, find, send, alert.
network:
enabled: true
# "minimum", "latest" or a version ("1.18.2").
min-version: "minimum"
max-version: "latest"
# When someone with that name is already connected:
duplicate-session:
# the old session is replaced by the new one if it comes from the same IP,
replace-same-ip: true
# or if the old one has been without a server (stuck) for these seconds.
replace-without-server-seconds: 20
# Bedrock players (Floodgate), recognised by the prefix of their name. Needs LuckPerms.
bedrock:
enabled: false
prefix: "."
add-permissions: []
remove-permissions: []
# Maintenance mode (/maintenance enable [seconds] | disable).
maintenance:
enabled: true
# Seconds of the countdown when everyone is warned.
warnings: [120, 60, 30, 15, 10, 5, 3, 2, 1]
# Same variables as the MOTD: {online}, {max}, {proxy}, {countdown_<id>}
motd:
enabled: true
motd: "<red><bold>Maintenance</bold><newline><gray>We will be back soon."
version: "<dark_red>Maintenance"
# MOTD of the server list. & codes and MiniMessage tags both work.
motd:
enabled: true
# One or more; with several, one is picked at random on each ping.
# Variables: {online}, {max}, {proxy}, {countdown_<id>}
motds:
- "<gradient:#00E0FF:#7D62FF><bold>My network</bold></gradient><newline><gray>{online} players online"
players:
online:
mode: REAL # REAL, STATIC or ADD (real + value)
value: 0
max:
mode: STATIC # STATIC, ONLINE_PLUS (online + value) or REAL (velocity.toml)
value: 2000
hover:
enabled: false
lines:
- "<white>My network"
version:
enabled: false
text: "<red>Maintenance"
# -1 = the text is always shown; 0 = the client's protocol.
protocol: -1
# {countdown_<id>} in the MOTD: time left until a date, only the biggest unit.
countdowns: {}
# opening:
# date: "2026-12-24 20:00:00"
# time-zone: "Europe/Madrid"
# formats:
# days: "{value} DAYS"
# day: "1 DAY"
# hours: "{value} HOURS"
# hour: "1 HOUR"
# minutes: "{value} MINUTES"
# minute: "1 MINUTE"
# finished: "OPEN NOW"
# Staff: /sc, /ac, /scmute, /acmute, /stafflist, /inspect.
staff:
enabled: true
# Tell the staff when a staff member joins, changes server or leaves.
movements: true
# Commands saved for /inspect.
logged-commands: [ban, tempban, ipban, unban, mute, tempmute, unmute, kick, warn]
inspect-page: 10
# Help requests and reports (/helpop, /report, /ticket, /stafftop). Claiming one opens a chat
# of its own between the player and the staff member. With the discord module, they can be
# handled from Discord too.
tickets:
enabled: true
# Hours a request can stay open without being closed.
expire-hours: 120
# Days closed ones are kept (for /stafftop and /ticket stats).
keep-days: 365
# When it is closed, the player can rate the help (1-5 stars).
ratings: true
top-size: 10
chat:
# Reminder in the action bar while you are in the chat of a request.
actionbar: true
helpop:
cooldown: 60
# Classic Discord webhook (no bot). With the discord module, leave it off.
# {player} {server} {id}
webhook:
enabled: false
url: ""
username: "Helpop"
avatar: "https://visage.surgeplay.com/head/512/{player}"
author-icon: "https://visage.surgeplay.com/head/512/{player}"
footer: "Sent by {player} on {server} | {id}"
color: "#9f00ff"
report:
cooldown: 60
webhook:
enabled: false
url: ""
username: "Reports"
avatar: "https://visage.surgeplay.com/head/512/{player}"
author-icon: "https://visage.surgeplay.com/head/512/{player}"
footer: "Sent by {player} on {server} | {id}"
color: "#ff3b3b"
# Private messages: /msg, /r, /ignore, /msgtoggle, /socialspy, /msglog.
messaging:
enabled: true
msglog-page: 10
# Friends: /friend (/f).
friends:
enabled: true
limit: -1 # -1 = no limit
list-page: 10
request-expire-days: 7
# Commands blocked for players. To allow one: roodyproxy.commandblocker.bypass.<command>
command-blocker:
enabled: true
hide-in-tab: true
commands:
- "plugins"
- "pl"
- "version"
- "ver"
- "about"
- "bukkit:pl"
- "bukkit:plugins"
- "bukkit:version"
- "bukkit:ver"
- "velocity"
# Linking Minecraft and Discord accounts (needs the discord module, on this proxy or another).
# In the game: /link gives a code to use on Discord, /link <code> uses one made on Discord,
# /unlink and /linked [player]. On Discord: /link [code], /unlink and /linked [user|player]
# (their names are in the lang file: /vincular... in Spanish). Turn it on in every proxy.
# Permissions: roodyproxy.link.check (/linked of others), roodyproxy.link.admin (/unlink others).
linking:
enabled: false
# Minutes a code lasts.
code-minutes: 10
# Players can unlink their own account.
allow-unlink: true
# Commands run in the proxy console: only proxy commands work (LuckPerms on Velocity: lpv).
# {player} {uuid} {discord} (Discord user name) {discord_id}. For example:
# link: ["lpv user {player} parent add linked"]
# unlink: ["lpv user {player} parent remove linked"]
commands:
# Only the first time: each Minecraft account and each Discord account count once, so
# unlinking and linking again, or with another account, gives nothing.
first-link: []
# Every time an account is linked or unlinked.
link: []
unlink: []
discord:
# Id of a role given when linking and taken when unlinking ("" = none). The bot needs
# "Manage Roles" and its own role above this one.
role: ""
nickname:
# The Discord nickname becomes the Minecraft name (needs "Manage Nicknames"; Discord
# never lets a bot change the server owner's). Unlinking takes it away if it was not changed.
enabled: false
# {name} = Minecraft name, {discord} = Discord user name. 32 characters at most.
format: "{name}"
# Id of a channel where every link and unlink is posted. 0 = none.
log-channel: 0
# /linked of other people on Discord: true = anyone, false = admins only (Manage Server).
# The answer is only seen by who asks.
anyone-can-check: true
# Streamers announce their live to the whole network: /stream <link> [title] (the platform
# comes from the link), /stream <platform> <link|user> [title], the command of a platform
# (/twitch, /youtube, /tiktok) and /stream stop. /streams lists who is live, with their links.
# Only links of these platforms are taken (nobody can advertise another server with it).
# Permissions: roodyproxy.stream.<platform> (twitch, youtube...), roodyproxy.stream.bypass
# (no cooldown), roodyproxy.stream.admin (/stream stop <player>).
streams:
enabled: false
# Seconds between two announcements of the same player.
cooldown: 600
# Minutes a live stays in /streams (or until /stream stop, or the player leaves).
live-minutes: 180
end-on-quit: true
# Longest title, in characters.
max-title: 80
# Also show a title on everyone's screen.
title: false
# With the discord module: a post in this channel for each live (0 = none), and a role to
# mention ("" = nobody).
discord:
channel: 0
mention-role: ""
# Your platforms (add or remove any). name and color (#RRGGBB) are shown in the messages;
# domains = the links it takes; profile = the link of "/stream <platform> <user>" ({user});
# command = a command of its own ("" = none; never one of your servers' commands, like kick).
platforms:
twitch:
name: "Twitch"
color: "#9146FF"
domains: [twitch.tv]
profile: "https://twitch.tv/{user}"
command: twitch
youtube:
name: "YouTube"
color: "#FF0000"
domains: [youtube.com, youtu.be]
profile: "https://www.youtube.com/@{user}/live"
command: youtube
tiktok:
name: "TikTok"
color: "#25F4EE"
domains: [tiktok.com]
profile: "https://www.tiktok.com/@{user}/live"
command: tiktok
kick:
name: "Kick"
color: "#53FC18"
domains: [kick.com]
profile: "https://kick.com/{user}"
command: ""
# Discord bot, built in: the staff chat and the admin chat in two Discord channels (both
# ways), help requests and reports with buttons and a thread each, /staff, /stafftop and the
# commands of modules.linking. Its texts are in the lang file (discord.*).
# With several proxies, turn it on in ONE of them only.
discord:
enabled: false
# How the proxy reaches Discord:
# token = with a bot of your own (the token below).
# roody = without a token: with the Roody bot (your Discord server needs the Roody Pro or Team
# plan) or with your own bot hosted by Roody. Choose which on plugins.roody.es > My
# account. The first time, the console shows a code for /roodyproxy link on Discord.
# The commands go inside one: /server staff, /server link... (lang: discord.commands.root).
connection: token
# Bot token (Discord Developer Portal > Bot). Turn on the "Message Content" intent there.
# Only with connection: token.
token: ""
# Id of your Discord server (for the slash commands).
guild: ""
# Bot status, shown as "Watching ...". "" = none. Only with connection: token.
activity: "the staff chat"
chats:
staffchat:
# Channel id. 0 = this chat is not shared with Discord.
channel: 0
webhook:
# "" = the bot creates a webhook in the channel (needs the "Manage Webhooks" permission).
url: ""
# {name} {server} {message}
name: "{name} ({server})"
avatar: "https://visage.surgeplay.com/head/512/{name}"
content: "{message}"
adminchat:
channel: 0
webhook:
url: ""
name: "{name} ({server})"
avatar: "https://visage.surgeplay.com/head/512/{name}"
content: "{message}"
# Discord messages that go into the game.
to-game:
# Shown as the server: "(Nick - Discord) message".
server-name: "Discord"
max-characters: 256
# Help requests and reports: a message with buttons and a thread for each one. What the
# staff writes in the thread reaches the player.
tickets:
enabled: true
channels:
helpop: 0
report: 0
threads: true
# Id of the role that can handle them ("" = anyone who sees the channel; admins always can).
staff-role: ""
# Id of the role mentioned when one comes in ("" = nobody).
mention-role: ""
colors:
open: "#F1C40F"
claimed: "#3498DB"
closed: "#2ECC71"
# /staff on Discord: who of the staff is online and where.
staff-command:
enabled: true
# true = only the one who uses it sees the answer.
private: true
color: "#DE13FF"
# Tell the console and admins (permission roodyproxy.update) when a new version is out
# on plugins.roody.es.
check-updates: true