Set the position / velocity etc. to what it was at the start of that move, then resimulate for all subsequent moves now that they’ve changed. You just call the ‘simulate’ functionality multiple times for the store delta time for that move, until you catch up to the correct timestamp again. You can also invalidate older moves at that point.