Reakce na změny ve spojité části modelu jsou popsány formou stavových podmínek a stavových událostí. Stavová podmínka můľe být specifikována například booleovským výrazem. Akci, která je podmíněna změnou pravdivostní hodnoty stavové podmínky, nazveme stavová událost. Příkladem můľe být událost, která má nastat při překročení nastavené maximální teploty místnosti v modelu automaticky řízeného vytápění domu.
V C++ lze stavové podmínky implementovat třídami, které definují chování objektů - bloků citlivých na změnu vstupu. Vstupem takového bloku můľe být booleovský výraz. Pro zjiątění času změny vstupní hodnoty takových podmínek lze proto pouľít pouze metodu půlení intervalu, tj. zkracování kroku integrace na polovinu. Existují i jiné metody, například metoda Regula-Falsi, ty vąak vyľadují spojitý vstup podmínky.
Můľeme také poľadovat, aby stavová podmínka byla citlivá pouze na některé změny pravdivostní hodnoty vstupu (například pouze na změnu FALSE na TRUE, případně na překročení mezní hodnoty směrem nahoru). Protoľe C++ nedefinuje speciální Booleovský typ, pouľívá se místo něj typ int. Pravdivostní hodnota TRUE potom odpovídá nenulové hodnotě typu int, pravdivostní hodnota FALSE odpovídá nulové hodnotě.
Při numerické integraci, kdy výpočet probíhá po krocích, nemusí dojít k detekci některých stavových událostí. Tato situace nastane v případě, ľe krok integrace je přílią dlouhý a dojde při něm k 'překročení' několika změn stavových podmínek. Podobný problém můľe nastat v důsledku nepřesnosti numerické integrace, kdy při nevhodně zvolené podmínce nemusí dojít k její změně a tím k vyvolání poľadované události.