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.
- 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.
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.
Crafting in Progress
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.
Failed smithing 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.
Lets make a sword
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.
Annoyingly long name
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.
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.
(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.