I agree with Ashley that its better to use the advanced features of the behaviour... My own personal solution is:
If CanJump = true, then
If "Jump" is pressed, then set Y vector to "-JumpStrength" (as mentioned
this does not allow for JumpSustain as it currently works)
If "Jump" is released & Y vector < 0, then set Y vector to "Y vector * 0.25"
(this essentially kills the jump but still allows the movement arc to feel
natural)
For coyoteTime:
If OnGround = true, then set "Coyote Timer" to 1 (or whatever duration you prefer)
Else set "Coyote Timer" to "Coyote Timer - dt"
If "Coyote Timer" > 0, then CanJump = true
Else CanJump = false
So basically I check the conditions for CanJump, ie: IsOnGround, JumpCounter is less than JumpMax, CoyoteTimer > 0, etc, and then execute my jump with Set Y Vector, and do my own Sustain method. Honestly, for my purposes it works flawlessly, and to be fair, Construct 3 is intended to be accessible for beginners to help them learn to become more advanced... I honestly think adding the DoubleJump to the platform behaviour was overkill, as it was also easily done in events...
Btw, I only use events, I have 0 code writing ability beyond doing some simple equations inside of event value fields... so like testing basic conditions and doing basic math instead of entering hard values into a given field...
Hope this might help, cheers!