Crafting System Plugin Manual†
Version 2.0.4 (For Bakin v1.15+)
By Jagonz
Introduction†
This plugin allows you to create craftable items with customizable parameters, giving you full control over your crafting system in RPG Bakin.
Key features include:
- Automatic generation of a unique ID for each item
- Definition of required materials
- Support for custom item categories
- Customizable price values
- Execution of specific events when crafting
- Setting required player level for certain items
- User-friendly GUI to manage craftable items
In-game, craftable items can display:
- Icon, name, description, stats, resistances, recovery effects, required materials
- Customizable layout (with required tags preserved)
- Glossary system for translation
Installation†
- After Steam installs the plugin, it appears in RPG Bakin under Expanded Features.
- Navigate to: Functions → Expanded Features → Crafting System.
At first launch, the following will be auto-installed:
- Script + common event with crafting logic
- Default layouts
- Item IDs for craftables
Save the project → Installation complete.
Basic configuration†
Automatically create default variables†
- Bottom-right of plugin menu → Create vars button.
- Creates all variables the system may use.
- Variables defined in “Bakin Variables” section.
#note(warn){{
If you want custom variable names, configure them in Bakin Variables before pressing this button.
Changing names without understanding may break the system.
}}
Creating a Craftable item†
- Plugin menu → Craftable items.
- Left panel bottom: "+" to create new craftable item.
Adding Materials (Ingredients)†
- Right panel → Materials section.
- Click "+" to add
- Select from dropdown
- Set required amount
- Click Save
In-game usage†
Item Learning†
- Assign IDs to string variable items to learn (comma-separated).
- Turn ON switch execute learn.
Example: Potion(ID:3), Magic Potion(ID:5)
→ items to learn = "3,5"
System processes and registers them as known recipes.
Opening the crafting UI†
- Switch open crafting = ON → UI opens.
- Default 1080p layout used.
- Switch need not be turned OFF.
- See Layout section for details.
Functions†
Main Functions†
- Direct Crafting → craft instantly
- Disable default categories → hide weapons/armor
- Hide unknown items → fully invisible instead of "?????"
- Hide normal stats (Legacy)
- Hide dynamic stats (Legacy)
- Hide resistances
- Disable toast msg
Visual Settings†
- Icon size (pre-2.0.4)
- Icon X/Y offset
ID Generation and Update buttons†
- Overwrite current IDs (checkbox)
- Generate IDs (button)
- Layouts (button)
- Script (button)
Debug Functions†
- Learn all items
- Show item IDs
- Free items
- Advanced logs
- Disable layout motions
- Disable sound
Glossary†
- Customize in-game text of crafting interface
- Translate, theme-adapt, rename labels
Default Categories†
- Items / Weapons / Armor / Everything
Titles†
- Unknown item (?????)
- Stats title
- Materials title
- Amount label ($1 replaced by value)
- Price label ($1 replaced by price)
- Items Held ($1 replaced by number)
- HP Recovery / MP Recovery
- Required Level ($1 replaced by level)
Static Stats†
- Rename stat labels (Attack, Defense, HP, etc.)
- Toggle visibility with Use checkbox
Messages†
- Item Crafted ($1=item, $2=amount)
- Can’t carry more ($1=item, $2=amount)
- Inventory full
- Fail result
Bakin variables†
#note(warn){{
Do not change unless you fully understand. Incorrect edits may break the system.
}}
Main variables†
- items to learn (string)
- execute learn (switch)
- execute forget (switch)
- custom category (string)
- open crafting (switch)
- layout to use (string, case-sensitive)
- close crafting (switch)
- disable craftMsg (switch)
- direct craft (switch)
Sound Variables†
- csOpenSound, csCloseSound, csCraftSound, csPageSound, csCategorySound, csDecideSound, csCancelSound, csFailSound
Experimental variables†
- craftResult (-1=fail, 0=normal, 1=best quality)
- waitForSwitch (pauses until OFF)
- commonToWait (event executed before crafting resumes)
Layout section†
Layout controls†
- Up/Down → navigate list
- Left/Right → page change
- Dash → change category
- Action → craft/select amount
- Cancel → back/close
How to use a specific layout†
- Set string variable layout to use = layout name (case-sensitive)
- Open with open crafting switch
- Reset on exit
Set layout sounds†
- csOpenSound, csCloseSound, csCraftSound, etc.
- Must match audio resource names in project
- Reset on exit
How to create custom layouts†
- Copy default as base
- Do not delete functional tags
- Hide/delete/move UI as needed
- Static labels allowed (without $n special char)
Layout-Specific Panels†
- [LayoutName] - stack → stack selection
- [LayoutName] - msg → toast message
C# Functions†
Attach CraftingSystem.cs to an event (not multiple common events).
- OpenCraftingPanel("layout")
- LearnItems("1,2,3")
- ForgetItems("4,5")
- SetCustomCategories("potions,herbs,food")
- ForceClose()
- UseDirectCraft(1/0)
- DisableToastMsg(1/0)
Debug C# Functions†
- LearnEveryItem()
- ForgetEveryItem()
- GetAllItems(amount)
Craftable Items Interface Breakdown†
Craftable Item Fields†
- ID (auto, don’t modify)
- Price (optional)
- Category
- Event (common event on craft)
- Level (requirement)
- Color (hex code for name)
Advanced Material Settings†
- Is Variable → check variable ID instead of DB
- Is Cast → depends on cast member
- Keep Item (2.0.2) → retain material after crafting
Reward list†
- Items only
- Use tag $money(100) for currency rewards
Advanced item fields (2.0.2)†
- Wait for common event (with craftResult)
- Do not obtain item
Information variables (2.0.2)†
Strings: curCraftID, curCraftName, curCraftPrice, curCraftDescription, curCraftCategory, curCraftAmount
Arrays: curCraftMaterials, curCraftMaterialsAmount, curCraftRewards, curCraftRewardsAmount