Thank you. GTA's distance unit is indeed equal to one meter (http://gta.wikia.com/Unit#GTA3.2C_GTAVC_.26_GTASA), I was just not aware of the 1/50 quirk.
The actualspeed variable must still be multiplied by a factor greater than 1 in order to yield a useful value.
However there's no conclusive argument on what exactly is the unit of the getElementVelocity value. On scripts available at the community site, I've seen people multiply it by 100, 160 or even by 200.
Look at the order of the key and keyState parameters (https://wiki.multitheftauto.com/wiki/BindKey), you have to switch them on the calls to bindKey and unbindKey.
Both racepickup and checkpoint elements support the upgrades attribute, where you can define a comma-separated list of vehicle upgrade ids that should be applied when the player's vehicle hits them.
The only catch is that if you have a single upgrade, you should add a dummy value so that it can be parsed as a table.
Thus, if you want to add a nitro upgrade to a checkpoint, you set the attribute as:
<checkpoint upgrades="1010,0" posX="...
You can add more element types to move by editing first line:
local ElementTypes = { "object", "pickup", "marker", "vehicle", "blip", "racepickup", "spawnpoint" }
Here, "racepickup" and "spawnpoint" are used in race maps. If you have maps for other game modes, you'll have to add the element types that those game modes require.