I've got to add some stuff to this.
First off, I dont have VXA, but the concepts between XP and VXA are probably quite similar.
One thing I screwed with was to make ANY event an Autorun or Parallel by putting the word "start" in a Move Route Script call. Other things you can do with those script calls inside the Move Routes is to mess with Triggers. For example, change a Parallel into an Event Touch by first making it a Parallel Event, then running a Script "@trigger = 2". Or if you want an Event that can NEVER be triggered, Move Route Script "@trigger = -1"
Those short little Script calls inside the Move Route can make your Events do damn near ANYTHING.
For example, if you want an Exclamation Point Animation from a Move Rotue Script (XP) "@animation_id = 98"
Trigger an Event remotely:
Works even if the Event is set to NEVER trigger wtih @trigger = -1
The Move Route that I am referring to is the Autonomous Move Route where you set the Event to Fixed, Random, Approach or Custom, and use Custom. So select Custom, set the Move Route, put in your Scripts, and uncheck Repeat. Note: If "Repeat" is NOT checked, then you are in the wrong Move Route window. You do NOT want the one that appears when you double click on the RIGHT side.
A little scripting knowledge and a bit of cleverness goes a long way.
You can literally do ANYTHING inside a Script call. Change Game Switches, Variables, other Event Self Switches, ANYTHING.
$game_switches[switch_id] = true / false
$game_variables[variable_id] = ANYTHING, including Strings, Arrays, Objects, etc!
$game_self_switches[[@map_id, @event_id, 'A']] = true / false
Hell, you can MOVE other Events from an external Events Move Route Command:
You can even put in CONDITIONAL BRANCHES into your Move Route Scripts!
$>Script: turn_left if ($game_player.x == 42 and $game_player.y == 19)
I dont know how much niftier you can get other than to have FULL CONTROL over EVERYTHING in the entire game from nothing short of a Move Route Script!