ModsJava
BetterFriend – Advanced Friend System for Minecraft (26.1.x+)
Java mod listed for Minecraft 1.21–26.x. Downloads from the MC Java Mods app on Android.
⬇ Download on Spigot
BetterFriend – Advanced Friend System for Minecraft
BetterFriend is a modern, fully configurable friend system for Spigot/Paper 1.21+.
It adds a rich set of social features, including clickable friend invites, nicknames, notes, friend groups, group chat, position sharing, and join/quit notifications , all stored persistently and fully customizable via config.yml.
• Features
Persistent Friend Lists
• Friends are stored by UUID, so name changes are fully supported.
• All data is saved in friends.yml.
• /friend list shows clear online / offline indicators.
• Best friends are highlighted.
• Shows nicknames if set, otherwise the real player name.
Clickable Friend Invites
• /friend add <player> sends a clickable invite with [Accept] / [Decline] buttons.
• Uses namespaced commands to avoid plugin conflicts.
• Invites expire after a configurable time; the sender is notified.
• Players can block or allow invites using /friend toggleinvite.
Best Friend System
• Mark one friend as your Best Friend.
• Best friends are visually highlighted in /friend list.
• Special join and quit notifications for best friends.
Nicknames & Notes
• /friend nick <player> <nickname> – set personal nicknames (visible only to you).
• /friend note <player> [note] – add private notes such as roles, behavior, or reminders.
• Notes and nicknames persist across restarts.
Friend Groups
• Create named groups like PvP, Builders, or Staff.
• Assign friends to one group or remove them from groups.
• List and delete groups at any time.
• Maximum groups per player is fully configurable.
• Mutual removal – removing a friend removes the relationship for both players and notifies them if online.
Group Chat (Friend Chat Removed by Design)
• /friend groupchat <group> on|off toggles group-only chat.
• While enabled, your messages are only sent to that group.
• No global friend chat exists — only group-based chat for better organization.
Position Sharing
• /friend sharepositions <player> sends your current X, Y, Z and world to a friend.
• Requires permission: betterfriend.sharepositions.
• Both sender and receiver get clear, formatted messages.
Invite & Notification Controls
• /friend toggleinvite lets players block or allow friend invites.
• /friend notifications <all|friends|none> controls join notifications:
• all – see all join messages
• friends – only friends and best friends
• none – no join notifications
• Notification preferences are saved per player and persist after restarts.
Highly Configurable
• Maximum friends per player is configurable.
• Maximum groups per player is configurable.
• All messages, usage texts, errors, success messages, join/quit notifications, and chat formatting are editable in config.yml.
Spoiler: Config
Code (YAML):
messages:
prefix : "&7[&bBetterFriend&7] "
player-only : "&cThis command can only be used by players."
no-permission : "&cYou don't have permission to use friend commands."
usage-main : "&e--- Friend Commands ---"
usage-list : "&f/friend list &7- Show your friend list"
usage-add : "&f/friend add <player> &7- Add a player to your friend list"
usage-remove : "&f/friend remove <player> &7- Remove a player from your friend list"
usage-best : "&f/friend best [player] &7- Set or view your best friend"
usage-notifications : "&f/friend notifications toggle &7- Configure join notifications"
usage-toggleinvite : "&f/friend toggleinvite &7- Toggle whether others can invite you"
usage-nick : "&f/friend nick <player> <nickname> &7- Set a nickname for a friend"
usage-note : "&f/friend note <player> [note] &7- View or set a note about a friend"
usage-group : "&f/friend group create <name>&7, /friend group delete <name>, /friend group set <player> <group>, /friend group remove <player>, /friend group list &7- Manage friend groups"
usage-groupchat : "&f/friend groupchat <group> <on|off> &7- Talk only to members of one friend group"
usage-sharepositions : "&f/friend sharepositions <player> &7- Share your current coordinates with a friend"
usage-admin-main : "&e--- Friend Admin Commands ---"
usage-admin-addself : "&f/friendadmin addself <player> &7- Force friendship between you and a player"
usage-admin-grouplist : "&f/friendadmin grouplist <owner> &7- List groups for a player"
usage-admin-groupjoin : "&f/friendadmin groupjoin <owner> <player> <group> &7- Add or remove a player to a group (use 'none' to clear)"
usage-admin-groupdelete : "&f/friendadmin groupdelete <owner> <group> &7- Delete a group for a player"
no-friends : "&eYou don't have any friends yet. Use '/friend add <player>' to add someone!"
list-header : "&a--- Your Friend List ---"
list-entry-online : "&7• &a● &f{friend}"
list-entry-offline : "&7• &c● &7(&coffline&7) &f{friend}"
list-entry-best-online : "&6★ &a● &b{friend}&6 (Best Friend)"
list-entry-best-offline : "&6★ &c● &7(&coffline&7) &b{friend}&6 (Best Friend)"
list-footer : "&aTotal friends: &f{count}"
add-usage : "&cUsage: /friend add <player>"
add-self : "&cYou can't add yourself as a friend!"
add-already : "&e{friend} is already on your friend list!"
add-offline : "&cPlayer '{friend}' is not online."
add-success : "&aSuccessfully added {friend} to your friend list!"
add-fail : "&cFailed to add {friend} to your friend list."
add-notify-target : "&b{player} has added you to their friend list!"
remove-usage : "&cUsage: /friend remove <player>"
remove-not-friend : "&c'{friend}' is not on your friend list!"
remove-success : "&aRemoved {friend} from your friend list."
remove-fail : "&cFailed to remove {friend} from your friend list."
remove-notify-target : "&e{friend} removed you from their friend list."
friends-max-reached : "&cYou can only have up to {max} friends."
best-current : "&bYour current best friend is: &6{friend}"
best-not-set : "&eYou don't have a best friend set. Use '/friend best <player>' to set one!"
best-not-friend : "&c'{friend}' is not on your friend list! &eUse '/friend add {friend}' to add them first."
best-set-success : "&a{friend} is now your best friend!"
best-set-fail : "&cFailed to set {friend} as your best friend."
join-friend : "&aYour friend &b{friend}&a has joined the server!"
join-best-friend : "&6★ &aYour best friend &b{friend}&a has joined the server!"
quit-friend : "&eYour friend &b{friend}&e has left the server."
quit-best-friend : "&6★ &eYour best friend &b{friend}&e has left the server."
invite-sent : "&aSent a friend invite to {friend}. They have 5 minutes to accept."
invite-received : "&bYou received a friend invite from {player}."
invite-click-message : "&b{player} sent you a friend invite:"
invite-click-accept : "&a[Accept]"
invite-click-decline : "&c[Decline]"
invite-already-sent : "&eYou already have a pending friend invite with {friend}."
invite-expired-sender : "&eYour friend invite to {friend} has expired."
invite-no-pending : "&cYou don't have a pending friend invite from {friend}."
invite-accept-success-sender : "&a{friend} accepted your friend invite!"
invite-accept-success-target : "&aYou are now friends with {friend}!"
invite-target-invites-disabled : "&cThat player is not accepting friend invites right now."
invite-decline-success-sender : "&e{friend} declined your friend invite."
invite-decline-success-target : "&eYou declined the friend invite from {friend}."
notifications-gui-title : "&9Friend Notifications"
notifications-mode-all-name : "&aAll friends"
notifications-mode-best-name : "&eBest friends only"
notifications-mode-none-name : "&cNo notifications"
notifications-mode-set : "&aNotification mode set to &f{mode}&a."
invites-enabled : "&aYou are now accepting friend invites."
invites-disabled : "&cYou are no longer accepting friend invites."
nick-not-friend : "&c'{friend}' is not on your friend list, so you can't set a nickname."
nick-set : "&aSet nickname for {friend} to &f{nickname}&a."
note-not-friend : "&c'{friend}' is not on your friend list, so you can't add a note."
note-set : "&aSaved note for {friend}: &f{note}"
note-view : "&aNote for {friend}: &f{note}"
note-none : "&eYou don't have any note saved for {friend}."
group-created : "&aCreated group '&f{group}&a'."
group-exists : "&eA group named '&f{group}&e' already exists."
group-max-reached : "&cYou can only have up to {max} friend groups."
group-deleted : "&cDeleted group '&f{group}&c' and removed it from your friends."
group-not-found : "&cYou don't have a group named '&f{group}&c'."
group-set-friend : "&aAdded {friend} to group '&f{group}&a'."
group-set-friend-removed : "&eRemoved {friend} from any group."
group-set-friend-not-in-group : "&c{friend} is not in group '&f{group}&c'."
group-list-header : "&aYour friend groups:"
group-list-entry : "&7- &f{group}&7: &f{members}"
group-list-empty : "&eYou don't have any friend groups yet. Use /friend group create <name>."
admin-player-not-found : "&cCould not find data for player '&f{player}&c'."
admin-addself-success : "&aYou forcibly added yourself and {friend} as friends."
admin-group-list-header : "&aFriend groups for &f{player}&a:"
admin-group-list-entry : "&7- &f{group}&7: &f{members}"
admin-group-list-empty : "&e{player} does not have any friend groups."
admin-group-added : "&aAdded {friend} to {owner}'s group '&f{group}&a'."
admin-group-removed : "&eRemoved {friend} from any group for {owner}."
admin-group-failed : "&cCould not update group for {friend} (owner: {owner})."
admin-group-deleted : "&cDeleted group '&f{group}&c' for {owner}."
admin-group-not-found : "&c{owner} does not have a group named '&f{group}&c'."
chat-enabled : "&aFriend chat enabled. Your messages will only go to your friends."
chat-disabled : "&eFriend chat disabled. You are talking in normal chat again."
friend-chat-format : "&d[FriendChat] &b{sender}&7: &f{message}"
groupchat-enabled : "&aGroup chat for '&f{group}&a' enabled. Your messages will only go to members of this group."
groupchat-disabled : "&eGroup chat disabled. You are talking in normal chat again."
groupchat-group-not-found : "&cYou don't have a friend group with that name."
sharepositions-friend-offline : "&cThat friend is not online right now."
sharepositions-received : "&a{player} shared their position with you: &fX: {x} Y: {y} Z: {z} &7({world})"
sharepositions-sent : "&aShared your position with {friend}: &fX: {x} Y: {y} Z: {z} &7({world})"
# Limits
max-friends-per-player : 100
max-groups-per-player : 5
prefix : "&7[&bBetterFriend&7] "
player-only : "&cThis command can only be used by players."
no-permission : "&cYou don't have permission to use friend commands."
usage-main : "&e--- Friend Commands ---"
usage-list : "&f/friend list &7- Show your friend list"
usage-add : "&f/friend add <player> &7- Add a player to your friend list"
usage-remove : "&f/friend remove <player> &7- Remove a player from your friend list"
usage-best : "&f/friend best [player] &7- Set or view your best friend"
usage-notifications : "&f/friend notifications toggle &7- Configure join notifications"
usage-toggleinvite : "&f/friend toggleinvite &7- Toggle whether others can invite you"
usage-nick : "&f/friend nick <player> <nickname> &7- Set a nickname for a friend"
usage-note : "&f/friend note <player> [note] &7- View or set a note about a friend"
usage-group : "&f/friend group create <name>&7, /friend group delete <name>, /friend group set <player> <group>, /friend group remove <player>, /friend group list &7- Manage friend groups"
usage-groupchat : "&f/friend groupchat <group> <on|off> &7- Talk only to members of one friend group"
usage-sharepositions : "&f/friend sharepositions <player> &7- Share your current coordinates with a friend"
usage-admin-main : "&e--- Friend Admin Commands ---"
usage-admin-addself : "&f/friendadmin addself <player> &7- Force friendship between you and a player"
usage-admin-grouplist : "&f/friendadmin grouplist <owner> &7- List groups for a player"
usage-admin-groupjoin : "&f/friendadmin groupjoin <owner> <player> <group> &7- Add or remove a player to a group (use 'none' to clear)"
usage-admin-groupdelete : "&f/friendadmin groupdelete <owner> <group> &7- Delete a group for a player"
no-friends : "&eYou don't have any friends yet. Use '/friend add <player>' to add someone!"
list-header : "&a--- Your Friend List ---"
list-entry-online : "&7• &a● &f{friend}"
list-entry-offline : "&7• &c● &7(&coffline&7) &f{friend}"
list-entry-best-online : "&6★ &a● &b{friend}&6 (Best Friend)"
list-entry-best-offline : "&6★ &c● &7(&coffline&7) &b{friend}&6 (Best Friend)"
list-footer : "&aTotal friends: &f{count}"
add-usage : "&cUsage: /friend add <player>"
add-self : "&cYou can't add yourself as a friend!"
add-already : "&e{friend} is already on your friend list!"
add-offline : "&cPlayer '{friend}' is not online."
add-success : "&aSuccessfully added {friend} to your friend list!"
add-fail : "&cFailed to add {friend} to your friend list."
add-notify-target : "&b{player} has added you to their friend list!"
remove-usage : "&cUsage: /friend remove <player>"
remove-not-friend : "&c'{friend}' is not on your friend list!"
remove-success : "&aRemoved {friend} from your friend list."
remove-fail : "&cFailed to remove {friend} from your friend list."
remove-notify-target : "&e{friend} removed you from their friend list."
friends-max-reached : "&cYou can only have up to {max} friends."
best-current : "&bYour current best friend is: &6{friend}"
best-not-set : "&eYou don't have a best friend set. Use '/friend best <player>' to set one!"
best-not-friend : "&c'{friend}' is not on your friend list! &eUse '/friend add {friend}' to add them first."
best-set-success : "&a{friend} is now your best friend!"
best-set-fail : "&cFailed to set {friend} as your best friend."
join-friend : "&aYour friend &b{friend}&a has joined the server!"
join-best-friend : "&6★ &aYour best friend &b{friend}&a has joined the server!"
quit-friend : "&eYour friend &b{friend}&e has left the server."
quit-best-friend : "&6★ &eYour best friend &b{friend}&e has left the server."
invite-sent : "&aSent a friend invite to {friend}. They have 5 minutes to accept."
invite-received : "&bYou received a friend invite from {player}."
invite-click-message : "&b{player} sent you a friend invite:"
invite-click-accept : "&a[Accept]"
invite-click-decline : "&c[Decline]"
invite-already-sent : "&eYou already have a pending friend invite with {friend}."
invite-expired-sender : "&eYour friend invite to {friend} has expired."
invite-no-pending : "&cYou don't have a pending friend invite from {friend}."
invite-accept-success-sender : "&a{friend} accepted your friend invite!"
invite-accept-success-target : "&aYou are now friends with {friend}!"
invite-target-invites-disabled : "&cThat player is not accepting friend invites right now."
invite-decline-success-sender : "&e{friend} declined your friend invite."
invite-decline-success-target : "&eYou declined the friend invite from {friend}."
notifications-gui-title : "&9Friend Notifications"
notifications-mode-all-name : "&aAll friends"
notifications-mode-best-name : "&eBest friends only"
notifications-mode-none-name : "&cNo notifications"
notifications-mode-set : "&aNotification mode set to &f{mode}&a."
invites-enabled : "&aYou are now accepting friend invites."
invites-disabled : "&cYou are no longer accepting friend invites."
nick-not-friend : "&c'{friend}' is not on your friend list, so you can't set a nickname."
nick-set : "&aSet nickname for {friend} to &f{nickname}&a."
note-not-friend : "&c'{friend}' is not on your friend list, so you can't add a note."
note-set : "&aSaved note for {friend}: &f{note}"
note-view : "&aNote for {friend}: &f{note}"
note-none : "&eYou don't have any note saved for {friend}."
group-created : "&aCreated group '&f{group}&a'."
group-exists : "&eA group named '&f{group}&e' already exists."
group-max-reached : "&cYou can only have up to {max} friend groups."
group-deleted : "&cDeleted group '&f{group}&c' and removed it from your friends."
group-not-found : "&cYou don't have a group named '&f{group}&c'."
group-set-friend : "&aAdded {friend} to group '&f{group}&a'."
group-set-friend-removed : "&eRemoved {friend} from any group."
group-set-friend-not-in-group : "&c{friend} is not in group '&f{group}&c'."
group-list-header : "&aYour friend groups:"
group-list-entry : "&7- &f{group}&7: &f{members}"
group-list-empty : "&eYou don't have any friend groups yet. Use /friend group create <name>."
admin-player-not-found : "&cCould not find data for player '&f{player}&c'."
admin-addself-success : "&aYou forcibly added yourself and {friend} as friends."
admin-group-list-header : "&aFriend groups for &f{player}&a:"
admin-group-list-entry : "&7- &f{group}&7: &f{members}"
admin-group-list-empty : "&e{player} does not have any friend groups."
admin-group-added : "&aAdded {friend} to {owner}'s group '&f{group}&a'."
admin-group-removed : "&eRemoved {friend} from any group for {owner}."
admin-group-failed : "&cCould not update group for {friend} (owner: {owner})."
admin-group-deleted : "&cDeleted group '&f{group}&c' for {owner}."
admin-group-not-found : "&c{owner} does not have a group named '&f{group}&c'."
chat-enabled : "&aFriend chat enabled. Your messages will only go to your friends."
chat-disabled : "&eFriend chat disabled. You are talking in normal chat again."
friend-chat-format : "&d[FriendChat] &b{sender}&7: &f{message}"
groupchat-enabled : "&aGroup chat for '&f{group}&a' enabled. Your messages will only go to members of this group."
groupchat-disabled : "&eGroup chat disabled. You are talking in normal chat again."
groupchat-group-not-found : "&cYou don't have a friend group with that name."
sharepositions-friend-offline : "&cThat friend is not online right now."
sharepositions-received : "&a{player} shared their position with you: &fX: {x} Y: {y} Z: {z} &7({world})"
sharepositions-sent : "&aShared your position with {friend}: &fX: {x} Y: {y} Z: {z} &7({world})"
# Limits
max-friends-per-player : 100
max-groups-per-player : 5
• Commands
Player Commands – /friend
• /friend – Show short usage overview.
• /friend help – Show detailed help.
• /friend list – Show your friend list with status indicators and total count.
• /friend add <player> – Send a clickable friend invite.
• /friend remove <player> – Remove a mutual friendship.
• /friend best – Show your current best friend.
• /friend best <player> – Set a best friend.
• /friend accept <player> – Accept a pending invite.
• /friend decline <player> – Decline a pending invite.
• /friend nick <player> – View nickname.
• /friend nick <player> <nickname> – Set or update nickname.
• /friend note <player> – View note.
• /friend note <player> <note...> – Set or update note.
• /friend group create <name> – Create a group.
• /friend group delete <name> – Delete a group.
• /friend group add <player> <group> – Assign a friend to a group.
• /friend group remove <player> – Remove friend from any group.
• /friend group list – List all groups and members.
• /friend groupchat <group> on|off – Toggle group chat.
• /friend sharepositions <player> – Share your position.
• /friend toggleinvite – Enable or disable invites.
• /friend notifications toggle – Change notification mode.
Admin Commands – /friendadmin
• /friendadmin addself <player> – Force mutual friendship without invite.
• /friendadmin grouplist <owner> – List a player’s groups and members.
• /friendadmin groupjoin <owner> <player> <group> – Add a player to a group.
• /friendadmin groupdelete <owner> <group> – Delete a group and clear assignments.
• Permissions
• betterfriend.use – Access all normal /friend commands (default: true).
• betterfriend.admin – Access /friendadmin commands (default: op).
• betterfriend.sharepositions – Use /friend sharepositions (default: true).
• Configuration
Limits
• max-friends-per-player: 100
• max-groups-per-player: 5
Friend List Formatting
• Online / offline indicators
• Best friend highlighting
• {friend} = nickname if set, otherwise player name
• {count} = total number of friends
Messages
• Fully configurable for usage, errors, success messages, invites, notifications, groups, chat, and admin tools.
• Supports Minecraft color codes using &.
• Installation
• Place the plugin JAR in your plugins folder.
• Start the server to generate config.yml and friends.yml.
• Customize messages, limits, and permissions as desired.
• Restart or reload the plugin.
• Players can use /friend, admins can use /friendadmin.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.21, 26.1
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
BetterFriend – Advanced Friend System for Minecraft (26.1.x+) is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1. Downloaded 69 times (via Spigot). Download it and open it directly in the game.