Build crafting systems around elemental components instead of concrete materials.
What it is
craftpanel abstracts materials into elemental components. Items carry element compositions; crafting matches element requirements instead of one specific material. A panel can be a complete in-game crafting system: recipes/modifiers, slots, elemental ingredients, point costs, scripts and permissions are configured by the GM without writing code.
- Entry: the "Craft Panel" button in the Item Directory. GMs open the panel manager; players open the panel picker.
- Everything is configured in-game: background image, panel sizes, element strip, slots, recipes, permissions.
- Use cases: elemental alchemy, rune forging, imbue/enchanting, cooking, material processing, multi-step workshops.
Feature overview
Elements & materials
- Register any Item as an element with id, name, icon, colour, class, weight, priority, shape/alternate shape.
- Compose materials from elements and quantities in the Element Configuration panel.
- Element dots on materials/slots: custom shapes, optional rainbow gradient, configurable dot size (container +1px; default 7/8px).
- Tier thresholds per panel element bar (e.g.
3/3/3): dots for totals ≤ 10 (closed-loop spacing starting at the left centre), arc for > 10. - Sorting: quantity desc → priority desc → name.
- Element special effects (configured on the element item): Universal, Void, Antagonistic, Chaos (Blend only, hidden until crafting) and Stable; targets can be limited by element id/class; leaving both empty means all other elements.
Materials
- Stackable multi-quantity materials with min/max quantity and per-quantity element scaling.
- Same-name slot limit (stacking uses one slot).
- Material categories (name/colour/shape/alternate shape), selectable per material; icons appear in the material/slot top-right corner next to element dots and in tooltips.
- Material special effects (belong to the material itself): add/multiply product quantity, rounding, min/max product, clear elements, convert elements, randomly keep materials, and a condition script.
Panel types
| Type | Purpose |
|---|---|
| Element Configuration | Define elements, material compositions, categories and element appearance; data foundation for other panels |
| Blend | Auto-match recipes from element composition; weighted random, hidden results, per-player recipe unlocks |
| Cook | Forge-based panel with saved/loadable recipes for fixed menus |
| Forge | Result slots + modifiers + point cost; result/modifier limits, cost icon and points |
| Enchant | Result slots hold target items; modifiers apply ActiveEffects or direct property changes |
| Imbue | Base item in the centre, ability-slot ring and essence system (inspired by Age of Wonders 4) |
| Handler | Turn craft results into multi-step workshop jobs: progress / roll / manual steps, templates, actor jobs |
Recipes, modifiers, slots
- Recipes: result items, element/item/AnyOf requirements, quantity ranges, weight, category, unlock permission, hidden results.
- Modifiers: name/icon/category, level and point cost, ingredient requirements, changes (ActiveEffect or property paths), auto-apply, extra essence/materials.
- Slots: name/icon/size/shape/hue, requirements (name/type/folder/script), quantity display, bound item, lock, keep materials, slot scripts, custom positioning.
- Crafting: live readiness, validation, keep-materials, pre/post scripts, Hooks, Beaver's Crafting automatic handoff, and handler job creation.
- AnyOf support in Blend recipes and modifier ingredients: priority specific item > AnyOf > element requirement.
Imbue Forge
- Base: central item; decides product, number of unlocked ability slots and allowed ability categories; configured in a dedicated Base config sub-interface (category, centre size, unlocked slots, ability categories).
- Ability slots: freely added/removed; name/icon/size/shape/category filter/default ability/position mode (auto ring / XY / angle+distance).
- Abilities reuse Modifiers: level consumes points; ability-slot count caps the number of abilities. Clicking a slot shows its filtered ability pool in the left column.
- Essence: dedicated Essence config sub-interface defines essences (item or element) and point-tier → essence costs; abilities can add extra essence.
- Crafting requires choosing a base first; produces the base item with selected abilities applied; materials/essence are the real cost.
- Centre visuals: rune tick ring, rotating thin-line squares, ability-slot centre circle.
UI / editing / quality of life
- Fixed-pixel layout for every background-capable panel (default 1240×670 content); configurable/resettable sizes.
- Unified dark-leather + gilded "arcane workshop" theme; background dimming and reduced-motion world settings.
- Search/sort/group/filter for recipe, modifier and material lists.
- Editors: panel manager, panel config (general/requirements/audio/scripts/handler), element config, recipe/modifier editors, image picker, per-player recipe unlocks, handler templates.
- Hotkeys: Enter = craft, Esc = close; drag feedback; click-to-add material with target slot flash.
- Element Configuration panel: element items on the left, material slots/element composition in the middle, material inventory on the right; right-click a material for material settings/categories/effects.
Scripts, Hooks, API
- Script fields: panel requirements, refresh, pre/post craft, slot scripts, slot requirements, category requirements, material effect conditions, ability extra essence.
- Hooks: custom hooks before/after crafting (
<APP_ID>Pre/<APP_ID>Craft). - API:
game.modules.get("craftpanel").apiexposesopenCraftPanelManager(),openCraftPanel(),selectCraftPanel(),chooseImage(). - World settings: quantity/weight/description paths, default ActiveEffect type, item colour script, background dim, reduced motion, debug.
Permissions & multiplayer
- Panels are JournalEntries: visibility/use controlled by ownership.
- GMs unlock recipes per player by dragging; recipe/modifier pages can have their own permissions.
- GMs configure content; players only see panels/recipes they own or can see.
Installation
Manifest (recommended)
https://github.com/EternalRider/craftpanel/releases/download/5.6.5/module.json
Manual
- Download
craftpanel.zipfrom the release; - Extract into
Data/modules/craftpanel/(withmodule.jsonat that directory's root); - Restart Foundry.
Optional dependency
- Beaver's Crafting (soft): if a craft result is a Beaver recipe item, craftpanel consumes materials and Beaver handles checks/products. No effect when absent.
Compatibility: Foundry VTT v12–v14 (compatibility.verified = 14); system-agnostic.
Quick start
- Open the Item Directory → "Craft Panel" → create an Element Configuration panel.
- Drag items into the left column to register elements; drag items and elements into the centre to compose materials.
- Create a crafting panel (Blend / Cook / Forge / Enchant / Imbue / Handler).
- Configure slots, recipes/modifiers, results and permissions; click elements in the element strip to configure display, tiers and costs in edit mode.
- Players select an actor, open a panel, place materials and click Craft.
See the Wiki for illustrated configuration guides.