# Ashlar
**An AI building assistant that lives inside your Paper server.**
Players type `/ashlar build a stone cottage with a fountain in front of me` and the plugin does the rest: it surveys the terrain, snapshots the region, places the blocks, looks at the result, fixes what is unsupported and answers in chat - with the coordinates and a snapshot id so it can be undone. No mods, no client-side install, no extra process: one jar, one API key.

*Built by Claude through Ashlar from a one-line prompt. No schematic, no WorldEdit.*
## How it works
The plugin owns a set of coarse-grained tools - survey terrain (as an image plus exact numbers), render top views and facades, place up to 500,000 blocks in one call, inspect exact block data, snapshot and restore, run console commands - and lets a model use them:
- **In game**: `/ashlar `. The plugin calls the model API directly (any OpenAI-compatible endpoint; DeepSeek's `deepseek-flash` by default, which is cheap and accepts the images the tools return). Players see progress lines and the final reply in chat.
- **From an AI client**: point Claude Desktop, Claude Code, Cursor or any MCP client at the small `ashlar-mcp` adapter and the same tools appear there.
Block edits run on the main thread under a per-tick time budget, so a 500k-block build does not lag the server. Physics is off while writing (sand does not fall), a connection pass makes fences, panes, walls and stairs join up, adjacent chests pair into double chests, and unsupported blocks (torches, ladders, signs) are reported back to the model so it fixes them. Water and lava can be placed with physics on request, so fountains and waterfalls actually flow.
## Setup (in-game assistant)
1. Drop `ashlar-.jar` into `plugins/`, start once, stop.
2. In `plugins/Ashlar/config.yml` set `server.token` (any long random string) and `agent.model.api-key` (a DeepSeek key from platform.deepseek.com). Restart.
3. Operators can use `/ashlar` right away. Give friends access with `/ashlar allow `, a permissions plugin (`ashlar.use`), or `agent.everyone-can-use: true`.
`/ashlar help` lists everything the caller may do.
## Keeping the bill under control
- Every reply ends with what the request cost and what the player has spent today.
- Per-player daily caps on requests, tokens and cost (`agent.limits.*`), adjustable in game: `/ashlar limit cost 0.5`.
- Prepaid credit for players who pay their own way: `/ashlar credit add 5` - when it runs out the assistant wraps up cleanly and asks them to top up.
- `/ashlar usage 7` prints a per-day report; `/ashlar pause` stops everything.
- Prices and DeepSeek's off-peak hours are configurable, so the numbers shown are real money.
## Safety
- Console commands are never offered to the model unless you enable `agent.model.allow-command`.
- `world.build-region` fences where it may build; `world.allowed-worlds` fences which worlds.
- Every build can be snapshotted first and rolled back with a word.
- Operators (`ashlar.monitor`) see what other players asked and what the assistant answered; `ashlar.admin` manages limits, credit, pause and cancels other players' requests.
- The plugin's WebSocket port is only needed for MCP clients; the in-game assistant needs no inbound port at all.
## Requirements
Paper 26.2 (Java 25). Not for Spigot/Bukkit, Folia or 1.21.x. MCP clients additionally need Node >= 22 on the client machine.

## Links
Source, full README (configuration reference, MCP client setup, troubleshooting): https://github.com/rcwalter24/ashlar
License: AGPL-3.0-or-later.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 26.2
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Hangar — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Ashlar is a free Minecraft Java mod. Compatible with Minecraft 26.2. Downloaded 2 times (via Hangar). Download it and open it directly in the game.