• 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.
  • The Eevee Expo Game Jam has concluded! 🎉 Head on over to the game jam forum to play through the games.
    Don't forget to come back September 21st to vote for your favorites!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Deluxe Battle Kit [v21.1]

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

Again, I need a lot more details. I let a Lvl 100 Mewtwo one-shot my entire party and couldn't replicate the error. So what you're providing me isn't nearly the full picture in regards to what is causing the error.

What plugins are installed, what Pokemon is KOing you, what's your party, what battle size (Single? Doubles? Triples? etc), does the player have a partner, if not then how large is the party, etc...

On and on and on. The more details that may be relevant, the better.
It's a single battle the wild pokemon KOing the pokemon nor do the pokemon in the party or the amount of them change the result I do have other plugins installed and I suspect M.A.G might be causing issues also are there any known plugin incompatibilities with this plugin I've also realized it doesn't even prompt the player with the party screen to choose which pokemon they'd like to send out next, and if the player presses their confirm button it'll prompt them again if they want to switch and if they click no they can run without any issue
 
Last edited:
It's a single battle the wild pokemon KOing the pokemon nor do the pokemon in the party or the amount of them change the result I do have other plugins installed and I suspect M.A.G might be causing issues also are there any known plugin incompatibilities with this plugin I've also realized it doesn't even prompt the player with the party screen to choose which pokemon they'd like to send out next, and if the player presses their confirm button it'll prompt them again if they want to switch and if they click no they can run without any issue
Yeah, definitely a compatibility error, then. I have no idea what youre using, so I have no idea what it would be. But DBK is compatible with most of the popularly used plugins that I know of, other than the ones explicitly listed as conflicts in the meta file.
 
The "cannotRun" battle rule in vanilla Essentials already does what you want. The "cannotRun" rule doesn't just prevent the player from clicking the "Run" option; it prevents all methods of fleeing, such as Teleport, Emergency Exit, and even being hit by the opponent's Roar/Whirlwind.

Hi Lucidious, thanks for your reply. You're absolutely right. I don't know how drunk I was when I looked at it at the time for it not to work, but I've been doing more testing and BattleRule("CannotRun") works perfectly. Sorry about that.

I have a couple more questions.

1 - Just like the vanilla BattleRules:
  • setBattleRule("noExp")
  • setBattleRule("noMoney")
Is there any viable option to make the enemy Pokémon not register as seen in the Pokedex? Something like:
  • setBattleRule("noRegisterIntoPokedex")
I'm doing something like a "battle training simulation" event, and I'd prefer Pokémon not to register as seen unless they're across the region.

2 - I've seen that with DBK you can modify opposing trainers, including the Player, with:
  • setBattleRule("tempPlayer", Attributes)
The same with wild battles with:
  • setBattleRule("editWildPokemon", Attributes)
But is there a way to modify partner trainers?

Actually, the scenario is that I want the player to team up with an important trainer (for example, an Elite Four) relatively early in the game, but it's not yet known that he's a Elite Four.
However, when the battle starts, the trainer type is displayed:
  • "Elite Four Foo sent out Bidoof! (Bidoof xd)"
Will there be a future BattleRule that allows changing Partner characteristics, such as the name of their trainer type, and temporarily displaying a message like this during battle:
  • "Trainer Foo sent out Bidoof!", so that the real trainer's name doesn't appear.
The reality is that I'm only interested in hiding the partner's message. Not much else.
I know I could simply make two identical trainers in PBS, and change the name of the second one. It was just in case there were other cleaner options.
If DBK doesn't have something similar, it wouldn't be a bad idea to also include modifying partner trainers, not just opposing trainers.

Thanks for everything! <3
 
Hi Lucidious, thanks for your reply. You're absolutely right. I don't know how drunk I was when I looked at it at the time for it not to work, but I've been doing more testing and BattleRule("CannotRun") works perfectly. Sorry about that.

I have a couple more questions.

1 - Just like the vanilla BattleRules:
  • setBattleRule("noExp")
  • setBattleRule("noMoney")
Is there any viable option to make the enemy Pokémon not register as seen in the Pokedex? Something like:
  • setBattleRule("noRegisterIntoPokedex")
I'm doing something like a "battle training simulation" event, and I'd prefer Pokémon not to register as seen unless they're across the region.

2 - I've seen that with DBK you can modify opposing trainers, including the Player, with:
  • setBattleRule("tempPlayer", Attributes)
The same with wild battles with:
  • setBattleRule("editWildPokemon", Attributes)
But is there a way to modify partner trainers?

Actually, the scenario is that I want the player to team up with an important trainer (for example, an Elite Four) relatively early in the game, but it's not yet known that he's a Elite Four.
However, when the battle starts, the trainer type is displayed:
  • "Elite Four Foo sent out Bidoof! (Bidoof xd)"
Will there be a future BattleRule that allows changing Partner characteristics, such as the name of their trainer type, and temporarily displaying a message like this during battle:
  • "Trainer Foo sent out Bidoof!", so that the real trainer's name doesn't appear.
The reality is that I'm only interested in hiding the partner's message. Not much else.
I know I could simply make two identical trainers in PBS, and change the name of the second one. It was just in case there were other cleaner options.
If DBK doesn't have something similar, it wouldn't be a bad idea to also include modifying partner trainers, not just opposing trainers.

Thanks for everything! <3
For your battle simulator, it sounds like you basically just want to set up a Battle Tower-style battle. As in, the player cant use their inventory, doesnt gain exp or money, and (I think) doesn't register anything in the Pokedex. If this is the case, just use DBK's "towerBattle" rule, and this will incorporate everything you want into one rule.

DBK doesnt have a way of modifying partners because vanilla Essentials already allows you to do this for ALL trainers (including partners) by default. You just have to set up an EventHandler for it (I forget what it's called, :on_trainer_create maybe, or something like that).

However, I still think it would be infinitely easier to just make a duplicate trainer in the PBS with a different class. Thats another reason why it seemed unnecessary to include a rule for this in DBK - if you want an edited trainer, you can always just make alternate versions already. You cant do so with the player in a way that isnt cumbersome or requires coding, hence why the DBK rule was added. But NPC trainers are all PBS-based, and thus it seems unnecessary to implement a rule for it.
 
Is there a way to edit the Pokémon used in the "TempParty" battle rule? I'm trying to use the vanilla way of editing a Pokémon before giving it to the player, but it's not working. Basically, all I want in the temporary party is an Absol holding an Absolite, and I'm using autobattle because it's actually an NPC doing the battling.
 
Is there a way to edit the Pokémon used in the "TempParty" battle rule? I'm trying to use the vanilla way of editing a Pokémon before giving it to the player, but it's not working. Basically, all I want in the temporary party is an Absol holding an Absolite, and I'm using autobattle because it's actually an NPC doing the battling.
The same way you edit any Pokemon in an event script. Just put that Pokemon object into the temp party array instead of entering a species ID and level.
 
Tried that, I get this every time.

[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Script error in event 11 (coords 15,7), map 237 (Old Hideout B1F)
Exception: NoMethodError
Message: undefined method `each' for #<Pokemon ABSOL Lv.30>

***Full script:
pkmn = Pokemon.new(:ABSOL, 30)
pkmn.item = :ABSOLITE
pkmn.iv[:HP] = 31
pkmn.iv[:ATTACK] = 31
pkmn.iv[:SPEED] = 31
pkmn.learn_move(:PLAYROUGH)
setBattleRule("tempParty", pkmn)
setBattleRule("autoBattle")
setBattleRule("tempPlayer", 1)
setBattleRule("tempBag", [:MEGARING, 1, :HYPERPOTION, 5])
TrainerBattle.start(:TEAMDREAMZ_M, "Grunt",2)

Backtrace:
[Deluxe Battle Kit] [003] Deluxe Battle Rules.rb:807:in `block in <main>'
Event_Handlers:89:in `block in trigger'
Event_Handlers:89:in `each_value'
Event_Handlers:89:in `trigger'
Event_HandlerCollections:63:in `trigger'
[Arcky's Region Map] 007_RegionMap_TrainerTracker.rb:37:in `start_core'
Overworld_BattleStarting:486:in `start'
(eval):11:in `execute_script'
Interpreter:138:in `eval'
Interpreter:138:in `execute_script'
 
Tried that, I get this every time.

[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Script error in event 11 (coords 15,7), map 237 (Old Hideout B1F)
Exception: NoMethodError
Message: undefined method `each' for #<Pokemon ABSOL Lv.30>

***Full script:
pkmn = Pokemon.new(:ABSOL, 30)
pkmn.item = :ABSOLITE
pkmn.iv[:HP] = 31
pkmn.iv[:ATTACK] = 31
pkmn.iv[:SPEED] = 31
pkmn.learn_move(:PLAYROUGH)
setBattleRule("tempParty", pkmn)
setBattleRule("autoBattle")
setBattleRule("tempPlayer", 1)
setBattleRule("tempBag", [:MEGARING, 1, :HYPERPOTION, 5])
TrainerBattle.start(:TEAMDREAMZ_M, "Grunt",2)

Backtrace:
[Deluxe Battle Kit] [003] Deluxe Battle Rules.rb:807:in `block in <main>'
Event_Handlers:89:in `block in trigger'
Event_Handlers:89:in `each_value'
Event_Handlers:89:in `trigger'
Event_HandlerCollections:63:in `trigger'
[Arcky's Region Map] 007_RegionMap_TrainerTracker.rb:37:in `start_core'
Overworld_BattleStarting:486:in `start'
(eval):11:in `execute_script'
Interpreter:138:in `eval'
Interpreter:138:in `execute_script'
It has to be in an array, like I said.
 
I think we can agree that I'm just dumb. I would have been looking over that again like 24 hours from now trying to figure out what went wrong, and maybe taken a little longer than that to find that dumb little mistake on my own, so thanks.
 
Right, so new problem, but purely cosmetic. TempPlayer is not changing the player's front trainer sprite. I triple checked the file names to be sure, and they do matchup. As you probably know, I intend for that Absol to Mega Evolve, so it's pretty easy to notice when the trainer sprite is the default outfit (I have no other outfits than the 2) in the Mega Evolution scene. I have no idea if it's only the Mega Evolution scene since I didn't try using anything else like that in this battle.
 
Right, so new problem, but purely cosmetic. TempPlayer is not changing the player's front trainer sprite. I triple checked the file names to be sure, and they do matchup. As you probably know, I intend for that Absol to Mega Evolve, so it's pretty easy to notice when the trainer sprite is the default outfit (I have no other outfits than the 2) in the Mega Evolution scene. I have no idea if it's only the Mega Evolution scene since I didn't try using anything else like that in this battle.
Might be an oversight, idk. I never tested the animations with player outfits.
 
Is it possible to check for an item in the bag with a mid-battle script?
If you hardcode a midbattle script, you can literally do anything.
 
Hi lucidious i am getting this when refléct is being used.

[2025-06-08 12:10:41 +0100]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: NameError
Message: undefined local variable or method `effects' for #<Battle::Move::StartWeakenPhysicalDamageAgainstUserSide>

Backtrace:
MoveEffects_MoveAttributes:774:in `pbEffectGeneral'
Battler_UseMove:709:in `pbProcessMoveHit'
Battler_UseMove:409:in `block in pbUseMove'
Battler_UseMove:407:in `times'
Battler_UseMove:407:in `pbUseMove'
[Deluxe Battle Kit] [001] Animation Utilities.rb:278:in `block in pbProcessTurn'
PBDebug:6:in `logonerr'
[Deluxe Battle Kit] [001] Animation Utilities.rb:278:in `pbProcessTurn'
Battle_AttackPhase:128:in `block (2 levels) in pbAttackPhaseMoves'
Battle_AttackPhase:124:in `each'
 
Hi lucidious i am getting this when refléct is being used.

[2025-06-08 12:10:41 +0100]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: NameError
Message: undefined local variable or method `effects' for #<Battle::Move::StartWeakenPhysicalDamageAgainstUserSide>

Backtrace:
MoveEffects_MoveAttributes:774:in `pbEffectGeneral'
Battler_UseMove:709:in `pbProcessMoveHit'
Battler_UseMove:409:in `block in pbUseMove'
Battler_UseMove:407:in `times'
Battler_UseMove:407:in `pbUseMove'
[Deluxe Battle Kit] [001] Animation Utilities.rb:278:in `block in pbProcessTurn'
PBDebug:6:in `logonerr'
[Deluxe Battle Kit] [001] Animation Utilities.rb:278:in `pbProcessTurn'
Battle_AttackPhase:128:in `block (2 levels) in pbAttackPhaseMoves'
Battle_AttackPhase:124:in `each'
This has nothing to do with DBK. The error doesn't point to any of the plugin scripts. It seems more like an error with some custom edits in your Essentials scripts.
 
Im trying to make it so the Gen 5 "Victory lies before you" music starts playing after the gym leader sends out their final pokemon, the script doesnt crash the game but its not activating before or after the last pokemon gets sent out. I have it like this. Ive tried using the pokemon specific ID also and still nada lmao


setBattleRule("midbattleScript", "AfterLastSendOut_foe" => {
"setSpeaker" => :LEADER_Lumi,
"speech" => ["We're not giving up yet!"],
"changeBGM" => "BW 145 Victory Lies Before You!"
})

edit: Now it worked but all the other battle rules I set didnt...when I take out the battle rule for the last pokemon, everything else works fine, when I put it in everything stops working and then its the only one that works. Im doing something wrong😂


The event
 
Last edited:
Im trying to make it so the Gen 5 "Victory lies before you" music starts playing after the gym leader sends out their final pokemon, the script doesnt crash the game but its not activating before or after the last pokemon gets sent out. I have it like this. Ive tried using the pokemon specific ID also and still nada lmao


setBattleRule("midbattleScript", "AfterLastSendOut_foe" => {
"setSpeaker" => :LEADER_Lumi,
"speech" => ["We're not giving up yet!"],
"changeBGM" => "BW 145 Victory Lies Before You!"
})

edit: Now it worked but all the other battle rules I set didnt...when I take out the battle rule for the last pokemon, everything else works fine, when I put it in everything stops working and then its the only one that works. Im doing something wrong😂


The event
I believe you need to make a composed battle rule with multiple keys inside the last one may be overriding everything.
Check in the documentation their examples, it should be clear enough
 
Im trying to make it so the Gen 5 "Victory lies before you" music starts playing after the gym leader sends out their final pokemon, the script doesnt crash the game but its not activating before or after the last pokemon gets sent out. I have it like this. Ive tried using the pokemon specific ID also and still nada lmao


setBattleRule("midbattleScript", "AfterLastSendOut_foe" => {
"setSpeaker" => :LEADER_Lumi,
"speech" => ["We're not giving up yet!"],
"changeBGM" => "BW 145 Victory Lies Before You!"
})

edit: Now it worked but all the other battle rules I set didnt...when I take out the battle rule for the last pokemon, everything else works fine, when I put it in everything stops working and then its the only one that works. Im doing something wrong😂


The event
Why do you have two different midbattle script rules set? They will always overwrite each other if that's the case. A battle can only have ONE midbattle script.
 
I believe you need to make a composed battle rule with multiple keys inside the last one may be overriding everything.
Check in the documentation their examples, it should be clear enough

Why do you have two different midbattle script rules set? They will always overwrite each other if that's the case. A battle can only have ONE midbattle script.
Oh gotcha, yeah so Ive been trying to put it all into a script file with the tutorial on the website, took me like a little over an hour because I misspelt something lmao but I got it working. Didnt know that though so Ill keep that in mind. I can put any number of battle rules that dont use the midbattlescript command though right?
 
Oh gotcha, yeah so Ive been trying to put it all into a script file with the tutorial on the website, took me like a little over an hour because I misspelt something lmao but I got it working. Didnt know that though so Ill keep that in mind. I can put any number of battle rules that dont use the midbattlescript command though right?
You can apply as many unique battle rules as you want to a single battle. They will just overwrite each other if they affect the same thing.

Like, applying both the "canRun" and "cannotRun" battle rules will overwrite each other. Applying the "weather" rule to Sun and then applying it again to set Rain will obviously overwrite the previous one. Same idea here.
 
Back
Top