MV - Crafting System
A downloadable plugin
Extend your RPG Maker MV project with the Crafting System plugin. Looking for the same thing, but for RMMZ? Say no more fam. I gotchu.
Featuring:
- Ingredient based recipe system. Players build items from individual ingredient items, rather than select a recipe from a list
- Developer defined crafting categories split the system into multiple modes, no more cooking at the blacksmith anvil.
- Variable recipes can contain items that belong to specified categories, not just specific items.
- Manage recipes right in the plugin manager, no messing with JSON formatted recipe lists, or node.js apps.
- Partial recipe support. Player put in too many of one item? Added an extra ingredient? System will still craft something!
- Unlock recipes via plugin command, or by crafting them.
- Bind the scene to the main menu, YEP_MainMenuManager, or call it via script call in a common event.
- Support for multiple individual recipes to craft the same result item. Want four different ways to bake a potato? We can do that.
- Configure plugin options to your liking. Variable success rate? Failure case item creation? Removing ingredients from the inventory after failing a craft? Got you covered.
- Robust experience and leveling system, on a per category basis. New free extension for a window to show all known categories and their experience values!
- **New in v1.10** Additive ingredients can add traits and effects dynamically to a result item, allowing the crafted version of an item to be better than a found or purchased version, based on the ingredients used to make it.
This plugin requires the Ramza Crafting System Core plugin to function.
What sets this plugin apart from it's contemporary counterparts is that this plugin is entirely ingredient driven on the player's end. Other crafting systems are rigid, requiring players to select a known recipe from a list, and have the required ingredients to craft it. This system allows a lot more freedom on the player's side, allowing them to randomly jam ingredients into the UI and (hopefully) make something. If they succeed, the recipe is unlocked, so they'll always know how to make the thing they just made.
This plugin also has support for individual item categories. Let's talk about an example here. You could have an item, Stew, which requires a carrot, a potato and some meat. In traditional systems, you'd make one recipe, with those three items, and call it a day. But what if you have four kinds of meat? Pork, Beef, Chicken and Venison? You'd need to make four different recipes for stew, with each type of meat in it. That'd also clutter up the recipe list with multiple stews, too. With this plugin, tag all the meats as meat, and the recipe will accept any of them. One Stew recipe, four different kinds of meat.
I've used the new plugin parameters options available on RMMV version 1.5.2 and above to directly input the recipes into the plugin manager. Devs using this plugin no longer need to dig through JSON formatted text files, or use a node.js app to organize their recipe list.
Please note that this plugin is massive, by far the largest I've made so far, and there may be some bugs or glitches that I haven;t caught myself yet, given the scope of it. Feel free to report anything out of the ordinary you find to me directly on this plugin page, or on the RPGMakerweb forums, where I have a support topic dedicated entirely to my plugin suite.
Let's talk about how this plugin works first, and then I'll show some screenshots to help hit the idea home a bit.
As mentioned in the little blurb at the top, this crafting plugin is ingredient focused rather than recipe focused. Other plugins that tackle a crafting system rely on a menu in which you pick a recipe from a list, while this one allows the player to input random ingredients into the interface to experiment in finding working combinations of items.
The main scene looks like this:
As you can see above, you have four slots, and can select items to put in them. The text on the scene is also configurable depending on which crafting category is selected, in this case, we're looking at the cooking scene, so the wording is more specific to cooking. You can also see the crafting experience system on display in the preview window on the right side.
In this shot, we see the same scene with some ingredients already put in. On the right side you can now see a result item, the salad, and the success rate of this craft attempt. Both of these can be hidden in the plugin parameters, as well as the experience display.
Here we have selected to attempt to cook this recipe, when the bar finishes filling up, the result is shown.
When crafting is complete, we see that we didn't create the expected salad, but instead a wilted one. This is called a soft failure, and happened because we failed the 45% success check shown on the preview window. This window is showing us our wilted salad as if it were a successful craft, a configurable parameter in the plugin. Additionally, we have a window showing the ingredients lost in this failed attempt.
Here is another failed attempt, this time from blacksmithing. This was also a soft failure. The amount of items removed on a failed attempt is also configurable.
We can see the success chance is quite high on this recipe. Keep in mind that the item and the success rate will only be shown if the recipe has previously already been crafted by the player, or unlocked via plugin command.
I skipped a step here, but we've successfully crafted an upgraded sword with a ridiculous name. You can see our crafting experience has increased a bit since the first blacksmithing screenshot.
Finally, we've crafted that salad, and gained enough experience for a crafting level. Keep in mind that all of the text you see on the screen can be customized on a per category basis. The help messages, success messages, failure messages, and level text for all categories can be unique.
Now, with that out of the way, let's look at some features that aren't easily visible through screenshots.
First, partial recipe matches. The way this system works, is that it checks a list of ingredients provided by the player, against a list of every possible recipe programmed by the developer. If it doesn't find an exact match, it goes into partial match mode instead. If it finds a recipe with one less ingredient than what was provided, it will match with that instead. If it can't find a recipe with one less ingredient, it will check for recipe matches with two less ingredients instead. If it fails this check, the check will fail entirely, causing what is called a total failure.
A total failure is what happens when the player provides ingredients that are not a valid recipe. You can configure what happens to the ingredients in this case.
In the case of a failure, there are many options for consumed ingredients, ranging from nothing at all, to one, half or all of one or all supplied ingredients. Additionally, a random factor can be added to some, randomly choosing an ingredient to lose, or having a random chance to lose one, half, or all of each item individually, or all items as a whole.
If a partial recipe match happens, you can also configure what happens to the erroneous extra ingredients. If extra quantities of items are provided to a valid recipe, those extras can optionally be returned as well.
If the recipe is valid, a crafting attempt is made. We see in some of the above screenshots that there is a chance for success. This chance is configurable on a per recipe basis, and can be modified using a formula, or it can be disabled entirely. If this random chance check fails, we get what is called a soft failure.
When a soft failure happens, ingredients are taken from the player, and a failure item may be generated (if it is enabled on the failed recipe). The ingredients taken can be configured in the same ways as with a total failure, but can be different than the total failure case. If a failure result item is given it can be shown as a 'fake success', which we see in one of the above screenshots as well, where the scene shows the player the failed craft item as if it were the expected result.
If the craft attempt succeeds, the recipe is unlocked, the result item is given to the player, and all consumable ingredients are taken from the player. When a recipe is unlocked, it will show on the preview window only when the correct ingredients to make it are selected.
Speaking of consumable ingredients, there are several note tags that can be used on items with this plugin. First, an item needs to be tagged in order to be usable in a specific crafting category using the <VALIDCATS: x> tag. An item can belong to multiple categories using this tag, separate them with a comma and a space <VALIDCATS: blacksmithing, cooking>. The crafting scene will not show any valid ingredients if none are tagged to be in that scene.
The <UNCONSUMABLE: [fail], [success]> tag is used to denote items that cannot be removed from the player's inventory on a failure or successful craft. E.G <UNCONSUMABLE: fail>, <UNCONSUMABLE: success>, <UNCONSUMABLE: fail, success>. Using these tags, you can make rare ingredients not be consumed on a failed craft attempt, or have tool items used in actual recipes and not be consumed on success.
The <CRAFTCAT: x> tag is special, and tags items as belonging to an ingredient category. An item can only belong to one ingredient category.
Ingredient categories are used in certain recipes as a stand in for an actual item. I gave an example way above where you could make an item that could take one of four different types of meat. This is by using ingredient categories. A recipe will match any given item from the requested category in the correct amount, allowing a craft to succeed.
Next, menu integration. The command to open the crafting scene can be shown in the main menu with a configurable name, and can be enabled, and disabled, or hidden via plugin command during run time. When the scene is opened from the menu, the player is presented with a list of all available crafting categories to choose from. A player can back out of the crafting scene and choose a different category if desired as well. Some categories can be hidden from the player via a plugin parameter as well. These categories can not be accessed through the menu command at all, and instead can only be accessed via plugin command.
Players accessing the crafting scene via plugin command are not given the choice of which category to pick, as it is set by the plugin command, and if they back out of the crafting scene, they are not allowed to choose a different category. This is to prevent the player from accessing a different category from an event that was specific to one category (ie: accessing the cooking menu from a blacksmithing station).
The included demo project contains an info dump NPC, a few recipes, and several ingredients with which to craft them. It is a good starting point for jumping to making your own recipes, as the formatting on them can be daunting to look at. I highly recommend taking a good read through the help info on the plugin itself as well, as I have extensive notes on plugin parameters, and the inner workings of the plugin in there as well.
Update v1.10:
I mentioned up above, but version 1.10 adds a new layer to this plugin, Additive Ingredient Traits allow you to designate certain items, weapons, or armors as additive ingredients, which when used to craft an item pass on special traits or effects to the resulting item. If that sounds confusing, I did a pretty good job of explaining it on the update notice for v1.10, which you can read here.
Terms of Use:
(I somehow forgot to include this on the store description, despite being contained in the helpfile info for the plugin).
- You may use this plugin in your commercial or non-commercial games, with credit to me, Ramza.
- You may make changes to the plugin, to add features, or compatibility with other plugins, for your own personal use.
- You may share these changes as their own plugin extension to this one.
- You may not directly share modified versions of this plugin publicly.
- You may not claim ownership of this plugin.
- You must also abide by the terms of use of all dependency plugins
Extensions:
Purchase
In order to download this plugin you must purchase it at or above the minimum price of $18.99 USD. You will get access to the following files:
Development log
- Version 1.31 Minor UpdateFeb 27, 2022
- Version 1.30 Major UpdateMay 17, 2021
- Version 1.29 bugfixApr 25, 2021
- Version 1.28 UpdateApr 24, 2021
- Version 1.27 UpdateMar 07, 2021
- Version 1.26 BugfixMar 03, 2021
- Version 1.25 Bugfix (revision a)Mar 01, 2021
- Version 1.24 BugfixFeb 21, 2021
Comments
Log in with itch.io to leave a comment.
Hey Ramza!
I've tested this a couple of times with the most recent version where some traits like "CHANGE HP RECOVERY" will stack the last ingredient's trait of the same name over onto the next item cooked. Or at least last in ID, I'm not quite sure.
Specifically, I tried to make a salad with one item (lettuce: 5 HP) and another (tomato: 10 HP) with those tags and the result item will first have 15 HP restored. If I create more, the next one will be 25 HP, then 35 HP and so on, even though I used no extra ingredients and I was expecting all of them to restore 15 HP instead. Am I using that trait notetag incorrectly? It's almost as if it "remembers" one of the ingredients' additive traits and stacks it onto the next item. Please forgive me if this is user error.
Hmm.
I recall someone having a similar issue to this a long time ago that I'd thought I'd fixed. It revolved around the fact that his ingredient items weren't independent items (from the YEP_ItemCore), and a weird interaction with the way my plugin was adding traits together. It's possible the fix I implemented didn't take the second (or third or fourth) ingredients into account when doing whatever it was I made it do to fix the problem.
One question, though, are you using the YEP_ItemCore plugin to make your ingredients independent items? The problem I mentioned above was actually because the user wasn't using the ItemCore at all, and while that is okay, the additive traits were never intended to work in projects that didn't have that.
Ooh, yes, sorry I did forget to mention that I am using YEP_Item Core. I made sure to isolate the plugins in a clean project before proceeding.
I thought it was my project doing it since it I changed it to accept five ingredients, but when I tried it on a clean project with the unedited plugin, I produced the same results when using only two ingredients that aren't necessarily independent items either. Both the ingredients had the "Not Independent Item" notetag while the result did not, if that helps. Wait, should both the ingredients /and/ the result be independent? I was hoping to have stackable, non-independent ingredients and non-stackable, independent results, for example.
So, ideally the traits were only ever supposed to work on independent ingredients/result items. When I first made the system that was the plan, but an oversight caused them to work with non independent ingredients as well. What was originally supposed to happen was that in order for an item to be on the 'additive traits' list in game successfully, it had to be put there by the dev in the plugin params, and also be an independent item.
Somehow, I'd mucked that second part up, and for a long time, you were able to have ingredients that weren't independent, but did have additive traits on them. When the other user I was talking about earlier reported a very similar issue, I realized it was possible in the first place to have additive traits on non-independent ingredients, but rather than fix the problem by disabling those traits on non-independent items, I "fixed" the problem he reported.
As it turns out, my fix likely only worked for ingredients in the first slot. During the function that combines all of the traits on all of the ingredients, the traits of the result item were being added to an ingredient, which would never have caused a problem if the ingredients were independent items. The item that would inherit all of those traits would normally be removed from the inventory after. However, if the ingredient was non-independent, all instances of that item would inherit the traits. The instances already in the player inventory, the instances in the shops, the instances in treasure boxes. If you then make the same recipe again, that ingredient has way more traits than intended, and adds them all back onto itself a second time, causing the bonus to increase again.
Worth noting, is that those traits aren't saved on the item, so if you saved the game and then reloaded a save and crafted the same recipe again, it would be normal again.
The fix I applied to solve the problem originally must've only been for the first ingredient, or the first slot, or both maybe. I'd have to look more closely at what I did originally, to solve this problem for you, or find a better way to more permanently solve it.
-Ramza
Ah! My apologies then, Ramza. It was a total oversight on my part. That all makes perfect sense.
Coincidentally, I did notice that it wasn't saved like that, too. I did tinker around with your core script a bit to see what I could do to somehow "reset" it to no avail recently and that's when it hit me that them also being independent was exactly what I was missing, haha. Oops.
If you were to look more closely at this weird hybrid situation (albeit outside of your intentions), I would greatly appreciate it for so many reasons including organizational, but I understand if it's not exactly something you want to do. I would also like to say in general how much I appreciate you for providing a top quality plugin--I've been looking for AGES for something like this.
Thanks for saying so. When I first launched it, I wasn't even sure if people would want to use it over the yanfly synthesis one. This was the first plugin I'd made entirely for other people to use, and not for my own use as well. It feels good to get reaffirmation once in a while.
For now, I'd suggest making the ingredients independent items. I'll work on trying to fix it, but progress on that is going to be a little slow as I don't have a lot of time, and I've been using what little time I do have to work on a couple of extensions for this plugin.
Hi Ramza,
Am I able to select the resulting item preview to see its description?
I see it's possible for the ingredients. Thank you.
Sorry, I haven't been ignoring this question, I've just been very busy lately.
There isn't currently a way to select the result item from the preview window. The window itself is non-interactable, so there's no chance for the player to cursor over it.
There are three ways I could try to tackle this request, and I'm not sure which, if any, is better.
The first way would be to have the help window switch between the description of the ingredient (or the craft button) you currently have selected, and the result item's help text, if it exists, after a set amount of time.
The second way would be to have a hotkey that the player could push to switch the help windows text to the description of the result item, and back, probably shift or control.
The third way would be to have an extra 'item' in the bottom of the ingredient window, on the left side, next to the craft button, that when selected, shows the help description of the result item.
There are obvious flaws in all of the above though. The first case is probably the least messy, but there isn't a good way to indicate what item the help text is for, if the window is just automatically swapping around every five seconds or whatever.
The second case might work fine, but there's no real way to inform the player that they could do that (outside of that button help window that visustella has in MZ), so they could go the entire game without knowing about it at all, or by accidentally pressing it and never seeing the help description of an ingredient again!
The third case causes a visual disruption to the ingredient list window. The craft button is smaller than the items in the list, so there's room for it on the left side, but I'm not sure what you could name it where it wouldn't stand out as something obviously put there as an afterthought.
I appreciate the details. I also believe the second option would be best if a key note is added - either through a window or baked in the menu background image.
Hello Ramza,
I want to ask if it is possible to "progress time" using this plugin of yours.
To describe better, I have a time system in the game, and I want to limit the number of crafts that the player can make per time unit so that the system is not abused in the late game when they can actually buy a lot of ingredients and just mass-craft for profit.
E.g., If the player starts crafting in the morning, after 3 tries of crafting, then the crafting screen will close and I will remind the player that time has progressed to afternoon.
Is it possible to do so?
PS: I have looked at other comments and I see that this crafting works on 2-4 ingredients only? Is it possible to add more ingredients (e.g., 5-6 ingredients) in the recipe?
Thank you!
Good day.
While it is technically possible to modify the plugin so it will accept more ingredients, that is something you'll have to be left on your own to do. The function that checks for partial recipe matches only works with 4 items, so if you have it more than that, it wouldn't work without modification.
The best thing for you to do there is to make some intermediate ingredients, which is to say that some of your 6 items could be combined into one item first to get the total number down to four for the end craft. Like, Bone + Water = Broth. Broth + Meat + Vegetable + Milk = Stew.
As for your time question, there are advanced plugin parameters for each recipe, a 'run after', script, which runs after every craft of that item, and a second one that also runs after every craft. You can use those parameters to call the function from your time plugin to advance time, either by a specific amount per craft using the first one, or by a set amount for all crafts, regardless.of what the item actually was via the second one.
I won't be able to help you set that up, but the option is there, and if you know a little bit of JavaScript you can easily pull it off.
~Ramza
Good day Ramza!
Thank you for the fast reply. It is comforting to know that it is possible to pull it off.
Since you have mentioned that you will not be able to help me to set it up, I would like to clarify: since you mentioned under terms of use that "You may not directly share modified versions of this plugin publicly", can I actually ask another person (who may not have this plugin) to assist me in creating the effects that I want to have?
Also, I saw the update of v1.10 can carry traits from one object to another. Hence I have a question: Can the trait be "mutated"? E.g., if I use a fire essence with a fire trait, can I use it to create an item that gives a fire skill? If yes, can the resultant trait be randomized (so the item created can have either skill 1, skill 2, or skill 3)?
Wilderi
That wording in the terms of service is to prevent someone from changing a few lines and then sharing my plugin in a public way for free, or for money. You are free to commission someone else to make changes to the plugin for your own use. That person (or you, even) can even sell those modifications, as long as they are made in a way that in order for someone else to use them they also have to own the original plugin.
Basically, to share them, they need to be made in the same way the recipe list extension works; it doesn't work on its own, and requires my plugin to function.
You can share the plugin privately with someone else to get them to make the required modifications for you, if you like, as long as they don't then go on to use the plugin in their own projects, or share it with someone else who does. Realistically, I don't have any way to stop anyone from doing this, of course.
Currently the traits do not have any mutating ability, and there is not currently a way to make the trait do something random, however, they are programmed in a way that an addon can add different traits to items that weren't included in the base plugin, so it would be possible to extend this functionality to include evolving traits, or random traits as well. Traits that are on an item don't actually do anything on that item, though, so you can hide traits on base ingredients that only impart themselves onto the result item. Trait chaining would allow that result item, if used to create another item, to pass any traits it already had on it to the new item as well, though.
So if you had a fire essence as an ingredient, it by itself could have the trait to add a fire skill to any item it was an ingredient for. Also, the result could be a piece of equipment that has the trait "learn skill x" on it, where wearing the item gives the actor that skill, or it could be a usable item that just teaches the skill to whoever uses it (there are separate traits for that). You could also have the fire essence do both traits at the same time, so it could create both a skillbook type item which teaches a skill, and if you use it to make equipment, it could have the skill on it when equipped.
Unfortunately, as I said, there's no way to make the skill given be random, or belong to a pool, or evolve, but there is always the ability to add traits of your own via plugin extensions. And an evolving trait like that probably wouldn't be too difficult.
~Ramza
Good day Ramza,
I'm sorry for troubling you once more but I do have clarifications regarding this aspect that you mentioned:
"As for your time question, there are advanced plugin parameters for each recipe, a 'run after', script, which runs after every craft of that item, and a second one that also runs after every craft. You can use those parameters to call the function from your time plugin to advance time, either by a specific amount per craft using the first one, or by a set amount for all crafts, regardless of what the item actually was via the second one."
From the quote, my understanding was:
1. For each recipe, there is a unique 'run after' script available only for that particular recipe.
2. Another script will be run after any craft is made.
The only plugin parameter that I found from your plugin that runs after the craft is the "Run once on completion". I can't find any that runs after a craft (any craft) is made.
When you said that quote, did you mean I had to modify your js file to do what I wanted, or is it doable through the game plugin manager?
Wilderi
It does look like I got a bit confused there.
The run once per recipe is only the first time the recipe is crafted. Line 4011 of the CS_Core plugin is the line where it disables the run once functionality, so if you comment out that line it'd run every time for all crafts, though.
I had confused it with the level up common event, which can call a common event, but also runs a block of code before it calls the common event as well. It only happens on level up of the crafting type you're doing though. Modifying the line I mentioned above is probably your best bet.
Hello.
I just bought your plugin
and opened up demo and called alchemy Callcrafting Alchemy. I noticed that the level of the alchemy is not defined. Not sure if this is a bug but the rest looks fine. (I did not change anything from the parameters)
I found the cause. When there is no recipe for the "crafting" it will show up as undefined. once I created one recipe it fixes the problem.Good day, Ramza!
I purchased your crafting system some years back, crazy to think it has been so long already, and seeing there has been so many updates to it surprised me! I've been tinkering with it again and loving it all over once more.
I do have a question about the plugin, does it keep track in some way of what ingredients the players have tried to mix already and failed and then prevent the player from mixing those same ingredients again because the previous attempt revealed that that combination was incorrect? I ask because this crafting system is based on plug and play to figure out what's right in game-play. So I was curious if that was a feature already to help narrow down recipes for the player so that they don't waste time with the wrong combination again, or if they leave for an extended period and come back they don't have to struggle quite as hard as before.
Good day.
Unfortunately, it does not have that functionality. It may be possible to modify the plugin so that it can register failed combinations during a total failure, and then check that list when the player clicks the craft button, before crafting begins and pop some kind of message about it, but that might be better left to an extension to the base plugin.
The main issue with this, is that there are basically infinite non-working lists of ingredients that do not make an item, especially when you take quantities into account, so the player could fail to make something with one set of items, and then fail to make something again with the same set of items in different amounts.
If we make it so putting in a completely incorrect recipe prevents you from trying again, the player would then be able to use that feature to guess that something they put in was correct, but the quantities were wrong, allowing them to try multiple times until they get it, possibly by save scumming.
In my opinion, giving the player more options to cheat the system kinda makes the system less fun.
~Ramza
Hey Ramza,
would it be possible for you to add the item types like hidden item A and B to the "Use Item Category Window" option? I would like to use the category window, but some of my important ingrediants are items with the type hidden item A. Would be cool if you consider it^^
I can do that, but that is going to cause visual problems with that category window, since it can only show so many commands, it'd probably end up becoming a vertical scrolling window instead. I'd probably have to add plugin commands for all the special item categories and allow the end user to pick which ones they want to prevent that window from doing that on projects that don't want that to happen.
~Ramza
Hello Ramza!
Any updates on that feature?
And is there any way to tip you? You have updated this plugin so many times and I want to honor that my friend!^^
Hello there.
Apologies but I haven't gotten a chance to work on this request yet. It probably won't be too difficult to implement, I've just been swamped with a lot of other things lately.
As for tipping me, I don't believe you can do that here, without buying something anyway. You could get one of the free plugins I offer here and tip me on one of those though, and who knows, it might turn out to be something you can use too!
That being said, don't feel the need to tip me at all, you've paid for the plugin already, and it's not a cheap one, so I want you to have gotten your monies worth out of it.
~Ramza
Hello again.
I had some time today so I've uploaded new versions of the crafting system and it's core to add in this feature. Let me know how it works out for you.
~Ramza
Hello Ramza!
Really cool you implemented it and it works great^^
Would It be also possible for you to make it work with Yanfly Item Menu Categories? You can basically setup as many categories as you want and it would make navigating even more comfortable. With this you could seperate all the armor types like shields and helmets.
Maybe you like my idea!^^
I'm not entirely sure how those work, if it's similar to how the other item categories are handled, it's probably not too difficult to add them in. If it's too different though, I might have to redo how you set the categories on that window entirely, perhaps as a big struct object that'll also allow you to designate the order in which the categories appear on it.
We'll see.
~Ramza
Quick question on this plugin. Seems like something I'd want. I really like the overall look. However; in my game I don't want players just throwing in ingredients and discovering recipes. Is there an option to just list what you CAN craft, what it requires and only craft if you have the ingredients?
The recipe list extension allows you to do that, as it adds an option to list known recipes and craft from there, however, if you don't want players to experiment to discover new recipes, I think you'd be better off using something like Yanfly's Item Synthesis plugin instead.
The experimentation thing is sort of the whole point of this plugin, and his more closely matches what you're looking for.
~Ramza
Thank you for the honest feedback and directing me to another plugin. I actually have two games I'm working on. This would be perfect for my other game, so I will likely still buy this eventually. Any chance you have a public Discord server? I love showing support to any plugin makers for the RPG Maker community. Thanks for this amazing plugin!
I don't, but I am active in the VisuStella discord server (which I'm not associated with I just kind of hang around there), as well as the Lunatic Coders discord server, which I used to be an admin for but ended up being kind of inactive.
I appreciate the comments, and I look forward to seeing what you can do with it :)
Hey Ramza! Great update, but sry to bother you again.
I think I found a major bug. You can´t select body and head "armor types" in the scene, they are greyed out. It also happens in your demo project. YEP item core causes the problem. At first I thought my plugin setup or ther plugins are causing the trouble, but as I said it also happens in the demo project.
Maybe you have time to take a look at it. Have a nice day!
That's... something.
I'm about to head to bed after this backshift is done in like 10 minutes, but I'll take a look when I wake up. Quick question, your screenshot shows you have a shield in the first slot already, if you take that shield out, are those other armor types selectable?
I'm thinking the problem has something to do with how I handled independent items in the item selection window. Namely, the way it disallowed independent items that were already in the ingredient list above. I think it maybe doesn't work correctly with equipment, but like I said, I'll give it a check when I wake up later.
-Ramza
They are not selectable at all. I selected the shield, because it´s the only armor-type that are working.
Thank you and have a good sleep!^^
Alright, got that sorted out for you in v1.29.
Basically, the problem was a typo. In an if check I'd checked if the items etypeId was == 2, instead of >= 2. Meaning it could only ever allow armor that was etypeId 2, or shields. That's concerning, because that function has been the same since the beginning, I'm pretty sure, so this bug has always existed.
Thanks for the catch.
~Ramza
Awesome! It works like a charm now. I only found that bug, because I was preparing a new version of my game with the craft system. I heavily tested it and found this bug.
It´s a little bit odd, nobody noticed it by now...
Your plugin is awesome Ramza!
Thank you for the good work and your great support!
Hey again ;p
If you get the chance, do you think you could look into a small compatibility fix for this Icon Hue plugin? https://forums.rpgmakerweb.com/index.php?threads/icon-hue.125025/
The plugin lets you adjust the hue of an icon, so you don't need to have duplicate icons for recolors. The hue actually shows up fine on the bottom window where you choose the ingredients to use, but doesn't show up in the window that shows what ingredients you have already picked.
Looks like that plugin works by aliasing the drawItem function of Window_Base, manually changing the hue of the contents of the window, and then drawing the icon.
That window has its own drawItem function, so the alias doesn't do anything for it specifically. I looked at it pretty quick and I think this should work, but I haven't tested it myself. Give it a try and if it causes an error or a crash or something, let me know and I might be able to fix it.
The main difficulty is that my window doesn't use many of the same properties to draw the items list as a window_base would, so his function might not work correctly here.
Here's a link
Either save that as a js file and import it below your other plugins, or paste that text directly into the icon hue plugin. As long as both plugins exist, it should work. I think.
~Ramza
Thanks for the quick response!
Unfortunately the patch seems to crash when trying to open the crafting menu. For reference, the patch is placed in it's own .js file, and is below both your plugin and the Icon Hue plugin.
Here's the error I'm running into:
K, try this one instead.
click me
It was trying to read an element of an array that didn't yet exist, so I added a check to make sure the ingredient list array was actually initialized before continuing. That should do it... I think.
~Ramza
Works like a charm now, thank you very much! :)
Hello again Ramza,
I have decided to ditch my 5-slot expansion of the item scene for now and maybe for good. I think you're right that most recipes shouldn't need more than 4 ingredients and if they do, there can be advanced combinations of ingredients to fit in this situation. Mainly, I just want to have the most current version of your plugin, as I am putting a big focus on crafting in my project.
Anyway, the reason I am reaching out today is because of an issue I was having before I added the extra slot. The issue is that the 'Craft' text actually shows a second time at the very bottom on the ingredient window and I'm hoping you could help me with that. It may be due to my window padding but I am not completely sure.
Hello there. Glad to hear you've come around on the 5 slots thing. :)
As for your issue, I can't duplicate this in my test project. Admittedly, I haven't tried much, but I'm not really sure what could be causing it to draw a second craft command without any of your five slot edits from before. I extended the window by ~200 pixels, hid the listwindow, and refreshed the ingredient window to force it to redraw the commands, and it still only draws four slots and a craft button. Are you sure you've undone all of your changes from before? It looks like it's drawing a sixth command, but is still using the correct list length to decide if it should draw the craft button or not.
I did just re-download the crafting plugin and the extensions, I went into the plugin manager and checked the versions,
Here's what my setup looks like currently. I do have quite a lot of other plugins in this project but I don't think they would be causing this issue...
I will start a new project and check just the necessary plugins.
So I just tested a new project with just Yanfly Core, Yanfly Item Core and The crafting plugin and the problem is not found in this new project. Since I copied the plugins from my original project into this test project, I know its not the plugins themselves. I will begin looking at all of my other plugins to determine the issue.
-EDIT-
It was the window padding parameter in Yanflys Core Engine. If I have it set below 16, it shows the duplicate craft command.
Okay, one more update for the night. I took 2 screenshots, 1 of the 5 slot system edit and one of the normal setup.Above is the 5 slot system.Above is the 4 slot system. I do notice that the category and level text is closer to the separating gauge than in the 5 slot image, but I'm not sure why. I have disabled quite a few plugins, especially any that I immediately thought could be conflicting, but no luck yet.Oof, sorry to keep nagging like this but I have made some progress. After copying my project and disabling the plugins by category to pin it down, it wasn't until I finally disabled Yanfly's Core engine and Updates core that it was finally resolved. But that left me more confused, as I don't understand why that could be, unless its because I modified the Core plugin in this project. When I copied the plugins.js file from the new test project that was working properly WITH the core installed, it worked. So somewhere in my plugin data I have something causing this issue.I'm glad you figured it out. I still have no idea why the window padding from CoreEngine would cause an extra command to be drawn :/
Hey Ramza,
Just wanted to let you know that I think DreamX's random prefix/suffix plugin is already compatible with your system.
I created a recipe in your system for my most basic Iron Sword, which is setup to have the random prefix/suffix attached when I craft it in Yanfly's system, and it seemed to work exactly as Yanfly's Item Synthesis would.
I'm still setting up my recipes but I'll let you know if I run into any problems with it in the future.
Nice. Good to know. I'd reckon that the craft successful window even shows the correct affixes on the item, since it gets that from the actual item as it's being given to the player.
The cost thing we talked about before is probably still going to be a bit messed up though, since the codebox only has access to the base item, and not anything that has any affixes or additive traits added to it.
It absolutely does!! And no worries, I'm using the item price to control a variable that shows how much money has been generated through each crafting category. I can update the text to show base, or estimated value, instead of actual value. Since I doubt the player will actually sell everything they make, it shouldn't be an issue.
Awesome plugin, thank you for this! I've had it for a couple days now and I've been working on adding in a fifth ingredient slot, which I am just finishing up tonight. I also centered the 'Craft' text at the bottom of the ingredients list.
One thing I am having trouble with is removing the 'Craft' function from the fifth ingredient entry slot. After loading up some ingredients for a recipe, I can still craft the item from selecting the fifth slot. [See attached Image]
Another question I have is about running a block of code on every successful crafting of a recipe. I'd like to show certain data, like the last item crafted, the most valuable item crafted and the total value of all the items crafted within a given category and if I could control variables on every successful attempt, I would be able to do that.
I am currently looking at the function on line 6622:
Window_CraftingResult.prototype.callSuccessResult = ...
but I'm not sure exactly what to do from there...Any chance you'd be able to help me implement this?
-EDIT-
I was able to figure out how to remove the 'Craft' Function from the fifth ingredient slot by changing the condition:
'if (index < 4)' of line 5984's function:
Window_IngredientSlot.prototype.isEnabled
to: 'if (index < 5)'
So disregard the attached image.
I still need to test a recipe with 5 ingredients and then test out some partial recipes as well as that will be the true test to see if I did this properly.
Heya.
I'm not sure how much luck you're going to have trying to use a fifth slot like that. In the end, a lot of the functions that check for recipe matches are hard coded to only check for four items in the recipe, so there's probably going to be a lot of slight things you're going to have to change.
For example, the code that checks for a partial match specifically only checks for recipes that contain one less, and then two less ingredient items than the ingredients provided, because it is impossible for a recipe to only have one ingredient, a check for n-3 was not needed. But if you can provide 5 ingredients, a recipe with only two ingredients would never be partially matched because it would have 3 less ingredients than what was provided.
As for your second question, there is a new(ish?) feature that was added a couple of updates ago which you may find useful. The CraftingCompleteRunOnce plugin parameter located inside the result item list is a block of code that is run once when the item is crafted the first time. You can use this to track what you're looking for, and then edit the part of the function that turns it off after it's run once to make it happen every time the item is crafted instead.
That is located inside the Window_CraftingResult.prototype.callSuccessResult function. It starts on line 6550, and specifically line 6563 is what sets it to never run again after the first time $gameParty._craftingRunOnce[Ramza.CSParams.resultItem.indexOf(result[1])] = true . If you comment out this line, it should cause the code to run every time.
-Ramza
Oh, the line number I gave was for if you have it set to not allowing soft failures.
If you have soft failure chance the line is actually 6616.
-Ramza
Thank you!! That worked. Since I added some lines of code, the number values didn't match up but I just stared by editing out all 4 of the instances of that for now, did a console.log('test') and it seems to be working for the main recipe. It doesn't run on a partial soft fail/success, which might be normal.
As for the fifth ingredient slot, I'm making decent progress but have 2 factors to resolve currently.
1. When I have 4 ingredients loaded into their slots, the 5th ingredient slot still acts as a 'Craft' button, but only when all 4 ingredients are present.
2. Since I haven't been able to load a 5th ingredient, I can't tell if the partials are working properly. They are working with 3 and 4 ingredients but it seems to be giving the 'craft successfull' scene but taking the additional items, which I am not sure if that is normal. I'll have to check more after work today. Thanks again for all your help and for the amazing plugin.
You can call Ramza.CS.findRecipe(ingredients, quantity) from the console to test if it will find a recipe with any ingredients.
ingredients is an array of 2-4 (or 5 in your case) items, so [$dataItems[12], $dataItems[13], $dataItems[14], $dataItems[15]] would be an example of four ingredients being provided to the function. quantity is also an array, this is the for quantity of items given. So calling the above function with the below code is a good test to see if it's working, and in fact, was how I did testing on the recipe functions before I'd coded the interface for it:
That should return some stuff in the console if it found a match. It returns true, the result item (which is the first list in the recipe list plugin parameter), and then the recipe element of that result item. So if you have multiple recipes for one item, it'll tell you which recipe it found successfully.
In the case of a partial match, the first value it returns will be false, but the other two will be the same thing. If no match at all is found, it only returns false.
Your other issue is probably because the function Scene_Crafting.prototype.onIngredientSlotOk is used both for clicking on an empty (or filled) ingredient slot as well as the craft button, because all of those are all items in the command list. I had to make it so it knew which one of those things you were clicking 'Ok' on, so it does an index check. Change the <= 3 to <= 4 and it should work from there.
-Ramza
So I seem to have successfully added the fifth ingredient slot!
Thank you for pointing me to the onIngredientSlotOk function, I totally missed it, but it definitely worked!
Also, thank you for the code to check recipes in the console, that will make filling out the recipes a lot easier.
I'm really glad I got this plugin, I've been looking at it for a while now and I'm excited to put it into effect!
I am still debating whether or not to keep Yanfly's synthesis around for the basic synthesis aspect as I have put a lot of work into some custom synthesis effects.
I am wondering if there is a way to reference the price of the result item in the recipes on creation code block?
Also, are you familiar with a plugin by DreamX that uses Yanfly's Item Core to apply random prefix and suffix attributes to synthesized weapons and armors?
That would be a cool plugin to create compatibility with. If that's something you'd be open to, I'd be interested in talking further about a commission.
I can't thank you enough for all your help.
The codebox can actually reference the variable resultItem to get the properties of the item returned, so you could use resultItem.price to get the gold value of the base item. I think that value will be different than the actual value of the actual item given if you're using random affixes that end up changing the price of the result, though.
This probably won't entirely work as a replacement for the synthesis plugin, but you could use my recipe list extension in tandem with the default crafting plugin. Recipe list makes it so that the player can raft known recipes from a list, without having to put the individual ingredients into the slots every time, or having to keep mental notes of the ingredients involved in each recipe. You could set it up so that the player learns recipes through experimentation, and then can synthesis them more easily from the recipe list menu instead. Of course, if you used that, you'd also need to modify it to make use of the fifth ingredient slot you've added, so that might add some difficulty to it.
As for your custom synthesis things, I don't have a particularly good replacement for those. You can use an <on creation eval> note tag from item core on the items, and do all kinds of modifications to the result item if it was given to the player on the crafting scene, like attach augments, or use item upgrades on them, but without knowing exactly what you were doing with synthesis, suggestions for replacements will have to be vague like that.
You could also look into the 'Additive Ingredient Traits' I have in this plugin to add some stuff to your crafted gear from the ingredients used. Those aren't random, though.
I am aware of that plugin by DreamX, but I've never used it myself, and I'm not entirely sure there's a way to get it to work together with my system. I'd need to look more closely at how it works to see how it does what it does, and see if that can be taken into account.
-Ramza
Hey there!
I recently updated from 1.11 to the most current version of the plugin, and it seems I've ran into a bug that must have crept in at some point. When using the Skyrin-like additive traits mode, if I combine at least 2 ingredients with the trait CHANGE HP RECOVERY: 0 30 in their notetags, the first potion crafted works just fine, having 30 HP healing. However, if I then craft another potion, the next potion will have 60 HP healing, and then the next 90 HP, and so on. I'm guessing the trait is somehow getting stuck in memory, or something of that sort.
(As an added note, I'm incredibly happy to see that now more than just one item in a recipe can be a "wildcard", as opposed to needing to set the other item's ID's.)
Hey there.
That is a weird thing to randomly have happen after the update, since I don't think I've changed much about the skyrim-like additive traits mode since I put it in. It does sound like it's holding on to the traits of the old result item instead of clearing, though, so you might be onto something. I'm curious to see what other traits it might hold on to in this case, lol.
I'll see if I can reproduce the problem, and then work on a fix for it.
-Ramza
Hello again.
I managed to reproduce an issue with this plugin parameter. It didn't present itself in the exact way that you described, but if nothing else, it was definitely contributing to the problem. In my test project, I had a recipe that should have given 25% hp recovery and +60 flat hp from the traits, but it was actually giving 39% and +240. This was regardless of how many times the item was crafted. The issue ended up being some logic I had programmed incorrectly that was only used specifically for the skyrim-like system, which was causing traits to be combined with each other far more than they were supposed to be. With my recipe it was 4x because the two ingredient items shared four traits with each other, but yours could've been different here.
Once I corrected that logic issue, the traits were added to the item in the correct amount, so it appears to be functioning the right way now. Let me know if you still have issues when you download the update.
~Ramza
Hello Ramza!
I found a pretty gamebreaking bug. Your main crafting plugin makes the game only decrease one of a particular item. Even if you decreased it by 10.
Example: the player gets 50potions and later he gives 10potions to an old lady. After you handed out the potions, you can see there are 49potions in your inventory left.
I hope you get what I mean!^^ I tested it also in your sample project. Please try to reproduce the bug.
Hey there.
Sorry that you found this. Look like it was a problem with a DQ11 mode fix I implemented a few updates back, namely the one where recipes that contained the same ingredient item multiple times were only removing that ingredient once from the inventory. Looks like I goofed and somehow made it so that removing independent items from the player inventory no longer worked correctly.
That has been fixed in the new update, which has already been uploaded.
Thanks,
-Ramza
Thank you for your quick solution! It works like it used to be^^
But I think there could be a new bug, not a big one, but now it seems you automaticly get the weapons and armor from the Hero´s set in the database.
Hey there.
I have uploaded a new revision to correct this. Just redownload the plugin and it should be good now.
I also fixed another problem that you wouldn't have been likely to notice, given how you use the system.
-Ramza
Good morning! I bought this plugin because I thought it'd fix the problem I had with Yanfly's Item Synthesis, but I've been having a couple of problems.
Inputting my own recipes gave me an error, so I tried just inputting recipes from your sample project to see if that changed it, and it gave me basically the same error. I have "show in menu" and "enable menu command" both set to true, but the crafting option won't display in the menu unless I toggle it on in-game. Then, the game crashes when I actually attempt to access the crafting scene, giving me the error "TypeError: Cannot read property '0' of undefined". I set up parameters for categories, and the '0' responds to those, but it still doesn't work. (Right now, the parameters are back to all their defaults, with just the leveling system and failure chance turned off.)
I hate to ask you for help twice, but do you have any idea what this is?
Sounds like the recipes aren't quite set up correctly.
If you took the recipes out of the demo project, it's possible that their parameters aren't compatible with the latest version of the plugin, only with the version in the demo. I'd made several adjustments to how recipes worked in the last few updates.
Try making a simple recipe with only two ingredients. If you continue to get an error, take a screenshot of the console, so I can see where the error is coming in.
Alright I think I know what the problem is from that.
Line 5556 is checking to see if the slot it's about to draw is a locked slot or not. It does this via an array, which resides in $gameParty, and is put there when the plugin loads its parameters. The error given below is that it can't read property 0 of that value. Which means it isn't initialized. But since it's always initialized on load, there are only two ways this could happen:
I suspect the problem is #2 - you're using an old save to test. Many plugins have this problem, where they rely on loading data in a specific way, so that it can be saved in the save file later, and as a result, the plugin will not work until you start a new game to test it.
Give that a shot, I'm sure it'll straighten it up for you.
That errant window might be a holdover from something I fixed earlier... I'll have a look and see about fixing it.
Alright, that was a bug and I have it fixed, I'll upload a new version shortly.
As for limiting the stuff you can craft, currently, calling a specific craftType limits the recipes available by limiting the individual ingredients allowed to show up on the scene. To stop from crafting an alchemy potion on the blacksmithing category, you need to prevent alchemy items from being used in the blacksmithing category.
In the update I have just uploaded, I have made it so that a recipe will be immediately disqualified if it does not match the category of the current crafting category. This is probably how it should have been from the beginning, but I missed it by not having ingredients that were valid in multiple categories for testing.
Download the new version from your library, or the store page. Thanks for the report.
Hello! Loving your plugin, but I have a problem. I really want to combine two of the same Items together. Like it is in Dragon Quest 8, where you can combine two Medicinal Herb´s to an Strong Medicine, but I can´t select two of the same Items. Do you have time to help me with this issue?
Also I wanted to ask if there is any method to ged rid of the quantity selection in the crafting scene? Like mentioned above, I only want to combine one item at a time and have the option for multiple selctions of the same item.
And I think I encountered a bug. I have a crafting scene with two crafting slots available. The First time I click on the second, third or fourth slot it plays the Total Failure Sound. If the first click was on the second slot, it closes the scene. If the first click was on the third or fourth slot it just plays the Failure Sound. After I clicked on one of the last two, I can click on the second slot without getting thrown out of the scene. Any Idea what that causes?
I set the plugin up like this:
Hello there.
I'm sorry you're experiencing that bug. I will see what I can do to track down and correct it. Thank you for providing your plugin parameters, as I'm sure you're aware, problems like this are hard to track down without that kind of information in a plugin as complicated as this one.
As for your request, I'll see what I can do about allowing multiples of the same item, and limiting the quantity to 1 for all ingredients. Technically, it isn't part of the scope of the plugin, and should probably be an extension, but I don't expect it will be too hard to implement in a small little patch, not unlike the "only show three ingredients" patch I have uploaded on here too.
I still have some patching to do on the MV version of this plugin, so I wouldn't expect your dragon quest features™ patch to come any time soon, but I'll work on it when I can.
Thanks for your fast reply!^^ It´s a joy to see that you are so pationed about your plugins. I really appreciate it that you are helping me.
About the request. Really cool from you to implement it. You giving me hope to create my Dream rpg!^^ Thank you! <3
Hello! I don´t want to be rude, but is there any chance you got the time for the dragon quest like feature I ask for? There is not really a need to be in hurry, I was just curios.^^
Hey there.
If I'm being honest, I sort of forgot about this request. But fret not, I just uploaded a new version that includes a mode switch and the fancy new DQ11 mode. DQ11 mode allows the player to put the same ingredient into each slot, as long as they have enough of that item to do so, and also blanks the quantity display, and prevents them from changing the quantity via the right arrow key. This supports independent items from ItemCore, as well as normal items and equipment.
You can download the new version from the store page, or from your library on itch.
-Ramza
Hey Ramza!^^ It´s works like a charm. Thank you very much. Now I can craft like I wanted to. xD
Is there a way to translate these lines? Maybe I am blind?
Sorry, those text values are hardcoded right now. I must've missed them when I did my initial pass on allowing all of the strings on screen to be changed.
I'll get an update out in the next little bit to correct that for you.
-Ramza
Hey there.
I have uploaded a new version which allows you to change these strings, as well as a couple of others I caught while I was fixing these ones.
I also fixed a bug that's going to be affecting you, and I'm sure you'll have reported it shortly once you notice it. Specifically in DQ mode, when a craft was successful that used multiples of the same ingredient, it only removed 1 of those ingredients from the party inventory.
Download the update from the store page or your library and let me know if you have any other issues.
-Ramza
Greetings.
I have uploaded version 1.15 which corrects the bug you mentioned here, and also makes a couple of QoL changes backported from the MZ version of the plugin.
Once I churn out the recipe list update, I'll see about getting that patch made for you.
-Ramza
The patch works great, thanks you!
I stumpled over your recipe list plugin, exactly what I needed.
Sadly it only works if more than one crafting category is set.
Do you have time to implement an Option to skip the "select crafting category" window like in the main plugin?
Honestly I was under the impression that was how it worked already. I'll look into why it doesn't do that.
Hello again.
I have updated the recipe list extension to correct the crash problem when entering the menu with only one crafting category. The way the plugin was designed, it was closing the category selection window immediately after creating it, if only one category existed, but the function to close the window was expecting some other windows to have already been created, which they weren't at that point. I adjusted it to create those windows before the category selection window, so it would be able to do it's thing with them.
Redownload the plugin from the store page to get this update.
-Ramza
Hi! I have a question, looking at both the plugin in the demo and the standalone file. It seems like the 'Category' option is available only for BaseItemType in Recipe list, and not available for the 2nd/3rd/4th Item Type. I read in the help file that the params for the second item are the same as the first one, so I was wondering if this was as intended? Thank you. ^o^
Hello there.
Sorry for the confusion here. In an early version, I had to remove the ability for a recipe to have multiple category ingredients. As it turned out, the function never worked correctly in the first place, and caused a bunch of weird problems in the system.
The demo plugin has a very old version in it, specifically because I didn't want to have to update the recipes in the demo if I updated the demo plugin file (because of the category ingredients as well as a couple of other things). Please refer to the help documentation in the standalone file to ensure you are reading the most correct information.
Don't worry, though, as I've already solved the problem that was preventing me from allowing recipes with multiple category ingredients in them, and it's even already been released in the MZ version of the plugin. I am working on backporting it to this version currently. As this breaks compatibility with the Recipe List extension, I need to fix both, and I need to verify the fix doesn't break either of them, so it's taking a bit longer than usual. But the issue is fixed and it's coming soon.
-Ramza
Ah I see, no problems! It was something I noticed as it was in the newest v1.14, so I wondered if it was just an accidental miss wording in the help file. I look forward to seeing it return eventually. This is a very good plugin, there's a lot of potential uses and there isn't much crafting systems out there that uses ingredients like this, so I'm already grateful for your work! Thank you very much for everything so far and don't worry about it ^o^
Good news! I just uploaded version 1.15, which contains this feature change from the MZ version of the plugin. You can now set up recipes which contain multiple category ingredients.
Currently the recipe list extension doesn't support this yet, but that update will be coming soon if you're using it.
Wow! Thank you very much for the update, I appreciate all the support you've done! Make sure to get some rest and thank you, I'll look forward to it.
Hi,
Three questions, but I think I have more.
1. Is that a default screen? Can it be changed to be translucent or a solid color?
2. Can an item be distributed when achieving a certain crafting level?
3. Can thresholds be set? For instance, at level 3 crafting, all small potions have a 100% success rate.
I really like this plugin and it's matching up with a lot of things I was hoping for in a crafting system. I just want to make sure it checks all the boxes or there is a workaround alternative.
Hello there.
This is a menu that is using default window classes to draw themselves, so anything you can use to modify the default menu windows will also affect these windows. There are no plugin params to make the windows transparent, or a solid color, but it will use whatever your system graphic is, so it will match the other default windows in your menus.
I don't currently have a feature to distribute items on level up, and that is a good suggestion so I will see if I can add that in later. Until that time, it could technically be possible to do so via a common event, as all of the current levels are stored in $gameParty._craftlevels, and can be called in script checks or whatnot.
Thresholds can sort of be set. You can use the success rate modifiers to create a recipe that has a 100% success rate, but requires level 3, and subtracts 5% (or whatever) per level under 3 you are. It's not quite what you were looking for, but should be serviceable.
Thanks for your quick reply, great to see developers still active with RPG Maker.
I was hoping to hear that the plugin could work with events outside of it but thought that was too much. If I can use a common event to give the player a skill when they reach a certain crafting level, that works for me. I look forward to checking this out.
Glad to hear it, I'd recommend holding out until the itch.io Halloween sale to buy it though, wouldn't want you to get a raw deal based on timing.
Wow, thanks for letting me know. I'm new to itch.io.
Hi i would like to know if you will be working in porting this plugin to rpg maker MZ ?
Hi there.
The current plan is to bring all of my MV plugins over to MZ. The more advanced features of this one, namely the additive ingredients feature rely on independent items to function, though, so those features will not immediately be available until Yanfly's item core plugin is ported, or a suitable replacement is found.
Unfortunately, I don't have an advance copy of MZ, so I have no way to know how easy or hard porting this one will be until MZ is out and I've had a chance to poke at it a bit.
What I can say for sure is that the MZ version of this plugin will be separate from this version, with a discount if you've already purchased the MV version.
Before I purchase this, I wanted to make sure if I can use Independent Items created by YEP_ItemCore as ingredients for this plugin. I assume the output being an Independent Item is no issue as well right? (since that's handled by YEP_ItemCore)
Yes. Independent items can be used both as an ingredient, and can also be returned without issue.
There is also a 'bonus stats' system in place where an independent result item can inherit certain traits from its ingredients, which if they are independent, could also inherit from its ingredients, if it was crafted.
Awesome, are there any bundles btw? Like say, all your plugins at once? lol
I do put them on sale several times per year, the last one ended only a couple weeks ago with the itch.io summer sale, unfortunately.
I believe if you're following me, itch will send you an email the next time they go on sale.
Does this have the option to be pulled up outside of the Item/ Scene? I like my crafting to be separate at shops, or different areas, not in the main menu, wasn't sure if it was possible otherwise.
Specific crafting categories can be called via plugin command, so they can be called from an event. You can also call just the regular crafting scene without specifying a category to let the player choose.
You a boooosss. I'm buying this when I get paid next tysm ^^
Before I buy I was wondering if this had item break down also. sorry if i missed it somewhere. or if you just combine this with Yanflys item plugins
Hey there.
This plugin doesn't have a dismantle system component in it. While technically you might be able to make one inside the plugin with clever use of the wildcard items in recipes, and some sort of item that deconstructs things when you use it in a recipe, that would be super hanky, and will probably have some major difficulties to overcome.
For now, I'd say your best bet is to use Yanfly's item disassembly for that. As my plugin is 100% compatible with item core, there should no issue with using both.
One more qeustion its good with MV 1.62 right?
Indeed it is.
In fact, I don't think it's ever been tested on anything earlier than 1.6.2!
Well im sold here goes!
Hey, I had a quick question before purchasing, involving ingredient traits.
Is there any way (be it a default option or an easy edit) to have ingredient traits only apply to an item if 2 or more ingredients being used have the trait? I'm hoping to create a system similar to the Alchemy system seen in Skyrim, in which each ingredient has ~4 traits, and the resulting potion can have any effects that were shared by 2 or more of the ingredients used.
Hello there.
The additive traits from this plugin currently all stack together when creating an item, with no plugin parameter option to change that. An edit, or addon to the plugin that makes it so that only traits that exist on more than one of the ingredients is passed on to the crafted item shouldn't be too hard to create, as the method used to add additive traits together on the result item is actually very straight forward, and should be relatively easy to build onto.
The only issue I can foresee with your idea, is that the crafting system only currently supports one 'wildcard' item per recipe. In Skyrim, a potion recipe was simply created by combining 2-4 ingredients, and any traits those ingredients shared between eachother ended up on the 'potion' (or poison). As this system currently only supports making recipes that have 1 random player provided ingredient in them, you'd need to script yourself different kinds of potion recipes that used specific ingredients and a wildcard ingredient.
To the player it'll look the same, but it's a bit more work on your part.
At any rate, if I get the chance in the next couple of days, I can see what I can do about taking care of that request.
-Ramza
Thank you very much for the quick reply, and especially so for looking into my request. I really do appreciate it :)
As for the wildcard restriction, I hadn't realized there was a limit, thanks for letting me know. I'm curious though, is that a hard coded limit, or something that could be tweaked?
If at all possible, I'd ideally allow the player to combine any 2-4 ingredients, all of which would result in a blank base potion, that would have all traits shared by 2+ ingredients. Being able to restrict players from using duplicate ingredients in the same recipe would be pretty cool too, and building off of the 2+ required traits idea, being able to have a "failed result" item be rewarded if the brew didn't have any traits passed onto it, but unless any of these are fairly quick and easy tweaks, I don't want to overwhelm you with feature requests.
Currently that is a hard coded limitation that isn't going to be an easy fix, unfortunately. When I first released the plugin, the idea was to allow all ingredients to be wildcards, but it turned out that there was a fatal flaw in my logic at the time, and the only way to get a fast update our the door was to only allow one wildcard ingredient.
I have plans to eventually restore that functionality, but I can't give a time line, as it is likely to require another complete overhaul of the way that recipes are detected.
Ah, fair enough. No worries about getting an update out, it's just reassuring to hear that it's something that's planned down the line.
Greetings.
In the latest update for this plugin, I have added a plugin parameter to mimic how alchemy in Skyrim works. Traits on ingredients are not passed to the result item unless at least one other ingredient also has that trait. You can get the update here. Thanks for the great suggestion!
Hey there just bought the plugin, but I seem to have some problems with it. It seems to be with the main bind, or when it tries to create a scene. I cannot open the main scene when pressing X, it just crashes when pressed. I have also turned off all of these plugins, and then the scene wont even show in the main menu.
I also tried to move the plugin around in the load order, it didn't seem to do anything.
Greetings.
Binding the crafting scene to the main menu via YEP_MainMenuManager has specific instructions in the help documentation for doing it, and using those same instructions, I am able to bind it into any slot, and access it just fine.
Menu Name: Ramza.CSParams.MenuString
Menu Symbol: craft
Menu Show: $gameSystem._craftingShow
Menu Enabled: $gameSystem._craftingEnabled
Main Main Bind: this.commandCrafting.bind(this)
This works in any of the other slots for the main menu manager as well. Note that none of the text in those boxes are enclosed in quotation marks, none of them are strings, they are all to be eval'd.
Hello, I followed those instructions quite closely, and put them in slot 81, but I tried this again and put it in slot 17 instead but I am still getting the same errors.
I cannot open the main inventory screen, it just instantly shows me that bug report as I press X. I can only open the inventory when I have disabled the main menu manager, but then the crafting doesn't show in there.
Edit-------------------------------------------------------------------
I tried turning off all other plugins and leaving only the core engine, the main menu manager and the crafting system on.
And I am still getting this error.
Hello again.
I am unable to duplicate this problem. I too have turned off all other plugins, except for the three listed in your report, and the scene is still accessible via the menu command in the main menu manager, and the crash you report does not happen.
To help track down the cause of the error, it is best to eliminate as many possible compatibility issues as we can. I use more or less the same demo project I have uploaded here for testing, and it appears that, at least on my end, the problem doesn't happen from within that project.
If I can get you to confirm on your end that the demo does not crash when you import the required yanfly plugins into it, and turn the main menu manager plugin on, we can at least confirm that the baseline works.
If it turns out, as I suspect that the demo is no affected by this bug, but your project is, there are still a couple of other things that might cause the issue:
I feel like the third option is the most likely, as commandCrafting is clearly defined on line 3879 in my plugin, but is being called as undefined in your error message. Try starting a new save file and see if the error is still there.
Thanks.
Okay, firstly my project was made in RPGMV 1.6.2. The main menu manager is in V.1.03, but I put it into the demo project that was provided and it worked just fine.(The demo projects plugins were empty so I had to send them over there.) I even created a totally new project and put those plugins into it and it just does the same crash all over again.
Now as for the old save file, I was testing it in a new game all the time, not in any old saved files. So when I did some more testing it seems like only your demo project works with the plugins(even the updated main menu manager).
A totally fresh project crashes for me, plus my own which is not that old and was also made in the 1.6.2 version.
Edit:
Also I removed the code for the crafting plugin that is put into the main menu manager, and tried to use the plugin commands to open the menus but it does nothing.
Okay, sorry for the runaround on this one, I've managed to find the problem.
The last three plugin parameters do not contain the proper default values. Instead of containing [], they are simply blank. Until you add values to these plugin parameters manually, or simply click on each one and then click 'ok', the plugin doesn't load at all. I have uploaded a revision c to v1.10 to correct this issue.
It wasn't happening in the demo project because those parameters have items in them in my demo, but not by default when importing the plugin into a fresh project. Before even loading the title screen, the error console would throw the following error - which indicated the exact place I had messed up:
This is from trying to parse an object that isn't an array. Apologies for assuming that there was something wrong with your project, and not my own. The updated version is already available for download, if you'd head on over there and confirm for me that it works.:)
Fantastic crafting system! I'm more of a fan of ingredient based crafting susch as those in Paper Mario and BOTW than recipe based systems but they were almost impossible to find plugins for.
One question though, which lines in the plugin do I comment out // if I would like to hide the fourth slot completely from being selected? I don't plan on using it at all. Currently I'm leaving the name blank to "hide" it but preferably remove it completely so it's one less line to scroll down to get to the craft confirm.
Greetings.
I haven't tried this myself so it might run into some weird visual problems, but line 4903 contains an if statement that tells the window to draw the craft button when a certain index line is reached in the ingredient list. This number is 4 by default, meaning that when it gets to index 4, it draws the craft button instead of an ingredient (ingredients are index 0-3). Change that number to a 3 and it will skip drawing the 4th ingredient slot.
The ingredient count got replaced with the "craft button" but the help text and locked slot is still there 🤔
The actual craft button is still below the 4th slot
Ah, sorry, there was a line that needed to be comment out as well.
Line 4899 - this.drawItem(index + 1);
That line draws the craft button. Comment it out, as the change I had you make draws the craft button in index 4 instead of index 5.
Also, line 6217 does a check to see if you've pressed ok on an ingredient slot, or the craft button by comparing the index, you'll need to change the <= 3 on that line to a <= 2 so that it knows you're hitting the craft button that we've moved up an index slot.
Hmm, still seems to be missing something. Nothing seems to have changed
Greetings. Sorry it took a bit to get back to you on this. I found a slightly more elegant solution than what I was previously suggesting.
Since I already went to the trouble of testing it out myself, I already have a patch file created. Simply load it after the crafting system plugin and it will hide the fourth slot, and skip over index 3 on the list.
It can be downloaded from the Crafting System main page, labeled as the three ingredient slot patch.
Quick question: When I buy one of your plugins am I allowed to use it in more than one project or do I need to buy a copy for each project?
You may use it in as many projects as you wish. :)
Edit: I didn't notice that my ToU wasn't on this plugin for some reason. It follows the same general rules as my other paid plugins. You can use it in any project you wish, but you may not redistribute it, or the demo project. You can edit the plugin for personal use only, and are allowed to make extensions to the plugin that you can release publicly, as long as you do not claim sole ownership of the base plugin, and that those extensions can only be used by someone who already owns the base plugin.
Thank you ^____^
Hey! Very nice plugin. Lots of customizability. One question though. I am trying to edit your code to allow me to have 6 slots instead of 4 but can't for the life of me to get it to work. Would you be able to help me with this? See in my game you can't have more than 1 item in one slot! So having only 4 slots to work with isn't that great. I would even say having 8 or more would be ideal. Just cause I have traits on my items that can be applied to the final result item but can only do this by making all item slots only hold 1 item.
Hey there.
I don't think it's viable to have more than 4 ingredient slots in this plugin, there are a lot of points in the code where I hard-coded that number to get certain things to work. I can think of a few that might be tripping you up in editing it, but I'm not sure even if you get past those that it'd work.
With this in mind, I think it's much more realistic to not edit the plugin at all, and rather make your base items craft into intermediate items, that then craft into the full item. This would allow you to stay within the four item limit, while still allowing more than four base ingredients.
For example, a sword recipe:
To make each of these items requires more ingredients:
Obviously this isn't an ideal solution, but I feel like it's a little more doable than editing the core functions of the plugin, and you're a lot less likely to run into problems working within the four item limit. Keep in mind though, that there is a hard limit currently, in that you can only have one category ingredient per recipe, so you'd need to make each recipe if you had a few different types of hilts, scabbards and sword blades that could be interchanged in the recipe.
Hmm I don't think you understood me or I did not explain myself well enough. My game has items used for crafting and these items have bonuses attached to them that may effect the final synthesized item. For example, Iron Ore +20 Attack and Iron Ore +20 Defence. If you used both of these together you would get the bonus associated with the weapon or armor type you craft which I would then create a new recipe every time in your plugin for. And certainly I would think its not impossible to add more slots even with the hard coded stuff I am trying to follow everything very closely but still cannot get it to work. (Course Im no coder, merely a beginner.) Would you be so kind as to maybe even take a look at your code that I have edited and maybe try and push me in the right direction of getting this to work? Whenever you have time of course. Absolutely no rush cause I know people can be busy. I am just trying to learn and I actually am learning small things here and there from your code. Which I am also grateful for. If maybe you can give me an email I can send to you? If not I also completely understand, thank you for making this plugin and hopefully I'll get this to work one day! Cheers.
Edit* Yeah, I can admit I don't completely understand everything. Particularly adding in the n-3 and n-4 in the findPartialRecipe function. I have placed a tag //Dungeonmind Edit* on every line I have added or touched. That might also make it easier to get to each location in the script that needs editing for this to work.
Btw rpg maker mv handles that command window the same everywhere and when you add to the list it just creates a scrolling command window which I dont mind at all and I'm sure others wouldn't either.
I got the index thing to work perfectly but now the crafting option just disappears from the menu and you can no longer access the scene, SO I assume I broke something I did not add something where I should have
Yeah, if the crafting option is gone, the plugin probably found an error on load and didn't load the rest of the way. Trust me, I've seen enough of that problem while I was making it.
I don't think I should share my email address on a public spot like this, but you can direct message me on discord Ramza#3215 and send me your edit that way.
The n-3 and 4 thing is confusing, I'll admit. It's only used to find partial matches, so for just getting it to work with a 6 item recipe, we don't need it right away for testing purposes. If you look at the difference between my n-1 and n-2 sections, which are commented, you can see what you need to change to get it to check for n-3.
The most important change is going to be to edit the recipe list struct to accept more than 4 ingredients. This is going to involve adding in new parameters, giving them a new name, and parsing them the same way that the first four ingredients are parsed in a recipe. The actual parsing is handled right after the help file section ends, so you can have a look there and see what I do to convert the plugin parameter into an actual object.
Okay thank you so much for your help! I will message you there I think I fixed the parsing but don't quote me on that. I also appreciate your script comments, they are helpful for learners like me! I'll send it to you on discord personal message if it allows me to. Thanks so much !!!
Edit* I have added you as a friend on discord I don't think it allows me to message you until you accept.
Is there a way I can access Craft Levels via Javascript? I'm using Luna Engine and want to add the player craft levels to the Main Menu Screen.
You can call the following function to get the level of a given crafting category:
The above function pulls the info from an object in $gameParty that stores all category levels; $gameParty._craftLevels. You can also call that object directly and append a category name to the end of it to get the level without using the function. $gameParty._craftLevels.blacksmithing for example.
You can also use the following to get the current experience value of a given category:
Awesome! Thank you so much <3
Is this plugin compatible with yep_ItemCore and other yep plugins?
Yes sir. I made it with those in mind.