#author("2025-08-27T15:23:30+09:00","default:admin","admin")
#author("2025-08-27T15:26:35+09:00","default:admin","admin")
*''Crafting System Plugin Manual'' [#sa2fc2db]
Version 2.0.4 (For Bakin v1.15+)  
By Jagonz

#contents

**Introduction [#b318cbf5]
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 [#y55ca4b7]
- Please purchase “RPG_Developer Bakin Crafting System” on the Steam Store.
[[''&size(20){Steam Store Crafting System};'':https://store.steampowered.com/app/3921180/RPG_Developer_Bakin_Crafting_System/]]
- 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 [#df1ef895]
***Automatically create default variables [#ad773ef4]
- 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 [#nd7f9529]
- Plugin menu → ''Craftable items''.  
- Left panel bottom: "+" to create new craftable item.

***Adding Materials (Ingredients) [#efdd97ac]
- Right panel → ''Materials'' section.  
-- Click "+" to add  
-- Select from dropdown  
-- Set required amount  
-- Click ''Save''

----

**In-game usage [#vfcd8be5]
***Item Learning [#k1d41003]
- 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 [#p0611c1b]
- Switch ''open crafting'' = ON → UI opens.  
- Default 1080p layout used.  
- Switch need not be turned OFF.  
- See ''Layout section'' for details.

----

*Functions [#gfb76a13]
**Main Functions [#h126746f]
- 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 [#l8c190aa]
- Icon size (pre-2.0.4)  
- Icon X/Y offset  

**ID Generation and Update buttons [#u523a940]
- Overwrite current IDs (checkbox)  
- Generate IDs (button)  
- Layouts (button)  
- Script (button)  

**Debug Functions [#bdce2fc4]
- Learn all items  
- Show item IDs  
- Free items  
- Advanced logs  
- Disable layout motions  
- Disable sound  

----

*Glossary [#q4f89f5a]
- Customize in-game text of crafting interface  
- Translate, theme-adapt, rename labels  

**Default Categories [#ea9cb916]
- Items / Weapons / Armor / Everything  

**Titles [#h159132e]
- 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 [#x8010b5b]
- Rename stat labels (Attack, Defense, HP, etc.)  
- Toggle visibility with ''Use'' checkbox  

**Messages [#wc87fc3b]
- Item Crafted ($1=item, $2=amount)  
- Can’t carry more ($1=item, $2=amount)  
- Inventory full  
- Fail result  

----

*Bakin variables [#e6ff2f6f]
#note(warn){{
Do not change unless you fully understand. Incorrect edits may break the system.
}}

**Main variables [#l8b53a85]
- 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 [#tb520d02]
- csOpenSound, csCloseSound, csCraftSound, csPageSound, csCategorySound, csDecideSound, csCancelSound, csFailSound  

**Experimental variables [#lae99593]
- craftResult (-1=fail, 0=normal, 1=best quality)  
- waitForSwitch (pauses until OFF)  
- commonToWait (event executed before crafting resumes)  

----

*Layout section [#a03a24f4]
**Layout controls [#zc6384cc]
- Up/Down → navigate list  
- Left/Right → page change  
- Dash → change category  
- Action → craft/select amount  
- Cancel → back/close  

**How to use a specific layout [#uf7f1fa6]
- Set string variable ''layout to use'' = layout name (case-sensitive)  
- Open with ''open crafting'' switch  
- Reset on exit  

**Set layout sounds [#o0b041e7]
- csOpenSound, csCloseSound, csCraftSound, etc.  
- Must match audio resource names in project  
- Reset on exit  

**How to create custom layouts [#r3ad0f69]
- 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 [#gbedf149]
- [LayoutName] - stack → stack selection  
- [LayoutName] - msg → toast message  

----

*C# Functions [#r2e0f03a]
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 [#lf722676]
- LearnEveryItem()  
- ForgetEveryItem()  
- GetAllItems(amount)  

----

*Craftable Items Interface Breakdown [#qfce497c]
**Craftable Item Fields [#h55bb8dc]
- ID (auto, don’t modify)  
- Price (optional)  
- Category  
- Event (common event on craft)  
- Level (requirement)  
- Color (hex code for name)  

**Advanced Material Settings [#bef8601a]
- 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 [#pfc5c88e]
- Items only  
- Use tag $money(100) for currency rewards  

**Advanced item fields (2.0.2) [#m80b7c6d]
- Wait for common event (with craftResult)  
- Do not obtain item  

**Information variables (2.0.2) [#v8afe5a0]
Strings: curCraftID, curCraftName, curCraftPrice, curCraftDescription, curCraftCategory, curCraftAmount  
Arrays: curCraftMaterials, curCraftMaterialsAmount, curCraftRewards, curCraftRewardsAmount

Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes