List of Plugins for SRPG Studio

Go back

Automatic Stats for Enemy Units

This plugin sets the stats of every "Mob" enemy on the game automatically. You only need to add a custom parameter on each class for the class growths, and a optional global parameter for random variance, if you choose to add that to your game. Note that 'Subleader' and 'Leader' enemy units will have to be set up its stats manually.

How to use

First, you need to add a custom parameter called 'growths' to each class to define the base growths used by enemy units. This parameter contains as a value an object that has more custom parameters. For example: {growths: {all: 50, str:100, mag: 25, mov:0}}
This means that the units of that class with have a growth of 100% on Str, 25% on Mag, 0% on Mov, and 50% on every other stat. Basically, you have a custom paramete for each stat, and the custom parameter 'all' that is used when some of the other parameters are not present. All of those parameters are optional, if they are not present, they use the 'all' value, and if that is not present either, it will have the default value of 0.
The custom parameters used are: all - mhp - str - mag - ski - spd - luk - def - res - bld - mov - wlv

Random variance

By default, this system makes every unit with the same level and class have the exact same stats. If you want to add some random variance, you can do it with the global parameter 'variance'.
(To access global parameters, go to Database->Config->Script->Global Parameters)
This parameter uses the same parameters as the 'growths' parameter. For example: {variance: {all:1, ski: 2, spd:0, bld:0, mov:0}}
This means that the units will have a variance of 2 on Ski, 0 on Spd, Bld and Mov, and 1 in every other stat. Note that a variance of 2 means that the stat can be modified from -2 to 2. So for example, if a unit has 10 on a certain stat and there is a variance of 2 in that stat, the possible values are 8, 9, 10, 11 and 12.

Additional feature with the Weapons Rank plugin

If you are using the plugin for Weapon Ranks, this plugin will also update the ranks of every "Mob" enemy unit, setting them with the necessary ranks to use every weapon and item in their inventory.

Version 1.0
Last updated: March 19, 2020
Go back

Combat Arts

Go back

Custom Unit Menu Window


This plugin allows to change the default bottom window of the unit menu screen, so you can show data from the unit that is not available by default. You can also add more windows, with each window showing differen data of the unit. The data that will be displayed will be choosen by the user from the list of data that was added to the plugin. You don't need to use custom parameters and you don't need to know about progamming. To modify the window, you only need to change some options (more detailed instructions below). For example, you can make windows show things like races, states, class type, among other things.

How the windows work

The windows are divided into four sectors: top left, top right, bottom left and bottom right. Each of these sector can hold one type of data. In particular, the top sectors are bigger than the bottom ones, so they can have more detailed information. For example, if you insert the races in a top sector, you can see the name and icon of the race, but if you add it to a bottom sector, you can only see the icon. Note that not all data is available in all sectors. Some are exclusive to top and some to bottom. In addition to that, most data can be selected, which allows to show the description of the data below the window. In the example used above, it would show the description of the selected race.

How to assign data to each sector

To assign data to a sector, you need to open the _config.js file with a text editor like Notepad. In there, you will find some variables. The variables TOP_OPTIONS and BOTTOM_OPTIONS have the data available to use, while the Options variable is where you can assign one of those data options. Notice that each variable is not just a value, but an array of values. This is done like this so each value represents the data from that section of each window. For example, if the TOPLEFT value has [TopRaceInteraction, GrowthInteraction] it means that the first window will have a list of races at the top left, and the second window will have a list of the growths of that unit. Before modifyin those values, make sure to define the value you want for WINDOWS_COUNT, which determines the amount of windows the screen will have. Also, make sure that each array has the same amount of elements as the amount of windows defined in WINDOWS_COUNT. Now, here is a list of all the possible values for the top and bottom sections:

About the sections of stats and growths

If you use the StatsInteraction, AltStatsInteraction and/or GrowthInteraction, you will notice that you can't select each stat to check their description. That is the default behaviour, but it can be changed. To enable this, set true to the variable ENABLE_STAT_DESCRIPTION in the _config.js file To do this, you need to create and Original Data entry for each stat. Each entry must have exactly the same name as the stat, and you can write the description in the Description field. All entries must be in the same tab, which will be specified by the STAT_TAB variable. Note that the value zero means the first tab, one is for the second tab, and so on.

Version 2.4
Last updated: September 8, 2020
Go back

Changes to Damage Formula for Weapons


This plugins changes how the damage of weapons is calculated. By default, weapons use the Strength and Magic stats for physical and magical attacks, respectively. But with the use of this plugin and some custom parameters on the weapon, you can change which stats are used for each weapons. For example, you could make a Dagger use Skill instead of Strength, or use 50% of Strength and 50% of Skill.

Custom parameters

There is only one obligatory parameter, which is the "alternative" parameter. It has to have the 'true' value, so weapons can use the custom damage formula, which is described using all the other parameters. There is one parameter for each stat, and you can use one of them or more. You can even use no parameters, so the weapon doesn't use the stats from the unit and does fixed damage. Each parameter must have as a value the percentage that the stat will be used. For example, 100 means that it will use the stat at its full value, 50 means half, 200 means double, and so on. Here is the list of parameters:

Examples

{alternative: true, spd: 100} 100% Speed.
{alternative: true, str: 50, ski: 50} 50% Strength and 50% Skill.
{alternative: true, res: 150} 150% Resistance.
{alternative: true} Only uses the weapon's might.

Version 1.0
Last updated: February 21, 2020
Go back

Double Attack Command


This plugins adds a custom skill, which allows a unit to attack twice in one turn. It works similar to a normal attack, but once you select the weapon and the target, you can choose again for a weapon and a target. Both the weapons and the targets can be repetade, or you can choose to change either of them. For example: first attack is with Iron Sword to Enemy A, and second attack is with the same Iron Sword against Enemy B.

How to use

To make a unit be able to use this command, you need to assing a custom skill with the keyword "DoubleAttack". If the keyword is already used by some other plugin or you want to use a different keyword, you can change it in the _settings.js file.

Also, you need to specify which weapon types are compatible with the skill. This means that the skill can only be used with weapons beloning to one of these weapon types. To do this, you need to use custom parameters on said skill. For example:
{ weaponTypes: [ {id: 1, category: 0}, {id: 2, category: 0} ] } In this example, assuming that the project uses default data, this skill would be only compatible with the weapon types Lance and Axe.

Settings

There are some things you can change in the _settings.js file:
Version 1.0
Last updated: April 4, 2020
Go back

Enemy Display


This plugin adds two features regarding the display of enemy range. First, it adds an individual enemy range, which keep tracks of certain units' range. Each individual range is activated or deactivaded by pressing the select button while the cursor is over that unit. Also, you can now edit the color and transparency of the enemy range. You can also assign a different color and transparency to the individual enemy range.

How to use

This plugin doesn't require any custom parameters. Instead, you need to change the values on the config-range.js using a text editor like Notepad. The variable called ENEMY_RANGE is for the normal enemy range that applies to the entire enemy army, and the variable INDIVIDUAL_RANGE is the enemy range that you can apply to individual enemy units. In both cases, to change the color you need to use an RGB value, and for the transparency you need to change the alpha number using a value between 0 and 255.

Individual Enemy Range

With this plugin you can select an enemy unit to mark it and see only its range. Once this is done, you can select it again to unmark it. You can also mark another unit to see the range of more that one unit at the same time.

Version 1.0
Last updated: April 4, 2020
Go back

FE GBA Battle Formula


This plugin changes the battle formulas used by the engine to match the ones used in the Fire Emblem games for the Game Boy Advance. To use it, you just need to drag this folder into the Plugin folder of your project.

Optional changes

You can modify some things by modifying the formula-settings.js file. You don't need programming knowledge to use that file. In there, you will find two variables. These variables are already set up in the same way as the FE GBA games, but you can change them if you want to have some difference from those games. There are also the experience calculations, which are handled by the file exp-formula.js. If you don't want to use those formulas, remove that file from your project.

Version 1.1
Last updated: September 6, 2020
Go back

HP Cost for Weapons and Items


With this script, you can make weapons and items cost HP to use. You need to use the custom parameter "lifeCost" on the weapons/items and write as value the HP cost of each attack of that weapon. For example, a weapon with {lifeCost:5} costs 5 HP for every attack, even if the unit misses.
It is important to notice that if the unit doesn't have enought HP to use a weapon that costs life, it can't initiate an attack. The unit also won't be able to counterattack. On the other hand, if the unit had another weapon available in its inventory, it will use that second weapon to counterattack. If the unit can make two attacks during a round of combat, but doesn't have enough HP to make the second attack, it won't do it, even if it has other available weapons. This also applies to counterattacks: if the unit has enough HP to wield the weapon, but receives too much damage before being able to counterattack, it won't counterattack.

Known bug

This plugin doesn't work with custom items. If you are using a plugin that creates a custom plugin and you want to make that item cost life, then you need to modify the code. In the readme file there are instructions on how to do that.

Version 1.1
Last updated: August 15, 2021
Go back

Hybrid Weapons


This plugin allows to create "hybrid weapons", which behave as different weapon types depending on the range of the attack. For example, you can make a "Wind Sword" which acts as a Sword weapon during melee and acts as a Wind weapon during ranged attacks. In this example, you can even make the melee attacks deal phyisical damage, while the ranged attacks deal magic damage, or make all attacks do phyisical or magic damage.

How to use

To use this plugin, you need to add the custom parameter "hybrid" to the weapon. For example: {hybrid: [ {type:"Sword", range: 1, physical: true}, {type:"Wind", range: 2, physical: false} ]}
This is a complex parameter, so let's analyze it part by part: Note that if the unit attacks from a range that is not specified on the custom parameter, the weapon type and type of damage will be the default used by the weapon. Also, in the example used above, if the weapon belongs to the Sword weapon type and deals phyisical damage by default, then the object that specifies the damage at melee was not necessary. That means that you don't need to specify the type of weapon and damage at ranges where the weapon uses its default values.

Version 1.1
Last updated: April 15, 2020
Go back

Learnable Skills by Class


This plugin allows to make a untis learns skill at a specific level and class. By default, the engine only lets you specify the level required to make an unit learn a skill, but with this you can also specify the class. To make this, you need to assign a custom parameter 'skills' to the class. Note that you don't have to assign the skills to the Learned Data of each unit. Ignore that part of the editor and just use the class custom parameter.

How to use

Here is an example of the custom parameter: {skills: [ {id:4, level:10}, {id:7, level:15}, {id:12, level: 20} ]}
In this example, the class can learn three skills: it will learn the skill with ID 4 at level 10, the skill with ID 7 at level 15 and the skill with ID 12 at level 20. Note that if, for some reason, the unit is over the required level and has not learned the skill, then the next time it levels up, it will learn the skill. Also, if an unit changes to a different class, it may be able to learn a new skill, assuming that the unit has the required level.

Version 1.0
Last updated: February 24, 2020
Go back

Neutral Faction

Go back

Range Modifiers


This plugin contains a group of skills that allow to increase the range of a unit when using a weapon, staff and/or item. It also comes with a way to make the range of a staff or item depend on the Mag stat of the unit.

Extended range skills

There are three skills that allows to change the range of weapons, items and staves. The custom keyword for those skills are "WeaponRange" for weapons, "StaffRange" for staves and "ItemRange" for items. To change the range, you use the custom parameter 'startRange' and 'endRange'. Those specify how much extra range have at the start and the end of the range, respectively. Note that for weapons, you also need the custom parameter 'type', which specify the name of the weapon type that gets the extra range. For example, an unit with a 2-3 range bow with a skill that has the following custom parameters: {type:"Bow", startRange: -1, endRange: 2} will have 1-5 range instead. Note that both startRange and endRange are optional. You can have one and remove the other. By default, if the parameter is not specified, it is assumed the default value is zero.

Dynamic magic range

With this plugin, you can also make the range of a staff or item depend on the Magic stat of an unit. To do this, you need to use the custom parameter 'magicRange' in the item. The value of the parameter is a number that the Magic stat will be divided into. For example, an unit with 5 Magic and an item with the parameter {magicRange: 2} will have range 2, because 5/2 = 2.5, and if we round it down is 2.

Version 1.0
Last updated: February 13, 2020
Go back

Restricted Weapon Attack Count


This plugin changes how the Attack Count option works for weapons that use the custom parameter 'brave'. Basically, an unit with a "brave" weapon will only attack once if it is the defending unit. For example, a "Brave Sword" with an attack count of 2 will attack twice if the unit is the attacker, and it will attack once if the unit is the defender. To make a weapon use this restriction, you need to assign it the custom parameter {brave: true}

Version 1.0
Last updated: February 23, 2020
Go back

Skills Pack


This plugin contains a collection of custom skills. All of the skills are compatible with any other plugin, so even if you don't use some of them, they won't be a problem. Below is a list of all the skills, along with their descriptions, custom keyword and custom parameters (if there have any):

Live to Serve

When healing an ally, the skill's user recovers the same amount of HP.

Critical Factor

Normally, the critical multiplier is the same for all the critical hits of all the units. With this skill, a unit can have a different critical multiplier that the rest of the units.

Wary Fighter

A unit with this skill can't double or be doubled. The exception are weapons that can attack more than once for round.

Extra Healing

A healer unit with this skill has bonus to all healing done. You can choose to make this skill work on all items or staves only. Note: There is a graphical bug with this skill. If the healing item has the scope Self (also known as Single), then the extra healing value will not be displayed correctly. The healing animations will still show the correct healing.

Movement skills

All these skills work similar, they all involve the skill user being adjacent to another unit and changing the position of both or one of them. This skills only work for interacting between player's units, not for enemies or allies.

Sacrifice

The skill's user can sacrifice its own HP to heal an adjacent unit. The amount of healing depends on the custom parameter. If the unit doesn't have enought HP to sacrifice, it heals as much as possible, staying at 1 HP.

Buff on Staff

A staff user with this skill can give a buff (state) to the units, when using staves over them. You can choose which type of staff give this boost. For example, make healing staves and staves that cure states give the buff.
Version 1.0
Last updated: February 12, 2020
Go back

Traits System


This plugin allows you to add "traits" to units and classes, similar to how the "Races" option works. The main difference is that races can only be assigned to classes, while traits can be assigned to units and classes. In order to display the traits that an unit has, a new window has been added to the unit menu screen.

How to create traits

Because traits are not something that comes with the engine, we will need to create an Original Data entry for each trait. In order to do this: Note: all Original Data related to traits must be in the same tab. You also need to specify which tab are you going to use in the config-traits.js file.

Configuration options

In the file config-traits.js you can modify some variables to change some of the settings.

How to use custom parameters

There are several custom parameters that can be used in this script, but all of them work the same way. They are arrays of numbers, where each number is the ID of an Original Data entry. For example: {trait: [2, 3]} or {effTrait: [6]} Here is the list of custom parameters available to use:

Trait Event Command

You can create an event command that will add one trait to an unit. To do this, create a Execute Script event command, select the Call Event Command type and, in the Object Name field, write "AddTrait". Then, go to the Original Data tab and select the unit that will obtain the trait. Finally, use the Value 1 field to write the ID of the trait to add.

Version 1.1
Last updated: May 9, 2020
Go back

Weapon Ranks System


This plugin allows you to make individual ranks for each weapon type. To make this work, is necessary to make several custom parameters on units, classes, weapons and staves.

Custom parameter "rank"

The parameter "rank" is used primarly for units, so they can have a base rank. It can also be used on: classes, weapons (only the equipped weapon), items, skills (only if they are part of the "Parameter Bonus" category) and states to give an additional bonus to the weapon ranks. This parameter will have an array, with each element containing the name of a weapon type and the value associated with that rank. For example, an unit with {rank: [["Sword", 31], ["Axe", 71]]}. In this case, the unit will have a D rank on swords and C rank on axes. The values in the example are the default one used by rank-config-option.js (more details on this later). If the unit does not have a parameter of a certain weapon, the default value is 0, meaning no rank on that weapon. Even if the unit's class can use that weapon, if the unit doesn't have any rank on that weapon type, it can't use it. It happens the same in the reverse case: if the unit has a parameter for a rank but their class can't use that weapon type, the unit won't be able to use it. This can be a interesting feature if you want a unit to learn a new weapon type without changing class. Note: It is very important that the name of the weapon type on the parameter matches exactly the name of the actual weapon type, otherwise it won't work.

Class parameters

The two parameters used by the class are "minRank" and "maxRank". "minRank" makes a certain rank the minimun rank obtained by a class, while "maxRank" is the maximum rank obtainable by that class. For example, a class with {minRank: [ ["Axe", 31] ], maxRank: [ ["Sword", 181] ]}, will always have at least a D rank with axes, and won't be able to go beyond A rank with swords. If there is not a parameter on a certain weapon, then there is no min and no max. In this example, it means this class doesn't have any minimun on swords, so it starts with E rank, and doesn't have any maximum on axes, so it can reach S rank. This also applies to the other weapon types that this class can potentially use but are not in the custom parameters.

Weapon/staff parameters

There are two custom parameter for weapons and staves: they use parameter "req". This is the requirement to use that item. They also use the parameter "wexp", that dictates how much weapon experience the unit earns by each use. If the item is a weapon, they earn experience for each time they engage in combat with an enemy unit. For example, a weapon with the parameters {req:"D", wexp:2}, would need a unit with a D rank on that weapon, and that unit would gain 2 weapon experience.

Gaining skills when a weapon ranks up

You can make a unit gain a skill whenever it gets a rank up in a specific weapon type. To do this, you use the custom parameter "rankSkills". For example: {rankSkills: [ ["Sword", "D", 15], ["Sword", "C", 20], ["Lance", "C", 23] ] } This makes the unit gain three different skills. First, it obtains the skill with ID 15 when it gets to rank D in swords. Next, when it gets to C rank it obtains the skill with ID 20, and finally it obtains the skill with ID 23 when it gets to rank C in lances. You assign the custom parameter to the unit, but if you want the skill to be earned universally, you assign them to the weapon type instead. Note that the version of the weapon type uses the same name for the parameter, but it works differently. For example: {rankSkills: [ ["D", 15], ["C", 20] ] } In this case, every unit that reaches D rank with this weapon type will gain the skill with ID 15, and when it reaches C rank it will gain the skill with ID 20. As you can probably tell, the difference is that you don't need to specify the weapon type.

Earning more weapon experience per battle

An unit with a custom skill with the "Discipline" custom keyword will be able to earn more weapon experience. The amount of extra experience is defined with a custom parameter of the skill called "multiplier". For example, if you want the unit to earn double the experience, you must write this in the skill: {multiplier:2}

Stat boosting items

There are 2 custom parameters that can only be used by Stat Boosting items. It won't work on any other type of items. The first parameter is "rankUp". With this, you can increase the rank of one or more weapon types of a unit. For example, a item with {rankUp: ["Sword", "Lance"]} will increase the rank of both weapon ranks by 1. If the unit had C rank with swords and D rank with lances, it will have now B ranks with swords and C rank with lances. The other parameter is "rankNew". If the unit doesn't know a weapon type, this adds the lowest rank possible to that weapon type. For example, if a unit that only uses axes uses a item with {rankNew: ["Bow", "Magic"]} will get a E rank with bows and magic tomes. Both of these parameter can be used at the same time with the same item, but if you have something like {rankUp: ["Sword"], rankNew: ["Sword"]}, then the units that don't use sword will only get E rank with swords. You can't make a unit learn a weapon type and increase their rank with the same item use.

Editable values

There is a file called rank-config-options that cointain some editable variables. This can be edited without code knowledge. The options that can be edited are the values necessary to reach every weapon rank, the possibility to add more custom ranks, and an option to remove from the weapon ranks window all the ranks unused by the unit.

About item types

This script considers item types the same as weapon types, so you can make your own item types besides the staff type, and they will work just like the others types. But the item type called "Item" will never have a rank, so they can be used by anyone. Also, if you have a weapon type and an item type have the same name, they will be considered to share the same rank. This can be useful if, for example, you want some sort of magic that can attack with a weapon and heal with an item.

Changing the weapon experience gauge

By default, the gauge used in this script is one of the default assets. If you want to change that, you can either use another of the default assets of the software, or you can use a custom gauge, as long as it has the same size and format than the default gagues. To change it, you must use 2 global parameters. This can be done going to Databe->Config->Script->Global Parameters. The parameters are "weaponRankGauge" and "isRuntimeGauge". The first one has as value the id of the desired gauge. The second parameter has as value true if the gauge is a default asset, or false if the gauge is a custom asset. For example, {weaponRankGauge:0, isRuntimeGauge:true} uses the default gauge used for the HP bar on the unit screen.

Version 1.2
Last updated: June 23, 2020
Go back

Weapons and Items as Original Data


This plugin allows the creation of Original Data entries that act as weapons or items. This means that you can, for example, make a magic system where the magic is not in the inventory, but instead it comes from Original Data entries.

Weapon and items

To make this system work, you need to do the following for each spell/weapon/item you create: Note: To make this work, you need to create a Execute Script event of the type Execute Code and write the next line of code:
MagicAttackControl.setSpellsAllUnits();
KNOWN ISSUE: This system doesn't work on guest units. However, it does work for event guest units. IF YOU USE GUEST UNITS THAT ARE NOT CREATED THROUGH EVENTS THE GAME WILL CRASH

Configure settings

You can change some options of this plugin by opening the _config.js file with a text editor like Notepad. There are three options to change:

Assign weapons or items to units

To make an unit start with some weapons or items as Original Data entries, you need to use the custom parameter "spells". For example: {spells: [2]} or {spells: [0, 1, 5]}. Each number is an ID of an Original Data entry. Keep in mind that all entries must be in the same tab, which will be specified in the _config.js file.

Event command to add new weapons or items to a unit

You can create a Execute Script event with the type "Call Event Command". To make this work, you need to set the Object Name to "AddSpell". Finally, you need to specifiy in the Original Data tab the unit that will receive the new weapon/item, and also change the Value 1 to the ID of the Original Data that will be added to the unit.

Ballista

You can also make a unit use a specific weapon in a specific tile, like for example a ballista that is fixed in a tile and can be used by archers. For this, instead of using Original Data, you will use skills. To do this, you make the same process as when you make any other skill weapon, except for these differences:
Version 2.1
Last updated: May 26, 2020