- Joined
- Aug 14, 2012
- Messages
- 311
- Reaction score
- 246
- First Language
- English
- Primarily Uses
- RMMZ
JABS - J's Action Battle System
J / JE / Jragyn
v3.0.0
J / JE / Jragyn
v3.0.0
Introduction
Using this engine will enable you, the RM dev, to create a game where battles take place in real-time on the map between the player (with their allies if they wish) and the enemy. Interactions between enemies are by-design expected to be fast paced, no more than 5-10 seconds at most, allowing for development of zelda-like games from the SNES era.
This was largely inspired by Blizzard's ABS (BlizzABS / BABS, for XP) and Moghunter's ABS (XAS / Chrono Engine, for XP+/MV).
Features
- JABS stands for J's Action Battle System. (Clever, huh?)
- Enemy battlers can be created via events w/ specific comments.
- Enemy battlers will follow their configured AI (that you decide with comments).
- Enemies can have default parameters to reduce the overhead for enemy creation.
- Ally battlers will follow their designated AI mode (changeable via menu and tags).
- Ally AI is a separate plugin and can be disabled if a solo game is desired.
- Ally AI can be toggled with switches and by enabling/disabling followers via event command.
- An aggro system that works for both enemies and allies(if used).
- Aggro is based on damage dealt (all kinds), and is configurable.
- Tags are used on skills to allow for creation of things like aggro-generating or reduction.
- Tags are used on states to enable aggro multipliers (positive or negative) or aggro locks.
- Crude/basic 8-directional movement (doesn't support 8-dir character sheets though).
- Crude/basic animation support.
- Animation as in, changing of the character sheet to something else for a short duration to give the illusion of animation.
- I am no sprite artist and opted against commissioning folks for assets just for testing this functionality, so it may be kinda glitchy. When I get my hands on the type of assets I'm looking for, I will revisit this.
- This also comes with a few extra plugins that one may expect in an ABS, but are by no means required (just useful):
- A simple HUD.
- The HUD was largely uncustomizable by design. However, I did open up plugin parameters to move the whole thing around, and hide everything but the states (which are custom-managed by JABS) so you could use this HUD alongside another and still get full visibility into all the data points you would want or need.
- A simple text log for tracking actions that happen.
- A simple action key setup to display what skills are equipped.
- It is important to note that the Ally AI is actually a separate plugin. It can be disabled or toggled as needed.
- A simple HUD.
- Designed to work in tandem with any of my other plugins.
Screenshots
How to Use
Due to the nature of new battle systems, it would be best to download the demo which showcases some of the base features.
Additionally, I have a public (unlisted) wiki in the works that has things like a notetag glossary, important notes, how to do things related to JABS, etc.
In summary, there are lots of note tags on events, lots of additions to things in the database, a new required map, and voila!
Fortunately, you can just use the demo as a base and build from there.
Additionally, this engine was built with using a controller in mind. Though the keyboard does work, I'd strongly recommend using a controller to play any game created using this engine. A variety of controllers I'm sure will work, though I used this controller for development. Peek at the links at the bottom for a reference to all inputs for this engine.
Plugin Commands / Script Calls

From top to bottom (in plugin command screenshot):
- Enable JABS = turns on the ABS.
- Disable JABS = turns off the ABS (most base code I've tweaked will revert to normal while JABS is turned off).
- Force-assign a JABS skill = manually assigns a skill to one of the L1/R1 (3-0) slots, and locks that slot.
- Unlock a single JABS skill slot = unlocks a slot from being force-assigned, allowing the player to reassign skills to the skill slot.
- Unlock all JABS skill slots = unlocks all slots (for those who force-assigned multiple slots).
- Cycle to next leader = party cycles to the next member of the party (if they are alive).
- Disable Party Rotation = prevents the player from being able to rotate the party with the party cycle button. This does not prevent the player from changing the party formation or anything like that, though.
- Enable Party Rotation = re-enables the player's ability to party cycle (if disabled from above).
- Refresh JABS Menu = refreshes the JABS quick menu. This is probably only useful for developers who are manipulating the items in the menu for one reason or another (like adding/removing commands to/from it).
Demo
A demo showcasing the primary functionalities can be found at the download link below.
Download
- JABS Demo (in the form of "chef adventure")
- JABS Documentation (a lengthy work-in-progress)
I do need to place a disclaimer on that demo, as presently, the sample project used to showcase JABS does use profanity and crudeness, and would likely be rated M by the ESRB or whatever due to using profanity more than 0 times.
If you run the demo and there is no sound, hit F6 or disable theJ-SystemUtilities
plugin.
Final Note
I deliberately left all code open for the public to view and edit as they see fit (please be kind and give credit where credit is due!). If you're savvy enough to tweak the code, I'd wager that you can also probably submit a pull request against my github repo if you want to contribute! If you do and your pull request is merged in, I'll add your name to the credits below! Hurray for open-source!
If you have questions about the code, I'd be happy to explain most anything you'd see in the J-ABS.js file (or any of my plugins).
Thank you, and happy RM-ing!
Before releasing to the public, this project has undergone many transformations through its iterations. Those with sharper eyes may recognize these assets! This project initially started as many do: I downloaded VisuStella and co.'s sample starter project and got to work. As a result, there are a few artifacts I didn't think twice about, most namely the tilesets and some of the sprites.
- The tilesets and some characters/faces are not mine, they were from VisuStella and co., so... thank you for making even other devs lives like my own easier to just pick up and get started doing actual content creation! Additionally, there are various other plugins within the sample project linked above that don't belong to me and weren't written by me. See their respective plugin help sections for additional details on credits etc.
- I believe it was Avy's work that created the icons in the iconset. It is a bit patchwork-ey because I wanted more things, but still, credit is due where credit is due. Additionally, it was Frankenstein'd with a huge number of other icons I acquired that probably aren't friendly about redistribution, so stay honest and don't use them!
- The characters/faces that are named with the pattern: "chara_*" are just characters I made using the built-in character generator. You are free to use them if you want, but know that with a little bit of time you could probably make your own! (and a bit of paint.net efforts)
- Moghunter and Blizzard provided inspiration and indirect guidance via their patterns in-code. When I was a lost lamb, unsure how to tackle a particular problem, their code showed me a means to do it myself. Though there isn't really any direct copy-paste (obviously due to engine differences and stuff), there is surely a distinct familiarity in-pattern on how my architecture was for JABS was shaped. Thank you, folks.
- My lovely lady who has had to tolerate theweeks if not months years of time dedicated to writing and refining this engine for the public to use (and myself!). She has had to listen to me rant and rave about why the sprites aren't doing what I tell them, but I don't actually think she knows what a sprite is, but she listened anyway <3. She deserves credit, too.
- The tilesets and some characters/faces are not mine, they were from VisuStella and co., so... thank you for making even other devs lives like my own easier to just pick up and get started doing actual content creation! Additionally, there are various other plugins within the sample project linked above that don't belong to me and weren't written by me. See their respective plugin help sections for additional details on credits etc.
- I believe it was Avy's work that created the icons in the iconset. It is a bit patchwork-ey because I wanted more things, but still, credit is due where credit is due. Additionally, it was Frankenstein'd with a huge number of other icons I acquired that probably aren't friendly about redistribution, so stay honest and don't use them!
- The characters/faces that are named with the pattern: "chara_*" are just characters I made using the built-in character generator. You are free to use them if you want, but know that with a little bit of time you could probably make your own! (and a bit of paint.net efforts)
- Moghunter and Blizzard provided inspiration and indirect guidance via their patterns in-code. When I was a lost lamb, unsure how to tackle a particular problem, their code showed me a means to do it myself. Though there isn't really any direct copy-paste (obviously due to engine differences and stuff), there is surely a distinct familiarity in-pattern on how my architecture was for JABS was shaped. Thank you, folks.
- My lovely lady who has had to tolerate the
FAQs
Any developer would be flattered to know that there are people who want to utilize their code for something that will reach the masses, me among them! If you decide to use JABS (or any of my plugins following the "J-*" naming pattern) in a commercial project, do let me know! We can discuss the finer details of what that all entails.
The project that contains JABS doubles as my test bed for all plugins I make. Some of them are simple (like J-Hud), while others are more complex (like J-JAFTING). I encourage you reach out to me to discuss them if you can't find anything about them anywhere as I just might've forgotten release them publicly, or I may have opted against it for other reasons.
If you encountered a bug/defect, post a screenshot of the console (if possible) along with as much detail as you can gather that you believe is related to the problem. I'm a professional developer by day, but definitely no QA! I'd be happy to fix any defects related to my code, or try my best to add compatibility to play nice with other plugins assuming their code is open as well (like f0mor's plugins, visustella plugins are a bit more difficult to deal with due to the code being obfuscated and you may need to have them reach out to me so we can talk about how to solve it).
Attachments
Last edited: