## **Skcrew** – A [**Skript**](https://github.com/SkriptLang/Skript) addon, expanding the capabilities of the language.
Skcrew partially includes the following third-party code:
> [**skript-db** fork by Govindas](https://git.limework.net/Limework/skript-db)
> [**skript-gui**](https://github.com/APickledWalrus/skript-gui) | Modified
> [**bitshift**](https://github.com/Pesekjak/Bitshift)
—
Addon usage highlights:
– Working with files and folders
– Bitwise and logical operations with numbers
– Sending and creating gui forms through [**floodgate** ](https://github.com/GeyserMC/Floodgate)
– Simplified creation of in-game GUIs
– Parsing and executing code from text
– Drawing on maps
– Managing player permissions
– Forcing a player to execute commands with operator permissions
– [**InventoryDragEvent** ](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/inventory/InventoryDragEvent.html) and its related expressions
– Asynchronous/synchronous web requests
– Retrieving the server’s hardware information
– Interaction with SQL-like databases
– Manipulating strings using RegEx (Regular Expression)
– Retrieving the player’s version via [**ViaVersion** ](https://github.com/ViaVersion/ViaVersion)
– World management: create, upload, copy, delete
– Proxy communication between servers ( [**Velocity** ](https://github.com/PaperMC/Velocity), [**BungeeCord** ](https://github.com/SpigotMC/BungeeCord) )
– Packet handling: creating, sending, receiving, editing
A powerful Velocity proxy plugin that prevents multiple accounts from joining your server using the same IP address. Includes account binding, alt-account detection, and Discord webhook notifications.
—
## Features
– 🔒 **IP-Based Player Limiting** – Restrict concurrent connections per IP address
– 🔐 **Account Binding** – Bind player accounts to their IP address
– 🚫 **Alt-Account Detection** – Automatically detect and prevent alt accounts
– 🔑 **Permission-Based Bypass** – Allow ops and VIPs to bypass restrictions
– 📢 **Customizable Messages** – Color code support (&c, &4, etc.)
– 🔔 **Discord Webhook Support** – Get real-time notifications of violations
– ⚪ **IP Whitelist** – Configure trusted IPs with custom limits
– ⏰ **Binding Expiration** – Set binding duration (never, 1 week, 1 month)
– 🐛 **Debug Mode** – Enhanced logging for troubleshooting
—
## Installation
1. Download the latest compiled JAR file from the build directory
2. Place it in your Velocity proxy’s `plugins/` directory
3. Restart your Velocity proxy server
4. Configuration file will be auto-generated at `plugins/IPLimit/config.yml`
—
## Configuration
Edit `plugins/IPLimit/config.yml` to customize the plugin:
“`yaml
# IP Limit Configuration
# Max players allowed per IP (This limits concurrent sessions for the valid account)
max-players-per-ip: 1
# Permission to bypass checks (Ops usually have this)
bypass-permission: “iplimit.bypass”
# Message shown when kicked due to IP limit/Binding (Supports Color Codes like &c, &4)
kick-message: “&cYou are not allowed to join with this IP! 1 Account per IP limit.”
# Message shown when kicked for using an Alt account
alt-kick-message: “&cAlt accounts are not allowed! This IP is bound to another account.”
### Subcommands
– `info` – Show player IP binding information
– `reload` – Reload configuration from disk
– `unbind ` – Remove IP binding for a player
– `whitelist ` – Add IP to whitelist
– `debug [on|off]` – Toggle debug mode
—
## Discord Webhook Setup
To get real-time notifications of IP violations:
1. Create a Discord webhook in your server settings
2. Copy the webhook URL
3. Edit `config.yml`:
“`yaml
discord-webhook-enabled: true
discord-webhook-url: “https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN”
“`
4. Customize the webhook username and embed color as desired
5. Reload the plugin with `/iplimit reload`
—
## How It Works
1. **First Connection** – Player joins with their IP, account is bound to that IP
2. **Same IP, Same Account** – ✅ Allowed (logged in again)
3. **Same IP, Different Account** – ❌ Kicked (alt account detected)
4. **Different IP, Same Account** – ⚠️ Allowed (new IP, rebinding)
5. **Whitelisted IP** – ✅ Always allowed
6. **Bypass Permission** – ✅ Ops and VIPs bypass all checks
—
## Features in Detail
### Account Binding
Once a player joins, their account is bound to their IP address. This prevents other accounts from using the same IP.
### Binding Expiration
Configure how long bindings remain active:
– `never` – Bindings are permanent
– `1w` – Bindings expire after 1 week
– `1m` – Bindings expire after 1 month
### IP Whitelist
Add trusted IPs (proxy, testing, corporate networks) to bypass all checks:
“`yaml
whitelisted-ips:
– “192.168.1.1”
– “10.0.0.1”
“`
Set custom limits for whitelisted IPs:
“`yaml
whitelisted-ip-limits:
“127.0.0.1”: 5 # Allow 5 players from localhost
“`
Check console for detailed information about:
– Player connections
– IP bindings
– Permission checks
– Webhook requests
—
## Troubleshooting
### Players Getting Kicked Unexpectedly
1. Check the player’s IP: `/iplimit info `
2. Verify whitelisted IPs if needed
3. Check if player has `iplimit.bypass` permission
4. Enable debug mode for more info
### Discord Webhook Not Working
1. Verify the webhook URL is correct
2. Check `discord-webhook-enabled: true`
3. Ensure the webhook hasn’t been deleted from Discord
4. Check console for error messages with debug enabled
### Config Not Updating
1. Use `/iplimit reload` to reload configuration
2. Ensure YAML formatting is valid
3. Check file permissions on config.yml
SimpleWhitelist
# SimpleWhitelist
**SimpleWhitelist** is an *essential plugin* for your private server.
### Why should you choose this plugin?
* No hassles, players in the white list are stored by their nicknames;
* There is support for the most used server cores (proxy & not);
* Fully customizable messages;
* Easy to use.
### How to start using plugin?
1. Disable Minecraft’s whitelist in `server.properties` (`white-list=false`);
2. Put plugin in `plugins` folder (or in `mods` for mod loaders);
3. Start your server;
4. Enable whitelist using `/swl enable`;
5. Add yourself to whitelist using `/swl add ` command.
### Commands:
* `/swl add/remove ` – add or remove player from whitelist (case-sensitive if set);
* `/swl list` – show list of whitelisted players;
* `/swl enable/disable` – enable or disable plugin;
* `/swl reload` – reload plugin.
### Permission:
`simplewhitelist.command` – for all commands
SimpleVelocityTools
A simple velocity-system with various features
## Features
– Send players to other servers.
– Find players on the network.
– Get send to the lobby using /lobby.
– Send global alerts.
## Commands
– Use **/alert ** to send an global alert.
– Use **/send ** to send a player to another server.
– Use **/find ** to find a player on the network.
– Use **/lobby** to get send to the lobby.
## Permissions
– **simplevelocitytools.alert** – Allows you to use /alert .
– **simplevelocitytools.send** – Allows you to use /send .
– **simplevelocitytools.find** – Allows you to use /find .
– **simplevelocitytools.lobby** – Allows you to use /lobby.
View config.yml
“`
# SimpleVelocityTools by Losterixx
# Version: 1.0.0 | MC-Version: 1.21.1
#
# Note: This plugin utilizes MiniMessage for color codes and message formatting.
# For more information on MiniMessage, visit: https://docs.advntr.dev/minimessage/format.html
lobbyServer: Lobby
messages:
alert: “[!Alert] {message}”
alert-no-args: “Please use /alert !”
find-player-not-found: “The player {player} could not be found!”
find-player-on-server: “The player {player} is on server {server}!”
find-server-error: “Could not retrieve the server of {player}!”
lobby-not-player: “This command can only be executed by players!”
lobby-no-args: “Please use /lobby!”
lobby-sending: “Sending you to Lobby…”
send-no-args: “Please use /send !”
send-server-not-found: “The server {server} could not be found!”
send-all-players: “All players are being sent to {server}!”
send-player-sent: “The player {player} is being sent to {server}!”
send-player-not-found: “The player {player} could not be found!”
“`
## Contact
If you encounter any issues or bugs, or have a
request for a new feature, please contact me via Discord or join my Discord-Server.
> My discord-name is **Losterixx**.
> My Discord-Server: [Link](https://discord.gg/gnGsUAwp76)
SimpleStaffChat


– Fully customizable, meaning you can change the messages and settings of the plugin inside the configuration files.
– Light and efficient, won’t cause any sort of lag towards your server!
– Staff join and quit messages.
– Automatic Config Updates. No need to manually update file properties.
– Supports multiple platforms: Spigot, Velocity and Folia.
– Discord Logging using webhooks support in discord.yml
– [MiniMessage](https://docs.advntr.dev/minimessage/format.html) support (Using non-strict mode, automatically converts legacy & color codes)
Note: This plugin does not and will never give support to cracked servers.

Commands
/staffchat(/sc) – Send messages to your staff privately
/staffchattoggle(/sctoggle) – Toggle sending messages to your staff privately
/staffchatreload(/screload) – Reload your config files
/adminchat(/ac) – Send messages to your admins privately
/devchat(/dc) – Send messages to your developers privately
/adminchattoggle(/actoggle) – Toggle sending messages to your admins privately
/devchattoggle(/dctoggle) – Toggle sending messages to your developers privately
/chat – Toggle sending messages to a chat
/schide – Allows you to mute/hide messages from either one or all staff chats.
Permissions
simplestaffchat.command.help – Allows you to see the help page
simplestaffchat.command.staffchat – Allows you to use /staffchat
simplestaffchat.command.toggle – Allows you to use /staffchattoggle
simplestaffchat.command.reload – Allows you to use /staffchatreload
simplestaffchat.command.adminchat – Allows you to use /adminchat
simplestaffchat.command.adminchat.toggle – Allows you to use /adminchattoggle
simplestaffchat.command.devchat – Allows you to use /devchat
simplestaffchat.command.devchat.toggle – Allows you to use /devchattoggle
simplestaffchat.command.hide – Allows you to use /schide
simplestaffchat.command.chat – Allows you to use /chat
simplestaffchat.staffchat.see – Allows you to see all staffchat messages
simplestaffchat.staffchat.symbol – Allows you to use the symbol to use staffchat
simplestaffchat.adminchat.see – Allows you to see all adminchat messages
simplestaffchat.adminchat.symbol – Allows you to use the symbol to use adminchat
simplestaffchat.devchat.see – Allows you to see all devchat messages
simplestaffchat.devchat.symbol – Allows you to use the symbol to use devchat
simplestaffchat.join – Sends a join message when a staff member joins
simplestaffchat.switch – Sends a switch message when a staff member switches to a different server on the network (BungeeCord/Velocity only)
simplestaffchat.quit – Sends a join message when a staff member leaves the server
All commands are customizable from the commands.yml file. (Available in version 3.0 or higher)
### Placeholders
– %player% – Get the player name
– %displayname% – Get the player display name
– %server% – Get the player server
– %message% – Get the message
– %arrow% – Get an arrow for a message
– %arrow_2% – Get alt arrow for a message
– %star% – Get a star for a message
– %circle% – Get a circle for a message
– %luckperms_prefix% – Get the player’s luckperms prefix
– %luckperms_suffix% – Get the player’s luckperms suffix
This is a Bungeecord Chat Sync, Velocity Chat Sync, and Proxy Chat Sync plugin. It is a simple plugin to allow globalcross-server communication and messaging with support for PlaceholderAPI, LuckPerms, LiteBans, AdvancedBan, NetworkManager, and Discord.
—
### With PlaceholderAPI
1) You **must** use the *helper plugin* which you can download [here](https://www.spigotmc.org/resources/116966/).
1) Drag the helper plugin to each **Spigot/Paper/Bukkit** server that you want PlaceholderAPI support on.
* You do not need any additional configuration on the Spigot/Paper/Bukkit server as long as you have PlaceholderAPI installed.
1) Set `use-helper` to `true` in the `config.yml` for the proxy configuration. This will be in your **BungeeCord/Velocity** server.
1) Restart or reload the plugin! `/spc-reload`
> For **PlaceholderAPI** support, the helper plugin is required. Additionally, **PlaceholderAPI placeholders** can only be used for **Minecraft chat messages**. It will **not work** for join/leave messages.
### Without Discord
1) Simply place the plugin in your `plugins` folder on **BungeeCord/Waterfall/Velocity** and restart your proxy!
### With Discord
1) Go to discord.com/developers and select **New Application**. You can select *any* name you want.
1) Go to the **OAuth2** section.
1) Go to the **OAuth2 URL Generator** and give it the **bot** scope.
1) Under **bot permissions** select;
– Manage Channels (**REQUIRED**: General Permissions)
– Send Messages (**REQUIRED**: Text Permissions)
– Manage Messages (**REQUIRED**: Text Permissions)
– Read Message History (**REQUIRED**: Text Permissions)
– *+ Any others that you want to add…*
1) Copy the **Generated URL** at the bottom.
1) Paste the generated URL into a web browser.
1) Invite the bot to your server.
1) Go back to discord.com/developers.
1) Select your bot.
1) Click on **bot**.
1) Click **Reset Token** and copy the token somewhere safe.
1) Scroll down to **Privileged Gateway Intents**.
1) Select **SERVER MEMBER INTENT** and **MESSAGE CONTENT INTENT**.
1) Place the plugin in the `plugins` folder on **BungeeCord/Velocity**.
1) Start your server once *fully*, then stop it. There *will* be errors, this is normal.
1) In the generated `ProxyChat/config.yml` file, paste your **Bot Token** and choose the appropriate channel you want messages being sent to.
1) Restart your proxy!
**config.yml**
“`YAML
# ==========================================================
# INFORMATION
# HEX Values are Supported
# Example: <#FFFFFF>Some text#FFFFFF> this is a message!
# Supports Mini-Message/Legacy Color Codes
# ==========================================================
# True if you will be using Discord. The reload command does not work with this.
use-discord: false
# The amount of seconds to check if a server is online/offline.
# Smaller numbers can cause errors. Beware.
server-update-interval: 3
# Use this if you want to change the default aliases.
# It MUST be the same name you have in your bungee/velocity config.
# Simply set it to disabled: disabled to disable it.
aliases:
ServerInConfigExample: ServerAliasExample
hub: Hub1
smp: smp1
# Whether to use the permission system.
# Some permissions (denoted with ➕) are always active even if this is false.
# simpleproxychat.read.chat – Read chat messages.
# simpleproxychat.read.join – Read join messages.
# simpleproxychat.read.leave – Read leave messages.
# simpleproxychat.read.fake – Read the fake join/leave messages. Players must also have the REAL join/leave permission.
# simpleproxychat.read.switch – Read switch messages.
# simpleproxychat.read.update – Read update messages. ➕
# simpleproxychat.toggle.chat – Toggle proxy chat for a single server. ➕
# simpleproxychat.toggle.chat.all – Toggle proxy chat for all servers. ➕
# simpleproxychat.reload – Reload the config. ➕
# simpleproxychat.ban – Ban a player from the proxy. ➕
# simpleproxychat.unban – Unban a player from the proxy. ➕
# simpleproxychat.whisper – Whisper to another player on the proxy. ➕
# simpleproxychat.broadcast – Broadcast a message to everyone on the server. ➕
use-permissions: false
# Only messages that start with this character will be sent through the plugin.
# Set to ” to disable.
# Example: If it is set to ‘$’, then when a player sends $hello, it will be sent through the proxy.
proxy-message-prefix: ”
# Whether to send if the statuses of the servers connected to the proxy when the proxy starts up.
# THIS IS FOR DISCORD MESSAGES ONLY.
use-initial-server-status: true
# Whether to send a fake join/leave message when vanishing/unvanishing.
use-fake-messages: true
# Format: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
# Timezone: https://www.joda.org/joda-time/timezones.html
timestamp:
# If your server is prone to getting off-sync on the time you can use an API.
# WARNING: Using the API will make messages somewhat longer to send.
# Additionally, the maximum accuracy will only be up to 1 minute, rather than seconds.
use-api: false
format: “hh:mm a”
timezone: “America/Los_Angeles”
# True if you will be using the helper plugin.
use-helper: false
update-notifications: true
# It is HIGHLY recommended to use a more robust proxy-wide banning system such as LiteBans or AdvancedBan.
# However, if you would rather a light-weight, simple, banning system. You can enable it here.
# A FULL PROXY RESTART IS REQUIRED TO USE THIS.
use-simple-proxy-chat-banning-system: false
# This will store and re-send the last few chat messages when a player switches servers.
# This is here because sometimes Velocity/Bungee does not keep the previous messages when switching.
# This WILL retain old formatting if you change the formatting prior to reloading.
send-previous-messages-on-switch:
enabled: false
amount: 15
# These require a restart in order to take place.
commands:
reload-aliases:
– “spcreload”
chat-toggle-aliases:
– “chattoggle”
ban-aliases:
– “spcban”
unban-aliases:
– “spcunban”
whisper-aliases:
– “spc-msg”
reply-aliases:
– “spc-r”
broadcast-aliases:
– “spc-bc”
– “broadcast”
# Disable servers from sending/receiving proxy messages.
disabled-servers:
– example1
# DO NOT TOUCH THIS
file-version: 15
“`
**messages.yml**
“`YAML
# ==========================================================
# INFORMATION
# HEX Values are Supported
# Example: <#FFFFFF>Some text#FFFFFF> this is a message!
# Supports Mini-Message/Legacy Color Codes
# ==========================================================
# Prefix for the plugin. %plugin-prefix% usable anywhere.
plugin-prefix: “&8[SimpleProxyChat&r&8]”
# Minecraft Stuff
minecraft:
join:
enabled: true
message: “&e%player% &ahas joined the network. (%server%)”
leave:
enabled: true
message: “&e%player% &chas left the network. (%server%)”
chat:
enabled: true
message: “&8[&3%server%&8] &e%player% &9» &7%message%”
vanished: “&cYou cannot send proxy messages while vanished. Your message must end with a ‘&e/&c’ to speak.”
switch:
enabled: true
default: “&e%player% &7moved from &c%from% &7to &a%to%&7.”
no-from: “&e%player% &7moved &7to &a%to%&7.”
whisper:
send: “&8[&dyou&8] &f⇒ &8[&d%receiver%&8] &9» &e%message%”
receive: “&8[&d%sender%&8] &f⇒ &8[&dyou&8] &9» &e%message%”
error: “&c/spc-whisper (user) (message)”
discord:
enabled: true
message: “**%server%** %player% » %message%”
embed:
use: false
title: “[%server%] %player%”
message: “%message%”
color: “#FFC0CB”
use-timestamp: true
command:
no-permission: “%plugin-prefix% &cSorry, you do not have permission to run this command.”
unknown: “%plugin-prefix% &cUnknown command.”
must-be-player: “%plugin-prefix% &cYou must be a player to run this command.”
reload: “%plugin-prefix% &aThe plugin has been successfully reloaded!”
chat-lock:
usage: “%plugin-prefix% &cCorrect usage is &a/spc-chat all lock/unlock &c or &a/spc-chat lock/unlock”
single:
locked: “%plugin-prefix% &6%server% &cwill no longer send proxy chat messages.”
unlocked: “%plugin-prefix% &6%server% &awill now send proxy chat messages.”
all:
locked: “%plugin-prefix% &cAll servers will no longer send proxy chat messages.”
unlocked: “%plugin-prefix% &aAll servers will now send proxy chat messages.”
proxy-ban:
usage: “%plugin-prefix% &c/(un)ban (player)”
banned: “%plugin-prefix% &c%player% &7has been banned.”
unbanned: “%plugin-prefix% &c%player% &7has been unbanned.”
login-message: “&cYou have been banned from the proxy.”
broadcast:
usage: “%plugin-prefix% &c/spc-broadcast (message)”
message: “%plugin-prefix% &8[&a&lBROADCAST&r&8] &6%message%”
# Discord Stuff
discord:
join:
enabled: true
message: “%player% has joined the network. (%server%)”
use-timestamp: true
# Incompatible with use-timestamp.
use-embed: true
leave:
enabled: true
message: “%player% has left the network. (%server%)”
use-timestamp: true
# Incompatible with use-timestamp.
use-embed: true
switch:
enabled: true
message: “%player% has switched from %from% to %to%.”
use-timestamp: true
# Incompatible with use-timestamp.
use-embed: true
chat:
enabled: true
minecraft-message: “&8[&bDiscord&8] %role% &f%user% &9» &7%message%”
topic:
online: “There are %online% players online.”
offline: “The proxy is offline.”
proxy-status:
enabled: true
messages:
enabled: “✅ Proxy enabled!”
disabled: “⛔ Proxy disabled.”
title: “Server Status”
message: “Status: ”
online: “Online ✅”
offline: “Offline ⛔”
use-timestamp: true
# The message for any updates that are sent.
# The plugin-prefix is automatically appended to the beginning of this message.
update-message: “&7There is an update! You are on &c%old%. New version is &a%new%&7: &6%link%”
# DO NOT TOUCH THIS
file-version: 10
“`
—
* `/spc-reload` – Reloads the config files.
* `/spc-chat` – Lock/unlock the chat.
* `/spc-whipser` – Send a private message to someone.
* `/spc-reply` – Reply to a private message without specifying a user.
* `/spc-ban` – Ban a player from the proxy.
* `/spc-unban` – Unban a player from the proxy.
* `/spc-broadcast` – Broadcast a message to every player on the network.
—
* `simpleproxychat.read.chat` – Read chat messages.
* `simpleproxychat.read.join` – Read join messages.
* `simpleproxychat.read.leave` – Read leave messages.
* `simpleproxychat.read.fake` – Read fake join/leave messages. Must have the real permission too.
* `simpleproxychat.read.switch` – Read switch messages.
* `simpleproxychat.read.update` – Read update notifications.
* `simpleproxychat.toggle.chat` – Toggle proxy chat for a single server.
* `simpleproxychat.toggle.chat.all` – Toggle proxy chat for all servers.
* `simpleproxychat.reload` – Reload the config.
* `simpleproxychat.ban` – Ban someone.
* `simpleproxychat.unban` – Unban someone.
* `simpleproxychat.whisper` – Private messaging permissions.
* `simpleproxychat.broadcast` – Broadcast a message to everyone on the server.
—
* `%plugin-prefix%` – The plugin’s designated prefix.
* `%server%` – The current connected server. Uses the alias if one is specified.
* `%original_server%` – Same as `%server%`, but does not use the alias.
* `%to%` – The current connected server. Uses the alias if one is specified.
* `%original_to%` – Same as `%to%`, but does not use the alias.
* `%from%` – The server the player just disconnected from. Uses the alias if one is specified.
* `%original_from%` – Same as `%from%`, but does not use the alias.
* `%player%` – The player’s Minecraft username.
* `%escaped_player%` – The escaped player’s Minecraft username. (Adds ‘\’ before the ‘_’ to prevent italics.)
* `%sender%` – The person sending the private message. **Private Messaging Only**
* `%receiver%` – The person receiving the private message. **Private Messaging Only**
* `%user%` – The player’s Discord username.
* `%nick%` – The player’s Discord nickname.
* `%role%` – The player’s Discord role.
* `%prefix%` – The player’s prefix. **LuckPerms Only**
* `%suffix%` – The player’s suffix. **LuckPerms Only**
* `%message%` – The player’s message.
* `%epoch%` – This gets the current time (in milliseconds). Formats can be used like [this](https://gist.github.com/LeviSnoot/d9147767abeef2f770e9ddcd91eb85aa). An example would be ``. **Discord Only**
* `%time%` – Similar to `%epoch%`, but uses a special formatting and timezone found in `config.yml`.
* `%online%` – **Discord Status Only**
* `%max-players%` – **Discord Status Only**
—
1) As of right now, vanish support is only available on *BungeeCord/Waterfall*. The plugin will still function as normal, but if you go into vanish then it won’t send a fake join/leave message.
1) In order for prefixes and suffixes to work, you **must** have LuckPerms installed on the proxy. Then, you can use `%prefix%` and `%suffix%`.
1) `%epoch%` and the timestamps only work in certain places on Discord. As an alternative, you can select some of the embeds to have `use-timestamp: true`. This is out of my control sadly… 😔
1. Download LimboAPI and place it in your Velocity plugins folder
2. Download SimpleLimbo and place it in your Velocity plugins folder
3. Restart Velocity
4. Configure `plugins/simplelimbo/config.yml`
SimpleLimbo includes compatibility features for authentication plugins that call `player.getCurrentServer()`:
1. Set `fake-server-name` in your limbo config to a valid Velocity server name
2. Enable the velocity-bridge with matching alias
3. Configure your auth plugin to use this server name as the limbo server
A proximity voice chat for Minecraft with a variety of [addons](https://modrepo.de/minecraft/voicechat/addons) that offer additional features and functionalities.
⚠️ **NOTE** This mod requires special setup on the server in order to work.
Please read the [wiki](https://modrepo.de/minecraft/voicechat/wiki/setup) for more information.
– Push to talk
– Voice activation
– Proximity voice chat
– Password protected groups
– Automatic voice activity detection
– Automatic microphone gain adjustment
– [Opus codec](https://opus-codec.org/)
– [RNNoise](https://jmvalin.ca/demo/rnnoise/) recurrent neural network noise suppression
– OpenAL audio
– Cross compatibility between Fabric, NeoForge, Forge, Quilt, Bukkit, Spigot and Paper
– Support for Velocity, BungeeCord and Waterfall
– Compatibility with [ModMenu](https://modrinth.com/mod/modmenu) (Use [ClothConfig](https://modrinth.com/mod/cloth-config) for a better configuration UI)
– Configurable push to talk key
– Microphone and speaker test playback
– Configurable voice distance
– Whispering
– Individual player volume adjustment
– Microphone amplification
– 3D sound
– AES encryption
– Audio recording with separate audio tracks
– A powerful [API](https://modrepo.de/minecraft/voicechat/api)
– Many [addons](https://modrepo.de/minecraft/voicechat/addons)
## Icons
| Icon | Description |
|:————————————:|——————————————————-|
|  | You are talking |
|  | You are whispering |
|  | Player is talking |
|  | Player is whispering |
|  | Microphone muted |
|  | Voice chat disabled |
|  | Voice chat not connected Voice chat not installed |
## The GUI
You can open the voice chat GUI by pressing the `V` key.
This allows you to open the settings, group chats, mute yourself, disable the voice chat, start/stop a recording and hide all icons.
Group chats allow you to talk to players that are not in your vicinity.
To open the group chat interface, either press the group button in the voice chat GUI or just press the group key.
To create a new group, just type a name in the text field and press the button at the bottom.
Creating or joining a group will bring you into the group chat interface.
You will also see the heads of the group members in the top left corner of your screen.
Talking players will be outlined.
You can disable these icons by pressing the third button from the left.
You need to open a port on the server. This is port `24454` `UDP` by default.
Without opening this port, the voice chat will not work.
This port can be changed in the server config.
More information [here](https://modrepo.de/minecraft/voicechat/wiki/setup).
The voice chat is encrypted, but we don’t guarantee the security of it. Use at your own risk!