I used a slightly more advanced setup for core patrol
There was a german guy who posted a battle fight script
this is the cut down version I have
You may find this an alternative to a raw setup like u have there.
rem unknown coder for battlefight from memory it was a german guy :)
hide mouse
sync on
sync rate 0
make object cube 1,10
make matrix 1,2000,2000,20,20
position matrix 1,0.0,0.0,0.0
thruststep#=0.07
turnstep#=5.0
friction#=0.97
x#=500
z#=500
position camera 0,100,0
point camera 0,0,0
camdistance=80
ycam#=20
smoothspeed#=30.0
do
if rightkey()=1 then an#=an#+turnstep#
if leftkey()=1 then an#=an#-turnstep#
an#=wrapvalue(an#)
if upkey()=1 then thrust#=friction#-thrust#+thruststep#
thrust#=thrust#*0.9
if downkey()=1 then thrust#=thrust#-thruststep#
thrust#=thrust#*0.9
if inkey$()="1" then ycam# = ycam# -1
if inkey$()="2" then ycam# = ycam# +1
if ycam# <0 then ycam# = 0
if inkey$()="3" then camdistance = camdistance-2
if inkey$()="4" then camdistance = camdistance+2
if camdistance <0 then camdistance = 0
xvel#=xvel#+(sin(an#)*thrust#)
zvel#=zvel#+(cos(an#)*thrust#)
xvel#=xvel#*friction#
zvel#=zvel#*friction#
x#=x#+xvel#
z#=z#+zvel#
yrotate object 1,an#
position object 1,x#,y#,z#
xcam#=newxvalue(x#,wrapvalue(an#+180),camdistance)
zcam#=newzvalue(z#,wrapvalue(an#+180),camdistance)
smoothxcam#=curvevalue(xcam#,camera position x(),smoothspeed#)
smoothzcam#=curvevalue(zcam#,camera position z(),smoothspeed#)
smoothycam#=curvevalue(ycam#,camera position y(),smoothspeed#)
position camera smoothxcam#,smoothycam#,smoothzcam#
point camera x#,0,z#
sync
loop
indi is part of Team Lunarpixel
multimedia logisitics and interactive media