Typically motion is done utilizing dt so it runs the same speed regardless of the framerate.
So say you pc's screen updates at 60hz, you could make an object go 100 pixels in a second with:
set x to self.x+100*1/60
but if someone has a screen that runs at 120hz the object will move twice as fast with that.
It is corrected by utilizing dt. This will move the object 100 pixels in one second no matter the framerate:
set x to self.x+100*dt
Now, all the motion behaviors utilize dt for you so everything should run the same speed regardless. Although there is no built in z axis motion behaviors so you'd have to look into how you're doing that and see if dt is utilized.
As a side note, parabolic motion (like a jump or an object being thrown and falling with gravity) could be done with:
var gravity=500
add gravity*dt to velocityZ
set z to self.z + self.velocityZ*dt
However, that's just an approximation and can cause the utimate jump height to vary a bit at different refresh rates. It can be made more accurate like this.
set z to self.z + self.velocityZ*dt + 0.5*gravity*dt*dt
add gravity*dt to velocityZ
Construct 3 already does that with the platform and bullet behaviors with it's gravity, but it may be useful if making the motion with events.