Fast Crafting
The FastCrafting Extension provides a Typewriter crafting interface backed by the GuiAndDialogs API. Recipe definitions are catalogued once per entry configuration, while craft availability is recalculated from each player's server-side inventory. Validation and item mutation remain server-authoritative.
Features
- Optimized recipe catalog - Recipe definitions are cached per entry configuration; inventory-dependent craft limits are calculated per player.
- Integrated one-inventory menu - Optional Crafting and Recipes tabs, without nested menus, a close button or an external vanilla workbench.
- Quick crafting - A permission-gated second row exposes currently available recipes; the permission row is hidden completely when the player lacks the configured permission.
- Recipe catalogue controls - Nine BTC/RPGCORE profession categories, available/total counters, alphabetical or availability sorting, all/available/missing filters, Paper Dialog search and dynamic pagination.
- Direct crafting - Clicking a catalogue or quick-craft recipe crafts immediately using the selected quantity; shift-click crafts the maximum when enabled.
- Manual classic matrix - The integrated Crafting tab can embed a temporary 3x3 matrix and output slot. The matrix is never populated automatically from a catalogue recipe, and inputs are returned safely when the menu closes.
- MiniMessage rendering - Integrated labels and lore use MiniMessage; legacy
&colour codes are not part of the integrated menu contract. - Official/custom split - The public artifact targets Java 21 bytecode and official Typewriter/Paper/GuiAndDialogs. The BTC artifact targets Java 25 and uses the BTC GUI, BTC Core and RPGCORE crafting metadata.
Entries
- Actions - Open FastCrafting: Opens the customized crafting menu.
Quick Start
Trigger the fastcrafting action from commands, NPCs, events, or other Typewriter entries.
Menu modes
integratedMenu.enabled defaults to false to preserve existing legacy pages. When enabled, the entry uses one 54-slot inventory with the following layout:
| Area | Crafting tab | Recipes tab |
|---|---|---|
| Row 1 | Crafting/Recipes tabs | Crafting/Recipes tabs |
| Row 2 | Permission-gated quick recipes | Configured recipe categories |
| Rows 3-5 | Manual 3x3 matrix, output and quantity controls | Recipes for the selected category |
| Row 6 | Refresh and menu controls | Search, sort, filter and page indicator |
Recipe catalogue clicks craft directly. Only manual interaction with the 3x3 input slots can populate the matrix.
Configuration
| Setting | Purpose |
|---|---|
recipeNamespace | Restrict recipes to one namespace. |
disableVanillaRecipes | Exclude minecraft: recipes. |
useMMOItemsRecipes | Add MMOItems station recipes when MMOItems is enabled. |
dropWhenInventoryFull | Drop overflow results; input items are always returned on menu close. |
integratedMenu | Enable the single-inventory menu, categories, quick-craft row, filters, search and pagination. |
classicCrafting | Configure the optional manual 3x3 matrix and output slot. |
Integrated menu settings
| Setting | Default | Description |
|---|---|---|
enabled | false | Enables the integrated one-inventory menu; legacy pages remain unchanged when disabled. |
quickCraftPermission | fastcrafting.quickcraft | Permission required to display the quick-craft row; blank makes it visible to everyone. |
defaultTab | CRAFTING | Initial tab: CRAFTING or RECIPES. |
defaultSort | AVAILABLE_FIRST | AVAILABLE_FIRST or ALPHABETICAL. |
defaultFilter | ALL | ALL, AVAILABLE or MISSING. |
quickRecipesPerPage | 8 | Number of quick-craft recipes shown on row 2. |
recipesPerPage | 27 | Number of catalogue recipes shown on rows 3-5. |
categoryIds | Custom: nine RPGCORE professions; public: crafting | Profession categories displayed on the Recipes tab. |
searchEnabled | true | Enables the Paper Dialog search action. |
Runtime contract
The implementation does not expose a /fastcraft Bukkit command or client-authoritative crafting state. Craft actions are scoped to the active GUI session and inventory mutations remain server-authoritative.
Compatibility
The public extension is for the official Paper/Typewriter stack and emits Java 21 bytecode for Java 21 compatibility. It must be paired with the official GuiAndDialogs/OmniGUI extension and does not import BTC Core or RPGCORE. Its default integrated catalogue exposes the crafting category.
The BTC custom extension targets Java 25 and the BTC Core/RPGCORE stack. Its recipe metadata resolves profession identifiers from BtcCraftingRegistry, allowing the standard BTC categories (combat, mining, woodcutting, farming, fishing, crafting, smelting, alchemy, enchanting) to be displayed with available/total counters. The public artifact deliberately does not provide these RPGCORE categories.
For custom BTC recipes, use the BTC crafting namespace (for example custom) and configure RPGCORE profession metadata. The public variant reads the official Bukkit/Paper recipe catalogue and keeps the public dependency boundary intact.