Anthony Xue

Ancient Architect
Veteran
Joined
May 9, 2016
Messages
129
Reaction score
135
First Language
German
Primarily Uses
Hi, I'm not sure if this has already been mentioned - are you considering an MZ version of the Row Formation plugin?


This would add considerable strategic depth to combat. Not sure how difficult it is to implement. Thanks!
 

Elgigante94

PROJECT 1
Veteran
Joined
May 4, 2020
Messages
44
Reaction score
30
First Language
French, Spanish
Primarily Uses
RMMZ
Hi Visustella team,

I just checked in the 5 actual waves but i can't find an option (It would be more in Core) to stop tileset animations (like water) or block some elements to reduce FPS on mobiles.
I'm really mobile-device oriented and for a normal size map, with the 5 waves plugins installed without parrallel events i can down until 28 FPS

Do you plan any script option or optimizations for this? I know a lot of makers chose RMMZ instead of other versions for there iOS/ Android support.

Un abrazo !
Sebastián
 

Knightmare

Knight of the Night
Veteran
Joined
Mar 14, 2012
Messages
1,263
Reaction score
326
First Language
English
Primarily Uses
RMMZ
With the battlecore I can see HPgauge but I can't see the amount of HP, it's normal
or there is a way to make it appear ?

For enemies or for players? If it's for enemies that feature hasn't been added yet. If for characters then could be a resolution issue.
 

LittlePIGGY

Just a piggy
Veteran
Joined
Aug 17, 2019
Messages
177
Reaction score
1,918
First Language
Russian
Primarily Uses
RMMZ
Saved. If you don't save it, Meyer warns you if you haven't noticed )

I mistakenly copied files over those that were already in the project. And edited, became unedited. The maker no longer understand them, because they were in fact different for him. It was necessary to manually put the files in the Manager again. However, all settings are lost.
 

poorrabbit

Veteran
Veteran
Joined
Mar 15, 2014
Messages
142
Reaction score
103
First Language
english
Primarily Uses
RMMZ
Right click on the visustella plugins in the list in the plugin manager and select refresh or update (can't remember which). You can select multiple plugins by shift clicking.

I'm guessing you updated the plugins, but missed that step.
 

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,857
Reaction score
1,005
First Language
Chinese
Primarily Uses
N/A
After reading some technical details about the database inheritance plugin, I have some technical concerns about its apparent implementations(besides the increased loading time as stated there):
1. I suppose the original JSON data files won't be changed during the pre-load phase, because it'd involve database entries diffing and separating original and inherited data in the inherited database entries, which would be way too complicated and convoluted to worth the cost of doing so

2. If the original JSON data files really don't change one bit as expected, this probably means the inherited data have to be stored in the memory, which can be quite sizeable when the database, and the average inheritance breadth(a database entry inherits from many other database entries) and depth(A1 inherits from A2, A2 inherits from A3, A3 inherits from A4, ..., An-1 inherits from An, and n is the depth) are large, and this memory consumption can be a problem in mobile platforms, like a low-end Android phone, where the "out of memory" risk can become pretty high

So, instead of database inheritance(inherited data are bound in the game starting time, just like OOP inheritance are on the compilation time), I'd suggest database composition(composite data uses its components upon having its composite data used, just like object compositions are on the run time):

1. For instance, let's say the damage formula of skill A is composed by that of skill B and C, instead of preloading the damage formula of skill A to be something like this:
JavaScript:
skillA.damage.formula = `(${skillB.damage.formula}) + (${skillC.damage.formula})`
How about changing the run time to be something like this?
JavaScript:
Game_Action.prototype.evalDamageFormula = function(target) {
    try {
        const item = this.item();
        const a = this.subject(); // eslint-disable-line no-unused-vars
        const b = target; // eslint-disable-line no-unused-vars
        const v = $gameVariables._data; // eslint-disable-line no-unused-vars
        const sign = [3, 4].includes(item.damage.type) ? -1 : 1;
        // Edited to use the composed instead of the original formula if there are really composed ones
        const value = Math.max(eval(item.composite.damage.formula.reduce((formula, skillId) => {
            return `(${formula}) + (${$dataSkills[skillId].damage.formula})`;
        }, item.damage.formula)), 0) * sign;
        //
        return isNaN(value) ? 0 : value;
    } catch (e) {
        return 0;
    }
};
Where item.composite.damage.formula stores the list of id of skills to be inherited for the damage formula, and in this case, the list should be the id of skill B and C.

2. On the time consumption side, compared to having to pre-load everything upon game start, which causes the significant loading time increase with large database, and inheritance breadth and depth, the composite item only has to compose its composite damage formula upon using it, and the extra time needed is nearly negligible per use, unless the formula's composed by those of hundreds of skills, in which pre-loading them all would be a disaster anyway
Of course, there will be times where some parts of a database entry will be accessed frequently, like being accessed per frame, and in this case, the time consumption can indeed become significant, leading to possible FPS drop in low-end mobile platforms, but for such parts, the inheritance approach can be used, meaning that:
i - Parts of database entries being accessed per frame should be inherited
ii. - Parts of database entries not being accessed this frequently should be composed
It's because, the inheritance approach converges all the extra time consumptions on the pre-load phase, causing tons of small numbers to become a large number, whereas the composition approach diverges all the extra time consumptions on each use case, causing it to be still a small number per use, even when the sum of all those extra time consumptions will be much, much larger than that of the inheritance approach.

3. On the memory consumption side, compared to having to store all the pre-loaded data from inheritance, the database composition approach only stores the notetag contents, and this part of the memory cost, which is a lot smaller in comparison, is the same as that of database inheritance, because those notetag contents have to be stored anyway
Nevertheless, I think that the database inheritance plugin will be useful at least for crafting though, like using alchemy to combine weapon A and weapon B into weapon C, causing the plugin users not having to make corresponding changes of the data of weapon C when those of weapon A and/or weapon B change :)
 
Last edited:

Yanfly

Veteran
Joined
Mar 15, 2012
Messages
1,781
Reaction score
2,710
If you feel like something is a bug, send a bug report! For Reporting Bugs:

Take a look at the Troubleshooting page on the wiki, follow the steps listed and if it still doesn't work, please report your problem through the link in Step 2.8 with as much detail as possible. Please follow this as we might miss any bug reports in this topic.

This thread isn't meant to be a bug report drop off area. Thank you!

---

Regarding updates, please follow the instructions written on this page carefully!

---

After reading some technical details about the database inheritance plugin, I have some technical concerns about its apparent implementations(besides the increased loading time as stated there):
1. I suppose the original JSON data files won't be changed during the pre-load phase, because it'd involve database entries diffing and separating original and inherited data in the inherited database entries, which would be way too complicated and convoluted to worth the cost of doing so

2. If the original JSON data files really don't change one bit as expected, this probably means the inherited data have to be stored in the memory, which can be quite sizeable when the database, and the average inheritance breadth(a database entry inherits from many other database entries) and depth(A1 inherits from A2, A2 inherits from A3, A3 inherits from A4, ..., An-1 inherits from An, and n is the depth) are large, and this memory consumption can be a problem in mobile platforms, like a low-end Android phone, where the "out of memory" risk can become pretty high

So, instead of database inheritance(inherited data are bound in the game starting time, just like OOP inheritance are on the compilation time), I'd suggest database composition(composite data uses its components upon having its composite data used, just like object compositions are on the run time):

1. For instance, let's say the damage formula of skill A is composed by that of skill B and C, instead of preloading the damage formula of skill A to be something like this:
JavaScript:
skillA.damage.formula = `(${skillB.damage.formula}) + (${skillC.damage.formula})`
How about changing the run time to be something like this?
JavaScript:
Game_Action.prototype.evalDamageFormula = function(target) {
    try {
        const item = this.item();
        const a = this.subject(); // eslint-disable-line no-unused-vars
        const b = target; // eslint-disable-line no-unused-vars
        const v = $gameVariables._data; // eslint-disable-line no-unused-vars
        const sign = [3, 4].includes(item.damage.type) ? -1 : 1;
        // Edited to use the composed instead of the original formula if there are really composed ones
        const value = Math.max(eval(item.composite.damage.formula.reduce((formula, skillId) => {
            return `(${formula}) + (${$dataSkills[skillId].damage.formula})`;
        }, item.damage.formula)), 0) * sign;
        //
        return isNaN(value) ? 0 : value;
    } catch (e) {
        return 0;
    }
};
Where item.composite.damage.formula stores the list of id of skills to be inherited for the damage formula, and in this case, the list should be the id of skill B and C.

2. On the time consumption side, compared to having to pre-load everything upon game start, which causes the significant loading time increase with large database, and inheritance breadth and depth, the composite item only has to compose its composite damage formula upon using it, and the extra time needed is nearly negligible per use, unless the formula's composed by those of hundreds of skills, in which pre-loading them all would be a disaster anyway
Of course, there will be times where some parts of a database entry will be accessed frequently, like being accessed per frame, and in this case, the time consumption can indeed become significant, leading to possible FPS drop in low-end mobile platforms, but for such parts, the inheritance approach can be used, meaning that:
i - Parts of database entries being accessed per frame should be inherited
ii. - Parts of database entries not being accessed this frequently should be composed
It's because, the inheritance approach converges all the extra time consumptions on the pre-load phase, causing tons of small numbers to become a large number, whereas the composition approach diverges all the extra time consumptions on each use case, causing it to be still a small number per use, even when the sum of all those extra time consumptions will be much, much larger than that of the inheritance approach.

3. On the memory consumption side, compared to having to store all the pre-loaded data from inheritance, the database composition approach only stores the notetag contents, and this part of the memory cost, which is a lot smaller in comparison, is the same as that of database inheritance, because those notetag contents have to be stored anyway
Nevertheless, I think that the database inheritance plugin will be useful at least for crafting though, like using alchemy to combine weapon A and weapon B into weapon C, causing the plugin users not having to make corresponding changes of the data of weapon C when those of weapon A and/or weapon B change :)

We've already ran stress tests regarding this and none of your concerns are things to be worried about. However, in the event that a user does manage to somehow consume more memory with a string than an entire game, that's going to be on the responsibility of the game dev. VisuStella is not responsible for unintended usage as per article 5 of the Terms of Use.
 
Last edited by a moderator:

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
6,114
Reaction score
5,879
First Language
English
Primarily Uses
RMVXA
@Yanfly Please do not advertise, announce, or release paid plugins on the forums - anything that's discussed here must be free to download (at least for noncommercial use). I appreciate the good work you and the team are doing, including on the paid stuff, but the rules are pretty clear that Plugin Releases is strictly for plugins that are free to download.
I've removed the announcement from your most recent post; I'll let the older announcements remain since removing them would break the flow of the thread for anyone reading.

Reminder to everyone here that discussion in this thread should be for the free VS plugins only. Thanks!
 

Yanfly

Veteran
Joined
Mar 15, 2012
Messages
1,781
Reaction score
2,710
@Yanfly Please do not advertise, announce, or release paid plugins on the forums - anything that's discussed here must be free to download (at least for noncommercial use). I appreciate the good work you and the team are doing, including on the paid stuff, but the rules are pretty clear that Plugin Releases is strictly for plugins that are free to download.
I've removed the announcement from your most recent post; I'll let the older announcements remain since removing them would break the flow of the thread for anyone reading.

Reminder to everyone here that discussion in this thread should be for the free VS plugins only. Thanks!

No problem! My apologies for that.

---

The usual weekend updates are now made.

We are on update batch #14.

You can find the full changelog here and here.

For instructions on how to update the plugins, please follow the steps found here.
 

wrigty12

Just a QAer playing with Javascript
Veteran
Joined
Jan 11, 2014
Messages
659
Reaction score
191
First Language
English
Primarily Uses
RMMZ
In response to Wavelength's post, should a new thread be created somewhere that allows for discussion on the paid waves? I'd still like a place to submit enhancement suggestions on those plugins, or just chat about them in general if the need arises.
 

TheTrevisan

Veteran
Veteran
Joined
Nov 16, 2018
Messages
35
Reaction score
21
First Language
Portuguese
Primarily Uses
RMMZ
@Yanfly


I'm getting all the waves, and all are fantastic and extremely easy to use. One tip would be to add more customization to the battle HUD.

Maybe something customizable like MOG plugins for example.

Or at least, try to review the compatibility with these types of plugins. It would be a great facilitator for everyone.

Thanks!
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
16,700
Reaction score
9,250
First Language
English
Primarily Uses
RMMV
In response to Wavelength's post, should a new thread be created somewhere that allows for discussion on the paid waves? I'd still like a place to submit enhancement suggestions on those plugins, or just chat about them in general if the need arises.

No. Our policy right now is that paid assets - including plugins - are not allowed to be promoted here unless they are sold in the official store. This is because assets sold outside of the store here are considered in conflict with the products sold officially. (This is a business website after all.)

If you feel the need to discuss suggestions or such, I'd seek out VisuStella's official discussion whether that be a Discord channel or what. I don't know what that is as I am not a part of VS, I would ask someone who is or see if their website says.
 

Elgigante94

PROJECT 1
Veteran
Joined
May 4, 2020
Messages
44
Reaction score
30
First Language
French, Spanish
Primarily Uses
RMMZ
Hi Visustella team,

A comment.
I'm using all your scripts but there is a serious problem with the FPS rate when i enable the VisuMZ_0_CoreEngine.
When i disable it my FPS rate is 60 for a normal map 30x20 with no parrallel events (just a moghunter aditional script for fog). But when i enable the script, and walk on the map using the mouse to emulate a mobile device, the FPS rate is falling of more 30% :

1606002991661.png


1606002959464.png
When I disable the VisuMZ_0_CoreEngine script, the FPS rate go back to 60/61 FPS.

Any solution to fix this problem?
Best,

Sebastian.
 

Yanfly

Veteran
Joined
Mar 15, 2012
Messages
1,781
Reaction score
2,710
I'm unable to replicate the FPS drop at all. The Core Engine does next to nothing regarding the map scene so I have no idea why there's even any FPS drops at all.

I'm going to ask you to follow the troubleshooting steps here: http://www.yanfly.moe/wiki/Troubleshooting_Plugins_RPG_Maker_MZ

Do try to replicate the problem in an EMPTY project first. However, do keep in mind we do not offer support for plugins outside of the VisuStella MZ library. This includes Mog Hunter's.

5. VisuStella is not responsible for problems found in your game due to unintended usage, incompatibility problems with plugins outside of the VisuStella MZ library, plugin versions that aren't up to date, nor responsible for the proper working of compatibility patches made by any third parties. VisuStella is not responsible for errors caused by any user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow JavaScript code.
 
Last edited:

LittlePIGGY

Just a piggy
Veteran
Joined
Aug 17, 2019
Messages
177
Reaction score
1,918
First Language
Russian
Primarily Uses
RMMZ
bandicam 2020-11-22 20-12-38-926.png

Is it supposed to work like this? Without scrolling, without a visible possibility to split into 2 columns, so that there will be no emptiness?
 

Elgigante94

PROJECT 1
Veteran
Joined
May 4, 2020
Messages
44
Reaction score
30
First Language
French, Spanish
Primarily Uses
RMMZ
Hi Yanfly,

Thanks for your last response !
I tried it again in an empty project and i have tested every script (I only add Yanfly/Visu scripts).

I got this FPS rate drop only when the event & move core was enabled. So, it wasn't a VisuMZ_0_CoreEngine problem. I disable it and the FPS rate is now OK on Android/ iOS devices !

Best,
Sebastian
 

Yanfly

Veteran
Joined
Mar 15, 2012
Messages
1,781
Reaction score
2,710
View attachment 168707

Is it supposed to work like this? Without scrolling, without a visible possibility to split into 2 columns, so that there will be no emptiness?

There is no scrolling option. Either you have to change the plugin parameters to adjust for the font size or change your screen to have a larger resolution.

Hi Yanfly,

Thanks for your last response !
I tried it again in an empty project and i have tested every script (I only add Yanfly/Visu scripts).

I got this FPS rate drop only when the event & move core was enabled. So, it wasn't a VisuMZ_0_CoreEngine problem. I disable it and the FPS rate is now OK on Android/ iOS devices !

Best,
Sebastian

Good to know! Unfortunately, I'm still unable to replicate the FPS drop. However, there's been an optimization update scheduled for the Events and Movement Core plugin for next update batch. Maybe that will fix it.
 

LittlePIGGY

Just a piggy
Veteran
Joined
Aug 17, 2019
Messages
177
Reaction score
1,918
First Language
Russian
Primarily Uses
RMMZ
Maybe you just add the ability to scroll? Please make them as user-friendly as possible.
You release a lot of paid content. Release a plugin that adds visual scrolling everywhere
In the previous version of the maker, this function was implemented better and more conveniently. It did not require developers to force the player to read ultra-small font.
 
Last edited:

Latest Threads

Latest Posts

Latest Profile Posts

I've been working on plugins to make it easier to incorporate Persona 3's Once More batsys into MV games. One makes it so you can have states automatically applied to the target and/or user when their hit crits or targets a weakness... I could use testers for it, though. Maybe I'll make a thread in the JS Plugins In Development board about it?
Whenever I'm feeling down I like to watch Bardic Inspiration by Deerstalker Pictures
on youtube. Because 'my mockery is Vicious.' It's funny and catchy like the flu.
Knew this hurricane was coming for me, because it got my name on it! See you humans and non-humans in a few days if not a few weeks. Now go work on yo games!
ScreenShot_9_27_2022_6_54_39.png
New enemy finished today... Century Owl.
bandicam 2022-09-27 22-40-47-956.png

Forum statistics

Threads
125,604
Messages
1,172,244
Members
164,717
Latest member
Vorosh-CR
Top