So what I'm trying to achieve is a player-controlled block through the input of WASD or the Up Down Left Right keys.
The script works correctly, the value sent during the remote event gets sent correctly, I tested it with the debugger and the value (Vector3Value) reaches the
workspace.ControlledBlock.Block.VectorForce.Force = Vector3Value
Yes, the Vector3Value is (Vector3.new(0,0,-7000)) which is what I want. However, the
workspace.ControlledBlock.Block.VectorForce.Force
remains Vector3.new(0,0,0). Thus, "Block" does not move.
The script shows no error, it flows smooth as silk.
Just the property VectorForce.Force doesn't change.
Why is that? Is it because it can't be changed through a script?
If so, what other choices do I have If I want to avoid CFrame? (because I don't know how to script the collision with other parts using CFrame plus using CFrame confuses me)

5 comments
You might have to make the other block the force, too.
If it's a localscript then it might not change if the block wasn't created through a localscript, but that's all I know so far.
Is the "Block" archored? That is the only question I can ask right now.