No active sessions yet.

No games yet.

No conversations yet.

No characters yet.

Common mistakes

The mistakes that produce no error at all, in one place.

None of these raise an error. All of them give you a rule that looks right and does nothing.

Reading a stat by display name. $.stat('brawn') breaks when the stat is renamed, and a missing stat reads 0, so the rule keeps running on a wrong number. Use the role: $.stat('might'). → Reading values

Treating a missing field as 0. It's null, and null fails every comparison, < included. infection < 5 matches nobody who lacks the field. → Missing values

$.player when you meant everyone. $.player is the host only. Use $.party.

Charging per hour off $.event.minutes in a clockless game. Those minutes are the narrator's guess; wordy turns cost seven times more. → Minutes are not time

refuse where you meant veto. refuse stops the player's action; veto stops another plugin's event. → Steps

A dial copied as a number. Right until someone retunes the dial. → Formulas and dials

$.damage with a zero dial. Damage floors at 1. Check the dial first. → Steps

Reading a different place than you wrote. Settings filled into a table, hook reads $.location.fields. → Reading values

Numbers in narration. $.narrate('fever reduced by 2') breaks the voice. Write the sentence a player should read. → Steps

optional used as a fork. An unfinished optional quest step blocks the quest. Use skipIf. → Quests

Rolling dice in a condition. $.random() returns null outside a rule body. → Expressions