• 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.
Deluxe Battle Kit [v21.1]

Resource Deluxe Battle Kit [v21.1] v1.2.2

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
How do you get Pokémon Essentials to actually let you fit one of those massive scripts?
There's a section about storing scripts in the tutorial.
 

MaouAlter

Novice
Member
Joined
Aug 8, 2022
Posts
15
I just realized the support for Visually Distinct Super Shinies is gone, is it going to be reimplemented in a future update/in another plugin?
 

LinKazamine

Champion
Member
Joined
May 24, 2023
Posts
674
I just realized the support for Visually Distinct Super Shinies is gone, is it going to be reimplemented in a future update/in another plugin?
You must already have common animations saved in your game for Megas and Primals. The tutorial makes note of this.

Visually different super shinies is unlikely to be a returning feature. It was only implemented in the previous version because the previous iteration of ZUD had to entirely rewrite how forms in the dex are displayed in order to add Gmax forms. So the super shiny stuff was thrown in as an afterthought, since I might as well throw that in too if im already doing all that work to recode the Pokedex displays. The next iteration of Dynamax however will no longer need to touch the Pokedex at all anymore (thank god, because that was a huge headache), so if I dont have to edit the dex anymore, then there's no reason or incentive to implement the super shiny feature.

Besides, there's a reason I renamed this to "Deluxe Battle Kit." It's because I want to refocus this plugin specifically around battle mechanics. All of the non-battle focused features from Essentials Deluxe were removed or moved to other plugins to streamline the focus of this plugin. I don't want it to become a bloated mess like the last plugin was.
 

Taki0707

Rookie
Member
Joined
Feb 27, 2024
Posts
1
Why didn't Groudon change its abilities after primal reversion?
Capture.PNG
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222

Eco

Novice
Member
Joined
Feb 22, 2024
Posts
10
Having a bit of a conundrum, and I'm not sure if this is my error or a limitation.

I have a trigger to change a BGM from the regular battle theme to a special one on the last Pokemon.

However, when a Pokemon becomes low HP, the low HP song triggers and if I switch out, heal or my pokemon faints, the theme goes back to the original battle theme rather than the one triggered for the final pokemon.

Is there a way to make it resume the last pokemon BGM after a heal/switch-out/faint? I'd prefer to not remove the Low HP BGM either for these special fights.
 
Last edited:

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
Having a bit of a conundrum, and I'm not sure if this is my error or a limitation.

I have a trigger to change a BGM from the regular battle theme to a special one on the last Pokemon.

However, when a Pokemon becomes low HP, the low HP song triggers and if I switch out, heal or my pokemon faints, the theme goes back to the original battle theme rather than the one triggered for the final pokemon.

Is there a way to make it resume the last pokemon BGM after a heal/switch-out/faint? I'd prefer to not remove the Low HP BGM either for these special fights.
Definitely a limitation. I didn't think of that scenario when implementing low HP music.
 

Eco

Novice
Member
Joined
Feb 22, 2024
Posts
10
Ah, gotcha. Guess I'll cut my losses and keep the Low HP Music off for these special fights
 

Zeidra Senester

Rookie
Member
Joined
May 11, 2022
Posts
6
Did someone manage to make it work with v19 or v20? I'm not asking for official support, just wondering if someone already succeeded in backporting this before I attempt.
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
Did someone manage to make it work with v19 or v20? I'm not asking for official support, just wondering if someone already succeeded in backporting this before I attempt.
Why not just use Essentials Deluxe if you want a v20 plugin that more or less accomplishes what this plugin does?
 

Zeidra Senester

Rookie
Member
Joined
May 11, 2022
Posts
6
Why not just use Essentials Deluxe if you want a v20 plugin that more or less accomplishes what this plugin does?
because actually I need a v19 ; they'd be no point in backporting an older version that still needs backporting.

I actually use v21 engine on heavily customized v19.1 scripts (to the point I can't update anymore), it's just a matter of function names, and most of them changed between v20 and v21, not between v19 and v20, hence why I mention v20 in the first place. Having a v20 backport of that one would still require work anyway, so I'd rather get the most up to date one in that case.
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
because actually I need a v19 ; they'd be no point in backporting an older version that still needs backporting.

I actually use v21 engine on heavily customized v19.1 scripts (to the point I can't update anymore), it's just a matter of function names, and most of them changed between v20 and v21, not between v19 and v20, hence why I mention v20 in the first place. Having a v20 backport of that one would still require work anyway, so I'd rather get the most up to date one in that case.
Your case sounds highly specific, so I have no way of really telling you what sort of difficulty to expect, but I imagine it'll be hard to do. But if youve managed to essentially backport all of v21's engine into v19, then you must be pretty competent already and should be able to figure this out on your own. Because not even I would be confident enough to undergo a project like that.
 

Zeidra Senester

Rookie
Member
Joined
May 11, 2022
Posts
6
Well I happen to be a software engineer, so I "just" had to learn Ruby. Knowing C, Java and JS, it was easier than it sounds.

Your case sounds highly specific
Short story short, I started my solo project in late v16. I had to port everything to v17 a couple months later. I skipped v18, but had to port everything again because v19 was huge. v20 was not such a big deal. But when v21 released with its new map and script engines, I was way too far into customization and didn't feel like manually porting a third time. I wasn't ready to throw away actual years of working on the scripts. So I frankenmanaged my way into an abomination that has all v20 and v21 shenanigans (except the new AI… yet) inside a v19 core. It works with v19 plugins, and it can work with v20 and v21 plugins as long as I rename functions. Theorically. Yours is a big chunk, it's gonna take ages. But it seems worth it (and Enhanced Battle UI too).
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
Well I happen to be a software engineer, so I "just" had to learn Ruby. Knowing C, Java and JS, it was easier than it sounds.


Short story short, I started my solo project in late v16. I had to port everything to v17 a couple months later. I skipped v18, but had to port everything again because v19 was huge. v20 was not such a big deal. But when v21 released with its new map and script engines, I was way too far into customization and didn't feel like manually porting a third time. I wasn't ready to throw away actual years of working on the scripts. So I frankenmanaged my way into an abomination that has all v20 and v21 shenanigans (except the new AI… yet) inside a v19 core. It works with v19 plugins, and it can work with v20 and v21 plugins as long as I rename functions. Theorically. Yours is a big chunk, it's gonna take ages. But it seems worth it (and Enhanced Battle UI too).
It just really depends what exactly you want to backport the plugin for. Because to be honest, there's very little that this kit adds that is entirely new or couldnt be done by brute forcing it yourself, given the know-how. The plugin just packages everything in an easy-to-use, beginner-friendly way that requires as little knowledge of coding as possible. But you could theoretically achieve everything the kit is capable of by just manually implementing it yourself. It would just be done in less pretty ways. You also have to consider that this plugin is specifically designed as a plugin, meaning that a ton of the backend stuff isn't actually necessary, and solely exists because of the intention of it being a public resource. For a personal project, you could easily gut entire chunks of the scripts, as they wouldn't have any utility in that scenario.

For example, all of the compiler changes exist soley to allow all of the add-on plugins that rely on this kit to auto-add all the necessary PBS data that they may require to work. So this is something that exists simply for user-friendly installation, and is otherwise irrelevant if youre building something that isnt intended to be used by anybody else. And Enhanced Battle UI doesn't even use this feature, since that add-on doesnt require any new PBS data. So you could probably omit this stuff entirely for your purposes.

Besides that, most of the code is just refactoring/aliases of existing code. So that stuff shouldn't be that tricky to implement as long as you find the v19 equivalent scripts. All of the Deluxe Battle Rules and Wild Boss mechanics just build on stuff that already exists in Essentials. Some of these things touch the battle AI though, so those are the only places you might hit a snag.

The Deluxe Animations are entirely optional and you can probably just completely ignore all of it, unless you just really want those animations in your game. Though I barely changed much between v20 to v21, so it might be perfectly backwards compatible with v19 too, for all I know.

The midbattle scripts, however, are what's going to be a real challenge to implement. Which I'm assuming is the part of the plugin which is the entire reason you want to backport it. But again, the entire midbattle feature is simply a framework that makes stuff happen during specific points in battle using handlers. In this sense, there's nothing fundamentally different between this and item or ability handlers that allow you to make certain things trigger midbattle. So you don't actually need the midbattle script feature, you can just manually script specific things to happen at specific points in battle. It'll just obviously be messier, but not impossible.

TL;DR: The Deluxe Battle Kit is just a pretty package, it doesn't actually do anything that unique.
 

Zeidra Senester

Rookie
Member
Joined
May 11, 2022
Posts
6
Indeed the whole Mid-Battle Scripting stuff is what interests me most. You trigger system is pretty impressive, and while I could come up with something similar manually for each individual battle, having such a handy framework is game changing.

See, I've been working for years on my game, but it's nowhere near playable. It's more of a sandbox, with a shitload of new features, and I also make my own animated sprites. I'm pretty proud of all I've done, especially my animated clothes/wearable FX framework, and my current project (making basically any big enough species a viable mount), but the game itself is pretty empty. Which means, it's still time to implement a framework that will help me get faster as soon as I can switch (back) to actually make the game.

Would you mind if I take your existing MidbattleHandlers and build my own system around it? You'll be properly credited, and it's not meant to be shared, but we never know.
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
Indeed the whole Mid-Battle Scripting stuff is what interests me most. You trigger system is pretty impressive, and while I could come up with something similar manually for each individual battle, having such a handy framework is game changing.

See, I've been working for years on my game, but it's nowhere near playable. It's more of a sandbox, with a shitload of new features, and I also make my own animated sprites. I'm pretty proud of all I've done, especially my animated clothes/wearable FX framework, and my current project (making basically any big enough species a viable mount), but the game itself is pretty empty. Which means, it's still time to implement a framework that will help me get faster as soon as I can switch (back) to actually make the game.

Would you mind if I take your existing MidbattleHandlers and build my own system around it? You'll be properly credited, and it's not meant to be shared, but we never know.
It's a public resource, you can use it however you'd like.
 

Shadow56bomb

Cooltrainer
Member
Joined
Oct 15, 2022
Posts
220
I edited a copy of one of the demos so I wouldn't get any errors, but I still got some.
Exception `SyntaxError' at Section008:635 - [Deluxe Battle Kit] [003] MidbattleScripts Module.rb:572: syntax error, unexpected string literal, expecting '}'
"UserDealtCriticalHit_SNORLAX"...
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:573: syntax error, unexpected terminator, expecting literal content or tSTRING_DBEG or tSTRING_DVAR or tLABEL_END
"text_A" => "A critical hit fro...
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:574: syntax error, unexpected '}', expecting `end'
},
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:579: syntax error, unexpected terminator, expecting literal content or tSTRING_DBEG or tSTRING_DVAR or tLABEL_END
"text_A" => "A critical hit fro...
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:580: syntax error, unexpected '}', expecting `end'
},
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:585: syntax error, unexpected terminator, expecting literal content or tSTRING_DBEG or tSTRING_DVAR or tLABEL_END
"text_A" => "Snorlax got a supe...
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:586: syntax error, unexpected '}', expecting `end'
},
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:591: syntax error, unexpected terminator, expecting literal content or tSTRING_DBEG or tSTRING_DVAR or tLABEL_END
"text_A" => "Clodsire got a sup...
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:592: syntax error, unexpected '}', expecting `end'
},
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:597: syntax error, unexpected terminator, expecting literal content or tSTRING_DBEG or tSTRING_DVAR or tLABEL_END
"text_A" => "Snor! Lax!",
^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:597: syntax error, unexpected ',', expecting `end'
..."text_A" => "Snor! Lax!",
... ^
[Deluxe Battle Kit] [003] MidbattleScripts Module.rb:599: syntax error, unexpected '}', expecting `end'
}
^
this is what my code looks like:
Ruby:
Expand Collapse Copy
################################################################################
# 1-1
################################################################################
 
  SNORLAXVSCLODSIRE = {
    #---------------------------------------------------------------------------
    # Turn 1 - Battle cry
    #---------------------------------------------------------------------------
    "RoundStartCommand_1_foe" => {
      "text_A"       => "CLODSIRRRE!",
    },
    
    "RoundStartCommand_1" => {
      "text_B"       => "Snor..."
    }
    #---------------------------------------------------------------------------
    # Snorlax crit
    #---------------------------------------------------------------------------
    "UserDealtCriticalHit_SNORLAX" => {
      "text_A"       => "A critical hit from Snorlax! \nHe clearly knows Clodsire's weak points!"
    },
    #---------------------------------------------------------------------------
    # Clodsire crit
    #---------------------------------------------------------------------------
    "UserDealtCriticalHit_CLODSIRE" => {
      "text_A"       => "A critical hit from Clodsire! \nHe clearly knows Snorlax's weak points!"
    },
    #---------------------------------------------------------------------------
    # Snorlax super effective
    #---------------------------------------------------------------------------
    "UserMoveEffective_SNORLAX" => {
      "text_A"       => "Snorlax got a super-effective hit! Watch out, Clodsire!"
    },
    #---------------------------------------------------------------------------
    # Clodsire super effective
    #---------------------------------------------------------------------------
    "UserMoveEffective_CLODSIRE" => {
      "text_A"       => "Clodsire got a super-effective hit! Watch out, Snorlax!"
    },
    #---------------------------------------------------------------------------
    # Pulverizing Pancake
    #---------------------------------------------------------------------------
    "BeforeZMove_PULVERIZINGPANCAKE" => {
      "text_A"       => "Snor! Lax!",
      "text_B"       => "Snorlax seems to be preparing to flatten Clodire! "
    }
  }
 
Back
Top