They are everything that a DM puts in front of their players. It might or might not change what the characters were about to do, thus it could complicate the game. Players are often missing direction, or they are going straight into one direction but without eagerness. Sometimes the session slows down because your players are not engaged with each other at the moment. Those are situations when you should throw in a complication.
Complications come in many forms, the most common ones are combat encounters, puzzles, or an NPC that suddenly appears. It takes the agency of the players away for a few seconds, while you explain to them what is happening before them. Then after you have tangled their current agency, you give it back to them. Maybe they untangled it without issue, maybe your complication changed their agency, it complicated how your players achieve their current goal. Also, everything that might drain resources from the players is a complication, having to persuade a guard might cost a charm spell. Dealing with an uncrossable river the druid has to shapeshift into a crocodile to get everyone across.
Try to have at least one complication happen at every point of interest. Including settlements, forests, ruins, lakes, or mountains. If no complications happen, at least have a small social encounter ready: “The players come across a river but there is a bridge, a human boy sits on the bridge with a fishing rod in his hand. Excitedly he asks them about their adventures before focusing on fishing again.” or “The group rests in the spooky forest, suddenly thick fog appears out of nowhere, they all see ghostly appearances of animals jumping around them. A ghostly fox steals some of their provisions. After five seconds the fog disappears, and with it the animals.” Having little events like these just makes the world feel more alive, the spooky forest has a backstory, even though it’s one the players don’t know about.
I try to list all complications that I can think of, that I regularly use, but there are probably a lot more. But after thinking about preparing the session in kind of a gamey way, don’t forget that everything happens for a reason, create a believable world!
Puzzles
Puzzles are an interesting thing, do them right and the players are engaged in a group activity where everyone is aiming for a satisfying end. If they are done poorly, the whole table will be frustrated and angry after two hours of random trial and error. It’s a fine line to walk as a DM, and I have found that you should err on the side of a too easy puzzle, rather than potentially making it frustrating. Also, puzzles should most often have a logical solution, you can create puzzles where the answer is found through pure luck, but it’s generally bad practice. What I have seen often is that the DM doesn’t allow solutions other than intended. That there is always a magical barrier around the puzzle room that forbids an easy way out through magic, while you can do that when it’s plausible, such as in a tower created by a magic-user. It makes no sense at all that every single dungeon has such an anti-magic barrier.
Social Encounter
Social encounters are what make the game interesting for a lot of players. It’s where players’ backstories and characteristics can shine the most. The most interesting NPC’s are in harmony or direct contrast to one of the players’ beliefs. But you can also put some NPC’s in front of them that are here to make the world more credible. They could meet a veteran that fought in the last war and is now on a dragon hunt, this veteran could for sure tell some interesting stories, which will most likely lead to a quest where the players help hunting down the dragon. But what if they instead meet a farmer with his oldest son, traveling to the next market to sell their goods. The farmer will talk about how their harvest went and how the weather will shift because of some old country saying. It will be a short exchange that allows the players to think about how they are also human, they are not just epic heroes going from one quest to the next. I am not saying that I prefer realistic and mundane NPC’s, for an exciting game both are needed, but the later ones are often overlooked when a session is prepared.
Combat
This might be the bread and butter of most TTRPG games, after all, it’s where you roll the most dice and the most action is concentrated. I like to have combat only happen for a reason, if bandits ambush, the bandits had a reason. It’s not because they are evil, maybe a nearby mine is now using magic to excavate, thus many people are without work and need money to feed their families. That’s why they stop fighting as soon as they notice they are up against experienced adventurers. Maybe they are magically influenced by a mad wizard, they will fight to the death. In this case, you can tell your players (tied to an insight check) that the bandits seem like they show no emotions, they seem fearless and don’t feel pain. In this case, the spell could be broken by the parties’ sorcerer, or they just knock all bandits unconscious and proceed to find the mad wizard.
A good combat encounter needs more than enemies, it needs an environment. Meaning, if there is a fight in a city, there are barrels, corners, and rooftops where players and enemies can seek cover or gain the high ground. If they fight on a bridge, there is a river underneath, where you can shove in enemies so they are out of the fight for a few rounds. Try to include rough areas where creatures are slowed down or a rock that can be knocked down to roll over enemies. You can also create events in the fight, maybe the house they are fighting in is burning, everybody that stays inside will start to take damage. If they don’t leave in X rounds, they will start to suffocate on the smoke. A classic example is that the players will have to stop the evil wizard from opening a portal to hell, with devils pouring out of the portal. If they fail to stop the wizard, the portal will fully open and the biggest, badest devil comes to fight them. To put it short, combat should be interesting, believable, and dynamic.
Traps
Traps are a great addition to any session, they allow certain types of characters to shine. Thieves will be able to disable a mechanism, perceptive characters can discern the trap before it triggers and there are many different ways to overcome the trap once it’s spotted. When creating traps you should keep the following things in mind. Each trap has a trigger, it should also be detectable (sometimes only by magic), and there should be the possibility to disable or bypass it. Traps can be found everywhere, be creative when inventing them. Even the web of a giant spider in the forest could be considered a trap. The trigger is a creature touching it. It could be detected by a perceptive creature and thus avoided. A solution to bypass it would be to burn it. The hazard, in this case, would be that the spider that created the web will be alerted and attack a few moments after a creature is trapped.
Time
While at first glance it seems that time passing doesn’t actively do something it’s the complete opposite. People and creatures are inhabiting your world. They have their own goals and beliefs. While your players are busy doing adventuring stuff, the king is planning alliances and wars. The thieves guild is going on a heist and the bandit lord is raiding villages. It works best to show the players that NPCs they know were influenced by something while they were away. Their favorite tavern is occupied by soldiers, which are preparing for war, they drank all the ale and now the players are upset. But it doesn’t always have to be something bad, maybe the son of a character got married. Just show them, that the world is breathing, that it lives.