Self switches are switches that are limited to the events themself and can be triggered in the events to be turned on or off. For example, Simple trainer events use self switches to disallow players from infinitely battling them after defeating them for the first time. Here is an example of where I used a self switch in my own game.
The event here autoruns a story dialogue. Once completing the dialogue, a few switches are enabled including the self switch. The self switch allows the following event, which allows the player to heal their pokemon, to play out when speaking to the woman again, without having to create a unique script for her.
Game switches (Which I guess I should have explained first lol) are similar to self switches but instead of being limited to the event they are triggered in, they are universal to the entire game. In this event in my game, the player enters a house and communicates with an npc.
At the bottom of the event command list, 2 game switches are listed; one is turned off and another is turned off. The one turned off is the switch that allowed this event to play out, by turning it off I ensure that the player cannot repeat the same event once completed. The switch turned on allows an event outside of this one to occur.
By transitions I'm not sure if you mean map transitions or cutscene transitions. If you're talking about maps then transitions are pretty simple to make.
This event transfers the player to another location or map. A sound effect is played, followed by the screening fading black. Then after a few frames, the player is transferred while the screen is black. The screen then fades to normal again. Additionally, if you don't feel like making these yourself you can always just copy them from door events in the default pokemon essentials maps.
A lot can be done with cutscenes so I'll show some of the basics
The NPC, once interacted with, greets the player. Afterwards the screen fades out entering a cutscene, then after a few frames the screen fades back in (This isn't necessary but I prefer using this method). I use the screen fade in and out to change the position or locations of some events to my liking before the screen is visible again. A conversation is had between the player and other NPC's. During the conversation an unknown NPC announces themself, causing the other ones to show the "Question bubble" animation. I split the animations up by a few frames so they wouldn't go off all at once.
The NPC's all face her as she then moves towards the player. I use the "Wait for moves completion" Command to essentially do as it says. It waits for the move to be completed before any other command can continue.
Sorry if any of this sounds confusing, I've only been using essentials for a few months and have been learning as I go so I'm pretty new to this aswell