# Flow control

> Find the language constructs for states, conditions, loops, and returning from functions.

Find the language constructs for states, conditions, loops, and returning from functions.

- [default](/controls/default/): All scripts must have a default state, which is the first state entered when the script starts.
- [do](/controls/do/): do / while loop
- [else](/controls/else/): if / else block
- [for](/controls/for/): for loop
- [if](/controls/if/): if / else block
- [jump](/controls/jump/): jump statement
- [print](/controls/print/): Say the given variable to the owner. Only works on 2025 VM.
- [return](/controls/return/): Leave current event or function.
- [state](/controls/state/): state <target>
- [while](/controls/while/): while loop

---

From lsl.dev: https://lsl.dev/controls/
