> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://aetherskywarswiki.netlify.app/api/mcp` to find what you need.

# Friends

A friend list, so players can see who is on and pull each other into a match.

<img src="/friend-request-flow.svg" alt="A friend request goes out, waits, and is accepted or declined" />

Friends need no extra plugin. A player asks someone, that player accepts, and the two are friends
until one of them ends it. The request is stored, so it is still waiting the next time they log in.

## Commands

| Command | What it does | Permission |
| --- | --- | --- |
| `/friend add <player>` | Asks someone to be your friend. | `asw.friend` |
| `/friend accept <player>` | Accepts a request. | `asw.friend` |
| `/friend deny <player>` | Turns one down. The sender is not told. | `asw.friend` |
| `/friend remove <player>` | Removes someone from your friends. | `asw.friend` |
| `/friend list` | Everyone on your list, online first, with when you became friends. | `asw.friend` |
| `/friend requests` | The requests waiting for you. | `asw.friend` |
| `/friend msg <player> <message>` | Messages a friend. | `asw.friend` |
| `/friend notify <on\|off>` | Whether you are told when a friend comes online. | `asw.friend` |
| `/friend hide` | Appear offline to your friends. | `asw.friend` |
| `/friend menu` | Opens the friends menu. | `asw.friend` |

`/friend` on its own lists these. The command also answers to `/f`, `/friends`, and `/fr`.

:::warning
`/f` used to be a party alias. Party answers to `/prty` and `/pty` instead now, and every other
party alias is unchanged. Tell your players if you had them using `/f` for parties.
:::

## How it behaves

* A friendship is mutual. Accepting adds it for both of them, removing takes it away from both.
* A request waits until it is accepted or turned down, even across a logout.
* A player is told how many requests are waiting as they log in.
* Turning a request down tells the sender nothing.
* Asking somebody who has already asked you makes you friends straight away.
* A player who has turned friend requests off is not told that someone tried. The sender is.

## The menu

The lobby hotbar has a friends item, or use `/friend menu`. Each friend is their own head, with
the ones who are online listed first.

| Click | What it does |
| --- | --- |
| Left click | Invites them to your party. If you have no party yet, one is created for you first. |
| Q | Messages them |
| Right click | Asks before removing them |
| Shift right click | Removes them at once, no asking |

Each friend's entry also says when you became friends. A friendship made before the date was
recorded shows no line rather than a made up one.

The book opens the requests waiting for you. There, left click accepts and right click turns down.

Every item in both menus is set in `social.yml`: material, name, lore and slot, the friend entries
included. An online friend and an offline one are two separate entries, so they can look completely
different. `%player%` is the name of whoever the entry is for. Left as a player head the entry wears
their skin, and any other material replaces it. A lore line that holds only `%messaging%` disappears
on a server with no messaging plugin instead of leaving a gap. See [Menus](/configuration/menus).

## Coming online

Logging in tells whichever friends are on. A friend who has turned notifications off does not see
it, and neither does anyone if you are appearing offline.

Reconnecting inside a minute says nothing, so a connection that drops and comes straight back does
not announce a player twice.

## Appearing offline

`/friend hide`, or the switch in [player settings](/features/player-settings). It stops the
notification and shows you as offline on a friend's list.

That is all it does. You are still visible in the world and in the tab list, and your friends can
still see the friendship and still remove you. Hiding a player outright is what a vanish plugin is
for.

## Messaging

`/friend msg` sends its own message, in its own format, and works with no other plugin installed.
Both lines are set in the language files under `Messages.Friends`: `Msg-Sent` is what the sender
sees, `Msg-Received` what the friend sees, with `%player%` and `%message%` filled in.

The ordinary `/msg` between any two players is untouched and stays with whatever messaging plugin
the server runs. Whether a friend can be messaged at all follows their **private messages** choice
in [player settings](/features/player-settings): Nobody blocks `/friend msg` too, and the sender is
told. Everyone and Friends both let it through, since the sender is a friend by definition here. A
friend who never touched that setting keeps whatever they told their messaging plugin's own
`/msgtoggle`.

## Turning friends off

There is no config switch. Take `asw.friend` away from the default group instead, and the commands
stop working for players who do not have it. See [Permissions](/configuration/permissions).

## Where it is stored

`aetherskywars_friends` and `aetherskywars_friend_requests`, in the same database as everything
else. Both are created on the first start.

## Related pages

* [Player settings](/features/player-settings)
* [Parties](/features/parties)
* [Menus](/configuration/menus)
* [Commands](/reference/commands)
