Displaying Custom Effects On Items
This tutorial is aimed to introduce Modders to the EFFECTLIST.
The EFFECTLIST file stores nothing more than the effects in the editor via Data Editor —> Effects:
Each Effect, as you may know already, represents an “action” that you can attach to an affix. The effects are in themself hardcoded but some of their proprieties can be modified to customize them in some ways. But let's give a look at the proprieties of an Effect, starting from the top:
Internal Name - it's the variable name that is used in the code. This variable it's hardcoded and anything different from those already listed (so from the Original Effects) won't be displayed when selecting the Effect for the affix. From testing, the Internal name seems to be related to the actual Effect Name (the name that gets Displayed) something like this:
Where DISPLAY_NAME it's the name inputed in the Description section (see below). So if you were to create a new Effect, it will automatically acquire a custom string made up from its name, [b]regardless of its actual Internal Name in the EFFECTLIST.DAT file[/b]
Description - here it's where the Display Name and Description that comes along with the effect takes place. This will be talked in-depth in the tutorial section
Effects - Here is where some options are defined for the effect, mostly related to its value that can be put to a percentage or a Value (or none) other than some options related to Float values and Max Values
Graphs - here is where you can point a Graph to influence the value of this effect. Really useful if you want an effect to [scale] someway
Min and Max Values - Simply the Max and Minimum value that the stat can have
Proprieties - these are the attributes relative to the effect. When creating an affix it will use these tags to define some values (hardcoded). Don't know if the Tags can be used in other effects, personally i don't think so.
What we are going to do for this session is Modify an already existing Effect to grasp the concept of how the EFFECTLIST file can be edited to improve the quality of our mods. We will try to use an Effect and Display the value and the stat name into an item.
First step, let's locate the EFFECTLIST.DAT file in the MEDIA directory and copy it into our mod's media directory:
It's not possible to modify the Effects from the Editor itself so we will need to open the EFFECTFILE.DAT with a text editor. As always i will be using Block Note.
The first thing we want to do is search for the ADD STAT effect within the EFFECTFILE, so if you didn't already, open the EFFECTLIST file with a text editor and scroll down till you reach the ADD STAT string:
Usually the ADD STAT effect, doesn't display the added stat (the value added). We want to emulate the Effects like Strength Bonus, Armor Bonus, that do display the Stat and the value to be added in the item description itself.
As said, we want to add a description to our item so let's get a view on Description section and how it works:
The description section has 2 type of Descriptions: Negative and Positive.
The sign (+ or -) it's related to the value (so positive or negative value). Each description type has an additional description for Over Time values. These are used when the affix has a fixed duration (like a buff duration for example).
So a Negative description will be used when the value in the affix is negative, and a positive description will be used if the value in the affix is positive. If the affix has a value in its duration, the proper Over Time description will be used.
The Description is nothing more than a string, so you could write anything, though we would like to have some “dynamism” for our text since our Values will not be fixed and our stat will not always be the same.
The Description fields use some Tags to define variables in the text. We'll give a look on those who are known (this will be updated if more will be reported):
Since we are going to modify the file manually let's rapidly get what are the string we are gonna use for it:
This is used to insert a Description of positive type:
This is used to insert a Description of positive type Over Time:
This is used to insert a Description of negative type:
This is used to insert a Description of negative type Over Time:
Now that we have some knowledge, let's go back to our ADD STAT in our EFFECTLIST file and add this string:
So what will be displayed is the Stat Value and its Name. Let's save the file and reload GUTS. After that Create a new custom Stat and apply an affix to an item pointing that stat.
In my case, i've created an Int type stat called Energy and applied an ADD STAT affix to a custom item of mine called Alluminium Legs. Let's save everything and test it in the Editor:
Done! Well… even if actually the ADD STAT doesn't add a stat to the player but to the item itself, but you got the point :P
You can also copy effects to make new ones too but you will have to modify the affix via file in that case because GUTS will show you the Effect in the editor, but will not recognize it once you try to select the affix's effect. Pointing the effect will make the affix a bit buggy in GUTS but not ingame.
You can see in the image above, the ADD_MORE_STAT effect that i added, that is a copy of the ADD STAT effect. GUTS will simply give you an error when trying to select the Effect but it will give a proper result ingame.