Redguard:Console
The console is an in-game tool in Redguard that gives you access to various commands. Among other things, these allow you to set flags which control the progress of the story, modify attributes of objects, add and remove items, and fast travel to various places. The console can be opened in-game or on the main menu using the F12 key. Use the up and down keys, as well as the page up and page down keys, to view the console's command history.
The most useful commands, which correspond to the actions mentioned above, are setflag
, object
, item
, and load
. All commands have a shortcut which can be used in place of the full name, and several require a subcommand to specify a more precise action, such as item add
and item drop
.
Useful Combinations[edit]
Toggle Collision[edit]
object player object attr attr_reserved_collide=0 (Disable) object attr attr_reserved_collide=15 (Enable)
This toggles collision for Cyrus, similar to the command tcl in other games. The main downside is that you can only walk horizontally; there is no way to increase or decrease vertical position without using the command at a different altitude. Also, jumping will freeze you in place until you disable the command.
Lock Object Position[edit]
(Select an object) object attr attr_stop_x_move=1 object attr attr_stop_z_move=1 object attr attr_stop_y_rotate=1 (Use 0s instead to allow movement again)
This sequence of commands locks an object, usually an NPC or creature, at their current position. If you use the last command, rotation will be disabled as well. Locking the object's position can be useful for taking screenshots; it is not a very effective method of cheating. The best way to find an object to select is through the object closest
command.
Commands[edit]
Command | Alias | Subcommand | Description |
---|---|---|---|
commands | ? | Shows all of the commands in this table, along with their shortcuts | |
show | sh | memory | Displays information about memory usage |
world | Displays information for the current world (map). Mostly aligns with data from WORLD.INI | ||
video | Displays video sub-system information | ||
objects | Displays counts of various object types in the current map | ||
player | Returns a mix of the player's current position, animation, and combat information | ||
xngine | Returns game camera information | ||
ai | Lists all AI scripts in the level and a count of objects using them - Note: Object count is 0 based so 0 means 1 object, 2 is 3 objects, etc | ||
3d | Lists all models in the map's ROB file with face and frame count | ||
library | Lists all currently cached objects | ||
registry | Tells you the registry system is not open - Altering REGISTRY.INI to enable registry does not have any effect | ||
machine | Displays detected HW information | ||
manager | Lists currently loaded "managed" animation files which are the 3DC files located in either 3DART or FXART | ||
sound | Returns sound system information | ||
group <group number> | Returns members of chained object groups - valid values are 1-255 | ||
user <user-group number> | Returns user defined object groups - unclear how a user defines those - valid values are 1-255 | ||
active | Lists "active" objects - unclear what makes an object active | ||
grid [<grid number>all] | Lists objects, lights, and flats in the specified grid or for all if "all" specified instead of a number | ||
all | Dumps all (or most, it's a long way up to scroll and check) of the "show" commands data | ||
remap | Shows objects with a remapped texture set - set in both RAHD and RAEX (always same) | ||
marker [flats] | Shows the coordinates for all default (not user/network added) markers in the map | ||
activelist | Appears to return the same data as "show active" with a different header
Not shown in command list | ||
list | Returns a partial list of objects similar to the "object search" command
Not shown in command list | ||
free | Returns memory usage information
Not shown in command list | ||
map | Returns grid information like "show grid all" and also dumps this to GRID.LOG
Not shown in command list | ||
rain | Returns some basic information for the rain system (if it is raining)
Not shown in command list | ||
get | g | Supposed to return the specified variable's value - variables are not the same as flags - unknown how they're actually named so I've yet to "get" one | |
set | s | Supposed to set the specified variable's value - variables are not the same as flags - unknown how they're actually named so I've yet to "set" one either | |
getflag | gf | Returns the specified flag value - Flag names and initial values set in SOUP386\SOUP386.DEF | |
setflag | sf | Sets the specified flag value - use 0/1 for booleans, not false/true | |
console | con | clear | Locks up the console |
write | Writes the last 512 lines in the console to CONSOLE.LOG | ||
font | Changes the console font between a small and big font - (3D mode only, no effect in FX mode which is always small) - Default=0 (big) | ||
shadow | Toggles adding a shadow effect to the console font. Makes text near unreadable with small font, not as bad with big font (only available in 3D mode) - Default=0 | ||
save | Saves the current console settings to REDGUARD.CPF. Will be used on subsequent launches, can be deleted to reset to default | ||
col0 | Cycles through 16 different colors for input text and the console information at the top - Default=0 (black) | ||
col1 | Cycles through 16 different colors for output text - Default=13 (green) | ||
col2 | Cycles through 16 different colors for on screen monitoring text (3D mode only, no effect in FX mode) - Default=9 (magenta) | ||
col3 | Cycles through 16 different colors for the console background and header in 3D mode, alters the header text only in FX mode - Only applies when "console paper" is off - Default=0 (black) | ||
hex,? | Controls number of lines of hex data to return from hex command (3D mode only, no effect in FX mode which only returns 1 line of data) - Default=16 | ||
limit,? | Limits the console to X number of pixels, starting from the bottom, 0 for full screen (3D mode only, no effect in FX mode which is always fullscreen) - Default=0 (Fullscreen) | ||
paper | Toggles the disable high resolution paper background setting - Default=0 (Don't disable, somewhat confusing setting) | ||
show | Shows current console settings | ||
lpt | page | Prints the text currently on the console screen - can setup DOSBox to print to file so potentially useable but with the limited data "printed" and messed up formatting there is no benefit over "console write" | |
all | Prints up to 512 lines back of text in the console screen - can setup DOSBox to print to file so potentially useable but with the same line limit as "console write" with formatting issues it doesn't have, there is no benefit to using this | ||
object | o | select | Does not operate as expected, returns to frozen game screen and pressing escape (usually) returns to console - To select an object use the address or name command below |
master <master number to select> | Selects the master object of the specified object (if it has one) | ||
search <ai script to search for> | Lists the objects in the current world with an AI script matching <ai script to search for>, or all objects if this parameter is left blank. Each entry shows the object's name if it has one, ID, address, and AI script. The number of objects found is reported at the bottom. Automatically selects the object if only one object uses the script. | ||
general | Lists general variable values for the selected object | ||
quick | Lists some of the more important variables from object general in a condensed format | ||
coord | Same as object quick, but with only the position and angle variables | ||
monitor | Toggles monitoring on and off for the currently selected object | ||
matrix | Display a 3x3 matrix of s32 values with Left, Up, Heading for column headers for the selected object | ||
locals | Lists local variable values for the selected object - Note: Local 0 is the count of local variables, including itself, so an object with no variables will have one variable (0) with a value of 1 | ||
locations | Returns the current position of the selected object only | ||
strings | Lists any strings linked to the object's AI script | ||
script | Supposed to display the object's script though near always just hangs the game - Does return Cyrus' script (which is empty) so not completely broken | ||
family | Displays master/slave objects linked to the currently selected object | ||
zap <amount> | Assume this is supposed to damage/heal the selected object but it doesn't seem to accept any number passed to it | ||
<address to select> | Selects the object at the specified address - Used when the searched script has multiple object instances | ||
<name of object> | Selects the object with the given name | ||
player | Selects the player (Cyrus) object | ||
attr | Lists all of the attribute values for the selected object | ||
attr name = value | If name is a defined attribute of the selected object, sets the attribute's value to value | ||
goto | Moves Cyrus to the selected object | ||
die | You may assume it would kill the selected object (if an NPC) but instead it just kills the game - While unexpected behavior, since something does die, I'm unwilling to call it broken
No issue - Works as designed | ||
combat | Lists combat variables for the selected object, if it is combat capable | ||
vcollide | Displays VCollide details for the seleted object - Only applicable to the dragon in the Catacombs and the golem in the Dwarven Ruins | ||
closest | Selects the object closest to the camera | ||
anim | Shows which frame the selected object is currently on within current animation group
Not shown in command list | ||
size | Shows object's current/normal/combat/dead size information - Combat/Dead are not set for all objects, only if different from normal
Not shown in command list | ||
hex | x | Return X number of lines (specified in console settings) of hex data starting from specified memory address in 3D mode, only returns 1 line in FX mode like the poke command | |
recover | r | Tells you there are no errors requiring recovery from - errors either hang the game or throw you back to DOS so this is not very useful | |
break | b | Hard exit to DOS - has potential use as this will not alter the quick save done on exit | |
load | l | Load MAP NUMBER[, MARKER][, ANGLE]
Loads the map with id MAP NUMBER at the given marker and angle. Map IDs and markers are listed below. An angle of 2048 equals 360 degrees, with 0 facing north and increasing values rotating counter-clockwise. MARKER and ANGLE default to 0 if not specified. Use the | |
poke | p | Returns 1 line (21 bytes in small font) of hex data starting at the specified memory address | |
logplayer | pl | off | Turns off player logging if enabled |
console | Lists player animation changes in console - must actually exit console and do things for it to log, updates will be there on reentering console
[system] : disable_debug_text must be set to "no" & [debug] : final_version set to 0 (or -nve parameter specified) | ||
screen | Displays player information on screen
[system] : disable_debug_text must be set to "no" & [debug] : final_version set to 0 (or -nve parameter specified) | ||
logmonitor | ml | off | Turns off logging if enabled |
console | Lists monitored object animation changes in console - must actually exit console and do things for it to log, updates will be there on reentering console
[system] : disable_debug_text must be set to "no" & [debug] : final_version set to 0 (or -nve parameter specified) | ||
screen | Displays monitored object information on screen
[system] : disable_debug_text must be set to "no" & [debug] : final_version set to 0 (or -nve parameter specified) | ||
setmarker | sm | Creates or updates marker with specified u32 ID number (defaults to 1 if not specified) at current location in REDGUARD.MRK (file is created if not exists)
Can be used with the | |
getmarker | gm | Teleports player to specified u32 user marker ID (defaults to 1 if not specified) in current world (map) | |
setnetmark | snm | Works same as setmarker using the file specified in SYSTEM.INI : [debug] : network_marker_file=<FILENAME.MRK>
Assuming it's so markers could be shared amongst the dev/QA teams | |
getnetmark | gnm | Works same as getmarker using the file specified in SYSTEM.INI : [debug] : network_marker_file=<FILENAME.MRK>
Assuming it's so markers could be shared amongst the dev/QA teams | |
openputnode | op | Opens the putnode system - Can optionally pass a <FileName>.PUT file to open and read in
Assume this was a testing method to quickly patch in and test node walk maps without rebuilding the level | |
saveputnode | sp | Saves the current putnodes nodes to the specified file - Do not see a method to add or edit nodes so not clear use | |
closeputnode | cp | Closes the putnode system | |
rope | rp | heap | Lists all ropes with their property values in the current level
Not shown in command list |
select | Unsure what value it expects, hangs game using address or index
Not shown in command list | ||
general | Displays same info as heap subcommand along with info on any attached objects for the selected rope, however selecting a rope hangs the game so not all that useful
Not shown in command list | ||
restart | rs | video | Don't think this actually does anything |
xngine | Don't think this actually does anything | ||
test | t | Writes the player object data to OBJECT.SAV - Can exit console but will hang on reentering | |
test2 | t2 | Dumps the data returned from "show grid all" to GRID.LOG | |
test3 | t3 | Writes currently monitored object data to OBJECT.SAV - Console continues to work after running this but will hang when exiting | |
item | i | show[, <id>] | Displays information about the item with the given ID, or all items if no ID is provided - Item list with IDs can be found in ITEM.INI |
player | Displays information for all items in your inventory, in the same format as show | ||
add, <id> | Add 1x of the specified item ID to player inventory | ||
sub, <id> | Remove 1x item from inventory - for stackable (like gold), this only removes 1, not the whole stack - specifying item not in inventory still says removed/no error | ||
drop, <id>, <amount> | Removes <amount> of item from inventory - removing more than carried doesn't cause error, just removes entire stack | ||
getmapmarker | gmm | Teleports player to specified u32 marker ID (defaults to 1 if not specified) in current world (map)
Somewhat similar to | |
playerdist | pd | Calculates the distance between the selected object and the player | |
cameradist | cd | Calculates the distance between the selected object and the camera object (hovers slightly above/behind the player) | |
walk | w | Performs a test walk of the node walk map loaded from openputnode (presumably?)
| |
render | rd | on | Starts rendering everything again if you turned it off for some reason |
off | Stops rendering anything except the sky | ||
static | Toggles rendering static objects | ||
node | n | maps | Lists the node map locations and radius for the current map |
log <id> <node> | Writes node location and route information to log file | ||
inuse | Looks like a health check util that searches for bad nodes | ||
monitor | Monitor node marker display enabled/disabled - Must have object selected and monitored | ||
showinuse | Invalid command | ||
shownode | Object node marker display enable/disable - Shows in use nodes (i.e. nodes an NPC is currently traveling to)
Only works in 3D mode | ||
showmap | Node map display enable/disable - shows flags at node locations
Only works in 3D mode | ||
player | Player node and route display enable/disable - ? | ||
sweep | Cleans node maps - Assume some sort of refresh or something utility | ||
monitor dnode | Returns basic information on monitored object's destination node (if they have one) | ||
monitor node | Looks to report node routes from the node the monitored object is currently in | ||
monitor log | Monitor object node logs enabled/disabled (?) - Must have object selected and monitored | ||
scene | sn | Drops back to the game screen and display either Unknown or model name in the top left and remains frozen until, oddly, you click the mouse (key commands do not work)
Assume this is intended to allow you to force play a cutscene | |
script | sc | log | Writes list of active object scripts to SCRIPT.LOG - not very informative |
disable [<script name>] | Stops specified script from running - leaves NPCs catatonic, useable object unusable, etc - Run without <script name> to renable all disabled scripts | ||
script block | Unsure if this is supposed to allow you to disable part of a script or call a specific code block but unclear how it should work | ||
fxlightflag | lf | Enables FX Light Controls - All FX commands are available in FX (Glide) mode only
| |
fxsavelights | sl | Dumps a variant of the MPSL data for the current map to MAPS\WORLD<ID>.LGT - Believe this is used with the "old" light method that can be enabled with the -oldlgt parameter | |
fxtexturelist | fxl | Lists 40 loaded textures starting at specified u32 ID (i.e. specifying 0 will return 0-39) | |
fxshowtexture | fxsh | Shows specified texture image (assuming 1st image when multiple) along with some details | |
fxgolight | fxgl | Moves player to light location like a marker
Requires fxlightflag to be enabled | |
fxselect | fxsel | Locks up the console | |
fxeditred | fxer | Set currently selected light's red RGB value (0-255)
Requires | |
fxeditgreen | fxeg | Set currently selected light's green RGB value (0-255)
Requires | |
fxeditblue | fxeb | Set currently selected light's blue RGB value (0-255)
Requires | |
fxeditradius | fxerad | Set selected light radius to specified value (0-2147483647 - positive s32 value)
Requires | |
fxsunangle | sang | Sets the sun's angle (I'm assuming from the player?) - Uses the standard Bethesda 0-2048 angle formula | |
fxsunskew | sskew | Sets the sun's skew value - Uses the standard Bethesda 0-2048 angle formula | |
fxsunscale | sscale | Sets the sun's scale to the specified s32 value | |
fxsunred | sred | Sets the sun's red RGB value (0-255) - This does not appear to do anything, fxsunimgred will adjust the sun's red value
| |
fxsungreen | sgre | Sets the sun's green RGB value (0-255) - This does not appear to do anything, fxsunimggreen will adjust the sun's green value
| |
fxsunblue | sblu | Sets the sun's blue RGB value (0-255) - This does not appear to do anything, fxsunimgblue will adjust the sun's blue value
| |
fxsunbrightness | sbri | Sets the sun's brightness to the specified s32 level - Values of 0 and below just cause it to disappear | |
fxsunimgred | sired | Sets the sun image's red RGB value (0-255) | |
fxsunimggreen | sigre | Sets the sun image's green RGB value (0-255) | |
fxsunimgblue | siblu | Sets the sun image's blue RGB value (0-255) | |
fxskyscale | skysc | Sets the sky's scale to the specified s32 value - do not see where this is changing anything | |
fxskylevel | skyl | Sets the Y value for the sky (cloud) to the specified s32 value - 0 appears to be sea level | |
fxskyspeed | skysp | Changes the speed of the clouds in the sky to the specified s32 value | |
fxfogred | fred | Sets the fog's red RGB value (0-255) | |
fxfoggreen | fgre | Sets the fog's green RGB value (0-255) | |
fxfogblue | fblu | Sets the fog's blue RGB value (0-255) | |
fxambientred | ared | Sets the ambient red RGB value (0-255) | |
fxambientgreen | agre | Sets the ambient green RGB value (0-255) | |
fxambientblue | ablu | Sets the ambient blue RGB value (0-255) | |
fxwaveamp | wamp | Sets the wave amplitude to the specified s32 value - Amplitude is how high the waves will go
At 1000 it will throw you above the mast of Brennan's ship | |
fxwavespeed | wsp | Sets the wave's speed to the specified s32 value | |
fxwavefreq | wfrq | Sets the wave's frequency to the specified s32 value - Basically how choppy the sea is - small values will generate large solid rolling waves, large values will cause the sea to thrash up and around like a powerful storm | |
fxlightmove | fxlm | Sets the light move value to the specified s32 value - Unclear what this is as it does not require the fxlightflag to be enable or a light selected
| |
fxincstep | fxis | Sets the incremental step to the specified s32 value - Unclear what this does | |
fxmanualx | fxmx | Sets the selected light's X position to specified s32 value
Requires | |
fxmanualy | fxmy | Sets selected light's Y position to specified s32 value
Requires | |
fxmanualz | fxmz | Sets selected light's Z position to specified s32 value
Requires | |
fxscriptname | fxsn | Must provide the script file name to load, unknown script type and doubt included with game so cannot test - Assuming this is for use by devs/QA for testing
Requires | |
pvotreeinfo | pvoi | Displays info on any patch files loaded (none) - Similar to the putnode system, I'm assuming this system was used to load changes for testing without rebuilding the levels | |
pvoaddpatch | pvoa | ||
pvodeletepatch | pvod | ||
pvoonoff | pvo | ||
pvopatchsave | pvos | ||
pvotreeload | pvol | Assuming it's looking at PVO files in MAPS, though pointing at one (pvol MAPS\ISLAND.PVO) returns No Patches in file - Pointing at other file types returns no info or "Patch file <whatever> not found!" | |
delay | dl | Sets the delay to the specified s32 value or disables delay when no value specified - Unclear what is getting "delayed" |
FX Light Controls[edit]
Once the fxlightflag is enabled, either in the console by running the fxlightflag
command or by starting the game with the -lf parameter, additional controls are enabled while in the normal game screen (these are listed in the console if you turn it on that way). Setting the final_version flag to 0 or starting the game with the -nfv parameter is technically not necessary to access the additional controls; however, it will not allow you to modify existing lights and you can only add/modify new lights.
While also not required, it is recommended you also enable the debug text by setting [system] : disable_debug_text=no in SYSTEM.INI which will give you details on the currently selected light (position, intensity, radius, and RGB values).
The currently selected light's radius will be outlined in a green circle and is your only indication of which light you have selected unless the debug text is enabled. Comparing the player's position to the light's position is the best way to be sure which light you have actually selected.
Command | Key | Description |
---|---|---|
Next Light | J | Shifts selection to the next light - unclear how lights are ordered, it is definitely not the next in the RGM file - maybe next closest? |
Previous Light | K | Shifts selection to the previous light - unclear how lights are ordered, it is definitely not the previous in the RGM file - maybe previous closest? |
X++ | T | Increments the selected light's X position by 13 |
X-- | R | Decrements the selected light's X position by 13 |
Y++ | G | Increments the selected light's Y position by 13 |
Y-- | F | Decrements the selected light's Y position by 13 |
Z++ | B | Increments the selected light's Z position by 13 |
Z-- | V | Decrements the selected light's Z position by 13 |
Light Clipping On/Off | Y | No effect seen when toggled |
Light On/Off | 0 | Toggles the selected light on/off - This appears to actually just set the light's radius to 0 and back |
Radius++ | Q | Increments the selected light's radius value, rather quickly, making this somewhat difficult to fine tune
Radius is a s16 value, though only positive numbers (0-32767) are valid - you can overflow to negative values if you hold it long enough Interior maps will sometimes stop growing before hitting 32767 (and overflowing), assuming this is from the light's radius hitting the map's outer bounds |
Radius-- | W | Decrements the selected light's radius value, rather quickly, making this somewhat difficult to fine tune
Radius is a s16 value, though only positive number (0-32767) are valid so you can only decrease to 0, overflow with the Q command is possible |
Red++ | 1 | Increments the selected light's red value, rather quickly, making this somewhat difficult to fine tune
Max value is 255 |
Red-- | 2 | Decrements the selected light's red value, rather quickly, making this somewhat difficult to fine tune
Min value is -255 |
Green++ | 3 | Increments the selected light's green value, rather quickly, making this somewhat difficult to fine tune
Max value is 255 |
Green-- | 4 | Decrements the selected light's green value, rather quickly, making this somewhat difficult to fine tune
Min value is -255 |
Blue++ | 5 | Increments the selected light's blue value, rather quickly, making this somewhat difficult to fine tune
Max value is 255 |
Blue-- | 6 | Decrements the selected light's blue value, rather quickly, making this somewhat difficult to fine tune
Min value is -255 |
Red 0 | 7 | Sets the selected light's red value to 0 (mid value) |
Red -255 | 7+<Alt> | Sets the selected light's red value to -255 (min value) |
Red 255 | 7+<Shift> | Sets the selected light's red value to 255 (max value) |
Green 0 | 8 | Sets the selected light's green value to 0 (mid value) |
Green -255 | 8+<Alt> | Sets the selected light's green value to -255 (min value) |
Green 255 | 8+<Shift> | Sets the selected light's green value to 255 (max value) |
Blue 0 | 9 | Sets the selected light's blue value to 0 (mid value) |
Blue -255 | 9+<Alt> | Sets the selected light's blue value to -255 (min value) |
Blue 255 | 9+<Shift> | Sets the selected light's blue value to 255 (max value) |
Add a New Light To World | Z | Adds a new light at player's current position (y is offset +128) with a radius of 1000 and pure white color (FFFFFF) |
Add a Clone Light To World | A | Adds a clone of the currently selected light at the player's current position (Y is offset +128) and selects it
Functions the same as the Z command if no lights are selected |
Remove the Selected Light From World | X | Deletes the selected light |
Note: These controls are only available (along with the rest of the "fx" commands) when Redguard is running in FX (Glide) mode
Map Markers[edit]
All of the map markers in the game are listed below. Use the load
command and any map ID and marker combination to quickly travel to various locations. An asterisk (*) indicates that the location is used for a cutscene.
|
|
Bugs[edit]
- The console often runs out of memory after so many commands, causing the game to freeze. ?