This is all of my code. What it should be doing is essentially inverting the x and z movement of the specified player, instead what it does is just keep me trapped at (0 X, Y can still change ,0 Z). If I activate it anywhere else I just get teleported to (0,0). My guess is that it's something in the onMove() since I was not able to test the velocity part, unless jumping counts as a velocity. Please help, I have been confused for so long now. Edit: Just saying. It is probably really badly done and badly optimised but I also don't need it to be too optimised since the most it's ever going to be running on is 3 people on a relatively hefty server. Edit 2: Read common mistakes post. Shouldn't store players. Will try.