Licensed to Craft - Profession Gated Crafting
Full guide: github.com/teamdemivfxfish-dev/licensed-to-craft-wiki
Versions: NeoForge 1.21.1. Server-side only.
You choose the professions. You choose what they own. Every mod in your pack is fair game.
Licensed to Craft is a configuration mod. It ships no professions of its own, hardcodes no mod list, and knows nothing about your pack until you tell it. One JSON file defines any number of professions, with your ids, your names and your colours, and for each one you list what everybody without it cannot do.
Point it at Create, at Mekanism, at Ars Nouveau, at Farmer's Delight, at your own mod, at vanilla diamond gear. If the pack has it, you can gate it, whether that is a whole mod, one block, a wildcard, a tag or a whole class of item. Name it, and it is somebody's trade.
It also ships as a working example, not an empty file. The defaults are the four trades from our own server, the Warborn Realms: Blacksmith, Inventor, Freeholder and Arcanist, tied to Apotheosis, Create, MineColonies and Iron's Spells. Drop the mod in and it plays immediately. Delete the lot and write Miner, Cook, Engineer, Smuggler and Necromancer instead, and nothing in the mod cares.
Professions Are Data
config/warbornprofessions.json is the whole mod. It can be shipped inside a modpack, edited by hand, or edited live in game with commands.
{
"id": "engineer",
"name": "Engineer",
"color": "aqua",
"craft": ["mekanism", "immersiveengineering", "!mekanism:*_ore"],
"place": ["mekanism:metallurgic_infuser"],
"interact": ["mekanism:metallurgic_infuser"],
"use": [],
"cast": []
}
That is a complete profession. Add ten more if you want ten more.
The Five Gates
Every profession has five lists. Each says what a player without that profession cannot do.
| Gate | Blocks |
|---|---|
| craft | Crafting it. The result never appears in the slot, so no ingredients are lost |
| place | Placing the block |
| interact | Right-clicking the placed block. Building against it still works fine |
| use | Right-clicking with the held item |
| cast | Casting the spell (Iron's Spells & Spellbooks) |
Entries That Understand Your Modpack
A gate list is not just a pile of ids to keep up to date forever:
| Entry | Matches |
|---|---|
create |
A mod id: everything from that mod |
apotheosis:reforging_table |
One exact block or item |
malum:spirit_* |
A wildcard |
#minecraft:planks |
An item or block tag |
@weapon |
A category, judged from the thing itself |
!toxony:glass_vial |
An exception, never gated whatever else matches |
Categories are the useful part. They read what something is rather than what it is called, so they keep working when a mod updates and adds forty new items:
@gear, @weapon, @tool, @armor, @machine, @building, @block, @item, @food, @potion, @seed
So "only a Blacksmith makes weapons and armour, out of any mod at all" is two entries: @weapon and @armor.
Tip: gate lists match a mod's namespace, which is not always its jar name. Some mods ship as a wrapper jar that registers nothing itself and hides the real content in mods nested inside it. Hover an item with F3+H on and gate the id you actually see.
A Monopoly on Making, Not a Wall
You can configure it into a brick wall if you want one, but the shipped setup follows a rule worth stealing. Most gating locks a mod away and quietly wrecks the pack around it. This draws the line at the workbench instead:
- You cannot craft another profession's goods.
- You can absolutely use whatever you buy, loot or are given. Bought armour fits, a bought machine runs, a bought repair kit repairs.
- Their crafting stations stay theirs. That is the part a profession really owns.
- Breaking blocks is never gated. Anyone can mine, clear or salvage anything, whoever made it.
The result is a working economy instead of four players staring at a locked mod list.
The Safety Net
Gate a whole mod the naive way and you gate its building set with it. On our own server a player once chopped down a tree from a magic mod and found he could not craft the planks. That is not gameplay, that is a bug wearing a rule as a costume.
So a bare mod id is deliberately the weakest kind of entry. It is softened by a global exemption list, neverGate, which by default exempts @building (any block with no block entity: planks, stone, bricks, glass, fences, decoration), @food and @seed, on every mod, automatically.
Anything more specific than a mod id beats the net, so an exact id, a wildcard, a tag or a category is gated regardless. That is how a station stays locked even when it looks like an ordinary block, while the planks stay free.
And if something is overlooked in either direction, you fix it in ten seconds, live:
/profession nevergate add @potion
/profession gate add blacksmith craft mekanism:atomic_disassembler
/profession reload
Commands
| Command | Does |
|---|---|
/profession grant|revoke <targets> <profession> |
Give or take a profession |
/profession list [target] |
What a player holds |
/profession professions |
Every profession defined, and how much each gates |
/profession reload |
Re-read the file, no restart |
/profession gate show <profession> |
Print its five lists |
/profession gate add|remove <profession> <gate> <entries> |
Edit a list and save the file |
/profession nevergate show|add|remove <entries> |
Edit the safety net |
Everything is permission level 2, so quest rewards, command blocks and the console can hand professions out. Ours come from FTB Quests: /profession grant @p blacksmith.
Settings
| Setting | Does |
|---|---|
enabled |
Master switch |
creativeBypass |
Creative mode ignores every gate |
opBypassLevel |
Permission level that ignores every gate, 0 for nobody |
ignoreFakePlayers |
Machines acting through a player are never gated, so automation keeps running |
messageCooldownTicks |
Gap between denial messages |
denyMessage, denyMessages |
Your own wording, shared or per gate |
neverGate |
The safety net |
The Shipped Example, In Full
Keep it, edit it, or delete it. This is what the file contains out of the box:
| Profession | Owns | Stations kept exclusive |
|---|---|---|
| Blacksmith | Apotheosis, Toxony, Iron's Repair Kits | Salvaging, reforging, gem cutting and augmenting tables; alchemical forge, alembic, copper crucible, mortar and pestle |
| Inventor | Create and its addons | Mechanical crafter, millstone, crushing wheels, press, mixer, basin, saw, deployer, encased fan, blaze burner, spout, item drain, packager, schematicannon, physics assembler |
| Freeholder | MineColonies | Huts, quarries, supply camps, scepters |
| Arcanist | Iron's Spells and its addons, Malum's magic | Spirit altar, crucible, jars, catalyzer, runic and weaver benches, plinths, obelisks, pylons, totems. Every spell cast, too |
Two deliberate holes in it, both worth copying: Numismatics is not gated, because it is the server currency and gating it would break everyone's shops; and Create machinery can still be placed and operated by anyone, so an Inventor can build a factory for a client and the client can run it.
Requirements
| Mod | Status |
|---|---|
| NeoForge 1.21.1 | Required |
| Iron's Spells & Spellbooks | Optional, only for the cast gate |
Server-side: install it on the server alone. Clients need nothing and are never rejected for lacking it. No mixins, no client packets, no registry additions.
One thing worth knowing: craft means the crafting grid. A mod's own machine recipes are not crafting, so gate the machine itself under place and interact, which is exactly what the default station lists do.
Give them a trade. Make them trade.
Part of The Warborn Realm, by barunn

