My experience of Box2d (which I use in my game) is that it really isn’t good for producing repeatable events; I am guessing there is some randomness built-in (possibly to cater for things like a triangle landing exactly on its point).

Also rounding differences across machines make slight differences,

So - if you apply a force to make your player jump from left to right, in my experience they will end at almost exactly the same location each time - but *not exactly* the same location.

Let’s assume that “very nearly” is close enough to “exactly” for your purposes.

Now - your problem, I think, is that you need to calculate the force magnitude and angle required to send your player the required distance. Maths is your friend…

I am assuming you want the most efficient jump and there is no air resistance.

d = v^2 / g

where d is the distance you want to travel, v is the velocity and g is gravity.

Well you know d and g, so the velocity you want is given by

v = sqrt(d * g)

The angle for the most efficient jump is 45 degrees

the easy thing to do would be to set the velocity to v at 45 degrees, rather than applying the impulse to give that velocity - but the impulse is simply the mass of your body x the velocity - so it should be reasonably easy.