Bobstah's Equipment Socketing & Upgrade System v1.3.1 - Yanfly Integration & More!

Bobstah

Pluginstah
Veteran
Joined
Oct 24, 2015
Messages
216
Reaction score
165
First Language
English
Primarily Uses
N/A
Updated 12/22/2015 08:09 AM ET. If upgrading from version 1.12 or lower, the notetags have changed!

 

Introduction

Implements an equipment socket system similar to the one found in Diablo II. You can create pieces of armor that can be socketed into another item that has sockets. All stat bonuses and traits are copied from the socketable item into the item it is socketed into. You can also remove these items from the sockets at a later time. You can also hide socketable items from the standard inventory view via parameters.

 

Features

  • Specify the number of sockets a piece of equipment has!
  • Create socketable items that relay all stat and trait changes, including skills, double attack, etc!
  • Restrict a socketable item to only work on everything, only on weapons or armors, or specific weapon and armor types.
  • Name sockets for each weapon or armor type, so a Sword can have sockets named Blade, Hilt, etc!
  • Restrict the type of socketable (gem) that each socket will accept, so a Blade socket will only accept Blade items!
  • Add additional sockets to a rare weapon or armor with a special name and item requirement!
  • Hide socketable (gem) items from your inventory list and give them their own category that you name!
  • Combine with Yanfly's Auto Passive States to have socketables (gems) grant passive states while socketed!
  • Combine with Yanfly's Skill Cooldowns to have socketables (gems) manipulate cooldowns and warmups!
  • Combine with Yanfly's Element Absorb to have socketables (gems) adjust the actor's elemental absorbion!
  • Combine with Yanfly's Element Reflect to have socketables (gems) adjust the actor's element reflection!
  • Combine with Bobstah's Level Up Bonuses plugin to grant bonuses on leveling while socketed! (Materia!)
How to Use
Add the plugin in your game and view the help information. It describes the parameters, notetags, and how to use it.

Screenshots

Below screenshots were taken with all plugins from the dependencies section enabled with all settings from the compatibility section in-place.

------------------------------

Socketing a 'blade' item into a Sword's 'blade' slot

Socketing a 'Magic' item into a specal sword that has a unique socket:

Socketed weapons on equipment selection screen:

Socketed equipment on the equipment screen:


Parameters

Socket Menu Name - Name of the item in the main menu.

Socket Equip Type - The Equip Type (From database types screen) that socketables (gems) are.

Hide Socket Items - Hide socketable items from the standard inventory view. 1 to hide, 0 to show.

Socket Category - Name of the category to list socketable items in.

Socket Category Order - The position the Socketable (gem) item category appears in the inventory.

Empty Socket Icon - The icon to draw for empty sockets.

Empty Socket Text - The text to display if a socket is empty.

Owner Display - How to display who owns a piece of equipment in the socket scene. Face draws the actor's face, Name writes their name.
Notetags - Basic Weapons & Armor

Socket Gems can be any armor type. For generic gems, set the type to 'None'.

Next, make sure the Equip Type matches what you set for the Socket Equip Type

parameter.

Once those are set, add the following to make it a socketable item:

<SocketEx>

Optionally, you can restrict it to be only for weapons or armor:

<SocketEx Weapon>

<SocketEx Armor>

You can drill down even further and restrict it to a limited number

of weapon and armor types:

<SocketEx Weapon: wtypeId, wtypeId, etc>

<SocketEx Armor: atypeId, atypeId, etc>

To give a weapon or armor sockets, use the following notetag:

<Sockets: X>

Where X is the number of sockets the item has.

For more customization options based on weapon and armor types,

see the next section.
Notetags - Weapon & Armor Types

You can configure weapon and armor types to have special sockets.

For example, a sword could have a blade, hilt, and pommel socket and

only accept gems that are the correct armor type.

For the desired effect, you'll need to set the socketable gems to

be restricted to the specific weapon or armor types that they apply

to, and you'll also want to make sure that you define all of your

sockets under the SocketInfo notetag.

To use this functionality, find an Actor (I recommend using a blank actor)

and add the following notetags. They will be applied globally.

<SocketInfo OType: X>

SocketIndex(Name,Icon): ArmorType, ArmorType, etc

</SocketInfo>

In the above example, OType is either WType for Weapon Type or

AType for Armor Type. X is the ID of the weapon or armor type

you wish to apply these options to.

SocketIndex is the number of the socket. (Name) is the text used

when the socket is empty, and (Icon) is the icon used if the socket

is empty. If nothing is set, it will use the parameter values.

ArmorType, ArmorType, etc is the armor type ID that can be placed

into these sockets.

In the below example, we are changing Weapon Type 1's socket info:

<SocketInfo WType: 1>

1(Blade,30): 15, 23

</SocketInfo>

Now, socket one will be called 'Blade' and show icon 30 when empty.

Armor types 15 and 23 can be socketed into this slot.

Here is a fleshed-out weapon and armor example:

<SocketInfo WType: 1>

1(Blade,30): 15, 23

2(Hilt, 31): 16

3(Pommel, 32): 24, 25

</SocketInfo>

<SocketInfo AType: 1>

1(Shoulders,101): 18

2(Lining, 102): 19, 20

3(Hood, 103): 21, 22

</SocketInfo>

If you fail to specify SocketInfo for a socket, then any item can be

placed into that socket, including items you want reserved for other

sockets. Using the above example, if you had a fourth socket for AType 1

and didn't place it inside of the SocketInfo tag, it would use the default

socket settings. Best practice is to include all sockets in a socket info

notetag.

You can also give specific weapons and armors additional named slots

by specifying a SocketInfo command on the weapon or armor level. See

the below example for more information.
Notetags - Advanced Weapons & Armor

What if you had a magical sword that had unique sockets? You can also

apply the <SocketInfo> tag to specific weapons and armors. Below is

an example of a sword that has 4 slots, matching our SocketInfo WType: 1

example from the prior section, but with unique settings:

<SocketInfo>

1(Holy Blade, 43): 30

4(Pommel Gem, 44): 31

</SocketInfo>

In the above example, it takes the default settings from WType: 1, which give

it three named sockets: Blade, Hilt, and Pommel. It then overwrites the Blade

socket with a 'Holy Blade' socket that takes different armor types. It also

adds a fourth socket named 'Pommel Gem' that takes another armor type.

If a piece of equipment has more sockets than the SocketInfo tag has

defined, they will be set take 'generic' gems.
Plugin
Get it here - File name is CASE SENSITIVE: BOB_SocketsEx.js

Dependencies
Yanfly's Item Core  - Strongly recommended. Without it, your items will not be unique/individual. This means that socketing a gem into a sword will give the benefits of that gem to all swords in the game.

Yanfly's Equip Core - Strongly recommended. Helps restrict/hide equipment slots for Gems from the equip scene.

Any Main Menu Manager - Strongly recommended. Allows you to reorder menu commands without me overwriting the core menu feature.

Yanfly's Engine Plugins - Strongly recommended.

Compatibility

General Yanfly Plugins- Add this plugin below all others.

YEP_MainMenuManager - Add the below settings to your desired Menu item, leave other settings blank:

Name - Bobstah.SocketsEx.commandName()

Symbol - Bobstah.SocketsEx.commandSymbol()

Show - this.needsCommand('sockets')

Enabled - true

Main Bind - this.commandSocketsEx.bind(this)
FAQ

1. How do have socketable items teach skills over time?

Use Bobstah's Level Up Bonuses plugin in conjunction with this one.

2. How do I use this plugin?

Read the plugin help and ask any questions here.

Changelog

1.3.1 (12/22/2015) - Fixed a crash bug when using Yanfly's Element Reflect and this plugin's compatibility functions.

1.3 (12/17/2015) - See the below spoiler section for the complete changelog.


  • Fixed an issue where multiple types on one socketable would be ignored. Thanks for the report, Roguedeus!
  • Fixed an issue where socketables wouldn't be returned to the party after loading a save. Thanks for the report, Fernyfer775!
  • Fixed an issue where the Sockets menu item would display twice if using Yanfly's Main Menu Manager.
  • Added support for Yanfly's Skill Cooldowns and Warmups.
  • Added support for Yanfly's Element Absorb.
  • Added Support for Yanfly's Element Reflect.


1.2.1 (12/11/2015) - Fixed a bug that was preventing games from saving and loading properly.

1.2 (12/10/2015) - See the below spoiler section for the complete changelog.


  • Fixed an issue where gems wouldn't display properly in the gem category under certain conditions.
  • Added equipped items support to the socket scene.
  • Added support to show who has an item equipped in the socket scene.
  • Added new parameters:
    Socket Equip Type, Socket Category Order, Owner Display
  • Added the ability to reorder the Socket Category in the inventory screen without overwriting the method.
  • Added new SocketInfo notetag.
    You can now name sockets for each weapon and armor type.
    You can overwrite these settings on specific weapons and armors, including adding extra slots.
  • Added support for Yanfly's Auto Passive States.


1.12 (11/19/2015) - Fixed a bug where equipment items weren't displaying properly in the equipment menu with this plugin enabled.

1.11 (11/19/2015) - Fixed a crash bug that occurred when opening the equipment menu. Fixed a bug that allowed you to socket a null item under certain conditions.

1.1 (11/19/2015) - Fixed numerous bugs. Added new socketable item view. Added new functions other plugins can alias for modding.

1.0 (11/11/2015) - Initial release.

 

Legal

Free to use in commercial and non-commercial projects with credit. A free copy of the finished game would be nice, but is not required.

Credit and Thanks
- Bobstah 

 
 
Last edited by a moderator:

Otakuhn

Veteran
Veteran
Joined
Aug 13, 2015
Messages
93
Reaction score
4
First Language
English
Primarily Uses
Thanks for the useful script
 

Joronjo

Veteran
Veteran
Joined
Sep 17, 2015
Messages
155
Reaction score
29
First Language
English Spanish
Primarily Uses
So to my understanding, this plugin essentially creates something like a materia system from ff7?
 

fm2107

Veteran
Veteran
Joined
Jun 12, 2014
Messages
77
Reaction score
19
First Language
english
So to my understanding, this plugin essentially creates something like a materia system from ff7?
in theory you can add a skill to a gem and socket that. only thing is you cant lvl up the gem to add fire 2 for example 
 

Bobstah

Pluginstah
Veteran
Joined
Oct 24, 2015
Messages
216
Reaction score
165
First Language
English
Primarily Uses
N/A
So to my understanding, this plugin essentially creates something like a materia system from ff7?
in theory you can add a skill to a gem and socket that. only thing is you cant lvl up the gem to add fire 2 for example 
My Level Up Bonuses script already replicates this with weapons, armor, states, and classes. It also allows weapons, armor, states, classes, and actors to grant a variety of bonuses upon reaching a certain level, leveling up with something active (state, class, etc), or leveling up a certain number of times with something active (state, class, weapon, etc).

It can be found here: http://forums.rpgmakerweb.com/index.php?/topic/48468-bobstahs-level-up-bonuses-v10/

Watch for this script to integrate the bonuses provided by that script soon!
 
Last edited by a moderator:

lolshtar

Master of Magic thatknow nospell
Veteran
Joined
Apr 13, 2013
Messages
694
Reaction score
101
First Language
French
Primarily Uses
RMMV
Can you tell me the main differences between your plugin and Yanfly's one and why would l take your script instead of Yanfly's?

I just wonder what is the big selling point here, l haven't touched sockets yet but l read his upgrade items slot plugin and it seemed complete enough.
 

Bobstah

Pluginstah
Veteran
Joined
Oct 24, 2015
Messages
216
Reaction score
165
First Language
English
Primarily Uses
N/A
Can you tell me the main differences between your plugin and Yanfly's one and why would l take your script instead of Yanfly's?

I just wonder what is the big selling point here, l haven't touched sockets yet but l read his upgrade items slot plugin and it seemed complete enough.
I made this specifically because I wanted to be able to get items back after socketing a new one in. Also, you can specify any number of stats or traits (anything you can assign to a piece of armor) and they transfer from the "gem" to the weapon or armor.
 

lolshtar

Master of Magic thatknow nospell
Veteran
Joined
Apr 13, 2013
Messages
694
Reaction score
101
First Language
French
Primarily Uses
RMMV
Agreed, Yanfly's one is pretty bad for that since it uses items so you have to go with complicated **** in order to do the same thing.

I'll probably use yours instead, thanks.

Also, he mentioned affixes and suffixes on his plugin but never used them right(as in, random stats when looted an item similar to d2)

Maybe that could be your next plugin, you seem to like d2 as l do so you probably already have that in mind anyways.
 

Bobstah

Pluginstah
Veteran
Joined
Oct 24, 2015
Messages
216
Reaction score
165
First Language
English
Primarily Uses
N/A
Agreed, Yanfly's one is pretty bad for that since it uses items so you have to go with complicated **** in order to do the same thing.

I'll probably use yours instead, thanks.

Also, he mentioned affixes and suffixes on his plugin but never used them right(as in, random stats when looted an item similar to d2)

Maybe that could be your next plugin, you seem to like d2 as l do so you probably already have that in mind anyways.
I plan on doing prefix/suffix somehow in a future update. I wanted it (along with a shop feature) in 1.0, but I had to move on to another plugin I need to finish.
 

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
206
Reaction score
24
First Language
English
Primarily Uses
Thank you so much for this script! I'm going to be testing it out in one of my projects soon, it looks like just one of the things I needed!
 

Roguedeus

It's never too late to procrastinate...
Veteran
Joined
Mar 19, 2013
Messages
542
Reaction score
111
First Language
English
Primarily Uses
N/A
Bobstah, another great plugin!

Would you be willing to add the option of applying charges to the socket gem that can be reduced (or increased) via certain activities?

Such as a loss per successful 'Normal' action (Skill that uses the normal element type and doesn't miss). Or a loss each time its removed from a sockatable equip... etc...

The idea is having only rare socket gems be permanent. The most powerful eventually run out of charges and need to be recharged, or replaced regularly.

This would mean that the player would need to be notified when a socket runs out of charges though. And for some way of recharging that can target specific gems (sockated or not).

Might be a big addition... Just food for thought. ;)
 

Bogsy

Veteran
Veteran
Joined
Oct 25, 2015
Messages
42
Reaction score
14
First Language
English
You've done it again, can't wait to get home tonight to try this out!
 

Fernyfer775

Veteran
Veteran
Joined
Oct 6, 2013
Messages
1,317
Reaction score
817
First Language
English
Great stuff, but there seems to be a tiny issue with setting it up in the menu:

As you can see in this pic, it's showing up twice in the menu:

sockets1.png

Here's the plug-in sitting above any other plugins that interfere with item/equip menus:

sockets2.png

Here is the setup in Yanfly's Menu Manager:

sockets3.png

Perhaps I'm just a derp and missed something, or it's a possible bug :p

EDIT: A couple suggestions, if I may.

  • Allow the player to socket an item even if it's equipped (quality of life thing)
  • Perhaps allows us to note-tag the "rune (armor upgrade)" item to go into the ITEM inventory instead of the armor inventory. It could be slightly confusing to the player to see their runes going into their armor inventories. Personally I'd like to change them into Key Items, and then rename my Key Items in the database to "Runes" to make it easier to sort the items altogether.
 
Last edited by a moderator:

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
206
Reaction score
24
First Language
English
Primarily Uses
About having the socket items in a different category, I would LOVE if it were possible to have them show up in a completely new category instead of items, armor, or key items. But that may have more to do with my own preferences and how I'm setting up my own games.

Another thing I'm wondering is if it could be possible to set up different types of sockets and socketable items. For example, a sword being able to take both gems, as well as blade/guard/hilt items. *sigh* I just realized that something like that would probably also need the ability to set if an item is pre-set with particular socketable items in defined slots when acquired, so all this may need an entirely new plugin. Dang. Sorry about that.
 

Bobstah

Pluginstah
Veteran
Joined
Oct 24, 2015
Messages
216
Reaction score
165
First Language
English
Primarily Uses
N/A
Great stuff, but there seems to be a tiny issue with setting it up

EDIT: A couple suggestions, if I may.

  • Allow the player to socket an item even if it's equipped (quality of life thing)
  • Perhaps allows us to note-tag the "rune (armor upgrade)" item to go into the ITEM inventory instead of the armor inventory. It could be slightly confusing to the player to see their runes going into their armor inventories. Personally I'd like to change them into Key Items, and then rename my Key Items in the database to "Runes" to make it easier to sort the items altogether.
I'll look into the menu issue over the weekend. It's Fallout 4 release weekend for me, so I may not make many changes. Definitely next week, though! :)

And, to your second point:

About having the socket items in a different category, I would LOVE if it were possible to have them show up in a completely new category instead of items, armor, or key items. But that may have more to do with my own preferences and how I'm setting up my own games.

Another thing I'm wondering is if it could be possible to set up different types of sockets and socketable items. For example, a sword being able to take both gems, as well as blade/guard/hilt items. *sigh* I just realized that something like that would probably also need the ability to set if an item is pre-set with particular socketable items in defined slots when acquired, so all this may need an entirely new plugin. Dang. Sorry about that.
I get the point. :) I'll add another item category for items that are "gems", and allow it to be named via parameters.

Currently, you can restrict gems to only socket into specific weapon types and/or armor types. Is this the functionality you are looking for, or were you hoping for some kind of blacksmith system where you upgrade the hilt, blade, pommel, etc?

Because if it's the latter, I could probably do something with the Empty Slot Text parameter and allow you to specify a name for each slot. Then, empty slot 1 could be blade, slot 2 could be hilt, slot 3 could be pommel etc. I may have to do it in an actor's notetags and sort it by skill type, though. Would something like this work?
 
Last edited by a moderator:
Joined
Jul 19, 2012
Messages
1
Reaction score
1
First Language
English
Primarily Uses
There's a small bug in this script that can be resolved by inserting this to line 988: this._gemWindow.select(0);

Great script, I like it. :)
 
Last edited by a moderator:

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
206
Reaction score
24
First Language
English
Primarily Uses
I'll look into the menu issue over the weekend. It's Fallout 4 release weekend for me, so I may not make many changes. Definitely next week, though! :)

And, to your second point:

I get the point. :) I'll add another item category for items that are "gems", and allow it to be named via parameters.

Currently, you can restrict gems to only socket into specific weapon types and/or armor types. Is this the functionality you are looking for, or were you hoping for some kind of blacksmith system where you upgrade the hilt, blade, pommel, etc?

Because if it's the latter, I could probably do something with the Empty Slot Text parameter and allow you to specify a name for each slot. Then, empty slot 1 could be blade, slot 2 could be hilt, slot 3 could be pommel etc. I may have to do it in an actor's notetags and sort it by skill type, though. Would something like this work?
Even thought the first part is to someone else, I can relate. I just got Fallout 4 recently as well.

As for my request/suggestion, I'll try to explain it better.

What I was thinking of was something which would allow a developer to give each individual item defined slots, without it being exactly the same setup across the board for everything. So for example, one sword might have slots for the blade, guard, hilt, and a gem, while another sword might have the blade, guard, and hilt slot but no gem slot. Another example is a gun that might have a barrel, firing mechanism, handle/stock, and optional scope slot.

Well... I was also thinking of different gem slot types, but having the ability to create and name slot types with their own icons should allow for that anyway. But that might be something for later. (Like a main gem and a gem which can modify the effect of that gem when slotted in a connected slot. So that might require an expansion plugin, which I don't want to request too soon or anything.)

You mentioned putting the notetags on... actors? Why? Wouldn't it work better to have the notetags written on the database entry for each weapon and armor, so each item can have a different slot setup? I'm not sure how your plugin is written, but it seems weird to have that put on the actor instead of the equipment. Limits the possibility for variation.

Also, would it be possible with this to have it so only certain types of slottable items can work in each slot type? Or have an item with pre-set slot items, such as parts of a sword? Or make it so some slots require something to be slotted in order for the equipment to be useable, like how you can't use a sword that doesn't have a blade? (Or that it'd be seriously underpowered to hit someone with a bladeless sword.)

I really hope I'm not getting to complicated here, and that it's not worded confusingly. I want to make sure this is written as well as possible so that this could help improve the plugin for everyone.
 
Last edited by a moderator:

Targaryen

Veteran
Veteran
Joined
Oct 23, 2015
Messages
51
Reaction score
11
First Language
Spanish
Primarily Uses
Hey, really god job, could you add a new feature to "gems" to add passive states instead of parameters? i'm trying to do this with notetags, but my sword only has the traits of the gem, not the notetags of it :(
 

Neo Soul Gamer

Veteran
Veteran
Joined
Aug 10, 2012
Messages
645
Reaction score
382
First Language
English
Primarily Uses
N/A
Hey, really god job, could you add a new feature to "gems" to add passive states instead of parameters? i'm trying to do this with notetags, but my sword only has the traits of the gem, not the notetags of it :(
You'll have to use a different passive state plugin.

http://forums.rpgmakerweb.com/index.php?/topic/49753-states-auto-trigger/?hl=passive#entry496074

That plugin allows an eval function to run to see whether a state is going to be automatically applied to a battler. Now the question is, does Bobstah's plugin give us the ability to run a check for socketed gems somehow?
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Would be nice to pick color code that is not exclusively for message event
The Ace attorney series are so great games... But at the same time such a travesty.
Made a video showcasing a plugin (by Lanza) that adds 5 more weather effects to our MV games. :LZYsmile: Namely:
Ash-dust,
bloodrain,
Cherry Blossom Petals,
Hail,
and bubbles.

Forum statistics

Threads
103,239
Messages
998,301
Members
134,729
Latest member
Takufy
Top