For some reason the repeat works once.
while true do wait () if ismove == false then --"ismove" is a Tool.Enabled setting StartUp() end end
Your loop won't repeat, as you're checking for a variable, and then activating a function. Just as the loop name implies, "while TRUE do" will only check for a true, but once it gets a false, it'll break itself to avoid unnecessary memory usage.
If you want it to work, then change the "while true do" to something like "while wait() do", and then remove the second wait.
Another error you have is that the wait() method MUSt have its parenthesis attached to it (without any spaces), not like you did in your script.
Hope this helps!
you could do
while not ismove do -- will check if ismove = false wait () StartUp() end