1 | Vector 3. new( 1 , 1 , 1 ) + Vector 3. new( 1 , 1 , 0 ) = Vector 3. new( 2 , 2 , 1 ) |
3 | Vector 3. new( 1 , 1 , 1 ) + Vector 2. new( 1 , 5 ) = ! ERROR: incompatible types ! |
5 | CFrame.new( 1 , 1 , 1 ) + CFrame.new( 1 , 1 , 1 ) = ! ERROR: no ! |
7 | CFrame.new( 1 , 1 , 1 ) + Vector 3. new( 1 , 1 , 1 ) = CFrame.new( 2 , 2 , 2 , 0 , 0 , 0 , 0 ) |
list of more possible operations using coordinate frames: http://wiki.roblox.com/index.php/CFrame#Operators
list of more possible operations using vector3s: http://wiki.roblox.com/index.php?title=API:Vector3#Operators
good to know that when using vector3s, or CFrames, roblox measures in "studs", so 1 stud^3 would be a full block
and the annoying part about vector3s is that setting a parts position, "Orientation", or size, it has built in collision detection, so teleporting a part inside of another part is way different from using Part.Position than Part.CFrame