CeruleanAcorn's Shoreline

Washed upon my domain, have you? Welcome!
Along this shoreline you'll find examples of plugins I've worked on for SRPG Studio as seen on my GitHub !

Plugin QnA

Plugins are JavaScript files containing code that can be inserted into the “Plugin” folder in an SRPG Studio project to modify gameplay for that project.

If you take a look at an SRPG Studio project’s “Script” folder, you can see collections of JavaScript files controlling how gameplay works by default, organized into different subfolders based on the different parts of the SRPG Studio game engine those files are responsible for handling. This default functionality is often referred to as "vanilla" within the SRPG Studio University Discord.

Plugins, then, cause a project to work differently from vanilla by overriding any of the appropriate functions defined in the “Script” folder’s JavaScript files, to declare a different implementation of those functions.

As mentioned above, Plugins can be downloaded and put in the “Plugin” folder of an SRPG Studio project. Most plugins should be “plug and play”, meaning that’s all you are required to do from outside the SRPG Studio game engine to begin using them.

Plugins that are not plug and play could have variables you may or may not define inside the SRPG Studio engine to customize the way the plugin works, called “custom parameters”. This is on a case-by-case basis, so it is recommended that you use an IDE, or at least a text editor to open the plugins you want to use and read their instructions. Notepad++ is what I personally use for developing in SRPG Studio. A big advantage for Notepad++ is that if you’re using Japanese plugins, they may appear as incomprehensible text when first opened due to their UTF-8-BOM, which Notepad++ can convert into characters you can then read using the built-in UTF-8 encoding setting.

Let’s use my Spread Penalty plugin. Download it and place it in your SRPG Studio project’s “Plugin” folder.

Some plugins may have variables you can define inside the SRPG Studio engine to customize the way the plugin works, called “custom parameters”. This is on a case-by-case basis, so I recommend that you use an IDE or at least a basic text editor to open the plugins you want to use and read their instructions.

This custom skill can be implemented from the main screen of SRPG Studio by going into Database > Skills, then setting the Skill Type of the skill you want to associate with the plugin to “Custom”.

You’ll notice that within the “Skill Effect” text entry window, there is space for a “keyword”. This keyword is what links the plugin to the custom skill you are creating - if a keyword is needed for a plugin, it should ideally be defined within the JavaScript file in a section, but just in case it isn’t, look for a line that includes “SkillControl.getPossessionCustomSkill”. It should have the keyword required, wrapped in double quotations.

This line of code is from the Spread Penalty plugin; the keyword is “spread-penalty”.

With your new skill set up like so, give it to a unit and you’re good to go!

Spread Penalty does in fact have three custom parameters that can be modified to change the way they plugin works. However, within the JavaScript file for Spread Penalty, default values have been assigned to them to them - therefore Spread Penalty can be considered plug and play because you don’t necessarily have to define them. Remember to open the JavaScript files for your plugins and read the instructions for each case-by-case basis to determine if any custom parameters they use also have default values! Define custom parameters you want to change by clicking on the “Custom Parameters” button for the corresponding skill, then typing them in the window that appears.

Click on a plugin name to be taken to its corresponding GitHub page!

Plugin Name Brief Description Example(s)
Spread Penalty Affect the hit and damage of the user if they are more than a specified distance away from their target.
Just Enough Healing When using healing magic, grants an extra heal that fully heals the target if after the initial heal their missing HP is equal to or below a specified amount.
Shatter Strike User's damage dealt with a weapon changes depending on the weapon's current durability.
Superiority Complex User's damage, defensive stat, hit, avoid, crit, crit avoid and agility when in combat against another unit can be modified depending on whether the two units' equipped weapon types and/or targeted defensive stats match or not.
Weakest Link User's damage will automatically be calculated with the lower amount out of their target's defense and resistance stat. If both stats are the same, the originally targeted defense stat is used by default.
Only Retaliate If applied as a unit skill, the unit cannot initiate an attack via the Attack command at all.

If applied as a weapon skill on a specific weapon, the unit will not be able to initiate an attack via the Attack command with that weapon.

Designed to work with Fusion Attack commands (i.e "Capture") as well.
Limit EXP By Level Modifies the EXP gained by a unit who has a higher level and class rank than what is specified for a particular map.
Equip Discards Unequipped Weapons Equipping a weapon with the custom parameter associated with this plugin set to true will discard all other weapons in the wielder's inventory without the "Important Item" designation.
Dim Face After Unit Move Dims the face icon of a unit after the player has moved them.
Disappear On Hit If a unit with this skill hits a target in combat, combat will immediately end and that target will disappear. If the unit that disappears is a player unit, EXP gain is not counted.
Army Switch Strike If a unit with this skill hits a target in combat, combat will immediately end and that target can change army allegiances, depending on the existing army allegiance of the skill owner and the target.

A Player and Ally unit can convert an Enemy unit into an Ally unit. An Enemy unit can convert an Ally and Player unit into an Enemy unit.