I modified the code so that you can see exactly what my problem is. I removed all of the textures and texture commands so that it will run in your editor.
When you first start, move to the nearest block, press hard against it and then press CTRL to jump. You'll see what I mean by side jumping then.
Here's the code:
Rem set backdrop on/color, camera view, text color and autocam
Set display mode 1024,768,32
Backdrop On : Color backdrop rgb(0,0,0)
Set camera view 0,0,1024,768
ink rgb(0,55,255),0
Sync on : Sync Rate 65
Autocam Off
Rem set ambient light level
Set ambient light 85
Color ambient light rgb(255,255,255)
Rem decalre variables
Gems = 0 : GL = 25 : Score = 0
Rem make sky
Make object Sphere 1000,-5300
Set object 1000,1,1,1
Rem make character sphere
Make object sphere 1,1 : Position object 1,0,10,0
set object collision on 1
make object collision box 1,-.5,-.5,-.5,.5,.5,.5,0
Rem create platforms for sphere to walk on
Make object box 10,5,5,5 : Position object 10,0,0,0 : Set object 10,1,1,1
Set object collision on 10 : Make object collision box 10,-2.5,-2.5,-2.5,2.5,2.5,2.5,0
Make object box 12,5,5,5 : Position object 12,5,5,0 : Set object 12,1,1,1
Set object collision on 12 : Make object collision box 12,-2.5,-2.5,-2.5,2.5,2.5,2.5,0
Make object box 14,5,5,5 : Position object 14,0,5,5 : set object 14,1,1,1
Set object collision on 14 : Make object collision box 14,-2.5,-2.5,-2.5,2.5,2.5,2.5,0
Make object box 16,5,5,5 : Position object 16,5,10,5 : Set object 16,1,1,1
Set object collision on 16 : Make object collision box 16,-2.5,-2.5,-2.5,2.5,2.5,2.5,0
Make object box 18,5,5,5 : Position object 18,10,10,0 : Set object 18,1,1,1
Set object collision on 18 : Make object collision box 18,-2.5,-2.5,-2.5,2.5,2.5,2.5,0
Make object box 20,5,5,5 : Position object 20,0,10,10 : Set object 20,1,1,1
Set object collision on 20 : Make object collision box 20,-2.5,-2.5,-2.5,2.5,2.5,2.5,0
Rem make box to detect death
Make object box 2000, 5000,12,5000 : Position object 2000,0,-40,0 : hide object 2000
Rem load jewels and construct counterparts to act as 'gem'
Make object plain 500,2,2 : Ghost object on 500 : Position object 500,5,9,0
Make object collision box 500,2.5,2.5,2.5,-2.5,-2.5,-2.5,1
Make object box 600,.5,1,.5 : Position object 600,5,9,0 : Hide object 600
Make object plain 501,2,2 : Ghost object on 501 : Position object 501,0,9,5
Make object collision box 501,2.5,2.5,2.5,-2.5,-2.5,-2.5,1
Make object box 601,.5,1,.5 : Position object 601,0,9,5 : Hide object 601
Rem main loop...
Do
text 500,20,"SCORE: "+STR$(Score)
`Rotate sky
yrotate object 1000,wrapvalue(object angle y(1000)-0.02)
`Death becomes you
If object collision(1,2000) then sleep 1000 : Position object 1,0,10,0 : Score = Score-25
`Rotate jewels
yrotate object 500,wrapvalue(object angle y(500)-4)
yrotate object 501,wrapvalue(object angle y(501)-4)
`Collect 'jewels'
if object collision(1,600) then delete object 600 : hide object 500 : Gems = Gems+1 : GL = GL-1 : Score = Score+100
if object collision(1,601) then delete object 601 : hide object 501 : Gems = Gems+1 : GL = GL-1 : Score = Score+100
`store old positions
oldposx#=object position x(1) : oldposy#=object position y(1) : oldposz#=object position z(1)
`controls
if upkey()=1 then move object 1,0.23
if downkey()=1 then move object 1,-0.23
if leftkey()=1 then yrotate object 1,wrapvalue(object angle y(1)-1.5)
if rightkey()=1 then yrotate object 1,wrapvalue(object angle y(1)+1.5)
if controlkey()=1 and playergrav#=0 then playergrav#=0.35
if returnkey()=1 then sleep 500 : Suspend for key
if spacekey()=1 then center Text 500,710,"GOAL: Kill all enemies and collect all Gems in order to proceed." else text 0,0,""
if mouseclick()=1 then center text 500,710,"FPS: "+STR$( screen fps() ) else text 0,0,""
`get current object position
posx#=object position x(1)
posy#=object position y(1)
posz#=object position z(1)
`gravity
playergrav#=playergrav#-0.01
posy#=posy#+playergrav#
`sliding collision
position object 1,posx#,posy#,posz#
if object collision(1,0)>0
dec posx#,get object collision x()
dec posy#,get object collision y()
dec posz#,get object collision z()
playergrav#=-0.0
endif
`set size for controlled object
s#=object size y(1)/2.0
`update with new object position
position object 1,posx#,posy#,posz#
`camera
angle#=object angle y(1)
camdist#=10.5 : camhigh#=posy#+2.5 : camfade#=12.5
set camera to follow posx#,posy#,posz#,angle#,camdist#,camhigh#,camfade#,1
xrotate camera 10
`end loop
sync
loop
