Skip to content

Planned: GUI Overhaul

Status: Planned — not yet implemented.

Overview

Most player-facing command interfaces will be replaced or supplemented with inventory-based GUIs. This document outlines the planned GUI conversions and the input systems that support them.


Input Systems

Chat Entry

Used when free-text input from the player is needed (names, messages, search queries).

Flow: 1. GUI is temporarily closed (or kept open via packet trickery) 2. Server sends a chat prompt (e.g., &aType the player name to invite:) 3. Next chat message from that player is captured by a AsyncChatEvent listener 4. Input is validated; on error, the prompt is re-sent with an error hint 5. GUI re-opens with the result applied

Use cases: party invite, guild invite, rename, search/filter fields.

Sign Entry

Used when a numeric value is needed (prices, amounts, quantities).

Flow: 1. Server opens a virtual sign via the PacketPlayOutOpenSignEditor NPC packet 2. Sign shows a label on line 1 (e.g., Enter Price:) and a placeholder on line 2 3. Player fills in the value and confirms the sign 4. Server reads PacketPlayInUpdateSign and parses the numeric value 5. Invalid values show an error message and re-open the sign

Use cases: auction house listing price, bazaar quantity, trade offer amounts.

Reference implementation: SurvivalCore sign editor handler.


Planned GUI Conversions

Party GUI (/party)

  • Main panel: member list with roles, status (online/offline), combat status
  • Invite: chat entry — player types name, invite is sent, target sees clickable accept/deny chat
  • Kick/Leave: confirmation dialog in GUI
  • Promote/Demote: click role indicator in member list

Guild GUI (/guild)

  • Tabs: Members, Info, Bank (future), Settings (officer+)
  • Invite: chat entry for player name
  • Kick/Promote/Demote: click member in list → action menu
  • Edit description/name: chat entry (officer+)

Quest GUI (/quests)

  • Available quests tab, active quests tab, completed tab
  • Click quest → detail view: objectives, rewards, accept/abandon button
  • Progress bars for each objective

Hologram Creation GUI (/holo create)

  • Instead of a long command string, open a GUI:
  • Line editor: click line slot → chat entry for line text
  • Add/remove/reorder lines
  • Preview hologram name
  • Confirm to create at player location

Admin Spawner GUI (/spawner)

  • Instead of /spawner set <id> <field> <value>, open a GUI showing all fields
  • Click a field slot → sign entry (numeric) or chat entry (string)
  • Changes saved immediately on close

Non-GUI Inputs That Stay as Commands

Some actions intentionally remain as commands for speed: - /heal, /fly, /gmc etc. (single-action admin commands) - /balance, /pay (simple economy lookups) - /skill, /stats (read-only display, may get GUI later)