• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

ZUD Plugin [Essentials v19.1]

4
Posts
3
Years
    • Seen Nov 10, 2021
    This is interesting, since it's something I never tested for. I don't actually know how the scripts would react to an entire dex of fakemon, and just more or less assumed things would work. Does everything else involving your fakemon work? Such as Raid Dens and the Max Raid Database in particular? I'm curious to know whether they appear there as intended. If they do, then I'm kinda puzzled why the Dynamax Adventures in particular would cause this error. If they don't, then perhaps the core scripts that auto-create the list of eligible raid species is at fault (and simply bans all your fakemon from appearing as raid Pokemon, since it considers them ineligible for some reason).

    Raids and the Database work flawlessly. I imagine that it's either the problem you said, or the fact that there aren't any legendaries defined for 6-star Pokémon and I don't know how to define them. Do you know how I could fix this?
     
    1,407
    Posts
    10
    Years
    • Seen today
    Raids and the Database work flawlessly. I imagine that it's either the problem you said, or the fact that there aren't any legendaries defined for 6-star Pokémon and I don't know how to define them. Do you know how I could fix this?

    Ah yes, if you don't have any eligible Legendary Pokemon, then that would definitely be a cause for errors. If you don't get any results back in the Max Raid Database if you filter by "Legendary Raid", then that would indeed be what the issue is (given that everything else works).

    A full list of Legendary Pokemon are automatically created (along with the lists of all other raid ranks) by the plugin. A species is considered "Legendary" by the plugin as long as it meets both of the following criteria:
    • The species' Base Stat Total exceeds 570.
    • The species is found in the "Undiscovered" Egg Group.
    All canon legendary species meet these criteria besides a select handful (such as Manaphy and Urshifu), which are instead manually added to the list as exceptions.

    If none of your fakemon meet these criteria, then your game won't recognize any of them as legendary. To remedy this, you basically have three options:
    1. Update the PBS data of all your fakemon legendaries so that they meet the above criteria.
    2. Alter the plugin script itself to recognize your own custom criteria for what should be considered "Legendary".
    3. Just create an array of all your fakemon legendaries and add them as "exceptions" to what is considered legendary, akin to Manaphy and Urshifu.


    For options 2 and 3, this would be done in [006] Max Raids/02_Raid_Utilities script, in def pbRaidRankLists. For option 3 in particular, you would just have to add a new line under the final line listing Calyrex as an exception, which would look something like this:
    Code:
    rank5.push(sp.id) if [:FAKEMON1,:FAKEMON2,:FAKEMON3,etc...].include?(sp.id)
    Obviously, you would insert the specific ID's of all your legendary fakemon in the array instead.

    For option 2, that would all depend on what specific criteria you would want to specify for the game to automatically determine what is considered "Legendary".


    I hope that helps. This brought up an interesting issue, and it's something I might address in a future update in the ZUD_Settings where you can manually enter specific species to be added as "exceptions" to the legendary filter, to force certain species to appear as Lair bosses. Might be a useful feature for some people.
     
    20
    Posts
    3
    Years
    • Seen Nov 28, 2023
    When I catch a pokemon in a safari zone area, a no method error for pbSetBattled shows up. I'm also using the gen 8 project FYI.
     
    1,407
    Posts
    10
    Years
    • Seen today
    When I catch a pokemon in a safari zone area, a no method error for pbSetBattled shows up. I'm also using the gen 8 project FYI.

    Thats why. Its a Gen 8 Project bug, not a ZUD issue. GolisopodUser is already aware of this and will address it at some point in an update.
     
    4
    Posts
    3
    Years
    • Seen Nov 10, 2021
    Ah yes, if you don't have any eligible Legendary Pokemon, then that would definitely be a cause for errors. If you don't get any results back in the Max Raid Database if you filter by "Legendary Raid", then that would indeed be what the issue is (given that everything else works).

    A full list of Legendary Pokemon are automatically created (along with the lists of all other raid ranks) by the plugin. A species is considered "Legendary" by the plugin as long as it meets both of the following criteria:
    • The species' Base Stat Total exceeds 570.
    • The species is found in the "Undiscovered" Egg Group.
    All canon legendary species meet these criteria besides a select handful (such as Manaphy and Urshifu), which are instead manually added to the list as exceptions.

    If none of your fakemon meet these criteria, then your game won't recognize any of them as legendary. To remedy this, you basically have three options:
    1. Update the PBS data of all your fakemon legendaries so that they meet the above criteria.
    2. Alter the plugin script itself to recognize your own custom criteria for what should be considered "Legendary".
    3. Just create an array of all your fakemon legendaries and add them as "exceptions" to what is considered legendary, akin to Manaphy and Urshifu.


    For options 2 and 3, this would be done in [006] Max Raids/02_Raid_Utilities script, in def pbRaidRankLists. For option 3 in particular, you would just have to add a new line under the final line listing Calyrex as an exception, which would look something like this:
    Code:
    rank5.push(sp.id) if [:FAKEMON1,:FAKEMON2,:FAKEMON3,etc...].include?(sp.id)
    Obviously, you would insert the specific ID's of all your legendary fakemon in the array instead.

    For option 2, that would all depend on what specific criteria you would want to specify for the game to automatically determine what is considered "Legendary".


    I hope that helps. This brought up an interesting issue, and it's something I might address in a future update in the ZUD_Settings where you can manually enter specific species to be added as "exceptions" to the legendary filter, to force certain species to appear as Lair bosses. Might be a useful feature for some people.

    That was, indeed, the problem. Thanks for all your help.
    One last question: would it be possible to make the boss of a Max Lair always have perfect IVs (and increase the shiny rate specifically on it)? I'm attempting to do this as a replacement for legendary battles, due to the low amount of legendaries in my game.
     
    1,407
    Posts
    10
    Years
    • Seen today
    That was, indeed, the problem. Thanks for all your help.
    One last question: would it be possible to make the boss of a Max Lair always have perfect IVs (and increase the shiny rate specifically on it)? I'm attempting to do this as a replacement for legendary battles, due to the low amount of legendaries in my game.

    The shiny rate for all Pokemon in a Dynamax Adventure is already boosted to 1/300 (or 1 in 100 with shiny charm). They wont appear shiny until you reach the prize screen however, just as it works in SwSh.

    The max lair boss also already has perfect IV's. Only if theyre encountered at level 70 though (levels for lair Pokemon scale with your badge count). IV's of any raid Pokemon are determined by their "rank", which in the case of Dynamax Adventures is determined by their level. Anything encountered at level 70+ will always have perfect IVs.
     
    13
    Posts
    4
    Years
  • I saw this message when I was MaxRaidSimple, after the attack of both pokemon this message appeared, no matter if I change my pkm or wild pkm the result is the same
    Spoiler:
     
    1,407
    Posts
    10
    Years
    • Seen today
    I saw this message when I was MaxRaidSimple, after the attack of both pokemon this message appeared, no matter if I change my pkm or wild pkm the result is the same
    Spoiler:

    I see. This seems to happen when you run pbMaxRaidSimple on an event that already has raid info saved to it from a prior raid den/adventure. Simply running pbResetRaidSettings in the event first will clear this old data, and allow the new raid event to function properly. I'll update the script so that this is done automatically in the future.
     
    2
    Posts
    2
    Years
    • Seen Dec 28, 2021
    Firstly I would really like you thank you for this amazing tool. It really has helped me a lot. Also I am sorry if I wasnt supposed to ask this here but is there a way to make it so that I can make my Pokemon Dynamax after set amount of turns of using it in battle already. I wanted to use this tool for a mechanism which would let me use something like Dynamax move without increasing HP, lasts for a turn and can be used again after 3 turns (basically only use Dynamax Move for a turn). I was able manage the first two thanks to your simple instructions but I have no idea on how to make my Pokemon able to Dynamax again after 3 (or any amount) of turns. I would really appreciate if you or any one else could help me or even just give a simple hint on how to do this.

    Once again thanks for all the amazing people who worked for this tool.
     
    1,407
    Posts
    10
    Years
    • Seen today
    Firstly I would really like you thank you for this amazing tool. It really has helped me a lot. Also I am sorry if I wasnt supposed to ask this here but is there a way to make it so that I can make my Pokemon Dynamax after set amount of turns of using it in battle already. I wanted to use this tool for a mechanism which would let me use something like Dynamax move without increasing HP, lasts for a turn and can be used again after 3 turns (basically only use Dynamax Move for a turn). I was able manage the first two thanks to your simple instructions but I have no idea on how to make my Pokemon able to Dynamax again after 3 (or any amount) of turns. I would really appreciate if you or any one else could help me or even just give a simple hint on how to do this.

    Once again thanks for all the amazing people who worked for this tool.

    There is a custom item included in this plugin called "Max Crystal" that restores your ability to use Dynamax when used in battle. So I would just adapt the code from that, and stick it somewhere in the method handling the end of round phase with some kind of turn counter that increases by 1 each turn if Dynamax has been previously used. Then once the counter hits 3 it stops counting and Dynamax is reset.
     
    2
    Posts
    2
    Years
    • Seen Dec 28, 2021
    Thank you for your response. I am kinda new to all this so could you mind telling me where should I put the code. I thought it was at "Reverting the effects of Dynamax. " of BattleMain but I kinda wanted to confirm it. Also is "b.turncount" responsible for counting of turns each turns where b is variable? Once again thanks for your reply and sorry for being a bother.
     
    1,407
    Posts
    10
    Years
    • Seen today
    Thank you for your response. I am kinda new to all this so could you mind telling me where should I put the code. I thought it was at "Reverting the effects of Dynamax. " of BattleMain but I kinda wanted to confirm it. Also is "b.turncount" responsible for counting of turns each turns where b is variable? Once again thanks for your reply and sorry for being a bother.

    From the FAQ:
    Q: How do I implement <insert mechanic> that this plugin doesn't contain by default?
    A: By waiting for me to do it in a future release, or doing it on your own. I'm not going to whip up some code on the spot to make something you want. Feel free to make suggestions of what to add, however.

    This thread is for discussing the content of the ZUD Plugin, not about helping you code your custom content. So I'm not going to really get too involved with what you're trying to do. However, since you're new, I will clarify a few things to point you in the right direction.


    • I would insert your code near the end of def pbEndOfRoundPhase. Personally, I feel like it would be better to add this within the instance found in the actual default game scripts, rather than the plugin. It'll be easier to keep track of and edit this way, and won't be overwritten if a new version of this plugin is released that edits that code.

    • Yes, turnCount indeed counts the turns, however there's two variants of this. When you see something like "b.turnCount", the "b" is most likely referencing a specific battler. So battler.turnCount is essentially getting the number of turns that that specific battler has spent on the battlefield. Note that the "b" or "battler" is just a variable assigned to a Pokemon battler, so it doesn't necessarily have to be "b", it can be whatever variable you've assigned.

      There's also a different variant of turnCount that counts the overall turns that have passed in battle as a whole, not just for any one particular battler. This may be found in various places written like "@battle.turnCount", or "battle.turnCount". Again, the variable can be whatever you've assigned it as.

    • Personally however, I would not use turnCount for your purposes. Because they don't help at all with what you're trying to achieve. From how I understand it, you want a mechanic that begins counting turns AFTER you've already used Dynamax once. So the number of turns a battler has spent on the field, or the overall number of turns spent in battle have no real relevance to this, since Dynamax could have been triggered at turn 1 or at turn 50, or whenever.

      What I would do to make this work how you're describing is unfortunately a bit more complicated. It would involve adding a new element to the PokeBattle_Battle class, something like "attr_accessor :dynamaxRefreshTurns", or whatever you wanna name it. Then I'd initialize it so that it equals zero by default. Then once Dynamax has been used by the player, I'd call for this in pbEndOfRoundPhase to increase by +1 at the end of each round, stopping at 3 where the code for resetting Dynamax kicks in. Then I'd reset dynamaxRefreshTurns back to zero once this is done.

      Also note that if you wanted this to work for enemy NPC trainers, or for partner trainers, this would have to be a bit more complicated as well, since they would each need to have their own counter (which, I imagine, would have to be implemented much like how zmoves/ultra burst/dynamax is already initialized).

    That's about as much as I'm gonna get into it.
     
    1,407
    Posts
    10
    Years
    • Seen today
    This plugin has been updated to v1.0.5

    Updates:
    • Fixed an issue with Galarian Darmanitan not appearing in Max Raids, the Max Raid Database, or Dynamax Adventures.
    • Generalized the code a bit more that determines if a species is considered a regional form for the purposes of Raids/Adventures. This should make it easier for custom regions/regional forms to be detected when added in the ZUD Settings.
    • Added a new array in ZUD Settings called LEGENDARY_EXCEPTIONS. Adding species ID's to this array will add those species to the pool of potential Legendary encounters in Raids/Adventures, regardless of whether or not they meet the stat/egg group requirements that most legendary species meet.
    • Moved the ZUD Settings script into the Plugin folder now, along with the rest of the ZUD Plugin Scripts. It is now located in [000]General/01_Settings. I thought it would be less confusing for people to have these settings easily accessible in the game scripts themselves, but it seems like all this really ends up doing is adding an extra unnecessary step in the installation process.
    • Fixed a bug with the move Metronome.
     
    125
    Posts
    4
    Years
    • Seen Nov 20, 2023
    I noticed the scripts use "pbMapInterpreter.get_character(0).id" to find the raid pokemon of a raid event.
    So when 2 maps have a same id event,they will share the same raidboss.
    Is this expected effect?Or I got something wrong?
     
    1,407
    Posts
    10
    Years
    • Seen today
    I noticed the scripts use "pbMapInterpreter.get_character(0).id" to find the raid pokemon of a raid event.
    So when 2 maps have a same id event,they will share the same raidboss.
    Is this expected effect?Or I got something wrong?

    This can happen, yes.
    The raid boss for each den is saved to a variable. The number of that variable is determined by the sum of MAXRAID_PKMN + the Event ID. By default, MAXRAID_PKMN is set as 500 in the ZUD Settings (as to ensure it doesn't conflict with any other variable numbers). So if you have a raid den with the event ID of 3, then that raid boss will be saved to variable number 503.

    So if you have two dens on different maps that both share the same event ID, they will both share the same saved raid info. Which is unfortunate, but I don't know of a way to prevent this, and it seems easy enough to just make sure your dens all use different ID's.

    At one point I had it so that the variable number is determined by the sum of MAXRAID_PKMN + Event ID + Map Number, to make it a bit more unlikely that there will be any overlaps. But it still doesn't fully circumvent the problem, since it's possible you could have a raid den on Map 3, Event 2, and another den on Map 2, Event 3, and they would both equal 505 and thus share the same raid info. So I removed that and just left the Event ID.

    I could probably think of a better way to do it now, but it hasn't been a big issue to me, so I haven't put a lot of thought into it.
     

    tasmania12

    Mewtwo Master
    57
    Posts
    16
    Years
  • I know you are getting annoyed with these but...

    I'm having the Data/ZUD_PowerMoves.dat not found error:

    [Pokémon Essentials version 19.1]
    [Generation 8 Project v1.1.0]

    Exception: Errno::ENOENT
    Message: File Data/ZUD_PowerMoves.dat not found.

    Backtrace:
    101:GameData:62:in `load_data'
    101:GameData:62:in `load'
    [ZUD: Z-Moves/Ultra Burst/Dynamax] 02_Compilers.rb:694:in `load_all'
    031:StartGame:13:in `initialize'
    374:Main:32:in `mainFunctionDebug'
    374:Main:18:in `block in mainFunction'
    014:Errors:70:in `pbCriticalCode'
    374:Main:18:in `mainFunction'
    374:Main:47:in `block in <main>'
    374:Main:46:in `loop'

    And before you say compile with a myriad of exclamations, I held ctrl, It started a full compile, it finished a full compile, and still errors.

    I retry, it happens again. I've deleted my essentials 19.1 and re did every step closely multiple times. I only have ZUD and GEN 8.

    I even have a screenshot of it compiling.
     

    Attachments

    • ZUD Plugin [Essentials v19.1]
      Compiling.PNG
      47.7 KB · Views: 6

    Pokeminer20

    PDM20, Coder of Chaos!
    412
    Posts
    10
    Years
  • I know you are getting annoyed with these but...

    The problem is simple, Complete EACH step of the MANUAL INSTALATION provided in the Installation Guide File. The plugin does not add compiler data to the game, the user (you) needs to add the related code to the main Compiler module.
     
    1,407
    Posts
    10
    Years
    • Seen today
    The problem is simple, Complete EACH step of the MANUAL INSTALATION provided in the Installation Guide File. The plugin does not add compiler data to the game, the user (you) needs to add the related code to the main Compiler module.

    ^What he said.

    You didn't fully install the plugin as per the installation guide. If you did, ZUD Compatibility would be among the list of compiled files, right after Pokemon forms.

    Congratulations on properly compiling the game, though lol.
     
    Back
    Top