Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
Friends is a social plugin that lets players add friends, send messages, mail, gifts, and create parties on your server. Works across BungeeCord and Velocity networks, with full Folia support.
Features
- Friend System ā Add friends, best friends, favorites, groups, notes, and nicknames.
- Friend Chat ā
/fcchannel to broadcast to all online friends at once. - Gift System ā Send items to friends with anti-abuse protection (cooldowns, daily limits, blacklist).
- Private Messaging ā Direct messages with reply functionality and sound notifications.
- Mail System ā Send offline messages to players who aren't online. Can be disabled server-wide.
- Party System ā Create parties, invite friends, and manage groups.
- Party Effects ā Party members get potion effects with proximity-based activation.
- Party Waypoints ā Action-bar arrow pointing at the nearest member or a specific locked target.
- Last-Seen Lookup ā
/friend seen <player>checks when any player was last online. - Leaderboards ā Rankings for most friends, gifts sent, and messages.
- Statistics ā Track your social stats and see your rankings.
- GUIs ā Clean inventory menus with custom model data support for resource packs.
- Cross-Server ā Full BungeeCord and Velocity support in a single jar.
- Folia Support ā Works on Folia's region-threaded scheduler out of the box.
- PlaceholderAPI ā 25+ placeholders for scoreboards and more.
- WorldGuard ā Friend groups can auto-share your WG region access.
- GriefPrevention ā Party members auto-trusted in leader's claims.
- Database ā MySQL and SQLite with auto-migration.
- Developer API ā Full API for integration.
Commands
Friend
/friend add <player>ā Send a friend request./friend remove <player>ā Remove a friend./friend accept <player>ā Accept a request./friend deny <player>ā Deny a request./friend listā View your friends./friend requestsā View pending requests./friend best <player>ā Toggle best friend status./friend fav <player>ā Toggle favorite status./friend nick <player> <nickname>ā Set a nickname for a friend./friend note <player> <note>ā Add a note about a friend./friend group create/delete/set/listā Manage friend groups./friend tp <player>ā Teleport to a friend./friend jump <player>ā Jump to a friend's server./friend info <player>ā View friend details./friend seen <player>ā Last-seen lookup for any player./friend block/unblock <player>ā Block or unblock a player./friend chat [message]ā Toggle friend chat mode or send a one-shot message./friend compassā Toggle the party compass./friend waypoint <player|clear>ā Lock the compass on a specific member./friend emote <player> <type>ā Send a particle emote./friend status <message>ā Set your status message./friend menuā Open the friends menu.
Messaging & Mail
/msg <player> <message>ā Send a private message./reply <message>ā Reply to the last message./mail read [page]ā Read your mail./mail send <player> <message>ā Send mail./mail delete <id/all>ā Delete mail./fc [message]ā Friend chat channel.
Party
/party createā Create a party./party invite <player>ā Invite a player./party accept/deny <player>ā Handle invitations./party leaveā Leave your party./party kick <player>ā Kick a player./party infoā View party info./party disbandā Disband your party./party transfer <player>ā Transfer leadership./party effectsā View active effects./party shopā Purchase party effect upgrades (requires Vault)./party chat [message]ā Toggle party chat mode or send a one-shot message./pc [message]ā Party chat shortcut.
Gifts
/gift <player>ā Send the held item to a friend./gift pendingā View pending gifts./gift accept <id>ā Accept a gift./gift deny <id>ā Deny a gift.
Menus & Admin
/settingsā Open notification settings menu./statsā View your social statistics./leaderboardā View friend leaderboards./freloadā Reload the plugin configuration./fupdateā Check for plugin updates.
All primary commands also accept f-prefixed aliases (/fmsg, /freply, /fmail, /fparty, /fgift, /fstats, /fsettings, /fleaderboard) for servers with naming conflicts. On startup, the plugin warns if another plugin owns any primary name.
Permissions
| Permission | Default | Description |
|---|---|---|
friends.use |
true | Basic friend commands |
friends.mail |
true | Mail system access |
friends.party |
true | Party system access |
friends.party.effects |
true | Party effects access |
friends.chat |
true | Friend chat channel access |
friends.teleport |
true | Teleport to friends |
friends.jump |
true | Jump to a friend's server |
friends.network |
true | Cross-server features |
friends.reload |
op | Reload command |
friends.admin |
op | All admin commands |
PlaceholderAPI
%friends_count%ā Total friends%friends_online%ā Online friends%friends_offline%ā Offline friends%friends_best_friends%ā Best friends count%friends_favorites%ā Favorite friends count%friends_max%ā Max friends limit%friends_requests%ā Pending friend requests%friends_gifts_pending%ā Pending gifts%friends_gifts_sent%ā Total gifts sent%friends_gifts_received%ā Total gifts received%friends_gifts_daily_remaining%ā Gifts you can still send today%friends_gifts_cooldown%ā Gift cooldown remaining (seconds)%friends_messages_sent%ā Messages sent%friends_mail_total%ā Total mail%friends_mail_unread%ā Unread mail%friends_messaging_enabled%ā Private messages toggle%friends_status%ā Your status message%friends_in_party%ā In party (true/false)%friends_party_size%ā Party size%friends_party_name%ā Party name%friends_party_leader%ā Party leader name%friends_is_party_leader%ā Are you party leader (true/false)%friends_rank_friends%ā Leaderboard rank (friends)%friends_rank_gifts%ā Leaderboard rank (gifts)%friends_rank_messages%ā Leaderboard rank (messages)
Multi-Server Setup (BungeeCord / Velocity)
Only one jar is shipped: Friends.jar. It goes on every backend Spigot/Paper/Folia server. Nothing on the proxy.
1. Install the plugin
Drop Friends.jar into /plugins/ on every backend server in your network.
2. Set up MySQL
All servers share the same database. Open database.yml on each server and set:
database:
type: mysql
host: your-database-ip
port: 3306
name: friends
username: your-user
password: your-password
pool:
max-connections: 10
timeout: 30000
keep-alive: true
Make sure the friends database exists. Tables are created on first boot.
3. Configure each server
In config.yml set a unique name and enable networking:
server-name: "lobby"
network:
enabled: true
channel: "friends:network"
Use a unique server-name per backend (e.g. survival, skyblock, lobby).
4. Enable proxy mode on each backend
BungeeCord (spigot.yml):
settings:
bungeecord: true
Velocity (paper-global.yml):
proxies:
velocity:
enabled: true
online-mode: true
secret: "your-velocity-secret"
5. Restart every backend. Friend requests, messages, mail, and party invites sync across the network.
Quick Checklist
- [x] Friends.jar on every backend server
- [x] MySQL database shared across all servers
- [x] Unique
server-nameon each server - [x]
network.enabled: trueon each server - [x] BungeeCord mode or Velocity forwarding enabled
Troubleshooting
- Friends not syncing? Check every server points to the same MySQL database.
- Cross-server messages not working?
bungeecord: true(BungeeCord) or Velocity forwarding must be enabled. - Players show wrong server? Each server needs a unique
server-namein config.yml. - Another plugin owns /msg, /party etc.? Use the f-prefixed aliases (
/fmsg,/fparty) or/friends:<cmd>.
Config
server-name: "lobby"
settings:
max-friends: 0
best-friends:
max-limit: 5
enabled: true
friend-groups:
enabled: true
max-groups: 10
friend-teleport:
enabled: true
cooldown: 30
friend-jump:
enabled: true
cooldown: 10
private-messages:
friends-only: false
log-to-console: false
sounds: true
cross-server: true
allow-toggle: true
party:
max-size: 8
allow-public-parties: true
effects:
enabled: true
proximity-required: true
proximity-range: 50
scaling-strength: true
scale-percentage: 10
update-interval: 100
compass:
enabled: true
update-interval: 20
shop:
enabled: true
leader-only: true
reset-on-disband: true
integrations:
grief-prevention:
enabled: true
shared-building: true
shared-containers: true
shared-interactions: true
shared-entities: true
luck-perms:
enabled: true
worldguard:
enabled: false
shared-groups:
- trusted
- build
network:
enabled: true
channel: "friends:network"
mail:
enabled: true
auto-cleanup:
enabled: true
days-old: 30
gifts:
enabled: true
cooldown: 60
max-daily: 10
max-stack-size: 64
expiry-days: 7
blacklist:
- BEDROCK
- BARRIER
- COMMAND_BLOCK
emotes:
enabled: true
cooldown: 5
range: 10
debug: false
API Usage
Friend Management
FriendsAPI.getFriends(playerUUID); // Get a player's friends list
FriendsAPI.getOnlineFriends(playerUUID); // Get only online friends
FriendsAPI.areFriends(playerUUID, otherUUID); // Check friendship status
FriendsAPI.addFriend(playerUUID, friendUUID); // Add a friend directly
FriendsAPI.removeFriend(playerUUID, friendUUID); // Remove a friend
Friend Requests
FriendsAPI.sendFriendRequest(senderUUID, receiverUUID);
FriendsAPI.getPendingRequests(playerUUID);
FriendsAPI.acceptFriendRequest(receiverUUID, senderUUID);
FriendsAPI.denyFriendRequest(receiverUUID, senderUUID);
Messaging & Mail
FriendsAPI.sendMessage(senderUUID, receiverUUID, message);
FriendsAPI.getPlayerMail(playerUUID);
FriendsAPI.sendMail(senderUUID, receiverUUID, content);
Party System
FriendsAPI.createParty(leaderUUID);
FriendsAPI.disbandParty(partyId);
FriendsAPI.invitePlayerToParty(partyId, playerId);
FriendsAPI.getPlayerParty(playerId);
FriendsAPI.getPartyEffects(partyId);
FriendsAPI.sendPartyMessage(player, message);
FriendsAPI.isPartyChatEnabled(playerUUID);
Settings & Stats
FriendsAPI.getPlayerSettings(playerUUID);
FriendsAPI.getPlayerStats(playerUUID);
FriendsAPI.getLeaderboard(type, limit);
Optional Dependencies
- PlaceholderAPI ā For placeholders
- LuckPerms ā For permission integration
- GriefPrevention ā For claim trust integration
- WorldGuard ā For region sharing by friend group
- Vault ā For the party effects shop
- ProtocolLib ā For enhanced features


