You'll want basically just:
Sonic: On collision with Bumper:
-Set Vector X to 420 * cos(angle(Bumper.X, Bumper.Y, Sonic.X, Sonic.Y))
-Set Vector Y to 420 * sin(angle(Bumper.X, Bumper.Y, Sonic.X, Sonic.Y))
The info.sonicretro.org/Sonic_Physics_Guide Sonic Physics Guide, particularly the Springs and Things page, gives some more numbers and info, but you'll want to update most values from pixels per frame to pixels per second.
^ That said, though, I tried it out myself, and I've recreated TheAmazingApple's bug in the process. Unless you're holding down the jump button, it caps your speed to Min Jump Strength. So the above example events currently won't work unless the jump button is being held down.
If you wanted a really hacky workaround, you could simulate jump button under certain conditions to stop the behaviour from limiting the jump, but I realize that's pretty terrible.
This has been a big help for quite a few things on what I'm working with, thanks!
Anybody in this thread experienced with making online games in Construct? My project's aiming to have online co-op with a lot derived from this Sonic Physics behavior. Seems like one of the tougher things could be camera focusing on individual players.