SRPG Engine - [Add Votes for RTP] Plugins for creating Turn Based Strategy game

If I provided RTP for this project, what style would you choose? (not guaranteed to be applied)

  • RPG Maker MV style

  • RPG Maker MV in Tonbi tall sprite style

  • SRPG Studio style

  • Pioneer Valley Games style

  • Other style (please suggest it in comment section of this Thread)


Results are only viewable after voting.

Doktor_Q

I'm not a real doktor, but I am a real Q
Veteran
Joined
Aug 1, 2016
Messages
881
Reaction score
573
First Language
English
Primarily Uses
RMMV
@NatePlays Yes, aiTarget formulas are just evals, the same as a damage formula or the like. There's a list of pre-calculated properties you can use, like distance, health, facing direction, what kind of terrain you'd have to end your turn on, etc, since the aiTarget formula decides not just which enemy to target, but which position to stand on to reach them. I have a formula for assassins that prioritizes people with their backs exposed, for example.

Target rate is a multiplier on the result of the aiTarget formula, so a target rate of 2.0 makes them twice as valuable, 0.5 makes them half as valuable, etc. There is no randomness in targeting unless you choose to add some yourself. If you want a specific skill to not be affected by target rate, use <aiIgnoreTgr>. I use this on healing skills in particular, so that your healers don't suddenly think the warrior is the most important target when they taunt, or ignore the injured rogue because he's hiding. The AI will only target someone with a final "score" above 0.

If you're using SRPG_PositionEffects, you can use <anyTarget> to make skills that can target enemies and allies alike, at which point, you want to use <aiFriendRate:> and <aiOpponentRate:> tags. They act as another multiplier to their "score" based on if they're on the same team as each other or not. That way, you can allow players to attack their own units if they really want to, but also tell the AI not to punch their friend in the face, or heal their enemy, by setting the rate for that team to 0, or -1, or the like.

Those rates become especially important for AoE skills, which use the total combined score of everyone affected by the AoE- so if you make a fireball that can hurt both allies and enemies, you might set <aiFriendRate:-1> to make them try to avoid hitting their friends (unless there's a lot more enemies), or <aiFriendRate:-99> so they'll functionally never, ever use the AoE if it might hit an ally, or <aiFriendRate:-0.5> if they're fine hitting one or two friends to deal with one enemy.

Check the descriptions of the plugins for more detailed information- I try to write pretty comprehensive documentation on all of them, especially ones with lots of options.
 

Miss_Misery

Villager
Member
Joined
Oct 14, 2020
Messages
5
Reaction score
1
First Language
English
Primarily Uses
RMMV
Hello I am kind of new here, however I have been working and revising my first Rpg maker project since July this year. I really love figuring out how to utilize this plugin even though my js knowledge is fairly lacking, I only really know the very basics of coding in general. With that being said I do not want to end up making systems that I myself cannot create due to my lack of experience. However since i am planning on making a game involving guns with fixed ranges I wanted to know if there was any way to change a Unit's combat stats based on distance away from the target. For example the closer you are to the enemy unit the higher your hit rate will become, or in the case of shotguns it increases damage significantly. I been doing fairly well in trying to figure out what the Demo project is doing but I run into issues where the game has to check extra variables. In this case I need to know the range from each target and adjusts combat stats accordingly which are not permanent mind you. So if anyone can offer advice that would be great!
 

NatePlays

Veteran
Veteran
Joined
Dec 12, 2018
Messages
53
Reaction score
16
First Language
English
Primarily Uses
RMMV
@Miss_Misery you can get the distance between two events. For using in the damage formula, you might need a plugin to call that command ( in this case it's something like var dist = getUnitEventDistance(a.event(),b.event()), you might have to check the syntax in the plugin description)

As for changing the Hit Rate, I'm afraid you can't do that without some serious amounts of bodge with the systems...
 
Last edited:

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
Welcome @Miss_Misery

=> just incase we dont want to use the Dmg formula ..
First you need a If condition that asks:
- is the Unit a Ranged Weapon user (gun ,bow ect)?
- Or better: is the Unit using a ranged weapon in this Action_Skill
.. i dont know the code for that but that shoud be not hard to find out..
Than you need the Distance calculated..
JavaScript:
 $gameMap.distance($gameMap.event(2).x, $gameMap.event(2).y, $gameMap.event(1).x, $gameMap.event(1).y) )
This will return the distance betwen event id1 & id2
(we should use target and active event instead)
Then you can use "if Conditions "to ask about:
- if Distance 3 => (change Dmg code)
- if Distance 4 =>(change Dmg code)
- if Distance 5 or higher =>(change Dmg code)
- ect
=> Im not sure on how to change the Dmg or Hitrate with code also to make sure that this change doesnt get added permanently but i think this can be solved..
It might even be usefull to build a Plugin with SkillNotes for ranged Units Distance Dmg.. something like "SRPG_Ranged Dmg".
(but i will need to find some code and to test it ,so this could take a few days or maybe longer..)
 
Last edited:

NatePlays

Veteran
Veteran
Joined
Dec 12, 2018
Messages
53
Reaction score
16
First Language
English
Primarily Uses
RMMV
A plugin would simplify it but the command to get the distance between two units is on the SRPG Core already, and if you put that on the damage formula or inside a Yanfly Action Sequence eval, you can use a.event() and b.event to get the event IDs
 

NatePlays

Veteran
Veteran
Joined
Dec 12, 2018
Messages
53
Reaction score
16
First Language
English
Primarily Uses
RMMV
I managed to make door and door keys:

  • Doors are enemies, with HP and defense (that let's you make some characters able to break them too, and I like that. They have a exclusive state (is Door)
  • Door Key is an item that can be used on enemies, but not consumable. However, in damage formula, it tests for state isDoor, if true sets door ho to 0 and deletes one Door Key, else it just does 0 damage. Door key Item also can skip battle scene by using the MapBattle tag.
After doing that, though, I started thinking how to implement a Talk command via a plugin. 'Talk' could be a skill that, used on an event, would play their pages as if started by any other method (not limiting to one page). How complicated would that be to make as a plugin?
 

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
(..)
After doing that, though, I started thinking how to implement a Talk command via a plugin. 'Talk' could be a skill that, used on an event, would play their pages as if started by any other method (not limiting to one page). How complicated would that be to make as a plugin?
"talk" can be a simple skill that does nothing,but its "custom Execution" can trigger a Common Event and there you can Event what ever is needed for the story.. (i dont think u need a Plugin for that)
=> if u want the "talk" skill to be only availleble in certain Situations, you can handle that with Common Events aswell
(in order to enable or/& disable the skill)
In order to build a own "real" battleCommand u have to look into the SRPG Core how the battleCommands work and try to replicate it.
(i just added Switches to each battle Command in the Edited Version of each Core but i did never try to replicate a BattleCommand)
=>Thats the part where i added the Switches:

it should be somewhere at Line 5000+
JavaScript:
   var _SRPG_Window_ActorCommand_makeCommandList = Window_ActorCommand.prototype.makeCommandList;
    Window_ActorCommand.prototype.makeCommandList = function() {
        if ($gameSystem.isSRPGMode() == true) {
            if (this._actor) {
                if (_srpgActorCommandAttackSwitchID === 0 || ($gameSwitches.value(_srpgActorCommandAttackSwitchID)===false)) {
                    this.addAttackCommand();
                }
                if (_srpgActorCommandSkillSwitchID === 0 || ($gameSwitches.value(_srpgActorCommandSkillSwitchID)===false)) {
                    this.addSkillCommands();
                }
                if (_srpgActorCommandItemSwitchID === 0 || ($gameSwitches.value(_srpgActorCommandItemSwitchID)===false)) {
                    this.addItemCommand();
                }
                if (_srpgActorCommandEquipSwitchID === 0 || ($gameSwitches.value(_srpgActorCommandEquipSwitchID)===false)) {
                    this.addEquipCommand();
                }
                if (_srpgActorCommandWaitSwitchID === 0 || ($gameSwitches.value(_srpgActorCommandWaitSwitchID)===false)) {
                    this.addWaitCommand();
                }
            }
        } else {
            _SRPG_Window_ActorCommand_makeCommandList.call(this);
        }
    };
Edit
the code to start eventPages looks like this:
JavaScript:
$gameMap.event(eventID, 2).start();
// this will start event Page Nr2
(also if you can handle this with Common Event, its easier to figure out how and what kind of Plugin you want to make out of it.. just incase u preffer to have it done by a plugin at the end)
 
Last edited:

NatePlays

Veteran
Veteran
Joined
Dec 12, 2018
Messages
53
Reaction score
16
First Language
English
Primarily Uses
RMMV
I finished my Script code for Support System (not a standalone plugin)! Now I don't have to make lots of branches just to add a single character!! My coding process and the final code can be found here:
The friend lists are arrays with the IDs of the friends for each Leader (the number tested in the Switch case). I call the script every start of Actor Turn, so lag is not a problem.

As for the system itself, I use Moogle_X's Actor Friendship System, and for each level I add a state that can increase Evasion and Hit, among other things.The AFS plugin also lets me call Common Events to make Support Conversations, and to finish it I use SRPG_UnitGroups to spawn heart balloons for everyone with the Support states!
 

Miss_Misery

Villager
Member
Joined
Oct 14, 2020
Messages
5
Reaction score
1
First Language
English
Primarily Uses
RMMV
Another Question if I may: Is there any way to modify the hud when using map battle at all? While I am not worried about visuals of the project at the moment however when using the plugin such as SRPG_DirectSkill it makes the font smashed together, I tried modifying it with SRD hud maker but it does not seem to recognize the layout at all. Turning it off reverts things back to normal but that is not what i want. I am currently working on a system where the player can swap to a primary and secondary weapon. I like having Streamlined UI for sake of game flow. I even opened up the Srpg_Core plugin in notepad but I do not possess much knowledge to tell what everything in the code does.

Edit: Forgot to mention I am also using Yeps Limited Skill use plugin which is the numbers/icon displayed over the skills name.
 

Attachments

  • UiProblems.PNG
    UiProblems.PNG
    229.3 KB · Views: 17

Doktor_Q

I'm not a real doktor, but I am a real Q
Veteran
Joined
Aug 1, 2016
Messages
881
Reaction score
573
First Language
English
Primarily Uses
RMMV
Another Question if I may: Is there any way to modify the hud when using map battle at all? While I am not worried about visuals of the project at the moment however when using the plugin such as SRPG_DirectSkill it makes the font smashed together, I tried modifying it with SRD hud maker but it does not seem to recognize the layout at all. Turning it off reverts things back to normal but that is not what i want. I am currently working on a system where the player can swap to a primary and secondary weapon. I like having Streamlined UI for sake of game flow. I even opened up the Srpg_Core plugin in notepad but I do not possess much knowledge to tell what everything in the code does.

Edit: Forgot to mention I am also using Yeps Limited Skill use plugin which is the numbers/icon displayed over the skills name.

You pretty much need to make / modify the plugins yourself to change how the HUD works. It's likely not going to integrate well with the SRD hud maker, as a lot of the windows are newly created for SRPG_core or its extensions.

HUD manipulation is one of the easier things to learn for plugins, at the very least, since it's just about learning how to change the x, y, width, height, and possibly rows/columns of each window object- I suspect there's tutorials on it if you look in the Learning Javascript subforums.
 

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
Another Question if I may: Is there any way to modify the hud when using map battle at all? While I am not worried about visuals of the project at the moment however when using the plugin such as SRPG_DirectSkill it makes the font smashed together, I tried modifying it with SRD hud maker but it does not seem to recognize the layout at all. Turning it off reverts things back to normal but that is not what i want. I am currently working on a system where the player can swap to a primary and secondary weapon. I like having Streamlined UI for sake of game flow. I even opened up the Srpg_Core plugin in notepad but I do not possess much knowledge to tell what everything in the code does.

Edit: Forgot to mention I am also using Yeps Limited Skill use plugin which is the numbers/icon displayed over the skills name.
i made an Edit that should solve your problem.
Here is the Info how to replicate it ,change the number from "3" to "2" like its shown on this Img.
(this Edit was made in the Plugin SRPG_DirectSkill.js)
Screenshot_1.png
--
Screenshot_2.png

Edit info:
This edit wont be part of any Demo Update, it was only for showing what needs to be changed for solving this problem..
 
Last edited:

Miss_Misery

Villager
Member
Joined
Oct 14, 2020
Messages
5
Reaction score
1
First Language
English
Primarily Uses
RMMV
@Dopan thank you very much! You have been a great help, while I am fairly new to this kind of stuff I have basically been reading this thread a ton after starting my project. While trying to make a simple and fun to digest game turned into a cluster of trial and errors. I ran into a bunch of walls while making this project so I got to the point where I thought best to reach out to people who actually knows what they are doing. If I may I would like to ask another question if its not too much of a bother. I do not plan on using sv battler or the troop battle setting at all so combat will remain on-map only. However updating Units sprite animation seems very complicated as I do not know how you would go about changing a unit on demand. While I do not plan on making transformations (for now...), it does look a bit silly for every sprite to remain just a walking sprite and not reflecting the fact they are holding a weapon. I guess I could use a common event to handle character frames but I am not sure if there is a more simple way?

Edit: To be a bit more clear, since i'm using on map I want to create an idle state and an attacking state which is used a unit engages in combat basically.
 

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
@Dopan
(...)I thought best to reach out to people who actually knows what they are doing.
(...)However updating Units sprite animation seems very complicated as I do not know how you would go about changing a unit on demand. While I do not plan on making transformations (for now...), it does look a bit silly for every sprite to remain just a walking sprite and not reflecting the fact they are holding a weapon. I guess I could use a common event to handle character frames but I am not sure if there is a more simple way?
Edit: To be a bit more clear, since i'm using on map I want to create an idle state and an attacking state which is used a unit engages in combat basically.
@ Miss_Misery
I think you can handle this with SRPG_MapBattleMotions.js.
I have to admit that i dont have much experience with this Plugin.
But Doktor_Q and also some other people (for example @Sanguine_Giraud who used it here #871)
should be able to give you proper advice on this Plugin.
(also on most things i dont know what im doing till its done^^.. most things i learned on RPG and SPRG were learned trough "Trial & Error")

@ ALL (about demo info)
i just recognized that i missed to delete the Mapbattle Plugin from the "Extension Demo" and its PluginManager.
(this demo has Mapbattle integrated in the SRPG_Core Plugin ,so its not needed there)
-> I only disabled the Plugin,but not deleting it could confuse new users so i will delete it from the PluginManager of that Demo with the next bigger Update.


Edit (new plugin Info)
I finished the Plugin "SRPG_RangeDMG.js"(<-GitHub Link) it can change the DMG & Hitrate on Units that use ranged Weapons..depending on the Distance to the Target.
(Or more detailled.. its the Distance to the Cursor/$gamePlayer instead of "targetEventID", that worked better in order to not conflict with the "Prediction Battle Window").
(for changing the Hitrate, States must be used)
- it works on all ranged weapons the same way
(because it only asks about the weapon type which the unit uses)
- the Setup in the Demo will only work for Actors but it could probably also work for Enemys
(i didnt tested that on enemys)
- the plugin handles the HitRate States which are connected to its Param Setup
(in order to add or remove them whenever its needed)
=> I had to rework the Plugin because a few things didnt work ,thats why i had to change the "Edit Text" here.
=> i stll need more time to prepare both demos, edit the plugin help infodone and upload everything
(i will try to explain the new Plugin a bit more as soon I am finished & its Uploaded)
 
Last edited:

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
(since the last posting is 3days old and i want to make sure this Update will be recognized, i hope double posting is ok in this Case.However sry if its not^^)

@ All
The next Update of both Tutorial Demos is ready & uploaded! All links are Updated

(Version Numbers are still the same only 1 plugin is added with the needed Setup)
Changelog:
- added new Plugin
SRPG_RangeDMG.js
- added setup to Common Events ("Battle" & "BattleStart")
- added States to change the HitRate,connected to the Plugin SETUP
- edited the AttackSkil Formula (skill_ID_1)
- added $GameVariable for the DMG MultiPlier (VAR ID 97) to the Plugin SETUP
- added actor Nr4 (bow user) to "Chucks Default Map 0".
____

Like i mentioned i will try to explain the Plugin as good as i can ,because the Param Setup of the Plugin might look Complicated at first.
This Plugin uses a $GameVariable to affect the DMG formula of the Attack Skill.
Also it uses States to affect the HitRate of the User.
The Plugin will calculate the Distance betwen the Active Unit and the Cursor/$GamePlayer
( = Target).
The Plugins has DMG Multiplier Functions from 70% - 150& (with steps of 10%).
-each "DMG% Multiplier Function" has a Distance by Default but that Distance can be changed in the PluginParam and you can add a Second distance aswell.

(only 2 max because every Distance needed its own var and i didnt want the PluginParam to look more Complicated)
- also each "DMG% Multiplier Function" is connected to a State that can not be changed without editing the Plugin ,but its up to the User to Setup the States..

- and each "DMG% Multiplier Function" can be Disabled..
-you can also make "1 Custom Function"
(with max 2 Distances that are affected) with its Own Custom State and Custom DMG multiplier Var,this can also be made in the PluginParam.
- it works on all ranged weapons the same way
(because it only asks about the weapon type which the unit uses)
The Plugin Help Info explains how any Attack Skill Formula must be edited in order to make that work.
In the spoiler are images for better understanding.
Screenshot_1.png
-
Screenshot_2.png
-
Screenshot_3.png
-
Screenshot_4.png
-
Screenshot_5.png
About the "Edited DMG formula":
- $GameVariable will round decimal numbers they hold only "normal" numbers
- thats why the Formula has to be edited this way:
* Example : (Skill DMG Formula)
* - Default Battle Formula = " a.atk * 4 - b.def * 2 " (example for a default attack Formula)
* - Edited Damage Formula = " (a.atk * 4 - b.def * 2) * (v[97] * 0.1) " (new attack Formula for this Plugin)
*
* => you always have to put your default Formula in "()" and add " * (v[97] * 0.1) " at the End.
* => this has to be this way because $GameVariables dont use "decimals"
* => so we use "10" as DMG Multiplier for "100% DMG". Or "7" for "70% DMG".Or "15" for "150% DMG".. ect.
About the "Hitrate States":
-Its hard to edit the HitRate without messing with the Default Engine,it was easier to make the Plugin Control the States that can change the HitRate of a Unit.

(the Plugin adds or removes the States whenever its needed)

=> Like all of my Plugins its Free to use and Free to Edit!
if you make a Valid Upgrade thats makes it better pls let me know ,perhaps i might want to add such changes if they are good
=> if AnyOne has Questions or needs Help with this Plugin pls let me Know!
Credits :
( I Missed to do this in Most of my Plugins but None of my Plugins would exist without the SRPG Core or DrQs plugins)
SRPG Core & 神鏡学斗 (also RyanBram for making the SRPG Free to use possible), Doktor_Q and his Plugins where i often learn a lot of things when im Stuck, and Miss_Misery for bringing up the Idea , ..
 
Last edited:

lyonft

Villager
Member
Joined
Oct 15, 2015
Messages
6
Reaction score
1
First Language
Spanish
Primarily Uses
RMMV
Greetings,

AgiAttackPlus is still not working? Or it was rejected? I need some news about it. If isn't in plan to add it to the plugin, I'll look for an alternative. Otherwise, If is working let me know. thx.
 

NatePlays

Veteran
Veteran
Joined
Dec 12, 2018
Messages
53
Reaction score
16
First Language
English
Primarily Uses
RMMV
Greetings,

AgiAttackPlus is still not working? Or it was rejected? I need some news about it. If isn't in plan to add it to the plugin, I'll look for an alternative. Otherwise, If is working let me know. thx.
I'm using SRPG_Core version 1.30, where AgiAttackPlus is implemented inside the core plugin itself, and it is working fine. Are you using an older version with AAP as a standalone?
 

lyonft

Villager
Member
Joined
Oct 15, 2015
Messages
6
Reaction score
1
First Language
Spanish
Primarily Uses
RMMV
Maybe I do... Well I get that... I hope that don't screw my game progress. Thanks!!
 

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
Maybe I do... Well I get that... I hope that don't screw my game progress. Thanks!!
There are 2 TutorialDemo Versions in my signature Spoiler..
the "Extension Demo" uses the Newest Core with Agi Att+(bugfree) and updated Plugin Manager for those who want to use the newest Core and need Compatiblety infos about the other SRPG Plugins.
(the newest Core is Version 1.32 and like 1.30 it has also the SRPG_MapBattle.js & SRPG_UncounterableAttack.js included,..)
 
Last edited:

NatePlays

Veteran
Veteran
Joined
Dec 12, 2018
Messages
53
Reaction score
16
First Language
English
Primarily Uses
RMMV
I know you can use tags to make a skill not able to counterattack, but is there a way to set a skill to not be countered? As in, the enemy can't attack back, maybe because it is an AoE attack, or if it's just too fast of an attack, or because the user doesn't let any openings for the opponent.
 

Dopan

Veteran
Veteran
Joined
Mar 27, 2020
Messages
860
Reaction score
465
First Language
German
Primarily Uses
RMMV
I know you can use tags to make a skill not able to counterattack, but is there a way to set a skill to not be countered? As in, the enemy can't attack back, maybe because it is an AoE attack, or if it's just too fast of an attack, or because the user doesn't let any openings for the opponent.
as far as i understand it from learning from SRPG_MapBattle.js ..
I think every Skill will provoke a counter if there is no noteTag.
if you use the plugin Q_StatCounter SRPG_StatBasedCounter.js,that only happens depending on the counter Stat of each Unit. Q_StatCounter was the older version of that Plugin
( in such case you could try to find ways to manipulate the CounterStat from the Unit,probably with using States similar like i did it to manipulate the HitRateStat on the Plugin SRPG_RangeDMG )

AOEs from DrQs AOE Plugin are basicly just one attack that repeats it self on any Unit in the AOE Shape.Without triggering Custom exeCution with every Hit . Thats because of "PayCost False".
( not like the Passive AOE which is still experimental from my SRPG_Aura.js Plugin where all units get Hit at the same time.. and will probably provoke no Counter.. but Passive AOEs are meand to be added to other Skills with Common Events)
->and those Skills would trigger the counter,..atleast on the main target of that skill.

->however thats why its highly recomended to make (DrQs-)AOEs "uncounterable" with the SkillNotetag "<srpgUncounterable>".
(because it would trigger a counter with each hit)

Edit @ ALL

I just recognized, that both Tutorial-Demos using the old Q_StatCounter.js instead of SRPG_StatBasedCounter.js..
( SRPG_StatBasedCounter.js
can be found on DrQs Github)
-> i wil change that ASAP and Update The download Links.
---

-> @ NatePlays .. also i think that Studying the Plugin SRPG_StatBasedCounter.js could help to find more ways (not just using states) to manipulate the Counter Stat.
(perhaps i could even understand how to change the Hitrate without States if it works the same way..)
=> also looking at the Code of "SRPG_UncounterableAttack" ,could also help to understand how Counters can be avoided..with JS Code,..
(That Plugin is used with the old Core in the "Updated Demo")
 
Last edited:

Latest Threads

Latest Posts

Latest Profile Posts

I just did some math and... apparently what seemed to be a little fun gimmick turned out to be an 80+ actors project :kaoswt2:
Yay! the original character contest 3 pack is here!
Both MV and MZ looks very good, congratulation for both RMW and Tkool participant!
I definitely can add these characters to use for my game project.

Steam link
The worst part of game development has to be marketing. Ugh...
May be starting a new job in a month or so. The thought is both exciting and terrifying.
Not like a rollercoaster though. Rollercoasters are just terrifying.
"Merchants don't sell you a product. They sell you something RIGHT NOW. That's all they're selling, the product of having what you want RIGHT NOW and not having to wait for it."

Forum statistics

Threads
112,476
Messages
1,068,550
Members
146,143
Latest member
marquez19marissa
Top