- Keep lines short. One idea per line reads faster and hits harder.
- In chats, let messages drip — a long wall of text loses the rhythm of a real conversation.
- Alternate texture: a chat scene after a narration scene, a call after a quiet moment.
- Use
@notify and locks to tease what’s coming, not to spam the player.
- Register characters, assets and variables before you reference them — validation then catches typos early.
- Start each story with a short, atmospheric scene that establishes who, where and why.
- End every chapter on a hook or a decision so players hit “next chapter” wanting more.
- Use session variables ($var) for anything that should reset on a fresh playthrough.
- Keep branching flat — merge branches back into shared labels instead of nesting forever.
- Vary the texture: chats for intimacy, calls for tension, narration for atmosphere.
- Name labels clearly — they double as jump targets and show up in the flowchart.
- Don't reference an unregistered name and hope — the engine will refuse to run it.
- Don't bury a choice in a choice in a choice; players lose the thread.
- Don't write one unbroken block of narration — split it with dialogue or a choice.
- Don't rely on sprites in SimOS games — they only render in Standard VN.
- Don't make every line a decision; choices lose weight when everything is one.
- Don't forget @end — a chapter that never ends can't load the next one.
- Don't put player-facing numbers in UI copy; let the engine own the state.