Good question. I tracked fatigue using a standard Variable and every time it was changed, ran a Common Event which applied the appropriate State (normal, winded, tired, exhausted, running on empty) to the whole party based on the current level. A pure-scripted approach might be a little cleaner, but at the time I made it I didn't know any scripting.