There are a few things that are simply broken about the way that the default RPGMaker XVAce scripts handle surprise and preempt, that I simply can’t understand. First, why don’t they apply to event triggered encounters? This limits the only way to ‘grind’ level encounters to region based encounter tables. Which means that ANY visible encounter mechanic is effectively broken. Not to mention the fact that there are no built in tool set options for triggering a surprise or preempt battle via even commands, at all, even if you WANTED either in your triggered events.
So… I figured that in the absence of available plugin options for the tool set itself, the best option is setting aside a small hand full of game variables, and game switches, to accomplish both of these missing things, as best I can.
Now, ALL events can benefit from the same options; which include temporary ‘throw away’ rates that can be applied to individual events without any house keeping. Once the battle is triggered, these temporary rates will zero themselves out, and have no further effect until ‘set’ to a positive value once again.
Temporary rates can be simple number values, or full on formulas including any details available to the $game_party, $game_troop, $game_variables and $game_switches objects and for those needing a more permanent setting applied to an entire map, those are included as well. Each ‘tier’ of rates has clear orders of succession, including ‘cursed’ object note tags that will allow you to flag a players party as destine to ALWAYS suffer a surprise battle, or never again benefit from a preemptive one!
Combine all that, with the ability to assign additive rate adjustments to feature objects, such as a magic ring that increases or decreases the chances of either surprise or preempt results, and there isn’t much you can’t do with it.
I can’t imagine why similar functionality wasn’t baked into the default scripts from day one.