Quote Originally Posted by maroxy View Post
That makes sense.

Anyways if you are thinking of that use just a "break", cause you are executing function over function and maybe it can cause a memory leak. (Not sure about this )
Read about functions. ( im not aggressive saying that )
Explain :
1. return statement is breaking loop. Here it breaks the function and executes once more itself(if moved any item).
2. it only return new loop ( self ) if found and moved item. So if it will not find any item then it wont loop itself.
Also the module there is just useless ( better to just execute function at label or something like that ), i used here Module to show how it works.