i had a problem like this with moving platforms rising up: i just a collission box check to see if the char was within the areas to collide, and removed gravity if it reterned true, while simultaneously moving the char the same as the platform:i used this to check the box collission area:
Function entCubeLaps(entity1,rad#,ax#,ay#,az#,havwidth#,havlen#=0,havheight#=0);checks sphere for intersection with cube If Not havlen havlen=havwidth If Not havheight havheight=havwidth Local piv%=CreatePivot():PositionEntity piv,EntityX(entity1),EntityY(entity1),EntityZ(entity1) ;point it towrads 'box', and move it towards it by the suggested Radius entity2=CreatePivot():PositionEntity entity2,ax,ay,az PointEntity piv,entity2:MoveEntity piv,0,0,rad#:FreeEntity entity2 Local bx#=EntityX(piv),by#=EntityY(piv),bz#=EntityZ(piv) FreeEntity piv ;final condition If (bx>=ax-havwidth# And bx=<ax+havwidth#) And (by>=ay-havheight# And by<=ay+havheight#) And (bz>=az-havlen# And bz<=az+havlen#) Return True Return False End Function