Hi,
It depends what you want to achieve. I would say you need to make it visually / mechanically distinct. So, you know the "stamina" part works, but you haven't revealed what is NOT working. I assume you just haven't managed to change the "speed" of your sprite with the platform behaviour. What have you tried? (post a screenshot of your logic)
I would be tempted to disable player input as soon as the "Boost" happens (triggering a timer) and then speed the player up, remove gravity and deceleration, and then re-enable them afterwards when the timer expires.. Perhaps something like this:
You will need the "Timer" behaviour on your Player object for this, and a new instance variable of type text called "Boosting", with default value "0".
Player.Boosting = "0" # Can't be run unless Player.Boosting is set to "0"
Event - "Q" is pressed
Set Group Active - "Movement" - disabled. # Disable your player movement group.
Start Timer for 1 second with tag "boost" # The duration of the boost.
Set Maximum Speed = 3x your normal speed
Set Gravity = 0
Set Deceleration = 0
Set Player.Boosting = "Left"
Set Player.Animation = "Cool.Boost.Animation"
Event - "E" is pressed
Set Group Active - "Movement" - disabled. # Disable your player movement group.
Start Timer for 1 second with tag "boost" # The duration of the boost.
Set Maximum Speed = 3x your normal speed
Set Gravity = 0
Set Deceleration = 0
Set Player.Boosting = "Right"
Set Player.Animation = "Cool.Boost.Animation"
Player.Boosting =/= "0" # When Player.Boosting is not "0" it simulates movement left or right.
Every Tick
Player.Boosting = "Left"
Simulate Platform Movement "Left"
Player.Boosting = "Right"
Simulate Platform Movement "Right"
Player.On Timer "Boost"
Set Group Active - "Movement" - enabled. # Re-enable player's movement group.
Set Player.Boosting = "0"
Set Maximum Speed = Default # what it was before the boost!
Set Gravity = Default
Set Deceleration = Default
Set Player.Animation = "Default"
I can do a mockup if you need it. Let me know if this helps!