this is simple there is nothing wrong with you code it is just that
1. loops go extremely fast and it wouls seem like it is going down to the last.
2. also darkbasic reads code iine by line so after the first line becomes true your second becomes true because youve incresed the veriables to make it true and so on
here is a code that will work.
what it does is once the downkey is pressed it sets variables to check if it has gone through the code once so you have to let go of the downkey for it to be able to restart.
sync rate 25
color1=255:color2=0:color3=0:color4=0:color5=0
do
ink RGB(255,0,0),0:set text size 35:Set Cursor 180,0:Print "Space Shoot-OUT!"
ink RGB(0,color1,255),0:set text size 20:set cursor 0,50:Print "All Levels"
ink RGB(0,color2,255),0:set cursor 0,70:Print "Level 1"
ink RGB(0,color3,255),0:set cursor 0,90:Print "Level 2"
ink RGB(0,color4,255),0:set cursor 0,110:Print "Level 3"
ink RGB(0,color5,255),0:set cursor 0,130:Print "Level 4"
if downkey()=1 and decolor=0:decolor=1:endif
if decolor=1 and decng=0 and color1=255
color1=0
color2=255
decng=1
endif
if decolor=1 and decng=0 and color2=255
color2=0
color3=255
decng=1
endif
if decolor=1 and decng=0 and color3=255
color3=0
color4=255
decng=1
endif
if decolor=1 and decng=0 and color4=255
color4=0
color5=255
decng=1
endif
if upkey()=1 and incolor=0:incolor=1:endif
if incolor=1 and incng=0 and color5=255
color5=0
color4=255
incng=1
endif
if incolor=1 and incng=0 and color4=255
color4=0
color3=255
incng=1
endif
if incolor=1 and incng=0 and color3=255
color3=0
color2=255
incng=1
endif
if incolor=1 and incng=0 and color2=255
color2=0
color1=255
incng=1
endif
if upkey()=0:incolor=0:incng=0:endif
if downkey()=0:decolor=0:decng=0:endif
sync
loop