3) Make something collide with the grey box very fast. For example a spinning circle with 4 smaller circles on the edges so when the big circle is spinning very fast the small ones collide with the grey box.
4)
Make the colliding pieces collide with collision group B
that's a cool idea.
maybe for some things it would also be interesting to spawn the hinges in the direction of the mouse movement. so for example an arrow that's following the mouse position adjusts its direction according to the movement.
yeah you can set everything up to +inf values. +inf friction is sometimes also very useful but not realistic.
I know the circles stick to the position where they collide with something but that's no problem. you could also make them stick only after they had a few collisions.
it is possible to access the loop count that's no problem. you haven't got any limits. i once made a for function with 5000 loops but it lags like hell.
but by the way you don't need a for function to get all vectors. just add the arrays together like scene.my.my4 = scene.my.my4 ++ [[e.pos]] in your spinning laser's onlaserhit. this way everything else is redundant and you already have got every vector compiled in scene.my.my4.
the only thing you have to do is to spawn the polygon with surfaces := scene.my.my4 and that's it.
that's what i meant with you made a lot of hard work and used the eval and for function which wasn't necessary.