Internal commands list - VVVVVV internal commands Welcome, Guest. Please login or register.
Color coding:
  • Normal - Should be safe, worst case scenario is VVVVVV crashing because you made a mistake.
  • Blue - Designed for the main game, might be not or less suitable for custom levels.
  • Orange - These work and nothing will go wrong normally, but when run in VVVVVV 2.2 or below with certain specific arguments, it's possible to cause loss of main game save data with this command.
  • Red - When run in VVVVVV 2.2 or below, will either unlock certain parts of the main game (which you shouldn't want a custom level to do, even if you say everyone has already completed the game), or corrupt the save data altogether. Do not use.
  • Pink - This command (or this variant of a command) only exists in VVVVVV: Community Edition, not in VVVVVV.

Show commands for: [VVVVVV] VVVVVV-CE

activateteleporter()
If there's a teleporter in the room, it will start flashing random colors and touching it won't destroy save data. Only targets the first-spawned teleporter.
activeteleporter()
Makes the teleporter in the room white, but touching it will still annihilate your save data. Only targets the first-spawned teleporter.
alarmoff
Turns the alarm off
alarmon
Turns the alarm on
altstates(state)
Changes the layout of some rooms, like the trinket room in the ship before and after the explosion, and the secret lab entrance (custom levels don't support altstates at all)
backgroundtext
If you put this command on the line above speak or speak_active, the game will not wait until you press action after creating the text box. This can be used to create multiple text boxes at the same time.
befadein()
Instantly fade in from fadeout()
blackon()
Back to normal from blackout()
blackout()
Make the screen black/freezes the screen
bluecontrol
Start a conversation with Victoria just like when you meet her in the main game and press ENTER. Also creates an activity zone afterwards.
changeai(crewmate, ai1, ai2)
Can change the face direction of a crewmate or the walking behaviour
crewmate - cyan/player/blue/red/yellow/green/purple
ai1 - followplayer/followpurple/followyellow/followred/followgreen/followblue/faceplayer/panic/faceleft/faceright/followposition,ai2
ai2 - required if followposition is used for ai1
changecolour(a, b)
Changes the color of a crewmate (note: this only works with crewmates who have been created using the createcrewman command)
a - Color of crewmate to change cyan/player/blue/red/yellow/green/purple
b - Color to change to
changecustommood(color, mood)
Changes the mood of a crewmate (works for rescuable crewmates)
color - cyan/player/blue/red/yellow/green/purple
mood - 0 for happy, 1 for sad
changedir(color, direction)
Just like changeai(color,faceleft/faceright), this changes face direction.
color - cyan/player/blue/red/yellow/green/purple
direction - 0 is left, 1 is right
changegravity(crewmate)
Increase the sprite number of the given crewmate by 12.
crewmate - Color of crewmate to change cyan/player/blue/red/yellow/green/purple
changemood(color, mood)
Changes the mood of the player or a crewmate created with createcrewman()
color - cyan/player/blue/red/yellow/green/purple
mood - 0 for happy, 1 for sad
changeplayercolour(color)
Changes the player's color
color - cyan/player/blue/red/yellow/green/purple/teleporter
changetile(color, tile)
Changes the tile of a crewmate (you can change it to any sprite in sprites.png, and it only works for crewmates created with createcrewman)
color - cyan/player/blue/red/yellow/green/purple/gray
tile - Tile number
clearteleportscript()
Clears the teleporter script set with teleportscript(x)
companion(x)
Makes the specified crewmate a companion (as far as I remember, this also depends on on the location on the map)
createactivityzone(color)
Creates an activity zone at the specified crewmate (or the player, if the crewmate doesn't exist) which says "Press ACTION to talk to (crewmate)"
createcrewman(x, y, color, mood, ai1, ai2)
Creates a crewmate (not rescuable)
mood - 0 for happy, 1 for sad
ai1 - followplayer/followpurple/followyellow/followred/followgreen/followblue/faceplayer/panic/faceleft/faceright/followposition,ai2
ai2 - required if followposition is used for ai1
createentity(x, y, n, meta1, meta2)
Creates an entity, check the lists reference for entity numbers
n - The entity number
createlastrescued()
Creates the last rescued crewmate at hardcoded position 200,153. The last rescued crewmate is based on the Level Complete gamestate.
createrescuedcrew()
Creates all rescued crewmates
customifflag(n, script)
Same as ifflag(n,script) in simplified scripting
customiftrinkets(n, script)
Same as iftrinkets(n,script) in simplified scripting
customiftrinketsless(n, script)
Same as iftrinketsless(n,script) in simplified scripting
custommap(on/off)
The internal variant of the map command
customposition(type, above/below)
Overrides the x,y of the text command and thus sets the position of the text box, but for crewmates, rescuable crewmates are used to position against, instead of createcrewman crewmates.
type - center/centerx/centery, or a color name cyan/player/blue/red/yellow/green/purple (rescuable)
above/below - Only used if type is a color name
cutscene()
Makes cutscene bars appear
delay(n)
Same behavior as simplified command
destroy(thing)
Same behavior as simplified command
thing - gravitylines/warptokens/platforms
do(n)
Starts a loop block which will repeat n times. End the block with the loop command.
endcutscene()
Makes cutscene bars disappear
endtext
Makes a text box disappear (fade out)
endtextfast
Makes a text box disappear immediately (without fading out)
entersecretlab
Turns on Secret Lab mode.

2.2 AND BELOW: Actually unlocks the Secret Lab, which is probably an unwanted effect for a custom level to have.
everybodysad()
Makes everybody sad (only for crewmates created with createcrewman and the player)
face(a, b)
Makes the face of crewmate a point to crewmate b (only works with crewmates created with createcrewman)
a - cyan/player/blue/red/yellow/green/purple/gray
b - same
fadein()
Fades back
fadeout()
Fades the screen to black
finalmode(x, y)
Teleports you to Outside Dimension VVVVVV, (46,54) is the initial room of the Final Level
flag(n, on/off)
Same behavior as simplified command
flash(n)
Makes the screen white, you can change the time how long the screen should stay white (just flash won't work, you have to use flash(5) in combination with playef(9) and shake(20) if you want a normal flash)
n - The amount of frames. 30 frames is almost one second.
flip
Make the player flip
flipgravity(color)
Flips the gravity of a certain crewmate. It won't work on the player, and it cannot unflip crewmates.
color - cyan/player/blue/red/yellow/green/purple
flipme
Correct vertical positioning of multiple text boxes in flip mode
foundlab
Plays sound effect 3, shows text box with "Congratulations! You have found the secret lab!" Does not endtext, also has no further unwanted effects.
foundlab2
Displays the second text box you see after discovering the secret lab. Also does not endtext, and also does not have any further unwanted effects.
foundtrinket(x)
Makes a trinket found
x - Number of the trinket
gamemode(x)
teleporter to show the map, game to hide it (shows teleporters of the main game)
x - teleporter/game
gamestate(x)
Change the gamestate to the specified state number
gotoposition(x, y, f)
Change Viridian's position to x,y in this room, and f is whether you're flipped or not. (1 for flipped, 0 for not flipped)
f - 1 for flipped, 0 for not flipped. WARNING: Do not leave this unspecified, or else you could softlock the game!
gotoroom(x, y)
Change the current room to x,y, where x and y start at 0.
x - Room x coordinate, starting at 0
y - Room y coordinate, starting at 0
greencontrol
Start a conversation with Verdigris just like when you meet him in the main game and press ENTER. Also creates an activity zone afterwards.
hascontrol()
Makes the player have control, however you can't use this to regain control while in the middle of a delay()
hidecoordinates(x, y)
Hide coordinates x,y on the map (This works for the map for custom levels)
hideplayer()
Makes the player invisible
hidesecretlab
Hide the secret lab on the map
hideship
Hide the ship on the map
hidetargets()
Hide the targets on the map
hideteleporters()
Hide the teleporters on the map
hidetrinkets()
Hide the trinkets on the map
ifcrewlost(crewmate, script)
If crewmate is lost, go to script
ifexplored(x, y, script)
If x+1,y+1 is explored, go to (internal) script
ifflag(n, script)
Same as customifflag, but loads an internal (main game) script
iflast(crewmate, script)
If crewmate x was rescued last, go to script
crewmate - Numbers are used here: 0: Viridian, 1: Violet, 2: Vitellary, 3: Vermilion, 4: Verdigris, 5 Victoria
ifskip(x)
If you skip the cutscenes in No Death Mode, go to script x
iftrinkets(n, script)
Same as simplified scripting, but loads an internal (main game) script
iftrinketsless(n, script)
Checks if the number given is less than an amount that's related to trinkets. However, it checks against the greatest number of trinkets that you have ever gotten during a single playthrough of the main game, NOT the amount of trinkets you actually have. Loads an internal (main game) script
ifwarp(x, y, dir, script)
If the warpdir for room x,y, 1-indexed, is set to dir, go to (simplified) script
x - Room x coordinate, starting at 1
y - Room y coordinate, starting at 1
dir - The warp direction. Normally 0-3, but out-of-bounds values are accepted
jukebox(n)
Makes a jukebox terminal white and turns off the color of all the other terminals. If n is given, a jukebox activity zone will be spawned at a hardcoded position and if a terminal is at the same hardcoded position it will be lit up.
The possible values of n and the hardcoded positions are these:
1: (88, 80), 2: (128, 80), 3: (176, 80), 4: (216, 80), 5: (88, 128), 6: (176, 128), 7: (40, 40), 8: (216, 128), 9: (128, 128), 10: (264, 40)
leavesecretlab()
Turn off "secret lab mode"
loadscript(script)
Load an internal (main game) script. Commonly used in custom levels as loadscript(stop)
loop
Put this at the end of a loop block started with the do command.
missing(color)
Makes someone missing
moveplayer(x, y)
Moves the player x pixels to the right and y pixels down. Of course you can also use negative numbers to make them move up or to the left
musicfadein()
An unfinished command. This does nothing.
musicfadeout()
Fades out the music.
nocontrol()
Sets game.hascontrol to false, which removes control from the player. game.hascontrol is automatically set during "- Press ACTION to advance text -" and closing text boxes, so this gets undone after those prompts
play(n)
Start playing a song with internal song number.
n - Internal song number
playef(x, n)
Play a sound effect.
n - Actually unused, and can be left out. In VVVVVV 1.x, this used to control the offset in milliseconds at which the sound effect started.
position(type1, type2)
Overrides the x,y of the text command and thus sets the position of the text box.
type1 - center/centerx/centery, or a color name cyan/player/blue/red/yellow/green/purple
type2 - above/below, only used if type1 is a color name
purplecontrol
Start a conversation with Violet just like when you meet her in the main game and press ENTER. Also creates an activity zone afterwards.
redcontrol
Start a conversation with Vermilion just like when you meet him in the main game and press ENTER. Also creates an activity zone afterwards.
rescued(color)
Makes someone rescued
resetgame
Resets all trinkets, collected crewmates and flags, and teleports the player to the last checkpoint.
restoreplayercolour()
Changes the player's color back to cyan
resumemusic()
An unfinished command. On 2.2 and below, it reads from uninitialized memory, which results in a crash on some machines and just results in playing Path Complete on others. On 2.3, it no longer reads from uninitialized memory and will always play Path Complete.
rollcredits()
Makes the credits roll.

2.2 AND BELOW: It destroys your save after the credits are completed!
setcheckpoint()
Sets the checkpoint to the current location
shake(n)
Shake the screen for n ticks. This will not create a delay.
showcoordinates(x, y)
Show coordinates x,y on the map (This works for the map for custom levels)
showplayer()
Makes the player visible
showsecretlab
Show the secret lab on the map
showship
Show the ship on the map
showtargets()
Show the targets on the map (unknown teleporters which show up as ?s)
showteleporters()
Show the teleporters on the map (I guess it only shows the teleporter in Space Station 1)
showtrinkets()
Show the trinkets on the map
speak
Shows a text box, without removing old text boxes. Also pauses the script until you press action (unless there's a backgroundtext command above it)
speak_active
Shows a text box, and removes any old text box. Also pauses the script until you press action (unless there's a backgroundtext command above it)
specialline(x)
Special dialogs that show up in the main game
squeak(color)
Makes a squeak sound from a crewmate, or a terminal sound
color - cyan/player/blue/red/yellow/green/purple/terminal
startintermission2
Alternate finalmode(46,54), takes you to the final level without accepting arguments. Crashes in timeslip.
stopmusic()
Stops the music immediately. Equivalent to music(0) in simplified scripting.
teleportscript(script)
Used to set a script which is run when you use a teleporter
telesave()
Does nothing in custom levels.

2.2 AND BELOW: Saves your game in the regular teleporter save, so don't use it!
text(color, x, y, lines)
Store a text box in memory with color, position and number of lines. Usually, the position command is used after the text command (and its lines of text), which will overwrite the coordinates given here, so these are usually left as 0.
color - cyan/player/blue/red/yellow/green/purple/gray
x - The x position of the text box
y - The y position of the text box
lines - The number of lines
textboxactive
Makes all text boxes on the screen disappear except for the last created one
tofloor
Makes the player flip to the floor if they aren't already on the floor.
trinketbluecontrol()
Dialog of Victoria when she gives you a trinket in the real game
trinketscriptmusic
Plays Passion for Exploring. Does nothing else.
trinketyellowcontrol()
Dialog of Vitellary when he gives you a trinket in the real game
undovvvvvvman()
Back to normal
untilbars()
Wait until cutscene()/endcutscene() is completed
untilfade()
Wait until fadeout()/fadein() is completed
vvvvvvman()
Makes the player huge
walk(direction, x)
Makes the player walk for the specified number of ticks
direction - left/right
warpdir(x, y, dir)
Changes the warp direction for room x,y, 1-indexed, to the given direction. This could be checked with ifwarp, resulting in a relatively powerful extra flags/variable system.
x - Room x coordinate, starting at 1
y - Room y coordinate, starting at 1
dir - The warp direction. Normally 0-3, but out-of-bounds values are accepted
yellowcontrol
Start a conversation with Vitellary just like when you meet him in the main game and press ENTER. Also creates an activity zone afterwards.