• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
Resource icon

Resource Automatic Level Scaling 1.5.1

E4Artemy

Novice
Member
Joined
Dec 3, 2023
Posts
17
I think you will need to edit the script for that. Automatic evolutions will make pokemon evolve to their last form, regardless of the evolution stage they are defined in the PBS.

You will likely need to edit this code:
View attachment 23250
As you can see at the end, the plugin checks what species the pokemon was originaly defined as to select the evolution. Maybe you can use it to stop the evolution on the original species. I haven't looked at how much you will have to change, add or take away for it to work how you want to, though.
I noticed the code, but I don't have skills enough for these editions! XD
Guess I'll work with what I have. Thank you again!
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
Rly cool addition, but I realized it's better just cap the evolutions and don't force them. Using Viridian Forest again as a example: it's better to program Caterpie, Metapod and Butterfree as encounters and cap the later two as Caterpie before their respective evolution methods, than to program only Caterpie, and the forest become a Butterfree pandemonium later. Even the trainers work better; If I want a possible Butterfree trainer, just program it with one, and if it's underlevel, it will have a Caterpie or Metapod; but if I want a Caterpie trainer, the larva won't evolve. Hope it can be made easily ;-;
This feature is not implemented yet, but I think your idea is great.

I'm looking at the files of the update and I see you included the Level + time of day evolution methods. Those, like level + weather and level + move do not work all that well. All of them will have the pokemon evolve for as long as the second condition is met, meaning that you will have a level 100 tyrantrum during the day but they'll revert to tyrunt at night, for example.

That is why I only had those level up evolution methods defined:
View attachment 23225
(By the way, ninjask works just like silcoon and cascoon in that it evolves nincada when leveling up but has the extra code to see if the trainer has a pokeball and a free space in team when evolution happens).

Unless you managed to fix that problem with the daytime, I don't think that having time based level up evolution is going to work as "natural evolution". I would be happy to know you managed to find a fix for it when all my tries ended in failure on that regard. I ended using the "firstEvolutionLevel" and "secondEvolutionLevel" with them for they to stay evolved.
I also managed to find a way to evolve pokemon with level-up methods and specific conditions ignoring their conditions.

Both features will be added in the next update.
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
Benitex updated Automatic Level Scaling with a new update entry:

Add the includeNextStages setting, update natural methods evolutions and more

  • Add evolution level for all natural evolution methods. If there's more than one natural evolution with different levels, the lowest level is considered for all evolutions (I don't think this ever happens among all pokemon up to this point).
  • If INCLUDE_NON_NATURAL_EVOLUTIONS is false, now natural evolutions are considered as an evolution possibility for pokemon with multiple evolutions. Previously, if one of the evolutions was not natural, the pokemon would not...

Read the rest of this update entry...
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
A lot of very significant changes were made in the last few days, please report any bugs you may find. Also, thank you for all the suggestions!
 

SwoLe93

Rookie
Member
Joined
Nov 14, 2023
Posts
4
Variables 099 and 100 are already set up from the get-go, they don't get named automatically, but you can change their values to one of the predefined difficulties IDs and it will activate the script. Also, maybe you are using the Control Switches instead of Control Variables event command, which might be causing the issue. You can set the value to 5 (which is the difficulty with settings from Essentials) and use it until you can understand enough to make your own difficulties (it's not that hard though).

As for tutorials for essentials, I recommend reading the pages of the official wiki, which are very detailed and always updated. There are some text tutorials on this page too, and you can also check out the video tutorials from Thundaga on YouTube, although they are a little bit outdated, I really like the way he explains the most essential stuff. Good luck in your journey, feel free to send me any other questions!
Thank you for the help!! I greatly appreciate it!
 

E4Artemy

Novice
Member
Joined
Dec 3, 2023
Posts
17
A lot of very significant changes were made in the last few days, please report any bugs you may find. Also, thank you for all the suggestions!
I've been testing the plugin and updates, and so far it's great. However, I noticed the plugin may be subscripting trainer's moves and forms, if they are defined on trainers PBS. This is my configuration:
ONLY_SCALE_IF_HIGHER = false
ONLY_SCALE_IF_LOWER = false
AUTOMATIC_EVOLUTIONS = true
INCLUDE_PREVIOUS_STAGES = true
INCLUDE_NEXT_STAGES = false
INCLUDE_NON_NATURAL_EVOLUTIONS = false
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
I've been testing the plugin and updates, and so far it's great. However, I noticed the plugin may be subscripting trainer's moves and forms, if they are defined on trainers PBS. This is my configuration:
ONLY_SCALE_IF_HIGHER = false
ONLY_SCALE_IF_LOWER = false
AUTOMATIC_EVOLUTIONS = true
INCLUDE_PREVIOUS_STAGES = true
INCLUDE_NEXT_STAGES = false
INCLUDE_NON_NATURAL_EVOLUTIONS = false
To use moves defined in the PBS instead of automatically selected, you need to call AutomaticLevelScaling.setTemporarySetting("updateMoves", false) before the trainer battle.

I tested using regional forms and it worked fine, the form defined in the PBS was the one selected by the plugin. Maybe you used the POKEMON_1 notation instead of the Form = 1 that should be used for trainers? Can you share some more information on how the trainer was set up and which pokemon caused problems?
 

E4Artemy

Novice
Member
Joined
Dec 3, 2023
Posts
17
To use moves defined in the PBS instead of automatically selected, you need to call AutomaticLevelScaling.setTemporarySetting("updateMoves", false) before the trainer battle.

I tested using regional forms and it worked fine, the form defined in the PBS was the one selected by the plugin. Maybe you used the POKEMON_1 notation instead of the Form = 1 that should be used for trainers? Can you share some more information on how the trainer was set up and which pokemon caused problems?
I'm so sorry, I always read the scripts instructions, but I forget the post. Regarding the forms, it was another dumb number mistake. Thank you so much for your time, I'll be more cautious next time!
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
I'm so sorry, I always read the scripts instructions, but I forget the post. Regarding the forms, it was another dumb number mistake. Thank you so much for your time, I'll be more cautious next time!
No problem, don't worry, I'm happy to help.
 

OkunoShio

Cooltrainer
Member
Joined
Oct 22, 2022
Posts
129
I was trying to implement one exception for a specific battle where I want the Pokémon to return to previous evolutions, but somehow I think I am missing something when trying to set this up. I am putting the "setSettings" command inside the trainer event as one script command together with the "TrainerBattle.start" command (see below), but somehow it does not work.

Code:
Expand Collapse Copy
AutomaticLevelScaling.setSettings(
temporary: true,
include_previous_stages: true)
TrainerBattle.start(
:BUGCATCHER,"Akira")

My game still uses v1.4 of the plugin, but I think that should not be the issue?
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
I was trying to implement one exception for a specific battle where I want the Pokémon to return to previous evolutions, but somehow I think I am missing something when trying to set this up. I am putting the "setSettings" command inside the trainer event as one script command together with the "TrainerBattle.start" command (see below), but somehow it does not work.

Code:
Expand Collapse Copy
AutomaticLevelScaling.setSettings(
temporary: true,
include_previous_stages: true)
TrainerBattle.start(
:BUGCATCHER,"Akira")

My game still uses v1.4 of the plugin, but I think that should not be the issue?
I tested the code you provided, and it seemed to work fine. Can you describe what you are trying to do and what is actually happening in more detail?

Just for clarification, include_previous_stages is true by default, unless changed in 002_Settings.rb. If it's set to false, pokemon will not go back to their previous forms if they have already evolved. For example, if you set the trainer's pokemon to venusaur, but the player's party is around level 5, the script will not "devolve" venusaur to bulbasaur, even if it would be around level 5.

If you're interested in setting a "last" form in the pbs from which the pokemon will not evolve anymore, you could use includeNextStages setting and set it to false temporarily, which was included in the latest update.
 

hostman

Trainer
Member
Joined
Aug 24, 2023
Posts
70
install the plugin and set the variables 99 and 100 to 3, but the level of the wild pokemon is not changed. Is there something I'm not doing that I should be doing?
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
install the plugin and set the variables 99 and 100 to 3, but the level of the wild pokemon is not changed. Is there something I'm not doing that I should be doing?
It should be working, no other additional steps are necessary. Try recompiling the game by pressing control while it loads, also check if you are running the event before the fight starts. Those are some common problems during setup, but if it doesn't work, I would need some more information to try to identify the issue.
 

hostman

Trainer
Member
Joined
Aug 24, 2023
Posts
70
It should be working, no other additional steps are necessary. Try recompiling the game by pressing control while it loads, also check if you are running the event before the fight starts. Those are some common problems during setup, but if it doesn't work, I would need some more information to try to identify the issue.
1705357702950.png
1705357800129.png


Thanks, I solved it but now I have another problem. I try to add the parameters but I get this error, I assume that I am putting the parameters incorrectly, could you tell me how I should put them?
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
View attachment 24029View attachment 24030

Thanks, I solved it but now I have another problem. I try to add the parameters but I get this error, I assume that I am putting the parameters incorrectly, could you tell me how I should put them?
setTemporarySetting uses camelCase for parameters and setSettings uses underscore_case. So, please write proportional_scaling and only_scale_if_higher when using setSettings.
 

OkunoShio

Cooltrainer
Member
Joined
Oct 22, 2022
Posts
129
I tested the code you provided, and it seemed to work fine. Can you describe what you are trying to do and what is actually happening in more detail?

Just for clarification, include_previous_stages is true by default, unless changed in 002_Settings.rb. If it's set to false, pokemon will not go back to their previous forms if they have already evolved. For example, if you set the trainer's pokemon to venusaur, but the player's party is around level 5, the script will not "devolve" venusaur to bulbasaur, even if it would be around level 5.

If you're interested in setting a "last" form in the pbs from which the pokemon will not evolve anymore, you could use includeNextStages setting and set it to false temporarily, which was included in the latest update.
Sorry for the late reply, I was very busy the last couple of days :(

Generally, I always want to have level scaling including evolutions turned on, I just want one exception for a trainer with a custom regional variant that has a custom evolution, which I want to "hide" from the player at that time and therefore dont want it to evolve for that particular fight. BUT I think I managed to figure it out after updating to the latest version of your plugin :) the "include_next_evolution" =false part, which is new in that version, was basically what I was looking for!
However, I noticed that in some rare occasions, the plugin seems to have a little "hiccup" and for some reason the evolutions dont seem to trigger properly? In a test run yesterday I battled a couple of trainers, with everything working as intended, however after encountering a bug in my game which forced me to re-do those battles, the very first trainer battle had unevolved forms as defined in the PBS instead of evolved forms (they were Shroomish, Oddish and Chansey around level 50, with evolution stages set to 18 and 36 in the plugin settings, so they should have evolved). You have any idea what the cause of that could be?
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
Sorry for the late reply, I was very busy the last couple of days :(

Generally, I always want to have level scaling including evolutions turned on, I just want one exception for a trainer with a custom regional variant that has a custom evolution, which I want to "hide" from the player at that time and therefore dont want it to evolve for that particular fight. BUT I think I managed to figure it out after updating to the latest version of your plugin :) the "include_next_evolution" =false part, which is new in that version, was basically what I was looking for!
However, I noticed that in some rare occasions, the plugin seems to have a little "hiccup" and for some reason the evolutions dont seem to trigger properly? In a test run yesterday I battled a couple of trainers, with everything working as intended, however after encountering a bug in my game which forced me to re-do those battles, the very first trainer battle had unevolved forms as defined in the PBS instead of evolved forms (they were Shroomish, Oddish and Chansey around level 50, with evolution stages set to 18 and 36 in the plugin settings, so they should have evolved). You have any idea what the cause of that could be?
The problem might be related to the order in which commands are set up. You should use the setSettings function before the specific battle you want to change settings and disable settings afterward if you're not using the temporary setting.

If you changed the INCLUDE_NEXT_STAGES setting to false in the 002_Settings.rb file, it'd be considered the default settings unless changed using setSettings or setTemporarySetting, but it doesn't seem to be the issue from the description you provided.

It might also be a problem related to the EventHandlers that reset temporary settings after a battle ends, which I added in the latest version, but it looked fine during my tests up to this point. Take a look at the possible fixes I suggested and, if the issue reappears, please reach out and, if possible, show the event commands you used.
 

OkunoShio

Cooltrainer
Member
Joined
Oct 22, 2022
Posts
129
The problem might be related to the order in which commands are set up. You should use the setSettings function before the specific battle you want to change settings and disable settings afterward if you're not using the temporary setting.

If you changed the INCLUDE_NEXT_STAGES setting to false in the 002_Settings.rb file, it'd be considered the default settings unless changed using setSettings or setTemporarySetting, but it doesn't seem to be the issue from the description you provided.

It might also be a problem related to the EventHandlers that reset temporary settings after a battle ends, which I added in the latest version, but it looked fine during my tests up to this point. Take a look at the possible fixes I suggested and, if the issue reappears, please reach out and, if possible, show the event commands you used.
Include_Next_stages is true by default, I just modfied it for that one exception. The strange thing is that it appears to happen on some weird random basis, one of my players reported it happened to him after a white out, for me it happened in the first battle after a restart... 🤷‍♂️ once I have a little more time I will look into it in more detail again and try to give a more precise report if possible.
 

LinKazamine

Champion
Member
Joined
May 24, 2023
Posts
674
I finally updated this plugin on my project and while testing if a new difficulty I made worked, I found this bug?
1708272166250.png

The wild pokemon defined is slowpoke. And I have this in settings:
1708272302154.png

I do not alter the "include non naturale evolutions" rule anywhere. So I don't know why slowpoke is evolving to slowking.

PD: just as a note, I do not need this to be fixed asap (nor ever if you don't find a way). I'll just define the pokemon on their evolved form and let the plugin turn them on their unevolved forms when necessary.
 

Benitex

Trainer
Member
Joined
Nov 7, 2020
Posts
77
I finally updated this plugin on my project and while testing if a new difficulty I made worked, I found this bug?
View attachment 26198
The wild pokemon defined is slowpoke. And I have this in settings:
View attachment 26199
I do not alter the "include non naturale evolutions" rule anywhere. So I don't know why slowpoke is evolving to slowking.

PD: just as a note, I do not need this to be fixed asap (nor ever if you don't find a way). I'll just define the pokemon on their evolved form and let the plugin turn them on their unevolved forms when necessary.
Thank you for reporting the issue, even if you can avoid it, it can always help other people.
I tried testing the conditions you described and the script seemed to work just fine, avoiding the slowking evolution even when it was provided directly in the PBS, with INCLUDE_NON_NATURAL_METHODS disabled. Maybe the evolution method for slowking is different in your version of the PBS? I think it's unlikely though.
Let's see if this problem appears again in some other situation and I can try to fix it, until then, it's nice to know you found this workaround.
 
Back
Top