A recurring problem I have in Dungeon World is having an ambush or other hidden danger set up and not wanting my players to just blunder into it without giving them a chance. It seems that calling for a discern realities without them doing something to actively trigger it seems wrong and yet it seems equally wrong to assume that their characters would not be on guard. What I've been defaulting to is springing trap, ambush, ect, and saying "the danger is heading towards you, what do you do?" But this feel artificially fake and gets old after awhile. Players will never look for traps or ambushes if they are always given a chance to defy danger with no issue when the danger springs up. Yet just saying, take X damage feels unfair and worse, unfun.
Player are inside a Kobold infested dungeon. I've Shown Signs of Approaching Danger by mentioning that the pictographs on the walls have all been marked with graffiti venerating dragons. I've drawn a map of the hall and left blanks to fill in as they move further down. The players entered through a large cave in and have alerted the inhabitants of their ingress. Thinking off screen and Giving Monsters Life the Kobolds would investigate and then plan an ambush. Beyond the limited foreshadowing already done, I don't know how to warn the players. This seems acceptable except that if I don't warn them and simply spring the ambush it is done via a soft move, most likely
- Reveal an unwelcome truth
- Show signs of an approaching threat
- Put someone in a spot
prompting me to pick a target and ask them what they do, potentially opening up defy danger. This is instead of the via a harder move, probably one of
- Use a monster, danger, or location move
- Deal damage
- Use up their resources
I know this isn't Appocalypse World, so doing what prep demands isn't part of it, but it feels like those are actually what would follow the fiction. However on a "fairness" or "fun" level that feels wrong.
How do I balance the moves here to make it feel appropriate to the danger the ambush presents without making my players feel like I've "cheated" them or made it unfair?