I use the brick checking way. Let's say, for example, I cut down a tree. It would add experience and later check if my experience matched the set/max EXP. 5 will be the beginning of the event. Let's use 100 as the max for example.
After going through chopping down the tree and successfully adding variables, you should do:
5 OnVariableTrue > Player/Client > IfVariable > [expvariable] >= 100 [6 7]
6 OnVariableTrue > Player/Client > Modvariable > [expvariable] SUBTRACT [100]
7 OnVariableTrue > Player/Client > Modvariable > [lvlvariable] ADD [1]
Event 5 will be targeting the range of events 6 to 7 to prevent interference with the other variables.