TorqueScript is correct and you really can only compare it to C-like languages because of how awkwardly stuffty it is sometimes.
So, you're trying to set the velocity of an object. You'd think a function like that would take something like three ints, three floats, or a vector3 of some sort.
Wrong! It takes a string!
findclientbyname(Kaphonaits).player.addVelocity("0 0 200");
Thinking about traditional types in Torquescript is bad
Even an integer is a string
If you don't use anything that isn't alphanumeric you don't need to use quotes but it's still a string
So thinking of static types in Torquescript means you're thinking of it wrong
What you should be doing is thinking about string formats
.+ - String
\d+ - Integer (but also a string)
\d+\.\d+ - Float (but also a string)
\d+ \d+ - Vector2 (but also a string)
\d+ \d+ \d+ - Vector3 (but also a string)
If you try to call a method on a string it tries to resolve the string to an object - if it's entirely numeric, it tries as an object ID, then it tries as an object name.
In addition, trivia:
false and true, if unquoted, are 0 and 1, not "false" and "true". "true" as an explicit string is false.
A string like "24 slaves in the field" if used as a number will be 24, not 0, as anything before the first non-numeric character of the string is treated as a number (it doesn't validate the whole string to see if it actually is a number - really this means you can match a Torquescript integer as \d+.*)