OK. I learned some good lessons in the last couple of weeks. Please have a try of the latest update - either here or via the updated link in the first post.
This version was created with a completely different collision filtering philosophy and, I have to say, I am very pleased with the results! It also includes an edge behavior function, so you can decide if the player should move back from an edge, move forward, etc.
Performance at idle is not as good as the standard platform plugin, but once you get moving then there's not much in it (< 0.25 ms total time spent for each plugin). The standard plugin was modified for this demo so that the script time could be measured. This means you can compare how much work each plugin is doing at any particular time.
Of note, in my system both plugins occasionally spike at taking more than 1 ms to do their calculations.... and the standard plugin decelerates more quickly (by design) when a move is commanded for the opposite direction of travel.
So, the following are now working:
Triggers:
On jump
On fall
On land
On move
On stop
On wall
Conditions:
Is on floor
Is jumping
Is falling
Is on wall (pick a side)
Is edge behavior moving away from edge
Is edge behavior moving toward an edge
Is passing through a one-way door
Is passing over a one-way floor
I've got do do some more code-tidying, and then add some actions and conditions to the helper plugin (Solid2) that is added to objects with the standard Solid behavior. More info to follow...