A downloadable plug-in

Buy Now$6.99 USD or more

Description:

Cosmetic items have been part of many successful RPGS over the years, from bunny suits in Dragon Quest, to glamours in Final Fantasy 14, to transmogrification in World of Warcraft. Now with this plugin, you can bring a similar system to your own RPG Maker project.

What does it do:

This plugin adds the ability for a developer to define one or more  'cosmetic sets' which will change an actor's battler and map sprites to something different. Sets can contain just a single item, or require multiple items to become active. The sprite changes can apply to everyone, or only to certain actors, as well.

Notetag:

The following tag works on Weapons and Armors

<Cosmetic Set: SETNAME>

  • The SETNAME is what you've named your set in the plugin parameters.
  • You can only use this tag once per item, if you use it multiple times, only the first occurrence will be read.
  • If an actor has pieces from different sets equipped, and could activate either, the set closest to the top of the list in the plugin parameter will be active only.

Usage Example 1:

You have a single ring, which when equipped, makes the actor look like a wolf.

  • In this example, the wolf sprite doesn't need to be actor specific, so the default sprite parameter is used to take effect on everyone.
  • Having the ring equipped makes any actor look like a wolf.

Usage Example 2:

You have a two-item set, 'Angels'.

  • When one of the items is equipped, there is no visible effect.
  • When an actor has both items equipped, the set effect is active, and their sprite will change
  • In this case, you might want actor specific sprites, so that the end result looks like your original actor with angel wings.

This plugin has no dependencies.

This plugin may be incompatible with other plugins that change actor battler sprites, or character sprites. Try to load this plugin near the bottom of your load order if you experience compatibility problems.

Terms of Use:

  • You may use this plugin in free or commercial games
  • You may use this plugin in as many projects as you like.
  • You may not share this plugin, or the demo project with anyone else.
  • You may modify this original script in any way you see fit, but you may not claim full ownership of the resulting edited file.
  • You may share edits you made to this script publicly, but only as standalone extensions to this plugin, meaning that your modifications cannot be used without also owning this plugin.
StatusReleased
CategoryTool
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorRamza
Tagsplugin, RPG Maker

Purchase

Buy Now$6.99 USD or more

In order to download this plug-in you must purchase it at or above the minimum price of $6.99 USD. You will get access to the following files:

Demo Project 22 MB
Plugin Download 17 kB

Development log

Comments

Log in with itch.io to leave a comment.

(3 edits)

Hey Ramza, I'm having an issue after installing this plugin after trying to start a new game about a maximum call stack:

It goes away after toggling the plugin off, haven't seen it before. Let me know if you need more info. thanks.

Edit: So, after toggling a hundred plugins or so, I've finally narrowed it down to Yanfly's Party System. The error will only come up if the cosmetic set parameter has something in it, if the plugin is enabled but otherwise "empty" then it won't crash. Tested with a New Project to be certain:


Edit 2: I loaded it into a new project without Party System. Seems to launch there with no issue, but I'm not able to get the priority name to change :

The armor appears to change our boy Lucius' images and such without any trouble, but if I've set the parameters up correctly, his name should be Jim. Thanks again :)

(1 edit)

Greetings.

I corrected the first problem. I'm not too sure on what the exact cause of the problem was, normally that error happens if a function is aliased incorrectly and ends up calling itself multiple times. While this didn't seem to be the case, it appears as though YEP_PartySystem and my plugin interacted in a way that caused the refresh function to be called enough times to crash. I aliased a different function from which to call my refresh on game start, which no longer causes issues.

As for the second issue, your setup appears correct. I'm not sure why Lucius name isn't changing. However, while looking into this, I did notice a problem where an actor who was using a cosmetic set that did not set a priority name would receive the name 'null' instead, so I fixed that in this version as well. Maybe see if the new version corrects this problem?

Sup Ramza, hope your weekend is going well :)

It launches smoothly now, thank you. So, I was trying to get the name change to work, still wasn't changing even though the sprites and faces were. I even tried using the Cosmetic Equipment demo to no avail. Then I noticed in your screen you were using the Angel set. I was working with Harold's Wolf set. THAT was the issue lol. For some reason, the first Cosmetic Set in the Structure List won't change the priority name. But the second will with no apparent problem: 

So far I've been able to get by in my project by making a dummy set in the first slot, and just not using it. Also, in the first set, the "ActorSprites" parameter in the structure list can't be empty or the second won't work either. The values don't have to be filled with anything, but the plain text does have to be there, if I'm explaining that right: 

Sorry to keep bothering you T_T

No bother at all, in fact, I appreciate your in-depth testing, it makes finding the problem easier.

I tracked this one down to the fact that I used an if statement that checked for a 'falsy' statement, instead of for if a value was undefined. The normal if check (if (VARIABLENAME){ do stuff }) will return false if VARIABLENAME doesn't exist. Unfortunately, it will also return false if it has the number value 0, as well. I was using the above to check if a priority name had been defined for the current set, but it never checked against set number 0 (the first one) because if the value was zero, it was treating it as if it had not been defined.

I also corrected the other problem you found. Although you didn't mention specifically, starting the game when the ActorSprite value of any set is completely blank will cause the plugin to throw an error and not load, but won't cause the engine to crash, instead allowing you to play the project with all cosmetic set effects disabled. This is because the default value is supposed to be an empty array. If the value is instead blank, the plugin fails to parse it's data entirely, throws an error and fails to load. If the data is a blank array, it can parse it as nothing, and move on.

To correct that, I changed the plugin parameter to be [] by default, instead of blank. So if you create a new set that contains no actor specific sprites, and never touch the ActorSprites parameter, it won't remain blank and crash the project.

These fixes are already uploaded. I added a revision to v1.21, and you can download it at the same link as before.

-Ramza

It works perfectly! Thanks for everything my dude. You really went out of your way.

Hey Ramza, any plans to add a feature to change the actor's Name while a piece is equipped, or if it's even possible? It would be cool to have a feature similar to Majora's Mask's Fierce Deity, where equipping an item essentially changes the actor to another person. This plugin appears to be exactly what I need, sans the name part.

That wasn't on the roadmap before, as I hadn't considered that anyone would want that. It should be pretty simple for me to include that function in an update. I'll see what I can do.

I'm stoked to see it happen :D

I just uploaded v1.20, and it adds this feature request.

Thanks for the suggestion. :)

You're too good! I just picked this up, thank you :)

I've been doing some testing, and if more than one actor is listed in any set category, the project crashes at launch. "Unexpected token , in JSON at position 162". So currently I can't use a set to change the appearance of more than 1 actor.

That sounds troubling. I will investigate when I get home from work tonight and see what I can do to resolve this for you.

It works just fine if every outfit is only assigned one Actor to have a unique appearance, and unique costume entries do not interfere with one another (such as an entry for 'Robe' on Actor1, 'Leather_Armor'  on Actor1, 'Heavy_Armor on Actor2). The only issue comes up when 'Robe' (or any other armor) is given custom appearance for more than 1 actor.

Also, thank you for yet another quick response on bugs! Always impressive how quickly you respond and repair/add to your plugins.

Greetings. 

V1.20 is uploaded, and fixes this problem. Thanks for the report. :)

Tested and am just thrilled this bug has been squashed.

I was hoping for some clarification on this plugin.  I am seeking a visual equipment plugin, but as I understand it from the description I can only have one cosmetic active at a time?  So, for example, I couldn't have a cosmetic Ring and an armor piece be active at the same time?

Greetings.

That is correct, an actor will only be under the visual effect of one item set at a time. The first set in the list that has enough pieces equipped to be active will be displayed, and any further sets that are activated will have their visual effects ignored.

Given the way the plugin works, I can possibly update it to allow the effects of multiple sets to work together, but only if they're all modifying different sprites (the ring changes the face, while the armor changes the battler, for example) but I have trouble imagining a scenario where that would be useful.

Thank you for such a speedy reply and clarification of the plugin!

The scenario is rather quite common in games such as Elder Scrolls, Destiny, Terraria, or Starbound for example.  I am building a game where there are multiple equipment slots for armor, boots, belt, cloak, helmet, gauntlets, etc.  I have been trying to track down a visual equipment plugin that would display each individual piece when equipped.

Sorry, I don't think this plugin is viable for what you want. It was designed to be more like the dragon quest system, where equipping the parts of a costume caused the actor to wear that costume. 

I thought I'd seen a visual equipment plugin that'd be better suited to what you're trying to do, but I can't seem to find it anymore. 

I wish you best of luck in finding something that works.

(+1)

Thank you very much for taking the time to respond to my inquiries and explaining more on what your Cosmetic Equipment plugin does.  Keep up the amazing plugins and happy coding!

Is there any way we can get this to change Actor face as well? The plugin is neat, but I'm rather disappointed it doesn't go all the way, as far as Actor graphics go.

That isn't currently possible, but I can certainly add that in an update shortly.

So that is on the roadmap for this plugin? That is wonderful news, happy to purchase and thrilled to use. There were a couple of options out there, but some no longer seem to function with the latest RMMV updates, and others that change all actor graphics (sprite, battler, face) use script calls where you must specify each actor in a notetag on each armor. Yours causes so much less clutter, and if faces are planned, I will just use placeholder graphics in the meanwhile.

Also, thank you for the incredibly quick response! I've been beating the horse dead trying to get the right plugin for my game ready, so much so that I ended up putting off everything else and driving myself a little crazy.

No trouble at all. I will work on adding it in tonight when I get home from work, should be ready by tomorrow as I don't expect any issues with it.

This feature has been added in v1.10. Please re-download the plugin and advise if you have any issues. I tested it in the demo project and it appears to be working fine, but you never know. :)