Hytale Server Plugin

Companions that actually talk back.

Bud Plugin adds LLM-powered NPC companions to your Hytale server. They follow you, fight beside you, remember what happened, and โ€” new as of 2.0 โ€” can be sent off to farm, log, or mine on their own.

Java 25 ยท Built on the hytale-mod Gradle plugin ยท Works fully without an LLM configured

Veri, Gronkh and Keyleth, the three Bud companions
What this is

A companion system, not a chatbot bolted onto an NPC

Each Bud is a real Hytale NPC with its own role, weapon, mood, and memory. When an LLM is configured, their reactions are generated live; when it isn't, they fall back to hand-written dialogue for the same events โ€” the mod is fully playable either way, the LLM is what makes it come alive.

Three companions

Veri, Gronkh and Keyleth โ€” each with a distinct personality, weapon and now a dedicated worker role.

Reacts to almost everything

Combat, block breaks, crafting, item pickups, weather, new zones, your chat, even your status effects.

Remembers you

A decaying, priority-ranked memory store per Bud, plus a small set of permanent "legendary" memories.

โš ๏ธ Only tested in single player mode! This plugin should also work for multiple player instances - but not tested.
Meet the Buddies

Three companions, three roles

Every Bud is fully data-driven โ€” new companions are added via a YAML definition and matching game assets, no plugin rebuild required. These three ship by default.

Veri

Veri

Feran

Agile, curious, a little childish

Fights with daggers and travels with you in search of a rare antidote for his sick Feran clan, infected by a disease from the toxic Skaraks.

Daggers Mining Workstation
Gronkh

Gronkh

Trork

Grumpy on the outside, fiercely loyal underneath

A powerhouse who fights with a heavy mace, training to protect the northern tribe from the icy "white wanderers" and the undead forces threatening their lands.

Mace Lumbering Workstation
Keyleth

Keyleth

Kweebec

Highly intelligent, a bit shy

Supports from afar with a bow while uncovering ancient knowledge in lost temples, seeking to connect them and defeat the Shadow Knight's dark army.

Bow Farming Workstation
Veri, Gronkh and Keyleth standing together in-game, mid-conversation after a fight
All three, in-game and in character.
Features

What your Buds actually do

๐Ÿ—ก๏ธ

Dynamic modes

Toggle each Bud between Defensive (fights alongside you), Passive (follows), and Sitting (stays put).

๐Ÿ’ฌ

Context-aware reactions

Combat, block placement/breaking, item pickups, crafting, new-zone discovery, weather changes and direct chat mentions all trigger in-character dialogue.

๐ŸŽญ

Mood & favorite day

Moods shift over time and color dialogue; each Bud also has a favorite day of the week they get overmotivated on.

๐Ÿง 

Memory system

Decaying, priority-ranked memories per player and per Bud, plus a small set of permanently retained "legendary" memories.

๐Ÿค

Bud-to-Bud interaction

Buds react to each other's mood changes, spawns and state changes, and can build shared "legendary" memories with one another.

โค๏ธโ€๐Ÿฉน

Player state reactions

Buds notice and comment on your status effects โ€” poisoned, regenerating health, and more.

๐ŸŒพ

Worker Mode

New in 2.0: assign a Bud to a Workstation and it farms, logs, or mines the surrounding field on its own. See the dedicated section below.

๐ŸŽด

Bud Cards

Summon and dismiss companions with a craftable item instead of chat commands โ€” left-click to summon, right-click to dismiss.

๐Ÿ”Œ

Works without an LLM

Every reaction has a hand-written fallback line. The mod is fully playable with zero LLM configured โ€” the AI layer is what elevates it, not what it depends on.

New in 2.0

Send your Bud to work

Craft a Workstation, bind a Bud to it with a card, and keep it fed with fuel โ€” from there it scans the surrounding field itself and works it autonomously, resting when there's nothing left to do or the fuel runs out.

Farming

Keyleth

Tills soil, plants and waters seeds, fertilizes, and harvests ripe crops across the field.

till โ†’ plant โ†’ water โ†’ fertilize โ†’ harvest

Lumbering

Gronkh

Prepares root space with a shovel, plants and tends saplings, and fells full-grown trees for wood and Life Essence.

prepare soil โ†’ till โ†’ plant โ†’ fell

Mining

Veri

Digs holes that grow into minable stone over time, and works ore-bearing main nodes for a steady yield.

dig โ†’ wait โ†’ mine
Did you know? Trees have real root systems โ€” some species need several blocks of clear soil beneath a sapling to finish growing. Gronkh now digs and refills that space with dirt before tilling. See the tree roots guide for the full explanation and per-species tuning table.

Full Work Stations guide โ†’

No commands needed

Summon with a card, not a slash command

Each companion has its own craftable Bud Card from the Arcane Workbench, plus a roster card that spawns or despawns every default Bud at once.

  • Left-click (Primary) โ€” summon the matching Bud next to you; respawns it if already present.
  • Right-click (Secondary) โ€” dismiss that Bud again.
  • Carry all three cards to freely mix and match your active companions.
Full card recipes โ†’
Arcanist's Workbench crafting menu showing a Bud Card recipe Hotbar showing the three Bud Cards next to a player's tools
Commands

Every /bud command

Creation, deletion, state, memory, prompt, reload and debug โ€” everything runs through /bud <subcommand>, with tab-completion in-game.

Full command reference โ†’

Configuration

Six JSON files, one per concern

LLM, Reaction, Orchestrator, Work, Debug and Conversation config, plus the Bud Registry, prompt management and content versioning โ€” every setting and default, explained.

Full configuration reference โ†’

Getting started

Running it locally

  1. Clone the repo, then run .\gradlew decompileServer once to prepare IDE sources.
  2. Build with .\gradlew build โ€” this also runs the JUnit suite.
  3. Launch a local server with .\gradlew runServer.
  4. In-game, log in with /auth login device.
  5. Persist the login with /auth persistence Encrypted so you don't have to repeat step 4 every run.

The plugin works out of the box without any LLM configured โ€” add an LLM.json endpoint later to switch fallback dialogue on for real generated responses.