Skip to content
All Work

Software Application

In development

StewardGUI-First Minecraft Moderation Suite

Steward is a moderation application I am developing for Minecraft servers. It brings player information, reports, warnings, administrative actions, and staff tools into an organized in-game interface.

The project focuses on guided workflows, permission-aware actions, and persistent records. Staff can review a player, investigate a report, and record moderation decisions through connected interfaces backed by server-side logic. Built with Java and Fabric, Steward demonstrates my work in application architecture, workflow design, access control, and data persistence.

Project type
Independent software project
My role
Application development, interface workflows, permissions, and persistence
Status
In development
License
Mozilla Public License 2.0
stewardmod.com
Screenshot of the Steward product website

The challenge

Moderation is a workflow, not a single command.

A staff team reviews people, investigates problems, and records decisions that affect members of the community. Steward is designed around the practical needs that come with that work.

  • Related tools in one place

    Staff need player information, reports, warnings, and actions in a consistent interface, instead of remembering a separate command for each task.

  • Appropriate authority

    Sensitive actions need permission and staff-hierarchy checks, so team members can only act within the authority they have been given.

  • Clear report ownership

    Reports need someone responsible for them and defined steps to a resolution, so nothing is handled twice or left unanswered.

  • Decisions with context

    Moderation decisions need persistent history, so staff can see what has already happened before deciding what to do next.

  • Context that carries through

    As staff move between a player, their records, and an action, the interface should keep track of where they are and what they were reviewing.

Implemented capabilities

Connected interfaces, enforced permissions, and lasting records.

These modules are implemented in the codebase. Not every module has completed in-game runtime acceptance yet; see the development status below.

Connected staff interfaces

Related information and actions are organized around the player or issue being reviewed.

  • A staff control panel opened with the /steward command
  • A player browser and individual player profiles
  • Contextual actions with return navigation to where staff started
  • Player-specific and server-wide moderation history
  • Detail views and clickable record identifiers

Permission and hierarchy enforcement

Permission checks apply when an action is confirmed and executed, not only by hiding buttons a staff member should not use.

  • Integration with the LuckPerms permissions plugin
  • Action-specific permissions
  • Primary-group weight comparisons for relevant actions that affect another player
  • Separate hierarchy bypass permissions for different families of actions
  • Restrictions on targeting yourself
  • Actions are denied when the required hierarchy information cannot be resolved

Warning lifecycle

A guided process for issuing a warning and following it through to expiration or revocation.

  • Guided selection of severity, category, reason, and expiration
  • Optional private staff notes and evidence references
  • Review and confirmation before a warning is issued
  • Acknowledgment that only the warned player can complete
  • Expiration, revocation, escalation, and persistent history

Reports and staff notes

A report moves from submission to staff ownership and a recorded resolution.

  • Player-submitted reports with a submission cooldown and a limit on duplicate open reports
  • A staff queue with claim, release, resolve, and dismiss actions
  • Ownership rules and resolution notes
  • Notifications when reports close, deferred until offline reporters return
  • Persistent staff notes associated with players

Moderation and investigation tools

The everyday actions a staff team relies on, connected to the same records and permission checks.

  • Freeze and controlled relocation
  • Kick, mute, temporary ban, permanent ban, and revocation workflows
  • Staff teleport tools and vanish
  • Private staff chat with history
  • Read-only inventory snapshots of online players, with an explicit refresh action

Persistent records

Records and operational state are kept on disk and restored when the server starts.

  • JSON-backed records and operational state
  • Shared storage helpers used across modules
  • Writes to a temporary file, then atomic replacement where supported
  • Restoration of relevant records on startup
  • Moderation history that connects multiple action types

“GUI-first” means the main workflows run through menus, while some free-form input, such as a written reason, uses command-backed prompts. Evidence is a reference stored with a warning, not an upload system, and escalation offers recommendations within a staff-controlled workflow rather than issuing punishments on its own. Inventory inspection does not edit inventories or sync continuously. Steward does not include Discord integration, a web moderation dashboard, cross-server management, or AI moderation.

Technical highlights

The engineering behind the workflows.

Three parts of the project that apply directly to internal tools, case-management systems, and other administrative applications.

1

Workflow-oriented interface design

Each screen is a step in a larger journey, so staff always know where they are, what they are looking at, and how to get back.

  1. 01

    Browse

    Staff open the control panel and find a player or report from a browser view.

  2. 02

    Review

    A profile or detail view gathers the related history, notes, and available actions.

  3. 03

    Confirm

    Consequential actions go through a review screen before anything is recorded.

  4. 04

    Return

    After acting, staff return to where they started with their context intact.

Browsers, profiles, confirmation screens, and detail views link together instead of standing alone. The same pattern suits any case-management or back-office tool, where people move from a list to a record to a decision and need the surrounding context at every step.

2

Server-side authorization

Hiding a button is a convenience, not a control. Consequential operations are checked on the server at the moment they are confirmed and carried out.

Each action has its own permission, resolved through LuckPerms. For actions that affect another player, Steward also compares the staff member’s primary-group weight with the target’s, so a moderator cannot act against someone above them unless they hold the bypass permission for that family of actions. Staff cannot target themselves, and if the hierarchy cannot be determined, the action is denied rather than allowed.

These checks reduce the chance of an action being taken without the right authority; they are not a security certification or a guarantee against misuse. The same approach applies to role-controlled business tools, where what someone may do depends on both their role and whose record they are changing.

3

Modular architecture and persistence

Separating shared services from individual features keeps the project easier to extend, and keeps records available across restarts.

Core services, such as permissions and storage, are kept apart from feature modules like warnings, reports, and moderation actions. Within each module, services hold the logic, models describe the data, interfaces present it, and storage helpers handle reading and writing.

Records are stored as JSON. Writes go to a temporary file first and replace the original atomically where the system supports it, which lowers the risk of a half-written file; it is not a guarantee against data loss, and it is not a database or an immutable audit log. Relevant records are restored when the server starts.

Technology

Built with

Language
Java 25
Platform
Minecraft 26.2, Fabric Loader, and Fabric API
Permissions
LuckPerms API
Build tooling
Gradle and Fabric Loom
Interface
Minecraft inventory-based interfaces
Persistence
JSON / Gson
Development workflow
GitHub and a GitHub Actions build workflow
License
Mozilla Public License 2.0

Development status

Active development, with implemented modules undergoing further runtime validation.

The repository’s development roadmap tracks three separate stages for each module, so finished code is not mistaken for fully tested functionality.

  • Implemented functionality

    The roadmap records the major modules described above as implemented in code.

  • Build validation

    The repository includes a GitHub Actions build workflow. Its current result is not reported here.

  • Runtime acceptance

    Consolidated in-game runtime checks for the implemented modules are still pending.

An automated test suite is planned but not yet part of the repository.

What this demonstrates

The same skills, applied to your project.

Steward is an independent project for Minecraft servers, but the work behind it is the same work behind internal tools and administrative applications. These are capabilities it demonstrates and the kind of work I can build for you.

View All Work
stonehavensmp.com
Screenshot of the stonehavensmp.com homepage

Community Website

StoneHavenSMP — Community Website & Staff Portal

A community website and web application I built for the Minecraft community I run, with searchable guides, live event listings, and a private staff knowledge base.

Start a conversation

Turn complex tasks into clear workflows.

I build applications that organize information, guide decisions, and give people the tools they need.