The official VisuStella notetag help thread

Gurkengelee

Villager
Member
Joined
Jul 31, 2013
Messages
8
Reaction score
1
First Language
German
Primarily Uses
Heyho,

may I ask how I can recreate this from Yanflys Item Requirement Plugin into VisuStellas Item Accessibility Notetag :

Code:
Weapon Type: x
Weapon Type: x, x, x
- Requires the actor to have weapon type 'x' equipped. If multiple 'x' are
used, the actor can have any of the 'x' weapon types equipped. If the actor
does not have the matching weapon types, then the item is disabled and
cannot be used regardless of other conditions.

Not Weapon Type: x
Not Weapon Type: x, x, x
- Requires the actor to not have weapon type 'x' equipped. If multiple 'x'
are used, the actor cannot have any of the 'x' weapon types equipped. If the
actor does have the matching weapon types, then the item is disabled and
cannot be used regardless of other conditions.
Any help would be appreciated!
 

RK DracoRoy

Fire Emblem RPG Gamer
Veteran
Joined
Jun 29, 2017
Messages
238
Reaction score
60
First Language
English
Primarily Uses
RMMZ
Hello. Regarding optimization, I've noticed that when using the BattleCore plugin, the game's FPS drops drastically, from 60 FPS to around 40 FPS when in battle.

I am just testing the plugins, so I just created a new project, added the Core Engine and BattleCore Plugins, and just by doing that, it happens.

Just by disabling the Battle Core plugin, the battle FPS rises again to 60 FPS.

Am I doing something wrong?
For a while, I thought it was just MZ when it came to battle, but it was really Battle Core that's been doing that when it comes to battle testing.

Once you choose commands like Formation, Options, anything that fades the screen, the fps gets worse and doesn't go back to normal even after exiting that command mid-battle. I've play tested a map, 60 fps is stable and maintained but the battle fps is still bad, around 30-40 fps. I've tried out VisuStella's Sample Game Project and entered a battle, it's no better there. I'll assume it's more of a problem with the plugin.

Strange, that the fps reduction is barely a thing when I attempt playing a deployed game with Battle Core enabled.
 

DanielTsc

Villager
Member
Joined
Jul 20, 2020
Messages
10
Reaction score
6
First Language
English
Primarily Uses
RMMZ
For a while, I thought it was just MZ when it came to battle, but it was really Battle Core that's been doing that when it comes to battle testing.

Once you choose commands like Formation, Options, anything that fades the screen, the fps gets worse and doesn't go back to normal even after exiting that command mid-battle. I've play tested a map, 60 fps is stable and maintained but the battle fps is still bad, around 30-40 fps. I've tried out VisuStella's Sample Game Project and entered a battle, it's no better there. I'll assume it's more of a problem with the plugin.

Strange, that the fps reduction is barely a thing when I attempt playing a deployed game with Battle Core enabled.
So when the game is deployed, the FPS problem doesn't happen in battles? If that is the case, maybe it's slow because of some debugging feature enabled when testing (but I couldn't find what is it).

Anyway, I've noticed that if I force RPG Maker to use my Nvidia GPU, instead of the Integrated GPU, the FPS keeps normal on 60. But it is still an issue, since without the plugin, the problem doesn't happen even on weak GPUs.
 

DanielTsc

Villager
Member
Joined
Jul 20, 2020
Messages
10
Reaction score
6
First Language
English
Primarily Uses
RMMZ
Well I've deployed the game and the problem still happens. The FPS does not drop only if I use my NVidia GPU.

I don't think an RPG Maker Game should need that...

Well, we can only hope that Visustella fixes this issue. After using animated SV Enemy battlers, it is impossible to go back to RPG Maker vanilla =(
 

RK DracoRoy

Fire Emblem RPG Gamer
Veteran
Joined
Jun 29, 2017
Messages
238
Reaction score
60
First Language
English
Primarily Uses
RMMZ
Well I've deployed the game and the problem still happens. The FPS does not drop only if I use my NVidia GPU.

I don't think an RPG Maker Game should need that...

Well, we can only hope that Visustella fixes this issue. After using animated SV Enemy battlers, it is impossible to go back to RPG Maker vanilla =(
Ah. When I mentioned it wasn't a problem on deployed, I was using the NVidia GPU for the game.exe. I now tested it with the regular one now that you said that, it's really bad on the deployed one with the Battle Core.

This page may be a good idea (Step 2) if you want to report the problem to them: http://www.yanfly.moe/wiki/Troubleshooting_Plugins_RPG_Maker_MZ
 

DanielTsc

Villager
Member
Joined
Jul 20, 2020
Messages
10
Reaction score
6
First Language
English
Primarily Uses
RMMZ
Ok, I had sent an e-mail for them, but now I've filled the form above. Thanks.
 

Corygon

Storyteller
Member
Joined
Mar 20, 2019
Messages
9
Reaction score
3
First Language
English
Primarily Uses
RMMZ
Okay, my JS Draw Data for what I posted is:

Code:
// Declare Constants
const lineHeight = this.lineHeight();
const actor = this._actor;
const padding = this.itemPadding();
let width = this.innerWidth / 2;
const elements = this.getElementIDs();
let x = 0;
let y = 0;

// Draw Actor Graphic
this.drawActorGraphic(0, width);

// Draw Element Trait Sets
this.drawItemDarkRect(0, y, width, lineHeight, 2);
this.drawItemDarkRect(width, y, width, lineHeight, 2);
const labelFmt = '\\C[16]%1: \\C[0]%2';
const traitType1 = DataManager.traitSetType('Element');
const traitSet1 = actor.traitSet('Element');
this.drawTextEx(labelFmt.format(traitType1.Label, traitSet1.Display), padding, y, width - padding * 2);
const traitType2 = DataManager.traitSetType('SubElement');
const traitSet2 = actor.traitSet('SubElement');
this.drawTextEx(labelFmt.format(traitType2.Label, traitSet2.Display), width + padding, y, width - padding * 2);
y += lineHeight;
this.setDescriptionFontSizeToTraitSet();
const traitHeight = (this.innerHeight / Math.max(Window_StatusData.traitCol1.length, Window_StatusData.traitCol2.length)) - lineHeight;
this.drawItemDarkRect(0, y, width, traitHeight);
this.drawItemDarkRect(width, y, width, traitHeight);
this.drawTextEx(traitSet1.Description, padding, y, width - padding * 2);
this.drawTextEx(traitSet2.Description, width + padding, y, width - padding * 2);
this.resetDescriptionFontSize();
this.resetFontSettings();
y += traitHeight;
const topY = y;

// Draw Elemental Data
this.drawItemDarkRect(width * 0, y, width, lineHeight, 2);
this.drawItemDarkRect(width * 1, y, width, lineHeight, 2);
this.changeTextColor(ColorManager.systemColor());
this.drawText(TextManager.statusMenuDmgReceive, width * 0, y, width, 'center');
this.drawText(TextManager.statusMenuDmgDealt, width * 1, y, width, 'center');
y += lineHeight;
this.setDescriptionFontSizeToTraitSet();
const smallLineHeight = this.textSizeEx(' ').height;
for (const elementId of elements) {
    this.drawItemDarkRect(width * 0, y, width, smallLineHeight);
    this.drawItemDarkRect(width * 1, y, width, smallLineHeight);

    // Name
    const name = $dataSystem.elements[elementId];
    const column = Math.floor(elementId / 12);
    const elementX1 = width * (column === 0 ? 0.25 : 0.75) + padding;
    const elementX2 = width * (column === 0 ? 1.25 : 1.75) + padding;
    this.drawTextEx(name, elementX1, y, width/4);
    this.drawTextEx(name, elementX2, y, width/4);

    // Received Damage Rate
    this.resetFontSettings();
    const rate = actor.elementRate(elementId);
    const flippedRate = (rate - 1) * -1;
    this.changeTextColor(ColorManager.paramchangeTextColor(flippedRate));
    let rateText = '%1%'.format(Math.round(flippedRate * 100));
    if (actor.getAbsorbedElements().includes(elementId)) {
        this.changeTextColor(ColorManager.powerUpColor());
        rateText = TextManager.statusMenuDmgAbsorb.format(Math.round(rate * 100));
    } else if (rate > 1) {
        rateText = '%1'.format(rateText);
    } else if (rate <= 1) {
        rateText = '+%1'.format(rateText);
    }
    this.contents.drawText(rateText, width * 0, y, (width / 4 * (column === 0 ? 1 : 3)) - padding, smallLineHeight, 'right');

    // Dealt Damage Rate
    const dealtPlus = actor.getDealtElementPlus(elementId);
    const dealtRate = actor.getDealtElementRate(elementId);
    const dealtFlat = actor.getDealtElementFlat(elementId);
    const dealt = ((1 + dealtPlus) * dealtRate + dealtFlat) - 1;
    this.changeTextColor(ColorManager.paramchangeTextColor(dealt));
    let dealtText = '%1%'.format(dealt);
    if (dealt >= 0) dealtText = '+%1'.format(dealtText);
    this.contents.drawText(dealtText, width * 1, y, (width / 4 * (column === 0 ? 1 : 3)) - padding, smallLineHeight, 'right');

    y += smallLineHeight;

    if (elementId % 11 === 0) y = topY + lineHeight;
}
this.resetDescriptionFontSize();
this.resetFontSettings();
this.drawItemDarkRect(width * 0, y, width, this.innerHeight - y);
this.drawItemDarkRect(width * 1, y, width, this.innerHeight - y);
this.drawItemDarkRect(width * 2, y, width, this.innerHeight - y);
So I've tried this for my project, and while it seems to have divided the two columns into four, I only see the first five elements for some reason.
1601536230930.png
So, did I do something wrong, or...?
 

DanielTsc

Villager
Member
Joined
Jul 20, 2020
Messages
10
Reaction score
6
First Language
English
Primarily Uses
RMMZ
Ah. When I mentioned it wasn't a problem on deployed, I was using the NVidia GPU for the game.exe. I now tested it with the regular one now that you said that, it's really bad on the deployed one with the Battle Core.

This page may be a good idea (Step 2) if you want to report the problem to them: http://www.yanfly.moe/wiki/Troubleshooting_Plugins_RPG_Maker_MZ
I've sent a bug report, but they said they couldn't reproduce the FPS drop problem, even with my instructions.

I'm assuming they don't have a weaker hardware to simulate the issue, since with good GPUs it doesn't happen.

So, the conclusion is that we have to make a decision: make a simpler game without the plugin, that will probably run smoothly in any hardware or use the plugin in trade of FPS on machines without a dedicated GPU for gaming.

I honestly don't what is best. I guess what will dictate the best approach will be mobile. If the game runs smootlhy on mobile, then I guess we can accept the pc optimization problem. I have to test that.
 

RK DracoRoy

Fire Emblem RPG Gamer
Veteran
Joined
Jun 29, 2017
Messages
238
Reaction score
60
First Language
English
Primarily Uses
RMMZ
I've sent a bug report, but they said they couldn't reproduce the FPS drop problem, even with my instructions.

I'm assuming they don't have a weaker hardware to simulate the issue, since with good GPUs it doesn't happen.

So, the conclusion is that we have to make a decision: make a simpler game without the plugin, that will probably run smoothly in any hardware or use the plugin in trade of FPS on machines without a dedicated GPU for gaming.

I honestly don't what is best. I guess what will dictate the best approach will be mobile. If the game runs smootlhy on mobile, then I guess we can accept the pc optimization problem. I have to test that.
I see. Well, that's a shame then. If I'm wanting to send a game to some with a laptop and they don't have NVidia, it's going to be a problem having them play it with Battle Core and action sequences. And like the others, they need proper documentation on how to get this stuff deployed on mobile.

This alternative may not be a perfect solution but maybe try out this plugin and see how it goes on your end without the Nvidia GPU. On my end, at least decent but I'll take what I can get. Playtest and deploy it just to see. https://forums.rpgmakerweb.com/inde...-enemies-audio-options-efficiency-etc.125938/

By default, the effekseer animation fps is cut by half (30 fps) and the battle frames are 1 / 3 for performance. You can mess around with other options to suit you.
 

DanielTsc

Villager
Member
Joined
Jul 20, 2020
Messages
10
Reaction score
6
First Language
English
Primarily Uses
RMMZ
I see. Well, that's a shame then. If I'm wanting to send a game to some with a laptop and they don't have NVidia, it's going to be a problem having them play it with Battle Core and action sequences. And like the others, they need proper documentation on how to get this stuff deployed on mobile.

This alternative may not be a perfect solution but maybe try out this plugin and see how it goes on your end without the Nvidia GPU. On my end, at least decent but I'll take what I can get. Playtest and deploy it just to see. https://forums.rpgmakerweb.com/inde...-enemies-audio-options-efficiency-etc.125938/

By default, the effekseer animation fps is cut by half (30 fps) and the battle frames are 1 / 3 for performance. You can mess around with other options to suit you.
Using this plugin alongside visustella seems to have optimized it. The FPS is back again on 60. Thanks man!
 

RK DracoRoy

Fire Emblem RPG Gamer
Veteran
Joined
Jun 29, 2017
Messages
238
Reaction score
60
First Language
English
Primarily Uses
RMMZ
Using this plugin alongside visustella seems to have optimized it. The FPS is back again on 60. Thanks man!
Hey. Glad to be of help here! Now because I tried something out that may be of use for the sake of others playing your game, I thought I'd suggest this to you to make this optional on your game, if you got VisuMZ_1_OptionsCore. This is also explained in the MultiTweaks plugin, so I thank the author for that.

Under VisuMZ_1_OptionsCore, go in Option Categories -> General -> Options List then double click to make a new option.

All that has to be done is:

Name the symbol "optimGame" (without the quotes).
Name the "STR: Text" option whatever you'd like (e.g. Optimize Game, Optimize Battle, etc.)

That will make only the Optimize Game part from the MultiTweaks plugin optional. You'll notice the FPS change quicker in battle if you have Options as a Party Command enabled from Battle Core (under Party Command Window -> Add Options).

Also, under both "JS: Show / Hide" and "JS: Enable", change "return true" to "return window.ScSWinter". The option will be shown and enabled as long as the MultiTweaks plugin is installed.
 

Attachments

Last edited:

WilsonE7

Veteran
Veteran
Joined
Oct 12, 2019
Messages
38
Reaction score
14
First Language
English
Primarily Uses
RMMZ
Hello. I was remembering a Tips and Tricks for MV called Hestia Knife, where a weapon's strength can be made to vary with the wielder's base params so that it grows with the actor's level. That way, the player can use it throughout the game as his "signature weapon" or something. I noticed that the notetag <JS Parameters> seems equivalent to <Custom Parameters> in the MV Equip Core plugin. In MV, the JS code was, for example:
JavaScript:
atk = user.paramBase(2) * 0.10 + user.level;
What would be the MZ equivalent? Or is it exactly the same? I've looked through Archeia's Script Call Reference, but I'm a bit lost.
 

Cyberhawk

Bravelion Leader
Veteran
Joined
Jan 9, 2019
Messages
104
Reaction score
69
First Language
English
Primarily Uses
RMMZ
Code:
<JS Parameters>
ATK = user.paramBase(2) * 0.10 + user.level;
MAT = user.paramBase(4) * 0.10 + user.level;
AGI = user.paramBase(6) * 0.05 + user.level;
LUK = user.paramBase(7) * 0.05 + user.level;
</JS Parameters>
I tried the JS script you wrote out, WilsonE7 and this actually works.
(It's not all of the stats, but this is how you would set it up in MZ)
 

Galahad

Veteran
Veteran
Joined
Oct 10, 2013
Messages
37
Reaction score
10
First Language
English
Primarily Uses
RMMZ
I'm using the MessageCore plugin in conjunction with Galv's Message backgrounds and I was wondering if there was an existing way to change the Y offset of the text? I can see that the x and y offsets for the name box are modifiable, but I'm wondering if I can do the same for the normal text in the message window. I'm trying to modify the placement of the text so that it better fits the custom message background that I'm using.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 2)

Latest Threads

Latest Posts

Latest Profile Posts

I think in the pursuit of making the game look and sound custom, we never really start making a game. Finish the game first using all necessary plugins (with placeholder assets), then replace it with the real ones.

I haven't finished a game, but I try this method. Progress seems to be faster. :D
Every now and then I think about all the things I need in my project, and get overwhelmed. Just focus on your tilesets, me. You can't build your maps without 'em!
If a picture speaks 1000 words, how many pictures does a video speak??
I don't really get the "Pass Interference" Flag in (American) Football. Aren't you SUPPOSED to interfere with passes in Defense?? What exactly is the threshold that warrants a Flag?
TS Zeta.. blow your ass east... I cant take a round 3.

Forum statistics

Threads
104,433
Messages
1,006,322
Members
135,956
Latest member
Geffron
Top