Hello Jazz
I just came back from holidays ! Pff, I'm so glad to be back on the forum !!! I can see that there have been great and awesome improvements to GE ! Just CRAZY

GREAT JOB Maxslane ! Hi Rachel. How are you going ?
Well, maybe I should start to be more helpful (and less talkative) here
Maybe I can help you, Jazz, for platform game is what I do the most.
- To make actor jump only when on platform :
Let's say that on collision with ground, actor has a yvelocity of 0.
Put a condition on KeyDown[Up],
if ( yvelocity == 0 )
{
make actor jump ; // your code to make actor jump
}
In other hand, if your actor takes a Physical Response Action on collision with ground, you can create a variable "jump".
onCollision with ground, jump == 1 ;
onCollisionFinish, jump == 0 ;
on KeyDown[Up],
if ( jump == 1 )
{
make actor jump ;
}
Those will be the only conditions for your actor to jump. I hope that I was clear enough in my explanation.
- When jumping, accellerates left or right at slower speed than when on platform :
Then you could use the conditions told above to tell your actor to have a slower left or right move while he is jumping.
onKeyDown[LEFT or RIGHT] > Script :
if ( jump == 0 )
{
slower x-move;
}
- Slows down when on surface of platforms using the platforms friction variable :
Do you mean that whenever your actor is walking and then stops, he slides a little bit on the platform before he stops completely ? As if he's walking on ice ?
If this is the case, then you could do this :
onKeyUp[LEFT or RIGHT], x-- ; // actor will slow down when your finger is no more on the Left/Rigth key
if ( x == 0 ), x = 0 ; // actor will stop
It might work ... maybe.
- Responds to a global gravity variable :
What do you mean by global gravity "VARIABLE" ?
Lands neatly, while maintaining momentum, on tops of platforms.
Bounces off bottoms and sides of platforms
Can you explain

Cheers