[HELP] I need an explanation in InterpolateBetween Please in Scripting Posted February 16, 2017 On 2/14/2017 at 08:16, pa3ck said: I see you already found a similar topic and that helped you, but in case you didn't understand interpolation fully, I will explain. So basically it's a function, that increments / decrements gradually between start and endpoints. So if you had 2 camera positions and you wanted to have a nice movement between the 2 positions, you would use interpolation. In theory, it returns a number between -1 and 1 over it's progression. When this curve is over, it will always return 1. Now, in MTA, you can call this function with 3 start and 3 end points and one easing type, which defines the actual curve of progression (take a look at the link in order to better understand them). Although, this "interpolateBetween" function does not remember the progression, it doesn't know whether it's finished, half way through or just started off, that is why you will have couple of variables. getTickCount() is an integer that returns the amount of time your system has been running in milliseconds, so it's unique and can be used to mark different events. For example you can save the starting time with getTickCount and in an event like onClientRender you can compare how many seconds have passed. Thing you will need: Start time: getTickCount() whenever you call the interpolation first Elapsed time: current getTickCount() - start time -> returns elapsed time in milliseconds Duration: how long will it take to reach from start to the end in milliseconds -> probably it won't change Progress: the current state of the interpolation, to get this, use the formula: elapsedTime / duration And you will also need 3 start and 3 end points, as I already said (although, if you need only 1 start and 1 end, just use 0's) To wrap it up, this is how you call interpolateBetween ( remember that you will always want to run it inside render ) local start = getTickCount() function render() local now = getTickCount() local endTime = start + 2000 local elapsedTime = now - start local duration = endTime - start local progress = elapsedTime / duration local posX, posY, posZ = interpolateBetween ( startPosX, startPosY, startPosZ, endPosX, endPosY, endPosZ, progress, "Linear") end addEventHandler("onClientRender", root, render) ohhhh I understand it now, its so simple but it seems hard thank you so much for your reply. finally understood that function hahhaha really you have no idea how long i have been looking for this answer.