Drakkonis

Veteran
Veteran
Joined
Mar 5, 2021
Messages
108
Reaction score
55
First Language
English
Primarily Uses
RMMZ
Introduction

Limit Breaker is my first plugin ever, and was originally a small thing to help me learn Javascript and MZ's functions as well as how to actually MAKE a plugin. While I have a bit of a programming background, I'd never dabbled in Javascript before. It was originally supposed to break the TP limit, but as I studied more of the base scripts I found more and more hard-coded stuff that a developer might wish to be able to customize.

What It Does

Simply put, it takes various limits and functions that are hard-coded into the base scripts and allows a developer to customize them. From changing the TP limit, to having a custom number of save slots, to even changing how reviving works!

Why I Made It

While working on my own project, I wanted something done that didn't seem possible in the base game, and I couldn't find any plugin that would easily meet my needs. So I decided I should make that plugin myself. This plugin has nothing to do with that, but since I knew next to nothing about making my own plugin, something like this was a logical place to start. And the more I worked on it, the more interested I got in seeing just what I could change.

Also, I know that the limits in the base code tend to be bypassed with various plugins that deal with related stuff, but they ONLY deal with the related limits. This one is intended to not only bypass every limit I can find, but also let a developer set their own limits, in case someone wants to limit, say, max gold without eventing or scripting. This could also be very useful to someone who doesn't have or want to use a bunch of plugins to do this, or the plugins they're using don't allow for easy customization, or maybe just wants to see how stuff not in the default editor can be changed.

A noob like me would have loved a plugin like this, learning what is unchangeable by default through trial and error can get annoying when you have interesting ideas and the editor basically tells you no every time. This plugin will basically serve as an extension to the editor, allowing even a new project developer to change things to their liking without a lot of fuss.


How To Use It

Right now, everything this plugin does is managed through the plugin parameters, and their effects are global. This means that your settings regarding TP will affect ALL battlers the same way, actor and enemy alike. As I learn more, I want to evolve this plugin to allow individualizing these settings.

Work In Progress

Obviously, this is not the final version of this plugin. There is no notetag support, mainly because I haven't learned how to use them. I've seen how some other plugins do it, but I don't have the slightest clue EXACTLY what's going on. But once I learn that, I expect to have support for tagging objects to specify values that don't match the global ones. An example would be having a guest party member that has stats way beyond anything your main party members can actually achieve.

I also don't think I've found every hard-coded option that can feasibly be manipulated. I've searched for some of the obvious ones, and found a few others while browsing, but I've not studied the core scripts in detail. That, and I'm only one guy, with one perspective. There are probably quite a few I'm missing because I don't necessarily SEE them as usefully customizable, but someone else may have other ideas.

One notable exception to the plugin is that there is no option for max level. Since the stats are stored by level in the database, and the editor won't allow you to go over 99, simply changing the max level broke the game. In order to have a meaningful max level option, I would need to implement stat curves, and that's a different issue altogether. I know WHAT I need to do on that front, the HOW is out of my realm of experience without just throwing parameters in for each stat curve and letting the developer put in their own formulas, but then this starts veering away from noob-friendly territory. So I've had to leave it out, for now at least.

There are also some other settings that technically work, but have some issues. There's a long note in the plugin's help section regarding one about the battle group setting. It seems to be a scene-related issue, and I've only been studying the mechanics-related stuff so far. I'll probably get to it eventually, I want to make scene plugins a little later down the road.

Why I'm Putting It Out There Now

Simply put, this is my first plugin, my first fruits of learning Javascript and how to tinker with MZ's inner workings. On that front, I'd love feedback regarding style, efficiency, and usefulness. I have a lot to learn, but the hardest part is figuring out what it is that you don't know.

Also I wouldn't mind ideas for other limits and options to poke around with. My original plugin desire dealt with the loot system, and I'm already planning out a plugin for interacting with and customizing the default Time Progress battle system to make it more... usable. Not turning it into an ATB system, just wanting to make it a more viable system on its own. So I've already got ideas on that front, they just won't be in THIS plugin.


This plugin is free to use in any project, commercial or otherwise. Since it's something anyone with basic plugin experience could hammer out, credit isn't necessary. Though if you use this for a commercial project, I'd love to know. It would be awesome to know someone thought this was useful enough to put in a paid work.

Drak's Limit Breaker Plugin
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
747
Reaction score
407
First Language
English
Primarily Uses
RMMV
Good first effort. I have a few observations:
- Your default value for MinBuff says each actor can be debuffed -2 times. This doesn't make sense; either you have a typo in the value, or it is described incorrectly.

- I don't see the point of the RevType section. Good practice would be for the user to define this behavior inside of each skill and item that can revive from Knockdown; if something only removes the state, it should just remove the state.
 

Drakkonis

Veteran
Veteran
Joined
Mar 5, 2021
Messages
108
Reaction score
55
First Language
English
Primarily Uses
RMMZ
Good first effort. I have a few observations:
- Your default value for MinBuff says each actor can be debuffed -2 times. This doesn't make sense; either you have a typo in the value, or it is described incorrectly.

- I don't see the point of the RevType section. Good practice would be for the user to define this behavior inside of each skill and item that can revive from Knockdown; if something only removes the state, it should just remove the state.
For MinBuff, I set the default to exactly how it's stated in the base script rmmz_objects. I admit I haven't tested the buff aspect since the project I'm using wasn't set up to use buffs, at least not yet. But from what I see, it looks like buff counts are positive for buffs and negative for debuffs. However, I see how it could be confusing for someone who hasn't looked at the base code. I'll update that bit in the next version.

As for RevType, it affects the actor and party revive commands only, and all they do by default is check for death state, remove that state, and set hp to 1. I feel that some more options could be useful. The logic was that unless a dev has multiple means of reviving that function completely differently, this should suffice. The goal was simply to give the dev the tools if they wish to use them. Since I set all defaults to the base code values, if they don't do anything with it, each function should operate as the base code dictates. So they can set the values in the plugin and call it good, or leave it alone and customize their skills as they wish. I leave those choices to whomever uses the plugin, I just give them the options.

Thanks for the feedback! :)
 

Drakkonis

Veteran
Veteran
Joined
Mar 5, 2021
Messages
108
Reaction score
55
First Language
English
Primarily Uses
RMMZ
Good first effort. I have a few observations:
- Your default value for MinBuff says each actor can be debuffed -2 times. This doesn't make sense; either you have a typo in the value, or it is described incorrectly.

- I don't see the point of the RevType section. Good practice would be for the user to define this behavior inside of each skill and item that can revive from Knockdown; if something only removes the state, it should just remove the state.
Actually on double checking, since I set the type of MinBuff to number, it doesn't allow negative numbers anyway, so instead I have it as a positive value and when the parameter gets set in the code it inverts it so that the function works correctly.
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
747
Reaction score
407
First Language
English
Primarily Uses
RMMV
For MinBuff, I set the default to exactly how it's stated in the base script rmmz_objects. I admit I haven't tested the buff aspect since the project I'm using wasn't set up to use buffs, at least not yet. But from what I see, it looks like buff counts are positive for buffs and negative for debuffs.
Actually on double checking, since I set the type of MinBuff to number, it doesn't allow negative numbers anyway, so instead I have it as a positive value and when the parameter gets set in the code it inverts it so that the function works correctly.
Right - the way the buff/debuff system works is that if they're affecting the same stat they just counter each other. So it's not even technically the maximum number of debuffs they have, if they have similar buffs also - it's the maximum number of times a given stat can be decreased below its starting value by a debuff.

So code aside, it would make much more sense for a user to input how many times the stat can be decreased, then you reference the negative value of that.
As for RevType, it affects the actor and party revive commands only, and all they do by default is check for death state, remove that state, and set hp to 1. I feel that some more options could be useful. The logic was that unless a dev has multiple means of reviving that function completely differently, this should suffice.
You should clarify that in the parameter description, that it only applies to the event commands and not any spells/items used, which is the more common method of reviving - if you're aiming this at the beginner developer, they won't know the difference (unless removing the Knockout state ends up calling the same code, I haven't looked).
 

Drakkonis

Veteran
Veteran
Joined
Mar 5, 2021
Messages
108
Reaction score
55
First Language
English
Primarily Uses
RMMZ
Right - the way the buff/debuff system works is that if they're affecting the same stat they just counter each other. So it's not even technically the maximum number of debuffs they have, if they have similar buffs also - it's the maximum number of times a given stat can be decreased below its starting value by a debuff.

So code aside, it would make much more sense for a user to input how many times the stat can be decreased, then you reference the negative value of that.

You should clarify that in the parameter description, that it only applies to the event commands and not any spells/items used, which is the more common method of reviving - if you're aiming this at the beginner developer, they won't know the difference (unless removing the Knockout state ends up calling the same code, I haven't looked).
Yeah, I knew how the buff system worked, I didn't think about how lackluster my descriptions would be to someone who DIDN'T know. The help section isn't complete yet anyway, so when I finish it I'll be sure to add the explanation.

As for revive, the *.revive function does get called whenever the death state is removed by *.removeState. So whether a spell/item straight up revives or simply removes the knockout state, the revive function is still called. Even when the battler updates, if it detects that its HP is above 0, it removes the death state, triggering the revive function.
 
Last edited:

Drakkonis

Veteran
Veteran
Joined
Mar 5, 2021
Messages
108
Reaction score
55
First Language
English
Primarily Uses
RMMZ
Limit Breaker has been updated! Got a more helpful (read: lengthy) help section explaining the plugin parameters in possibly too much and too simplified detail, added a few more parameters, and basic notetag support for a few of them. Still working on adding more. I don't get much time to work on this so I'm updating now or it'd be another week before I got this out!

Still to go, so far:
Notetag support for all item and battler parameters
Plugin commands to allow dynamic modification of pretty much all parameters
Level cap breaking
Stat/EXP curve options (required for levels over 99 anyway)
Extending base functions to handle certain broken limits (level cap and battle group, primarily)
Anything other users come up with along these lines that doesn't necessitate its own plugin
Any compatibility issues that arise that turn out to be a mistake on my end. I AM still new to this.

This thing is quickly growing beyond my original idea as I think up new ways to give developers 100% control over customizing stuff that isn't in the editor. Minus a headache spanning 2 days at one point, this has been a blast to work on. I'm almost worried it might get big enough that a better option would be to split it into several smaller plugins just to make it a little more manageable.

Feedback is most definitely desired and appreciated! I also welcome suggestions for features and optimization! Thanks in advance!
 

Latest Threads

Latest Posts

Latest Profile Posts

Dragonfly3116 wrote on Redweaver's profile.
i need to ask do you mind sending me a link to tutorial town an legend of ancients Please My new Email is necroboy1973@gmail.com
I Am A Member On The Site Here As Well If Your Still teaching Let Me Know Thanks Joseph
Added store elements.
44JtdpE5n4jQMFkSi7pACW.png

2uqvqT3uCWxcXAhlyZokxg.png

The next step will be to start making props (including distillers).
I just saw one of SigmaSuccor's RPG Maker news videos, it mentioned one of my plugins. Now I kind of wish I'd made a demo project for it, having nothing in that segment but a scroll down the code feels a little underwhelming given what the plugin COULD do. Except I suck at making demo stuff, and my testing project isn't fit for that. :(
Ok, to prepare for the GMTK Game Jam, I'm trying to make a game with the theme "The Cat's out of the Bag" in about 48 hours. I'd make a forum post with a question, but I don't have the time!
Worked over a week on a new BGM, and I'm finally happy with it.

Here are some screenshots of the area it will be used in
EzLHppdVIAMY7DP


EzLHpqsVIAEZ7jt

Forum statistics

Threads
110,517
Messages
1,053,892
Members
143,609
Latest member
ryuokami
Top