Hmmm… I don’t see any mention of it in the docs, the normalizing that input vector in the bounce call seems to return more expected results…
var new = velocity.bounce(n_velocity.normalized())
Ah, after looking at the source, this IS the problem. And, you should have an error in the Debug window as follows if your vector is NOT normalized:
E 0:00:01.191 reflect: The normal Vector2 must be normalized. <C++ Error> Condition "!p_normal.is_normalized()" is true. Returned: Vector2() <C++ Source> core/math/vector2.cpp:193 @ reflect() <Stack Trace> Main.gd:54 @ _ready()