Testing

From OpenMW Wiki
Jump to navigation Jump to search

For anyone who wants to give OpenMW a try, this will get you started in testing things out.

Starting the Game with Special Arguments

There are two ways to start the game with special arguments:

  • Add the commands to the user's openmw.cfg file (See Paths), in the form of something=value, with each command being on a new line.
  • Add terminal/command line arguments when you run it through the executable that are can be added with the form openmw --something --something-else
    • On macOS, these commands must be run like this: ./OpenMW.app/Contents/MacOS/openmw --help
Openmw.cfg Command Line Description
N/A --help Gives a good overview of options available at launch.
skip-menu=1 --skip-menu Skips the introduction tutorial and generates a default character at a default cell.
start=Sadrith Mora --start="Sadrith Mora" Requires skip-menu=1/--skip-menu, starts the game at the designated starting cell.
activate-dist=value --activate-dist=value Allows you to override the maximum activation distance for objects the player is looking at. The normal value is the GMST iMaxActivateDist (192 by default). Increasing this value can speed up testing.
script-run=/path/filename --script-run=/path/filename Execute all in-game console commands in the specified file upon starting a game. Applies to regular, newly started games, but also when using the --skip-menu argument. For example, this can be used to set up your new testing characters with items, spells, etc.

In-game Commands

UESPwiki has basic console tips and a full list of console commands. For the current implementation status of these commands in OpenMW, see Scripting (status).

Note that OpenMW's console supports tab completion, so in most cases you don't have to fully type a command / name. For example, entering COC "Balmora, Caius <Tab> results in COC "Balmora, Caius Cosades' House"

To obtain all valid IDs for a particular command, you can use ESMTool or OpenMW-CS (OpenCS), both included in the OpenMW repository.

Extended Tooltips

The TFH (ToggleFullHelp) command will reveal more information in item tooltips, such as the owner of the item and the script attached to it, if any.

Cells

Teleporting commands are:

  • COC (CenterOnCell), to be used with cell names (interior or exterior), e.g.: COC "Seyda Neen, Arrille's Tradehouse" or COC Balmora
  • COE (CenterOnExterior) for world-map x,y coordinates for exterior cells, e.g.: COE 2,3

Physics

  • Use the console command TCL (ToggleCollision) to toggle gravity and physics interactions (i.e., clipping – you can fly through walls, floors, etc.).
  • TCG (ToggleCollisionGrid) reveals the collision geometry.

Environment

You can alter global variables with console syntax of the form set variable to value (e.g., set timescale to 2000) and reveal their current value by typing their name. Interesting global variables to tinker with are timescale for the game speed (default is 30) and gamehour for the game hour.

ChangeWeather sets the weather in a certain region. Look it up in the UESP wiki for the definition and examples.

GUI

Journal

You can populate the journal by talking to quest-offering NPCs or through the console with a command of the form Journal, "A2_4_MiloGone", 10 (i.e., Journal, "QuestID", QuestStage).

Environment variables

Main article

Debugging

This section is intended purely for developers that compile their own build of OpenMW. Regular users will need to rely on the built in crash reporting tool.

Compiling a Debug Build

If you run openmw in a debugger like gdb, you will see that many sections of code have been optimized out by the compiler, making it difficult to track what is going on. In order to disable this optimization, specify cmake to switch to a debug build. Go to your openmw/build folder, and run the command

 cmake ../ -DCMAKE_BUILD_TYPE=Debug
 make

You can also speed up compilation time by compiling different targets. For example make openmw will build just the openmw engine without building other tools like the launcher and construction set. This can be applied to other components as well, like make openmw-cs

Using a Debugger

If you are running the game with a debugger to analyze a segmentation fault you should run the game with the --no-grab argument (or equivalent) to avoid the game locking up the mouse input when it crashes.

For example, with gdb:

 gdb ./openmw
 run --no-grab