Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
Hi there
I have a TypeError Cannot read property 'key' of undefined. Here is the error as listed in dev console:

rmmz_managers.js:2032 TypeError: Cannot read property 'key' of undefined
at JABS_AllyAI.decideAction (J-ABS-AllyAI.js:1139)
at Function.JABS_AiManager.decideAllyAiPhase2Action (J-ABS-AllyAI.js:975)
at Function.JABS_AiManager.decideAiPhase2Action (J-ABS-AllyAI.js:953)
at Function.aiPhase2 (_jabsManagers.js:648)
at Function.executeAi (_jabsManagers.js:343)
at Function.handleBattlerAi (_jabsManagers.js:291)
at Array.forEach (<anonymous>)
at Function.manageAi (_jabsManagers.js:278)
at Function.update (_jabsManagers.js:242)
at Scene_Map.update (_jabsScenes.js:114)

Any ideas?
Based on the stack here, I'm guessing that perhaps somehow an unsupported AI mode was selected and leveraged? (or none at all) It is difficult to say. Was there anything else in the console?

Also, it does not appear that you have opted to update to the more recent version i mentioned above, as you still have some classes split out (the plugins that are prefixed with "_" were my efforts to split my code, but I have since done away with that pattern a couple of months ago). Understand when I say that I cannot (easily) go back and readily review the code to really troubleshoot much further than that. As you understand that I am constantly iterating and improving the codebase for stability, I would always encourage grabbing the latest to upgrade when possible.
 

Lord_Bluffkin

Veteran
Veteran
Joined
May 9, 2022
Messages
30
Reaction score
37
First Language
English
Primarily Uses
RMMZ
Based on the stack here, I'm guessing that perhaps somehow an unsupported AI mode was selected and leveraged? (or none at all) It is difficult to say. Was there anything else in the console?

Also, it does not appear that you have opted to update to the more recent version i mentioned above, as you still have some classes split out (the plugins that are prefixed with "_" were my efforts to split my code, but I have since done away with that pattern a couple of months ago). Understand when I say that I cannot (easily) go back and readily review the code to really troubleshoot much further than that. As you understand that I am constantly iterating and improving the codebase for stability, I would always encourage grabbing the latest to upgrade when possible.
Thank you for getting back to me.

I've replaced the entire js directory with the js directory from V0.2.1 and am still getting the same error.

It's when a 2nd AI character is added to the group, ai set to "Support"
I also set it to "Variety" and got the same error.

Not sure what's going on.
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
I've replaced the entire js directory with the js directory from V0.2.1 and am still getting the same error.
Are you attempting to re-use an existing save file after updating the plugin stuff? As you might suspect, while I go about my refactoring and cleanup, sometimes I may adjust/rename properties which can cause issues with existing saves.

If the issue persists, I can only speculate what the possible issue could be without getting my hands on the problem project. If you can narrow down minimal reproduction steps, I may be able to further assist, though.

Such steps might look like:
Start new game >> add new party member >> change ally AI >> party cycle >> crash
 

Lord_Bluffkin

Veteran
Veteran
Joined
May 9, 2022
Messages
30
Reaction score
37
First Language
English
Primarily Uses
RMMZ
Are you attempting to re-use an existing save file after updating the plugin stuff? As you might suspect, while I go about my refactoring and cleanup, sometimes I may adjust/rename properties which can cause issues with existing saves.

If the issue persists, I can only speculate what the possible issue could be without getting my hands on the problem project. If you can narrow down minimal reproduction steps, I may be able to further assist, though.

Such steps might look like:
Start new game >> add new party member >> change ally AI >> party cycle >> crash
I appreciate your guidance.
I started a new game and played all the way through to where the issue occurs. It's still generating the same error, but with most of the same references:

rmmz_managers.js:2036 TypeError: Cannot read property 'key' of undefined
at JABS_AllyAI.decideAction (J-ABS-AllyAI.js:1139)
at Function.JABS_AiManager.decideAllyAiPhase2Action (J-ABS-AllyAI.js:975)
at Function.JABS_AiManager.decideAiPhase2Action (J-ABS-AllyAI.js:953)
at Function.aiPhase2 (_jabsManagers.js:648)
at Function.executeAi (_jabsManagers.js:343)
at Function.handleBattlerAi (_jabsManagers.js:291)
at Array.forEach (<anonymous>)
at Function.manageAi (_jabsManagers.js:278)
at Function.update (_jabsManagers.js:242)
at Scene_Map.update (_jabsScenes.js:114)

The only reference that changed was rmmz_managers.js, which refers to this code:

SceneManager.catchNormalError = function(e) {
Graphics.printError(e.name, e.message, e);
AudioManager.stopAll();
console.error(e.stack);
};

Specifically the console.error(e.stack); is highlighted.

I will try to package the game up and send you a Google Drive link. It may not be until early next week.

I always happens right after I use an attack. I can take hits without issue. I am going to try a new location with my 2 party members and see if it still happens.

Thank you for all the help,
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
I appreciate your guidance.
I started a new game and played all the way through to where the issue occurs. It's still generating the same error, but with most of the same references:

rmmz_managers.js:2036 TypeError: Cannot read property 'key' of undefined
at JABS_AllyAI.decideAction (J-ABS-AllyAI.js:1139)
at Function.JABS_AiManager.decideAllyAiPhase2Action (J-ABS-AllyAI.js:975)
at Function.JABS_AiManager.decideAiPhase2Action (J-ABS-AllyAI.js:953)
at Function.aiPhase2 (_jabsManagers.js:648)
at Function.executeAi (_jabsManagers.js:343)
at Function.handleBattlerAi (_jabsManagers.js:291)
at Array.forEach (<anonymous>)
at Function.manageAi (_jabsManagers.js:278)
at Function.update (_jabsManagers.js:242)
at Scene_Map.update (_jabsScenes.js:114)

The only reference that changed was rmmz_managers.js, which refers to this code:

SceneManager.catchNormalError = function(e) {
Graphics.printError(e.name, e.message, e);
AudioManager.stopAll();
console.error(e.stack);
};

Specifically the console.error(e.stack); is highlighted.

I will try to package the game up and send you a Google Drive link. It may not be until early next week.

I always happens right after I use an attack. I can take hits without issue. I am going to try a new location with my 2 party members and see if it still happens.

Thank you for all the help,
If you have replaced the entire /js folder with the latest stuff found over in my releases section of JABS, then I would not expect to see any references to "_jabsManagers.js", or really any plugins prefixed with "_", as that was refactored away.

Where are you retrieving "the latest JABS" from?
 

lordvalinar

Lord of the Damned
Veteran
Joined
Mar 31, 2013
Messages
337
Reaction score
202
First Language
English
Primarily Uses
RMMZ
Just curious - what time system are you using? I like the icon usage ^_^
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
Just curious - what time system are you using? I like the icon usage ^_^
The icons were freebie icons from caz (not sure if the same Caz as is on here).
You can find them here:

The time system itself is custom one I built myself.

If you opt to use it, I'd encourage messaging me directly to ask more about it since it is not formally released anywhere (though you're welcome to use it).
 

lordvalinar

Lord of the Damned
Veteran
Joined
Mar 31, 2013
Messages
337
Reaction score
202
First Language
English
Primarily Uses
RMMZ
The icons were freebie icons from caz (not sure if the same Caz as is on here).
You can find them here:

The time system itself is custom one I built myself.

If you opt to use it, I'd encourage messaging me directly to ask more about it since it is not formally released anywhere (though you're welcome to use it).
Ah no I got my own time system running (also with seasons and a basic hud - displays just text info though by default lol) that can also be linked with my Dynamic Weather system that is... not finished. I am slackin on all my plugins lately lol

I was just curious. I like the idea of using the icons in it though. *Thumbs up* Looks very nice.
 
Joined
Sep 26, 2022
Messages
11
Reaction score
2
First Language
English
Primarily Uses
RMMZ
JABS - J's Action Battle System
J / JE / Jragyn
v3.1.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.
  • Basic 8-directional movement (doesn't support 8-dir character sheets though).
    • The demo has DOES have an adapter plugin that enables Cyclone-Movement to grant pseudo pixel movement as well.
  • Crude 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 comes with a bundle of plugins that are designed as "extensions" of JABS:
  • AllyAi: enables allies/followers to fight alongside the player.
  • InputManager: a plugin that translates button/key input to JABS actions.
    • This is effectively a sample for how to build your own input mappers for JABS should you want to change your input layout or what have you.
  • Diagonals: enables 8-directions for actions (such as a fireball).

  • CycloneAdapter: a plugin that fixes some of the quirks with how Cyclone-Movement works in the context of JABS. This should be disabled if not using Cyclone-Movement.

  • Speed: enables the ability to set custom move speeds across the database and/or for events.
  • Timing: enables cooldown reduction and the like.
  • Charge: enables charging a skill one or many times to release and perform a different skill.
  • DangerIndicator: enables little icons that show up near enemy battlers that indicate how dangerous they are to the player based on magic formulas.



  • Log: a log window that reflects various things that have happened, such as gaining experience or being afflicted with a state.

This also comes with a slew of other plugins that were designed to work with JABS, but not necessarily as an extension, just compatible:
  • DropControl: enables greater control of drop count, drop rates, and so on.
  • SDP: enables custom stat growth by spending points (earned by defeating enemies) towards collections of stats called "panels".


  • LevelMaster: enables giving enemies levels, scales exp/gold rewards, scales damage, all based on level differences.
  • Escriptions: formerly known as "Event Descriptions"; enables icon/text descriptions to be available over events with event comment commands.
  • SkillExtend: enables skills to give other skills various features (mostly in the context of JABS parameters).
  • Proficiency: enables skills to have proficiency based on use, and to potentially give rewards such as learning new skills.
  • TextPops: enables popups on the map for text, such as damage popups.
  • Elementalistics: enables greater control over elements, including allowing absorbing elements, having multiple elements, etc.
  • CriticalFactors: enables greater control over critical hits, including critical damage reductions, multipliers, chances, etc.
  • NaturalGrowth: enables temporary or permanent stat growth from various things in the database, such as equipment or states.
  • Difficulty: a custom difficulty system that modifies enemy parameters and rewards based on the chosen difficulty.
  • MessageTextCodes: adds a few new text codes for use throughout RMMZ, such as weapon or armor references.
  • OneTimeItemBoost: enables permanent flat/percent stat growth on the first time an item was used.
  • PassiveSkills: enables learned skills to also passively grant the effects of one or more states.


Screenshots

How to Use
Due to the nature of new battle systems, it would be best to download the demo which showcases its features.

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.

Plugin Commands / Script Calls
View attachment 182125

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")
  • See the plugin help/description in RMMZ for details.









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 the weeks 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.

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).
Great work!
Perhaps I'm missing something, but is there a MZ project file for Chef's quest somewhere so one can look inside the demo?
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
Great work!
Perhaps I'm missing something, but is there a MZ project file for Chef's quest somewhere so one can look inside the demo?
if ya click the "JABS Demo" link in the original thread, it'll bring you to a screen that looks something like this:

1665068218804.png

As indicated by the thicc red underline i added, you can download the appropriate "Source code" option that applies to you, and within that should be the entire project as-is, including the project file.

If you are familiar with github, you can also clone down the "chapter-3" branch, as that is where I am currently doing my active development in.
 
Joined
Sep 26, 2022
Messages
11
Reaction score
2
First Language
English
Primarily Uses
RMMZ
if ya click the "JABS Demo" link in the original thread, it'll bring you to a screen that looks something like this:


As indicated by the thicc red underline i added, you can download the appropriate "Source code" option that applies to you, and within that should be the entire project as-is, including the project file.

If you are familiar with github, you can also clone down the "chapter-3" branch, as that is where I am currently doing my active development in.
Thanks very much for the reply!
 

Ancient_Eagle

Veteran
Veteran
Joined
Dec 28, 2020
Messages
57
Reaction score
16
First Language
Arabic
Primarily Uses
RMMV
Hello @Jragyn !

It's been while, how are you today?
I know I've been very busy in my college and project, but I forgot something to tell you:
1) When the enemy attack you, it should be change sprite like taking damage.
Is there way to add something when enemy or player change the sprite for taking damage?

2) Also, when the enemy find you, it play sound like signal. And that mark "!"
How I can remove it the mark and the sound? it really bothering me.
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
1) When the enemy attack you, it should be change sprite like taking damage.
Is there way to add something when enemy or player change the sprite for taking damage?
There is currently no "pose" functionality for taking damage. When I get around to actually rewriting/updating the "pose" functionality (what JABS calls what you're describing), I'll likely implement this and a few others that don't exist but probably could/should (like dashing).

2) Also, when the enemy find you, it play sound like signal. And that mark "!"
How I can remove it the mark and the sound? it really bothering me.
The sound effect associated with an enemy engaging with a target (when the "!" pops up) hasn't been a part of my codebase or any release for quite some time. I'm thinking you may want to consider updating to the latest.
 

rennui

Warper
Member
Joined
Oct 16, 2015
Messages
1
Reaction score
0
First Language
English
Primarily Uses
Hi, long-time lurker here. Thanks so much, J(eremy?), for your work. I'm noticing that there's a J-ABS 3.0 in the most recent chef-adventure, but there's also a J-ABS 3.1.1 in previous iterations, I think? The 3.1.1 version has an extensive guide in the plugin notes that's missing from 3.0, but I ran into some unique errors with 3.1.1 also. I guess I'm just looking for clarification as to what version is the most up to date and stable, or which do you recommend we use right now? (And does the guide in 3.1.1 also apply to 3.0?)

Thank you!!!

Edit: for added clarification after looking around some more, I'm finding that ca-ch3-v0.2.0 is the package with the documentation included and (I think?) a different setup for plugins (which gave me issues), whereas the more recent ca-ch3-v0.2.1 lacks the documentation but (for me at least) has a more stable setup of plugins.
 
Last edited:

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
Hi, long-time lurker here. Thanks so much, J(eremy?)
Aye, Jeremy is the name, but we are on the internet, and I'll respond to most things folks may address me by :)

I guess I'm just looking for clarification as to what version is the most up to date and stable, or which do you recommend we use right now? (And does the guide in 3.1.1 also apply to 3.0?)
It is a bit of a mess, and I apologize for that.

You might guess, but this (JABS) is 100% a side project for me, literally a side effect of wanting an ABS that met my needs, and noticing that RMMZ didn't really have much out there that wasn't paid or otherwise underdeveloped... so I just built it myself.

I built it for myself, for my own project: "CA" (also known as "Chef Adventure").

The releases you find on my github page are releases of said project, and not necessarily of the plugin itself. Rather than cutting new releases for just the plugin, I cut releases for the game project when I am ready for that.

The result of cutting releases for the game rather than the plugin is that it can lag behind where I'm actually at in the development process of JABS (since it is an ever-growing monster of a plugin).

As a result of the releases on my github being releases of my game project rather than releases of the plugin(s), it is an accurate statement to say the latest rendition of my plugin(s) won't be found there (though the release should work- at least in the context of the game project it is built within).

If you are familiar with github/source-control, I'd simply keep at eye out on where the latest commits are going. In the context of my game project I use as a demo for JABS, I'm currently working out of the chapter 3 branch. Due to this being my (long-running) feature branch, the stability of it can vary, but there you can find "the latest" (of which you'll find that JABS is actually v3.1.2, and many of my plugins will have seen updates).

I also should probably pull all documentation that isn't in the plugins.
The plugin documentation should be relatively comprehensive as far as tags and usage I think?

I have attempted to build out external documentation, but quite frankly I get bored and just give up.

If you have specific questions, feel free to peruse the thread- lots of others have asked and I've answered where applicable.
You can also ask me (here or directly).
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
Hello and good morning, folks!

I have observed that in the latest update to RMMZ, v1.6.1 (at least the latest one that Steam auto-downloaded for me), that there was a rollback to the nw.js code. The rollback was:
-Changed NW.js to the same version as v1.5.0 (v0.69.1 -> v0.48.4)
Which is a pretty massive step backwards as far as technology/optimizations is concerned, though I heard some folks were less fortunate, and this was required to even get their engine running at all.

The unfortunate downside to this, is that this will many if not all of my plugins broken, including JABS (and quite possibly other plugins from other developers).

RMMZ uses nw.js to work its magic. As nw.js's version goes up, they also update the version of node.js that is used. The version of node.js defined by nw.js determines effectively what version of javascript is available to the developer. According to the release notes, the devs rolled RMMZ's nw.js version back from v0.69.1 to v0.48.4. The result of this is that the node.js version used by RMMZ was changed from v18.9.0 to v14.9.0. I would welcome you to peruse all the updates to the language of javascript that were introduced in those four major version downgrades, so you can understand the limitations of what you can no longer do in-javascript. The result is that many of the features I learned about and wove into my plugins are now not-valid-syntax, resulting in numerous syntax errors across the board that I'm not willing to fix. If you are a bold/reckless and/or tech-savvy individual, you could manually update your local version of nw.js to rectify this, (which is what I did to continue my work), but obviously I will not be the one to answer to any technical woes you may encounter while following such a path.

Until the devs behind RMMZ return it to the latest nw.js version, they will remain broken, as I have no intention of adjusting my code to accommodate this... but I am sorry for any who are impacted by this.
 

Arthran

Veteran
Veteran
Joined
Jun 25, 2021
Messages
787
Reaction score
891
First Language
English
Primarily Uses
RMMZ
The result is that many of the features I learned about and wove into my plugins are now not-valid-syntax, resulting in numerous syntax errors across the board that I'm not willing to fix.
The only invalid feature that I noticed (in a very cursory glance) was your usage of Array.prototype.at(). But that can be polyfilled decently enough with something like this:
JavaScript:
if (![].at) {
    Array.prototype.at = function(index) {
        index = Math.trunc(index) || 0;
        if (index < 0)
            index += this.length;
        if (index < 0 || index >= this.length)
            return undefined;
        return this[index];
    };
}

I can't promise that there aren't any other issues that I failed to notice, but this at least enabled me to play through the introduction cave in your demo without any problems. Maybe you'd be willing to include that (or something similar) in J-Base.js for now?

If not, people can include the attached plugin in their project and make sure that it's above all of the "J" plugins in their plugin manager.
 

Attachments

  • Art_ArrayAtPolyfill.js
    616 bytes · Views: 2

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
The only invalid feature that I noticed (in a very cursory glance) was your usage of Array.prototype.at(). But that can be polyfilled decently enough with something like this:
JavaScript:
if (![].at) {
    Array.prototype.at = function(index) {
        index = Math.trunc(index) || 0;
        if (index < 0)
            index += this.length;
        if (index < 0 || index >= this.length)
            return undefined;
        return this[index];
    };
}

I can't promise that there aren't any other issues that I failed to notice, but this at least enabled me to play through the introduction cave in your demo without any problems. Maybe you'd be willing to include that (or something similar) in J-Base.js for now?

If not, people can include the attached plugin in their project and make sure that it's above all of the "J" plugins in their plugin manager.
convenient!
I thought I ran into a couple other things related more specifically to the depths of my other plugins (unrelated to JABS directly, but living in the same project), but I'll be sure to include this in there just in-case.

Thanks for that effort, @Arthran . <3
 

Ancient_Eagle

Veteran
Veteran
Joined
Dec 28, 2020
Messages
57
Reaction score
16
First Language
Arabic
Primarily Uses
RMMV
There's something bothering me when I try to close the game by choosing "Exit", when I select "Exit", it should be closed the game but it won't it! I don't if there's a problem with the plugin or another plugin.

Click it here to see video
 

Attachments

  • Screenshot (1).png
    Screenshot (1).png
    1.5 MB · Views: 5
  • Screenshot (2).png
    Screenshot (2).png
    1.1 MB · Views: 5

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
392
Reaction score
300
First Language
English
Primarily Uses
RMMZ
There's something bothering me when I try to close the game by choosing "Exit", when I select "Exit", it should be closed the game but it won't it! I don't if there's a problem with the plugin or another plugin.

Click it here to see video
1) in the video, you selected "To Title Screen", which as-expected, brought you to the title screen.
2) in RMMZ, there is no native "Exit Game" functionality from the Main Menu, you can only exit from the title screen.
3) i went ahead and downloaded casper's (CGMZ) exit-to-desktop plugin like you did, and it works as expected: it closed the game completely.
 

Latest Threads

Latest Posts

Latest Profile Posts

Sneak peek on what I'm working on (don't mind the tileset, it's placeholder)

1675253833587.png1675253693243.png1675253707818.png
Going to make my Anniebelle dolls into murderous cowards, when the lights go out they swarm, otherwise they flee and attack from a distance...
annieBelle.png

....just look at those beady little eyes. Terrifying! :kaoswt:

Stream for those who like to watch. :LZSwink:
So I sent my game demo to be entered into a game showcase. They asked if I had a website for my game. So I listed my game page here. I don't know if that will count or not.
mp8LcCp.png

Astarte, redefined.
Parenting pro tip. Don't neglect your child. Otherwise it's going to become like me. I can't count how many times I've heard that I'm just wasting away my potential. But I have no drive to pursue anything. I just want to live and then die.

Forum statistics

Threads
128,404
Messages
1,194,277
Members
168,919
Latest member
eluegl
Top