---
title: "server"
---

> Documentation Index
> Fetch the complete documentation index at: https://aesthetic-docs.pages.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# server

Connection info and server-pushed UI: address, ping, brand, boss bars and the tab list.
Text values are [text component](/text) snapshots.

## Connection

| Function | Returns |
|----------|---------|
| `server.address()` | Server address, or `nil` in singleplayer |
| `server.ping()` | Your ping in ms |
| `server.brand()` | Server brand (`"vanilla"`, `"paper"`, …); `nil` until known |

## Tab list — `server.tablist`

| Function | Returns |
|----------|---------|
| `server.tablist.header()` | Custom tab header, or `nil` |
| `server.tablist.footer()` | Custom tab footer, or `nil` |
| `server.tablist.entries()` | Listed players, in tab order |

Each entry: `{name, uuid, display_name, ping, gamemode}` — account name, rendered row
(with team styling), latency in ms, and gamemode e.g. `"survival"`.

```lua
for i, entry in ipairs(server.tablist.entries()) do
print(i, entry.display_name:string(), entry.ping .. "ms")
end
```

## Boss bars — `server.bossbars()`

All boss bars currently shown, in display order. Each is
`{uuid, name, percent, color, style}`:

- `name` — text component
- `percent` — `[0, 1]`
- `color` — `"pink"` · `"blue"` · `"red"` · `"green"` · `"yellow"` · `"purple"` · `"white"`
- `style` — `"progress"` or `"notched_6"` · `"notched_10"` · `"notched_12"` · `"notched_20"`

```lua
for _, bar in ipairs(server.bossbars() or {}) do
print(bar.name:string(), math.floor(bar.percent * 100) .. "%")
end
```

Source: https://aesthetic-docs.pages.dev/server/index.md
