A downloadable asset pack for Windows

Get this asset pack and 3 more for $40.00 USD
View bundle
Buy Now$15.00 USD or more

Crafting System

Plugin

  

Tutorial

 

Changelog

(MAR/01/2024)
New Features: 
- Mouse support! (you can use the mouse to select and craft items).
- C# Calls added! (for a better work flow!), (More info below).
- Performance improvement!
- Cleaner and better code!
- Important bug fixes! 
GUI:
- Auto check for update and check button! (using itch.io API to check if a new update is available).
(MAR/04/2024)
- Fix a bug with default categories!
- Input system improved to avoid input issues
GUI:
- Update checker now will check if you have an older script version in your project.
(MAR/18/2024)
- Fixed a little bug when using item without materials and the inventory.
- Fixed a weird bug with some icons (Please use usage: 2D in your resource). 

click on "Details" to see old logs!

(Feb/10/2023) v1.0.0 Initial release
(March/08/2023) v1.1.6 Big improvements and fixes
- Starting to implement new C# features thanks to the new Bakin compiler. 
- You can learn a single item without the need to use a "comma" at the end.
- You can choose which layout to use before opening the crafting panel. (More information in "how to use"). 
- You can use the custom category "everything" to list all craftable items in a single category. 
- It is possible to change the name of the "everything" category in the glossary. 
- You can use craftable items without materials using $mats(none) or $mats(). 
- Added a button to create the necessary variables automatically. 
- Added a button to create variables automatically.
- Fixed layout for 720P, it's included in the layouts file.
- Fixed minor bugs.
(March/24/2023) v1.2.0 Multiple custom categories
- You can set multiple custom categories separated by "comma"! 
- Now you can install the script and layouts with a simple button!
  (IMPORTANT: Delete your previous plugin DLL file and just copy the
   entire CraftingSystem folder to Bakin plugins folder).
- Fixed some minor bugs.
- More code improvements.
==================================
(July/XX/2023)
Normal Version: v1.3.1
- Fixed a bug that prevented changing some variable names.
- Fixed a bug that caused the system to crash on rare occasions.
- Performance improvements.
================================== 
New features: - Now you can call a common event when you craft an item! $common(commonEventName) 
 - Now you can forget any item learned by using "items to learn" string and "forget switch". 
 - Now you can change every sound of your crafting station at run-time! (more info below). 
- Now you can use variables as materials by assigning $craftvar(variableName) to an item. 
  - Cast is now available as materials $craftcast(castName) (ideal for fusing characters to make another one).
 - You can set the icon size and the Y and X offset for more customization. 
 - You can use a "force close switch" to close the station immediately (useful in common events) 
- You can disable the message after crafting an item by using "Disable craft msg" switch. 
 - Change icon size and offset in the plugin GUI.
 ============================================================= (Nov/30/2023) IMPORTANT MESSAGE  
The normal version will become the premium version, everyone who has the normal version will have the new update with many more features! 
 *The price of the plugin will increase to 15 USD for new purchases. 
============================================================= 
(Dec/07/2023) IMPORTANT MESSAGE AND UPDATE - The premium version is now the normal version, everyone with the normal version can use the premium features now! 
____________________________________________________________ 
Bug Fixes: 
- Fixed a bug where the crafting panel did not update if the player had an empty inventory.
 - Fixed a bug where after crafting an item the panel could not be opened again. 
- Fixed a bug where the player can get stuck forever after crafting an item. - Fixed a bug weird bug that crashed the game. 
 - Fixed a offset bug in the icon list. 
_____________________________________________________________
 Experimental features:  Turn on the switch in the "wait for switch" field before opening a crafting panel so that the system waits for the common event in the "common to wait" field,  this common event should have an assign variable from the "Craft result" field (-1: fail, 0: normal, 1: better item quality), Upon completion of the common event, it should turn off the switch in the "wait for switch" field to proceed with the crafting process.
 Use $bestquality(ItemName) in an item that has a better quality item, player will get that item if craft result was 1.  This explanation will be expanded in the documentation below soon. 
(FEB/01/2024) 
 Bug fixes: 
 - Fixed a bug when using "everything" category to list every craftable item in a single category. 
- Fixed a bug that sometimes caused the crafting layout to not be seen after crafting. 
- Fixed a weird bug that can cause crashes. - Other minor code improvements and fixes. Features: 
- Rewards, add the tag: "$reward(id,id,etc)" in a craftable item to get those items when succesfuly crafting the item! example: reward(2,4,23)
 - Money, add the tag: "$money(x)" in a craftable item to get that amount of money after succesfuly crafting the item. example: money(500)

Description

With this plugin you can create items that have multiple parameters for you to chose from:

  • Unique ID for each item that can be generated automatically
  • Ingredients 
  • Custom category
  • Price

- You can see the icon of the item to create with its name, description, stats, resistances, recovery and of course the necessary materials to create it!

- you can edit the default layout to fit your needs! (without deleting things and respecting the tags).

- Several config options including a glossary to translate the system into your language!


Screenshots

click on "Details" to see the screenshots!

 

How to install

* Download and extract "Crafting System.zip". (Do not extract it with windows unzip function).

* Copy and paste "CraftingSystem" folder in the Bakin folder steamapps\common\BAKIN\plugins.


* Now go to functions -> Expanded features -> Crafting system, you will see some first usage messages, items IDs will be generated automatically.

NOTE:  if you don't see the plugin in "Expanded features" save your project close bakin completely and open it again! 

* Use install "Layouts" and "Script" buttons to automatically install the script into your project!

USE SCRIPT BUTTON WHEN YOU NEED TO UPDATE THE SCRIPT FILE IN YOUR PROJECT TO A NEWER VERSION!

(Crafting HUD) is the default layout.


* Save your project and that's it for the installation process!


How to use

Attach the script to a common event.


(Since v1.1.6 you can just use the "Create vars" button to create the variables automatically!) 

you need some Bakin variables and switches:



 Switches:

- Crafting Switch (Default name: "open crafting") Turn on this switch to open the crafting panel.

- Learn Switch (Default name: "execute learn") Turn on this switch to learn the items IDs stored in "items to learn" string.

String (Text variables):

- Items to learn (Default name: "items to learn") store items IDs separated by comma in this variable, then turn on "learn switch" to learn to craft those items.

- Custom category (Default name: "custom category") assign a custom category to this string before turning on "crafting switch". 


How learn items process works:

Basically "items to learn" does nothing unless you validate its data, so the learning process only works with the pair (items to learn -> learn switch).

In this way you do not have to worry about entering wrong or repeated values, the process will be done automatically every time you want.

- Use "Forget switch" to forget the recipes inside "items to lear" string! 


Creating a craftable item:

In the item note tags you can use the following tags to create a craftable item: 

(Case insensitive)


$craftable -- This item can be crafted in the crafting panel.

$price(x) -- set a price for the item, quick example: $price(100)

$mats(id:amount,id:amount,etc) -- use this tag to assign the ingredients to create this item: $mats(), inside parenthesis use ID:AMOUNT format and separate by comma every ingredient, quick example: $mats(1:3,4:1) to craft this item you will need three items with ID 1 and one item with ID 4.

$category(name) -- set a custom category for the item, example: $category(kitchen) if you set "custom category" to "kitchen" the crafting panel will list only items with the category "kitchen".

$hide -- if you use this tag the item will not be displayed when you use the default category. (The item will only appears when custom category matches its category).


Changing Layouts to use in game:

Since version 1.1.6 you can set which layout you will use when opening the crafting station.

"Layout to use" is the string variable that you can put the exact name of a layout into before using the "crafting switch".


Using multiple custom categories:

Just set your "custom category" string to something like "Herbs,Potions,Kitchen" (as many as you need), to use several custom categories (with "Dash" button you can change between custom categories).


Plugin interface

note: you can hover your mouse over each setting to see a quick explanation.


Functions: 

  • Direct Crafting: if turned on you will create the item directly instead of opening the panel to select a quantity.
  • Disable categories: When using default categories you will only see the "items" category
  • Hide unknown items: remove items that you don't know yet that normally appears with a "?????" in the list.
  • Hide normal stats: Hide the static stat's container (attack, defense, HP, MP, etc.).
  • Hide dynamic stats: Hide the dynamic stat's container when seeing a weapon or armor.
  • Hide resistances: Hide resistances panel like Fire, Ice, Wind etc.

Generate IDs: 

With this button you can generate item IDs automatically in the item note tags, this will not overwrite the IDs of all existing items unless you check the "Overwrite current IDs" option, the IDs will be assigned from top to bottom in the database list, you can use this option whenever you want in case that you added new items.

Create vars button: 

Use this button to create the variables needed to use the plugin, Variables will be created with the names set in "Bakin variables".


Glossary:

note: you can hover your mouse over each setting to see a quick explanation.


You can change every label of the crafting layout, some of these labels has special formats using $n that represents a certain data.  

These are the special labels:

  • Amount label:  $1 =  Number of items that can be crafted
  • Price label: $1 = number of the price of the current item
  • Owned: $1 = number of items held in your inventory of the current item
  • Item Crafted: $1 = Name of the item crafted, $2 = Number of items crafted
  • Can't carry more: $1 = Name of the item, $2 = number of items

Static stats:

In addition to being able to change the name of each static stat for weapons and armor that will be displayed in the stats panel, you can also choose whether to display the stat you want.


Layout Controls:

Up - Down key: Navigate through the crafting list.

Left - right key: Move between pages of the same category (if possible).

Dash key: Change the current category (if possible).

Action key: Perform an action with the selected item.

Cancel key: Back to previous panel or close the system.

Important Layout info:

  • You can edit the crafting layout, but you should not remove the tags that each part of the layout has, and you cannot remove any items other than selectable containers, material slots or items of the stat panel (where you see  + or -).
  • Sounds will be tied to your bakin sound settings, but,  you can set your station sounds at run-time!

Open sound: open main menu.

Close sound: close main menu.

Decide sound: decide.

Cancel sound: cancel.

Craft item sound: purchase items.

Change category: input string.

  • To change the default layout you must remove the tag #CraftingHUD and place it on the other layout, (in case you want to use any of the variants that come with the plugin or if you made a new one)


C# functions! 

(MAR/01/2024)

- OpenCraftingPanel: Open the crafting panel! 

Parameter: String that contains the name of the layout to use, if empty default layout will be used.

 

- LearnItems: Use item IDs to learn to craft items!

Parameter: String: Items IDs separated by comma, Example: "1,4,23,2".

 

- ForgetItems: Use item IDs to forget craftable items!

Parameter: String: items IDs separated by comma, Example: "4,2,25,6".

 

SetCustomCategories: Set custom categories separated by comma!

 Example: "potions,herbs,food" (the item will have a category if you use: $category(categoryName) tag.

Parameter: String: with the category or categories separated by comma.

 

- ForceClose: Automatically close the current crafting station.

Useful on common events called by items using $common(commonEventName).

- UseDirectCraft: If enabled, you will craft the item without using "stack selection" panel. 1 = TRUE , 0 = FALSE

 

DisableToastMsg: Use 1 to disable the toast message after crafting an item.

 

Sound Functions: Use these functions to assign the exact name of the sound to use at the specific moment, all of them use a Bakin string.


DEBUG Functions:

LearnEveryItem: Lean to craft every craftable items!

LearnEveryItem: Forget to craft every craftable items!

GetAllItems: Get all items by the specific amount, if amount is 0 then get only one per item.

 

Notes

* I'm open to suggestions for future updates!

* If you find any bug, do not hesitate to let me know!

* This plugin is paid, you can use it in every project you make in Bakin, but you can't share the plugin or scripts with anyone.

* Any questions I am always active on official Bakin Discord.

Purchase

Get this asset pack and 3 more for $40.00 USD
View bundle
Buy Now$15.00 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $15 USD. You will get access to the following files:

CraftingSystem.zip 182 kB
Version 1.7.3
CraftingSystem. OLD.zip 181 kB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

(+1)

Hellou Jagonz!

I loved your crafting system, but I'm having some problems, when opening the craft layout, if I have a weapon equipped, and open the cradt layout some items stays in the unlearned state (even though I have learned how to craft the item) and when I unequip the weapon it appears in the layout as learned again.

Another problem I'm having is the weapon icon in the layout, the icon is above the name of the item and I don't know what the problem would be, whether it's the resolution, etc., I tried to change in the layout tool but I wasn't successful.


I would be very grateful if you could help me!

thanks very much for your attention!!!

Hello and thank you! I'm going to investigate the problem of items that are not learned, it could be a new bug, the icon thing could be because of the resolution, what resolution are you using and what layout? For more in-depth support this is my discord: @Jagonz

Hey Jagonz, thank you for reply! the resolution i am using is 1920x1080 and the layout woud be the Crafting HUD.
I sent a friend invitation on discord.