| I still get the same error 
 
 Graphics 800, 600
Type ball
	Field x#, y#
	Field v#[2]
	Field ent
	Field num
	Field link[2]
	Field linkLen[2]
	Field fixed
End Type
;pendulum balls
b2.ball = New ball ;ball #1
b2\x = 400 ;x pos
b2\y = 300 ;y pos
b2\v[1] = 0 ;initial x velocity
b2\v[2] = 0 ;initial y velocity
b2\num = 1 ;ID
b2\link[0] = 1 ;number of links
b2\link[1] = 2 ;what it is linked to
b2\linkLen[1] = 50 ;length of link
b2\fixed = 1 ;fixed or not
b.ball = New ball ;ball #2
b\x = 450
b\y = 250
b\v[1] = 0
b\v[2] = 0
b\num = 2
b\link[0] = 1
b\link[1] = 1
b\linkLen[1] = 50
b\fixed = 0
b3.ball = New ball ;ball #3
b3\x = 550
b3\y = 300
b3\v[1] = 0
b3\v[2] = 0
b3\num = 3
b3\link[0] = 1
b3\link[1] = 1
b3\linkLen[1] = 60
b3\fixed = 0
Global g#[2]
g[1] = 0
g[2] = 2
Local f#[2]
Global f2#[2]
Global v#[2]
Local f3#[2]
While Not KeyHit(1)
;	Cls
	For b.ball = Each ball
	
		If b\fixed <> 1
		
			For i = 1 To b\link[0]
		
				For b2.ball = Each ball
				
					If b2 <> b And b2\num = b\link[i]
		
						dx# = b\x - b2\x
						dy# = b\y - b2\y
						d# = Sqr#(dx*dx + dy*dy)
						
						diff# = b\linkLen[i]/d
						
						f[1] = ((dx*diff+b2\x) - b\x)*2
						f[2] = ((dy*diff+b2\y) - b\y)*2
						
;						Text 0, 20*b\num, f[1] + ":" + f[2]
						
						v[1] = b\v[1] + g[1]
						v[2] = b\v[2] + g[2]
						
						vectorProj(f3) ;projection of v onto f
						
						Color 255, 0, 0
				;		Line b\x, b\y, b\x + b\v[1]*10, b\y + b\v[2]*10
						
						Color 0, 255, 0
				;		Line b\x, b\y, b\x + f2[1]*10, b\y + f2[2]*10
						
						Color 0, 0, 255
				;		Line 400, 300, b\x, b\y
				
						b\v[1] = v[1] - f2[1]*1.5
						b\v[2] = v[2] - f2[2]*1.5
						
						Color 255, 0, 255
						Line b\x, b\y, b\x + b\v[1]*10, b\y + b\v[2]*10
						
						Color 255, 255, 255
						
;						DebugLog (f[1]*b\v[1]+f[2]*b\v[2])
;						DebugLog ""
						
					EndIf
					
				Next
			
			Next
		
		EndIf
		
	Next
		
	For b.ball = Each ball
					
		b\x = b\x + b\v[1]
		b\y = b\y + b\v[2]
		Color 255, 255, 0
		Oval b\x-5, b\y-5, 10, 10, 1
	
	Next
	
;	Flip
	
	Delay 100
	
Wend
End
;function
Function vectorProj(f[2])
	dot# = f[1]*v[1] + f[2]*v[2]
	lenF# = f[1]*f[1] + f[2]*f[2]
	scalar# = dot/lenF
	
;	DebugLog dot
;	DebugLog lenF
;	DebugLog ""
	
	f2[1] = f[1] * scalar
	f2[2] = f[2] * scalar
	
End Function 
 the code as it stands right now...
 
 
 |