> **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.

# Placeholders

Read AetherSkyWars data from any plugin that supports PlaceholderAPI.

Install [PlaceholderAPI](https://www.spigotmc.org/resources/6245/) and the expansion registers
itself. The console logs `Hooked on PlaceholderAPI!` on startup.

Every placeholder starts with `%aetherskywars_`.

## Live counts

Server-wide, not tied to a player.

| Placeholder | Returns |
| --- | --- |
| `%aetherskywars_playing%` | Players in any match. |
| `%aetherskywars_playing_solo%` | Players in Solo matches. |
| `%aetherskywars_playing_teams%` | Players in Teams matches. |
| `%aetherskywars_playing_ranked%` | Players in ranked matches. |

## Player stats

These read the stats of whichever player the placeholder is parsed for.

| Placeholder | Returns |
| --- | --- |
| `%aetherskywars_kills%` | Total kills. |
| `%aetherskywars_deaths%` | Total deaths. |
| `%aetherskywars_losses%` | Total losses. |
| `%aetherskywars_wins_solo%` | Solo wins. |
| `%aetherskywars_wins_teams%` | Teams wins. |
| `%aetherskywars_wins_ranked_solo%` | Ranked Solo wins. |
| `%aetherskywars_wins_ranked_teams%` | Ranked Teams wins. |

## Glow

| Placeholder | Returns |
| --- | --- |
| `%aetherskywars_glow_color%` | The colour code of the glow the player is wearing, or nothing. |
| `%aetherskywars_glow%` | The name of it, such as `RED`, or nothing. |

The colour of a glow lives on a scoreboard team, and a player can only be on one team at a time. A
nametag plugin such as TAB puts every player in a team of its own, which takes the colour away and
leaves a plain white outline whichever colour was picked.

`%aetherskywars_glow_color%` is how the colour gets there instead. Put it at the front of the
nametag prefix in your nametag plugin, which is `tagprefix` in TAB's `groups.yml`:

```yaml
tagprefix: "%aetherskywars_glow_color%&7"
```

It gives back nothing at all when the player owns no glow, or when their match has started and the
outline is off, so the rest of the prefix carries on as normal.

You do not need any of this if [PacketEvents](https://www.spigotmc.org/resources/80279/) is
installed. With it, the plugin writes the colour onto the team packets your nametag plugin is
already sending, so nothing has to go in any prefix and nobody loses their team.

`Config.Glow-Teams: AUTO` picks between the three on its own: packets when PacketEvents is
installed, the placeholder when a nametag plugin is installed without it, and a scoreboard team of
its own when there is neither. `ALWAYS` forces the team, at the cost of the two plugins taking the
player off each other's team once a second. `NEVER` leaves the colour entirely to your nametag
plugin.

<img src="/glow-routing.svg" alt="How AUTO picks the glow colour route: packets with PacketEvents, the placeholder with a nametag plugin, a team of its own otherwise" />

## Leaderboards

Each leaderboard exposes positions 1 to 10. Replace `N` with a number from 1 to 10.

| Placeholder | Returns |
| --- | --- |
| `%aetherskywars_solo_wins_N%` | Position N of the Solo wins leaderboard. |
| `%aetherskywars_teams_wins_N%` | Position N of the Teams wins leaderboard. |
| `%aetherskywars_solo_ranked_wins_N%` | Position N of the ranked Solo wins leaderboard. |
| `%aetherskywars_teams_ranked_wins_N%` | Position N of the ranked Teams wins leaderboard. |
| `%aetherskywars_kills_N%` | Position N of the kills leaderboard. |
| `%aetherskywars_kills_ranked_N%` | Position N of the ranked kills leaderboard. |

So a top three kills board is:

```text
1. %aetherskywars_kills_1%
2. %aetherskywars_kills_2%
3. %aetherskywars_kills_3%
```

:::note
Leaderboards refresh on a timer, set by `Config.Refresh-Leaderboards`, not on every kill. A
placeholder can be a few minutes behind. Run `/asw refreshLeaderboards` to rebuild them now.
See [Achievements and leaderboards](/features/achievements-and-leaderboards).
:::

## Using them inside AetherSkyWars

By default the plugin's own scoreboard and tab list do not run other plugins' placeholders
through PlaceholderAPI. Turn that on if you want them to:

```yaml
Config:
  PlaceholderAPI-In-Scoreboard: true
  PlaceholderAPI-In-Tab: true
```

:::tip
Leave both off unless you are actually using placeholders from other plugins in those places.
Every line gets parsed on each refresh, so it is work for nothing otherwise.
:::

## Checking a placeholder

In game, with PlaceholderAPI installed:

```text
/papi parse me %aetherskywars_kills%
```

If that returns the placeholder text unchanged, the expansion is not registered. Check the
startup log for `Hooked on PlaceholderAPI!`.

## Related pages

* [Achievements and leaderboards](/features/achievements-and-leaderboards)
* [Scoreboard and tab](/features/scoreboard-and-tab)
* [Signs and holograms](/features/signs-and-holograms)
