HomeJavaModsRepair Shop
Repair Shop
ModsJava

Repair Shop

by AlessyJay · on Modrinth

RepairShop, a Minecraft plugin that turns a Citizens NPC into a blacksmith. Players right click the NPC and a menu lists every damaged item they're…

⬇ Download on Modrinth
Repair Shop — screenshot 1Repair Shop — screenshot 2Repair Shop — screenshot 3Repair Shop — screenshot 4Repair Shop — screenshot 5Repair Shop — screenshot 6

RepairShop

A Minecraft plugin that turns a Citizens NPC into a blacksmith. Players right-click the NPC and a menu lists every damaged item they are carrying, each priced individually on how worn it is, what it is made of, and what is enchanted on it. Payment goes through Vault.

The interaction model is borrowed from dtlTradersPlus click an NPC, get a shop window but for repairs instead of trades.


What players do

Right-click a blacksmith NPC. The menu shows every damaged item across their main inventory, hotbar, armour slots and offhand, with its remaining durability, its price, and how many times it has been repaired before.

Nothing is a flat fee. A wooden axe at 95% durability costs the 2₽ minimum; the same axe in netherite, enchanted and nearly broken runs past 2,000₽.

What admins get

How pricing works

Entirely config-driven no numbers are baked into the code. Every term is a key in config.yml.

damageRatio = damage / maxDurability
baseValue   = item-values[MATERIAL]  OR  tiers[TIER]
enchantAdd  = SUM( enchantment value * level )

cost = (baseValue * typeMultiplier + enchantAdd)
     * damageRatio ^ curve
     * shopMultiplier
     * rankDiscount
     * workPenalty

cost = max(cost, minimum-cost)

The work penalty is the term worth understanding. Plugin repairs bypass vanilla's anvil "Too Expensive" cap entirely, which would let enchanted gear last forever so every repair the plugin has already performed on an item adds a compounding surcharge, +15% per repair, capped at 4×. The count is stored on the item itself.


Supported platforms

The plugin uses no NMS and no CraftBukkit internals at all nothing below the Bukkit API. That is what makes it portable across forks: there are no server internals for a fork to change out from under it.

Platform Support
Paper Full. The native target developed, tuned and boot-tested here.
Purpur, Pufferfish, Leaf and other Paper forks Full. They keep the entire Paper API.
Spigot Full features, with two automatic downgrades see below.
CraftBukkit Same as Spigot.
Mohist, Arclight, CatServer, Ketting (Forge/Fabric hybrids) Should work they implement the Bukkit API, and nothing here reaches below it. Untested, and hybrids are flakier in general.

On Spigot and CraftBukkit two things resolve differently. Both are detected at startup and need no configuration:

/repairshop compat reports which route the running server took.

Not supported

Supported Minecraft versions

One jar runs on Minecraft 1.9 through 26.2. The plugin works out at startup which flavour of each moved-around API the server has, always by asking whether a class or method exists rather than by parsing a version string which matters, because Minecraft moved to year-based versioning in 2026, so comparing 1.21 against 26.2 is actively wrong.

api-version is pinned at 1.13: the oldest value any modern server accepts, and a key that 1.9–1.12 ignore entirely. That, plus compiling to Java 8 bytecode, is what lets a single jar cover the whole range.

What changes on older servers:

Full version Elsewhere
MiniMessage gradients, hover, click Paper 1.16.5+ Legacy § codes; colours and decorations survive
The work penalty 1.14+ Inactive. It needs the persistent data container to store a per-item repair count; below 1.14 there is nowhere to keep one, so every repair is priced as a first repair. The console says so once at startup.
Per-item max durability 1.20.5+ The material's value is used, which is the only answer those versions have
Enchanted-glint buttons 1.20.5+ The older hidden-enchantment trick. Looks identical.
Comments in shops/*.yml 1.18.1+ Same values, header kept, per-key notes omitted
GUI titles over 32 characters 1.13+ Trimmed to fit, never mid-colour-code

Material and enchantment names are handled rather than degraded: config files are read in both the pre- and post-flattening vocabularies, so one file prices GOLDEN_AXE and GOLD_AXE, or DIG_SPEED and efficiency, as the same thing.

Requirements

Server Minecraft 1.9 – 26.2, on any Bukkit-API implementation (see above)
Java Whatever your server already needs the jar is Java 8 bytecode, which every later JVM loads, so it adds no requirement of its own
Required Vault plus any economy provider (EssentialsX is the tested one)
Optional Citizens without it the NPC trait is unavailable and /repairshop open still works

If no Vault economy provider is registered, the plugin logs an error and disables itself, since it has no way to charge for anything.

Commands and permissions

/repairshop, aliases /rshop and /repairnpc.

Command Does Permission
/repairshop help Help page, showing only what the sender may run
/repairshop quote [shop] Price the item in hand, with the full breakdown repairshop.quote (default: true)
/repairshop prices Cost of a full repair for every material tier repairshop.quote (default: true)
/repairshop shops Browse, create and edit shops in a GUI repairshop.admin (default: op)
/repairshop create|edit|delete <shop> Manage one shop repairshop.admin
/repairshop assign <shop> / unassign Turn the selected NPC into a repair shop, or stop it being one repairshop.admin
/repairshop open [shop] [player] Open a shop menu repairshop.admin
/repairshop list List the configured shops repairshop.admin
/repairshop compat Show how this server's API differences were resolved repairshop.admin
/repairshop reload Reload config, messages and shops repairshop.admin

Opening a shop from an NPC needs repairshop.use (default: true).

EssentialsX owns /repair (plus fix, efix, erepair), and RepairShop deliberately does not claim it.

Setup

Drop Vault, an economy provider, Citizens and RepairShop-<version>.jar into plugins/, start the server, then:

/npc create Blacksmith
/repairshop assign default

That is the whole setup.


See CHANGELOG.md for release history. The project home at C:\Coding\Java\Repair Shop Plugin carries the full documentation set docs/PRICING.md, docs/CONFIGURATION.md, docs/ARCHITECTURE.md, docs/BUILDING.md and docs/COMPATIBILITY.md.

Repair Shop is a free Minecraft Java mod. Compatible with Minecraft 1.9, 1.9.1, 1.9.2, 1.9.3 and newer. Available via Modrinth. Download it and open it directly in the game.

Explore more