your problem is that you only move the bullet object by 5 when you fire the bullet, as you reset the variable Fire to 0 after one loop. this is why your bullet doesn't appear to be moving. To get around this problem, people often use 'life' variables, so the bullet moves for a certain number of loops, and then resets fire when the life is at an end. Here is an example using your code, but it might be a good idea to use an array and have several bullet objects, as at the moment you can only fire one bullet at a time.
REM Project: FPS
REM Created: 08-01-2005 18:34:42
REM
REM ***** Main Source File *****
REM
`REM frame settings
SYNC ON
sync rate 60
set ambient light 100
hide mouse
` make the player and variables
make object box 3,10,10,10
hide object 3
playerx#=-140
playery#=130
playerz#=0
`REM load media
load object "media/colt/h-colt-static.3ds",1
load object "media/maps/lab level one.x",2
load sound "media/sounds/runtaur.wav",1
load sound "media/sounds/hit window.wav",2
load sound "media/sounds/brainsucker.wav",3
load sound "media/sounds/mud slow.wav",4
load sound "media/sounds/gun 2.wav", 5
load sound "media/sounds/cable.wav", 6
load sound "media/sounds/wood 2 slow.wav",7
REM position map and lightmap
position object 2,0,0,0
rotate object 2,0,180,0
REM scale the gun.
scale object 1,1300,1300,1300
REM make the crosshair and bullet
make object sphere 4,5
scale object 4,1,1,1
color object 4, rgb(200,0,0)
make object plain 5,1,1
REM the intro loop
do
REM position gun, player and camera
position object 3, playerx#,playery#,playerz#
position object 1, playerx#+1,playery#-2,playerz#+2
position camera playerx#,playery#,playerz#
REM make the controls
if inkey$()="w"
inc playerz#,3.5
endif
REM play "cutscene" when the player walks through the door
if playerz#>440 and playerz#=playerz# then gosub crash
sync
loop
REM ambient lights and alien sounds
crash:
set ambient light 90
loop sound 6
sleep 200
sync
set ambient light 80
sleep 200
sync
set ambient light 70
sleep 200
sync
set ambient light 60
sleep 200
sync
set ambient light 50
sleep 200
sync
set ambient light 40
sleep 200
sync
set ambient light 30
sleep 200
sync
set ambient light 20
sleep 200
sync
set ambient light 10
sleep 200
sync
set ambient light 0
sleep 200
sync
fog on
fog color rgb(30,30,30)
fog distance 500
set ambient light -100
stop sound 6
sync
sleep 1500
play sound 2
sleep 1200
loop sound 4
sleep 2000
stop sound 4
play sound 3
sleep 3000
loop sound 4
sleep 3000
stop sound 4
play sound 6
set ambient light 100
REM player variable update
playerx#=0
playery#=0
playerz#=0
REM set the bullet speed variable
bulletspeed# = 1
bulletx#=1.5
bullety#=1.5
bulletz#=3
REM The second loop
do
REM if mouseclick then fire the bullet
if mouseclick()=1
Set Object to Camera Orientation 5
Position Object 5,Camera Position X(),Camera Position Y(),Camera Position Z()+5
show object 5
play sound 5
fire=1
`this is the counter or life variable
BulletLife=50
endif
if fire=1
move object 5,5
`this decreases the counter or life variable
dec BulletLife
endif
`reset fire if life=0
if Bullet Life<=0 then fire=0
REM position the crosshair
position object 4, playerx#+1.5,playery#-1.5,playerz#+25
lock object on 4
REM position the player
position object 1, playerX#+1.5,playery#-1.5,playerz#+3
lock object on 1
REM
disable object zdepth 1
REM rotate camera when you move the mouse
rotate camera camera angle x(0)+(mousemovey()/2.0), camera angle y(0)+(mousemovex()/2.0),0
sync
loop
Hope this Helps.
Part of solving the problem is actually noticing that the problem is there in the first place