For some reason, my while loop only loops once. Here's the script:
while wait(waveIntermission) and waveStarted == false do
if startWaveEvent and waveStarted == false then
startWaveEvent:Fire()
print("Wave has started")
waveStarted = true
end
end
waveStarted variable is always false after the wave has ended, I've checked it.

3 comments
maybe the wait(waveIntermission)
You can have multiple conditions. Yes. Don't use wait() as one though.
Obviously it's not re-looping because on the wait you're checking if the waveStarted is true, at the end of your code you set waveStarted true, meaning it won't re-loop until waveStarted is false .