Players

Accounts, UUIDs, skins and capes all live here. Players sign in through the launcher, and your servers verify them with the panel.

{#if pending.length}
{pending.length} player{pending.length > 1 ? 's' : ''} waiting for approval
{#each pending as u} {u.username} {/each}
{/if}
{users.length} accounts
{#each shown as u (u.id)} !(e.target as HTMLElement).closest('button') && openView(u)}> {/each}
PlayerRoleGroupsPlaytimeLast seen
{u.username}{#if u.id === session.user?.id} (you){/if} {u.uuid}
{#if u.role === 'admin'} Admin{:else}Player{/if} {#if u.status === 'pending'}Pending{:else if u.status === 'disabled'}Disabled{/if}
{#each u.groups as g}{g}{/each}
{u.playtime_secs ? duration(u.playtime_secs) : '–'} {timeAgo(lastSeen(u))} {#if u.id !== session.user?.id} {/if}

Groups

Use groups to give VIPs, staff or testers access to private instances.

{#each groups as g (g.id)}
{g.name} {g.members} member{g.members === 1 ? '' : 's'}
{/each}
{#if editing} {#if !editing.id} {/if}
{#if editing.status === 'disabled'} {/if} {#if groups.length}
Groups
{#each groups as g} {@const on = editing.groups?.includes(g.name)} {/each}
{/if} {/if} {#snippet footer()} {/snippet}
{#if viewing}
{viewing.uuid} {#if viewing.status === 'disabled'}Disabled{viewing.status_reason ? ` · ${viewing.status_reason}` : ''}{/if}
{/if} {#snippet footer()} {/snippet}

This removes the account and all of its data: levels, XP, quests, achievements, stats, friends, messages, profile and posts, economy balance and market listings, and guild membership. Guilds they lead pass to the next member (or are dissolved if they're alone). Their name becomes available again. This can't be undone.

{#snippet footer()} {/snippet}