Diag Menu

From Bohemia Interactive Community
Jump to navigation Jump to search

The Diag Menu is a menu listing many options used to debug game scripting and assets. It is available in the diagnostic version of the game executable (DayZDiag_x64.exe).

Main menu of the DayZ diag debug

  • Statistics
  • Enfusion render
  • Enfusion world
  • DayZ render
  • Game
  • AI
  • Sounds
Usage
  • To open the Diag Menu, press ⊞ Win + Alt (alternatively, Ctrl + ⊞ Win but this shortcut conflicts with Windows 11's shortcut) in any 3D viewport
  • To enter a sub-menu, press
  • To leave a sub-menu, press
  • To change a value, use and .
When available options are being shown, it is in the order they are listed in the menu, the first usually being the default.
Some options may require you to be able to use your mouse on the screen.

This can be toggled by pressing Ctrl + NUM 9

This key binding is registered through script. (PluginKeyBinding)
Any mention of "Cheat Inputs" are inputs hardcoded on C++ side.

Statistics

  • FPS Ctrl + NUM 1
  • Script profiler UI
  • > Script profiler settings
    • Always enabled
    • Flags
    • Module
    • Update interval
    • Average
    • Time resolution
    • (UI) Scale

FPS

Enables the showing of FPS in the top left corner of the screen.

The FPS is calculated from the time between last 10 frames.

DayZ debug FPS counter

Script profiler UI

Turns on the on-screen Script Profiler.

For more information regarding the script profiler, also read the documentation in EnProfiler.c.
This will only profile script, proto methods are not measured as separate entries. They will however add up to the total time it takes to run a script method when it is called inside one.

DayZ Script profiler

Section Info
Time per class The total time of all function calls belonging to this class.

Shows the top 20 times.

Time per function The total time of all calls to a function.

Shows the top 20 times.

Class allocations The amount of allocations of a class.

Shows the top 20 allocations.

Count per function The amount of times a function was called.

Shows the top 20 counts.

Class count The amount of instances of a class.

Shows the top 40 counts.

Stats and settings
Section Info More Info
UI enabled (DIAG) Whether the script profiler UI is active. Script profiler settings : Always enabled
Profiling enabled (SCRP) Whether the script will be profiled even when the UI is not active. Script profiler settings : Always enabled
Profiling enabled (SCRC) Whether the script is actually being profiled or not. Script profiler settings : Always enabled
Flags The current set of flags. Script profiler settings : Flags
Module The currently profiled module. Script profiler settings : Module
Interval The current set update interval. Script profiler settings : Update Interval
Time Resolution The currently set time resolution. Script profiler settings : Time Resolution
Average Whether the values displayed are an average of the actual values. Script profiler settings : Average
Game Frame The total amount of frames passed. EnProfiler.c : Enprofiler.GetGameFrame
Session Frame The total amount of frames in this profiling session. EnProfiler.c : Enprofiler.GetSessionFrame
Total Frames The total amount of frames across all profiling sessions. EnProfiler.c : Enprofiler.GetTotalFrames
Profiled Sess Frms The total amount of frames profiled in this profiling session. EnProfiler.c : Enprofiler.GetProfiledSessionFrames
Profiled Frames The total amount of frames profiled across all profiling session. EnProfiler.c : Enprofiler.GetProfiledSessionFrames
For Stats and settings it is best to also read the following "Script profiler sessions" and also EnProfiler.c.

Script Profiler UI

A set of settings to tweak the gathering of script profiling data.

These can also be tweaked by script through the EnProfiler API.

It is recommended to first read the documentation here before using the API.

For more information regarding the script profiler, also read the documentation in EnProfiler.c.
The EnProfiler API and the script profiler itself are only available on the diagnostic game executable.

Always Enabled

Gathering of script profiling data is not enabled by default, this bool displays whether it is currently enabled or not. If it is desired that the script profiler is enabled at start, the launch parameter "-profile" can be used to achieve this.

EnProfiler API Related:
  • EnProfiler.c : enum EnProfilerEnabledFlags
  • EnProfiler.c : EnProfiler.Enable
  • EnProfiler.c : EnProfiler.IsEnabled
Do note that the Script Profiler UI does not care about this bool and will always force the profiling to happen as long as the on-screen UI is visible.

So when the Script Profiler UI is turned on, it will not set this bool to true, since as soon as the UI is turned off, the profiling stops again.

Which is why the name is "Always enabled" and not "Currently enabled".

Flags

The set of flags that define how data is gathered.

Available options Info
SPF_RECURSIVE Data is gathered from the currently selected module and its children

Data is per frame

SPF_RECURSIVE Data is gathered from the currently selected module and its children

Data is accumulated across frames

SPF_RESET Data is only gathered from the currently selected module

Data is per frame

SPF_NONE Data is only gathered from the currently selected module

Data is accumulated across frames

The meaning of flags:

  • SPF_RECURSIVE: Enables profiling of child modules (recursively goes through them)
  • SPF_RESET: Enables the clearing of data at the end of the frame (resets the data)
EnProfiler API Related:
  • EnProfiler.c : enum EnProfilerFlags
  • EnProfiler.c : EnProfiler EnProfilerFlags methods group

Module

The module to be profiled.

Available options Info
CORE 1_Core
GAMELIB 2_GameLib
GAME 3_Game
WORLD 4_World
MISSION 5_Mission
MISSION_CUSTOM init.c
EnProfiler API Related:
  • EnProfiler.c : enum EnProfilerModule
  • EnProfiler.c : EnProfiler EnProfilerModule methods group

Update Interval

The amount of frames to wait before updating the sorted data. This also delays the reset caused by SPF_RESET.

Available options: 0, 5, 10, 20, 30, 50, 60, 120, 144
EnProfiler API Related:
  • EnProfiler.c : EnProfiler.SetInterval
  • EnProfiler.c : EnProfiler.GetInterval

Average

Enable/disable the displaying and returning of averages. Of course, when the SPF_RESET flag is present and there is no interval, this will be the value itself.

When SPF_RESET flag is not present, it will divide by the session frame. When an interval is set, it will divide by the interval.

Class count will never be an average, it will always be the current count of the instance, allocations will be the average value of how many times an instance was created.

EnProfiler API Related:
  • EnProfiler.c : EnProfiler.EnableAverage
  • EnProfiler.c : EnProfiler.IsAverage

Time resolution

Set the time resolution to display time in. This is in the form of nth of a second.

So that means that 1 means in seconds and 1000 means in milliseconds.

Available options: 100000, 1000000, 1, 10, 100, 1000, 10000
EnProfiler API Related:
  • EnProfiler.c : EnProfiler.SetTimeResolution
  • EnProfiler.c : EnProfiler.GetTimeResolution

(UI) scale

Sets the scale of the on-screen script profiler UI. Simply because there are different screens and resolutions, and this way you can tweak it to be better visible if necessary.

There is no EnProfiler API equivalent for this, as it is purely for the on-screen UI.

Available options: Range: Start: 1; Min: 0.5; Max: 1.5; Step: 0.05

Enfusion Renderer

  • Lights
  • > Lighting
    • Ambient lighting
    • Ground lighting
    • Directional lighting
    • Bidirectional lighting
    • Specular lighting
    • Reflection
    • Emission lighting
  • Shadows
  • Terrain shadows
  • Render debug mode RCtrl + AltGr + W
  • Occluders
  • Occlude entities
  • Occlude proxies
  • Show occluder volumes
  • Show active occluders
  • Show occluded
  • Widgets
  • Postprocess Ctrl + LAlt + P
  • Terrain
  • > Materials
    • Common
    • TreeTrunk
    • TreeCrown
    • Grass
    • Basic
    • Normal
    • Super
    • Skin
    • Multi
    • Old Terrain
    • Old Roads
    • Water
    • Sky
    • Sky clouds
    • Sky stars
    • Sky flares
    • Particle Sprite
    • Particle Streak

Lights

Enable/disable lights. This only affects actual light sources such as the PersonalLight or in-game items, not the environment lights. For the environmental lighting, there is the following submenu.

Lighting

The following toggles toggle the respective lighting.

Ambient lighting

Toggles the general ambient lighting.

Default lighting example Ambient Lighting example

Ground lighting

Toggles the lighting reflected from the ground. Noticeable difference is on the roof and the character's underarms.

Default lighting example Ground lighting Example

Directional lighting

Toggles the general directional lighting of the world. Without this, the bidirectional lighting is actually also turned off, as it depends on this.

Default lighting example Directional Lighting Example

Bidirectional lighting

Toggles the general bidirectional lighting of the world.

Default lighting example Bidirectional lighting Example

Specular lighting

Toggles the specular lighting. Noticeable differences are on the side of the cupboard and on the car.

Default lighting example Specular Lighting Example

Reflection

Toggles the reflection lighting. Noticeable differences are on the side of the cupboard and on the car.

Default lighting example Reflection Lighting Example

Emission lighting

Toggles the emission lighting.

Shadows

Enables/disables shadows. Additionally, this also disables the culling of rain inside of objects.

Shadows on shadows off

Terrain shadows

Changes the setting for how terrain shadows are generated.

Available options: on (slice), on (full), no update, disabled

Render debug mode

Special render settings to see how the mesh wireframe looks like in game.

Available options: normal, wire, wire only, overdraw, overdrawZ

Different materials have a different wire colour.

Material Color (RGB)
TreeTrunk 179, 126, 55
TreeCrown 143, 227, 94
Grass 41, 194, 53
Grass Material 61, 194, 83
Basic 208, 87, 87
Normal 204, 66, 107
Super 234, 181, 181
Super Ext 234, 181, 0
Skin 252, 170, 18
Multi 143, 185, 248
Terrain 255, 127, 127
Old Terrain 122, 148, 129
Old Terrain Simple 96, 128, 105
Old Roads 173, 188, 177
Old Sprite 242, 247, 210
Water 51, 51, 255
Ocean 51, 128, 255
Ocean Shore 30, 193, 177
Sky 143, 185, 248
Sky clouds 193, 247, 253
Sky stars 255, 255, 255
Sky flares 201, 206, 245
Particle sprite 128, 128, 255
Particle streak 255, 128, 128

Without render debug Render Debug on

Occluders

Enable/disable the occluding of objects. This is more visible when paired with for example Show occluded.

Occlude entities

Enable/disable the occluding of entities.

Occlude proxies

Enable/disable the occluding of proxies.

Show occluder volumes

When enabled, takes a snapshot of the moment and draws debug shapes visualizing the occluding. Disabling it clears the debug shapes.

Show active occluders

When enabled, shows the currently active occluders by visualizing them with debug shapes.

Show occluded

Visualizes the occluded objects by using debug shapes.

Widgets

Enable/disable the rendering of widgets.

Postprocess

Enable/disable the rendering of post process effects.

Terrain

Enable/disable the rendering of terrain.

Materials

Enable/disable the rendering of specific materials. Most are self-explanatory.

Common

TreeTrunk

TreeCrown

Grass

Basic

Normal

Super

This is an overarching one which contains every material related to super.

Skin

Multi

Old Terrain

This is both Terrain and Terrain Simple.

Old Roads

Water

This is an overarching one which contains every material related to water.

Sky

Sky clouds

Sky stars

Sky flares

Particle Sprite

Particle Streak

Enfusion World

  • Show Bullet
  • > Bullet
    • Draw Char Ctrl
    • Draw Simple Char Ctrl
    • Max. Collider Distance
    • Draw Bullet shape
    • Draw Bullet wireframe
    • Draw Bullet shape AABB
    • Draw obj center of mass
    • Draw Bullet contacts
    • Force sleep Bullet
    • Show stats
  • Show bodies LAlt + NUM 6

Show Bullet

Turns on the debug visualization of Bullet.

Bullet as in the physics engine, not the ammunition of a weapon.

Bullet

Settings to tweak the debug visualization of Bullet.

Draw Char Ctrl

Enable/disable the visualizations for the character controller used by the player. Depends on Draw Bullet shape.

Draw Simple Char Ctrl

Enable/disable the visualizations for the character controller used by AI. Depends on Draw Bullet shape.

Max. Collider Distance

The maximum distance between an object and the player to visualize the collider. Depends on Draw Bullet shape.

Available options: 0, 1, 2, 5, 10, 20, 50, 100, 200, 500
This is 0 by default, since this visualization is quite expensive. Game performance might be compromised when setting this to a large distance.

Draw Bullet shape

Enable/disable the visualizations of bullet colliders.

Draw Bullet wireframe

Enable/disable the visualizations of bullet colliders to be only wireframe. Depends on Draw Bullet shape.

Draw Bullet shape AABB

Enable/disable the visualizations of axis aligned bounding box of colliders.

Draw obj center of mass

Enable/disable the visualizations of objects center of mass.

Draw Bullet contacts

Enable/disable the visualizations of colliders making contact.

Force sleep Bullet

Enable/disable force sleeping all bodies.

Show stats

Enable/disable showing debug stats. When disabling, the last shown stats will be shown for 10 more seconds before disappearing.

Available Options: disabled, basic, all

Show bodies

Enable/disable the visualizations of Bullet bodies.

Available Options: disabled, only, all

DayZ render

  • Geometry diagnostic
    • disgnostic mode

Geometry diagnostic

Enable the drawing of debug shapes, displaying how the selected geometry of an object looks like in-game.

Available Options: normal, roadway, geometry, viewGeometry, fireGeometry, paths, memory, wreck

Geometry Diagnostic

diagnostic mode

Drawing properties for the Geometry diagnostic.

Available Options: solid+wire, Zsolid+wire, wire, ZWire, geom only

Game

  • > Weather&environment
    • Display
    • Force fog at camera
    • Override fog
      • Distance density
      • Height density
      • Distance offset
      • Height bias
  • Free Camera
    • FrCam Player Move Page Up
    • FrCam NoClip
    • FrCam Freeze Page Down
  • > Vehicles
    • Audio
    • Simulation
  • > Combat
    • DECombat
    • DEShots
    • DEHitpoints
    • DEExplosions
  • > Legacy/obsolete
    • DEAmbient
    • DELight
  • DESurfaceSound
  • > Central Economy
    • > Loot Spawn Edit
      • Spawn Volume Vis
      • Setup Vis
      • Edit Volume
      • Re-Trace Group Points
      • Spawn Candy
      • Spawn Rotation Test
      • Placement Test
      • Export Group >>
      • Export All Groups >>>>
      • <<< Export Map
      • <<< Export Clusters
      • Export Economy [csv]
      • Export Respawn Queue [csv]
    • > Loot Tool
      • Deplete Lifetime
      • Set Damage = 1.0
      • Damage + Deplete
      • Invert Avoidance
      • Project Target Loot
    • > Infected
      • Infected Vis
      • Infected Zone Info
      • Infected Spawn
      • Reset Cleanup
    • > Animal
      • Animal Vis
      • Animal Spawn
      • Ambient Spawn
    • > Building
      • Building Stats
    • Vehicle&Wreck Vis
    • Loot Vis
    • Cluster Vis
    • Dynamic Events Status
    • Dynamic Events Vis
    • Dynamic Events Spawn
    • Export Dyn Event >>
    • Overall Stats
    • Updaters State
    • Idle Mode
    • Force Save

Weather&environment

Debug functionality for the weather system.

Display

Enables/disables the weather debug visualization. This consists of an on-screen debug showing the fog affecting view distance and additionally a separate window updating in real time.

To enable the separate window while running as a server, use the launch parameter "-debugweather".

Weather debug display 1 Weather debug 2

The settings of the separate window will be stored in profiles under the names "weather_client_imgui.ini" and "weather_client_imgui.bin". Or when running as a server "weather_server_imgui.ini" and "weather_server_imgui.bin".

Force fog at camera

Forces the fog height to be at the height of the player camera. Has priority over the "Height bias" setting of "Override fog".

Override fog

Enable/disable overriding the fog values with the following settings. It completely overrides them, in the sense that the values are replaced with the new ones.

Distance density
Available Options: Range: Start: 0; Min: 0; Max: 1; Step: 0.01
Height density
Available Options: Range: Start: 0; Min: 0; Max: 1; Step: 0.01
Distance offset
Available Options: Range: Start: 0; Min: 0; Max: 1; Step: 0.01
Height bias
Available Options: Range: Start: 0; Min: -500; Max: 500; Step: 5

Free Camera

Enable/disable the free camera.

Key bind Origin Functionality
UAMoveForward W Inputs (xml) Forward
UAMoveBack S Inputs (xml) Backward
UAMoveLeft A Inputs (xml) Left
UAMoveRight D Inputs (xml) Right
UAMoveUp Q Inputs (xml) Up
UAMoveDown Z Inputs (xml) Down
UABuldMoveUp Q & UABuldMoveDown Z Inputs (xml) Influences Up & Down
UAAimLeft Mouse & UAAimRight Mouse Inputs (xml) Look X
UAAimDown Mouse & UAAimUp Mouse Inputs (xml) Look Y
UAFreeCamRaiseSensitivity (no default) Inputs (xml) Raises aim sensitivity
UAFreeCamLowerSensitivity (no default) Inputs (xml) Lowers aim sensitivity
Mouse wheel up & Mouse wheel down Inputs (C++) Faster speed
Mouse wheel down Inputs (C++) Slower speed
Cheat_FCam_DIAG Spacebar Cheat Inputs (C++) Enable/disable on-screen debug of targeted object
Cheat_FCam_SpdMax Ctrl + ⇧ Shift Cheat Inputs (C++) Current speed x 10
Cheat_FCam_SpdMin Alt Cheat Inputs (C++) Current speed / 10
Cheat_FCam_Return End Cheat Inputs (C++) Disable free camera (reactivate player camera)
Cheat_FCam_Link Enter ↵ Cheat Inputs (C++) Link camera to target object
Cheat_FCam_PlayerMove PgUp Cheat Inputs (C++) Enable/disable player movement while in freecam
Cheat_FCam_Freeze PgDn Cheat Inputs (C++) Enable/disable camera movement while in freecam
Insert PluginKeyBinding (Script) Teleport player to cursor position
Home PluginKeyBinding (Script) Enable free camera / disable free camera and teleport player to cursor position
NUM / PluginKeyBinding (Script) Enable/disable free camera (no teleport)

Camera Tools

FrCam Player Move

Enabled/disable inputs moving the player while in Free Camera.

FrCam NoClip

Enabled/disable Free Camera being able to go through terrain.

FrCam Freeze

Enabled/disable inputs moving the Free Camera.

Vehicles

Extended debug functionality for vehicles.

Do note that these only work while the player is inside of a vehicle.

Audio

Opens up in a separate window.

Is used to tweak the sound settings while the game is running.

Includes visualization of controllers influencing the sounds, updating in real time.

Vehicle Audio Debug

Simulation

Opens up in a separate window.

Contains a lot of car simulation debug functionality to tweak and visualize.

Simulation Debug 1 Simulation Debug 2

Combat

Set of debug functionality related to combat, shooting and HP.

DECombat

Shows a text on screen how far away cars, AI and players are.

DECombat Debug

DEShots

Projectile debug, tracing the path of a shot, the exit points and the stop point.

DEShot Debug

DEHitpoints

Displays the DamageSystem of the player itself and of the object they are looking at.

DEHitpoints Debug

DEExplosions

Displays whether explosions penetrated through a surface or not.

The numbers displayed are the amount of slowdown, if this exceeds the max amount, then it will be stopped at that point and given a red cross.

Green crosses are where the stopping force was not great enough to prevent the damage going through.

DEExplosions Debug

Legacy/obsolete

A collection of debugs heavily tied to the RV engine.

DEAmbient

Displays some stats regarding variables influencing ambient sounds.

DEAmbient Debug

DELight

Displays stats regarding the current lighting environment.

DELight Debug

DESurfaceSound

Displays stats regarding the surface type the player is standing on and the attenuation type.

DESurfacesound Debug

Central Economy

A set of debugging functionality and tools for the Central Economy.

Currently only "Building Stats" works in a multiplayer environment or when CE is turned off. All others in this category will need to be single player client only running a mission with CE enabled.
Some of these are also available through the CEApi in script in CentralEconomy.c.

Loot Spawn Edit

Set of debugging functionality and tools for loot spawns. The group which is targeted is the selected group for the functionality.

The steps used internally for creating loot points on one object:

  1. Add map group with class name of the chosen object into mapgroupproto.xml.
  2. Add desired containers within this map group (one or more).
  3. Load the mission and export map group positions.
  4. Apply the exported changes to the main xml and restart the game.
  5. Find a place with the object.
  6. Enable "Spawn Volume Vis", "Setup Vis" and "Edit Volume"
  7. Go into free camera and start setting up the loot points.
  8. Export the map group and apply to the mapgroupproto.xml.
Spawn Volume Vis

Visualizes loot spawn points and their volumes.

Option Info
Off No volume vis
Adaptive Unedited volumes are flat, edited volumes show full volume
Volume Volumes show full volume
Occupied Adaptive, but only shows points that have loot spawned
Script equivalent: GetCEApi().LootSetSpawnVolumeVisualisation(enum ESpawnVolumeVis);
Setup Vis

Shows the properties of the CE setup on screen. The following screenshot has "Spawn Volume Vis" at Adaptive. As you can see, the colours of the volumes correspond with the colours of the containers in the on-screen debug.

Additionally this will also display certain setup errors.

CE setup vis

Script equivalent: GetCEApi().LootToggleSpawnSetup(bool);
Edit Volume

A tool to edit loot spawn points.

It is very much recommended to enable "Spawn Volume Vis" and "Setup Vis" while using.

Free camera needs to be enabled to use.
Key bind Functionality
[ Iterate backwards through available containers
] Iterate forward through available containers
Left Mouse Button Insert new point
Right Mouse Button Delete point
; Increase point size
' Decrease point size
Insert Spawn loot at point

Uses hardcoded list which is iterated through:

  • TaloonBag_Blue
  • DarkMotoHelmet_Blue
  • MediumGasCanister
  • SodaCan_Cola

Legacy functionality for testing what size of items can spawn at a point

M Spawn 48 "AmmoBox_762x54_20Rnd"
Mark loot nearby for cleaning (Just depletes lifetime, is not an instant cleanup)
Script equivalent: GetCEApi().LootToggleVolumeEditing(bool);
Re-Trace Group Points

"Button" which triggers re-tracing of loot points in currently selected group or all groups when none is selected. Fixes hovering loot points.

For one group with small offsets it is pretty fast, retracing all groups can take a while.

Before Trace After Trace

Script equivalent: GetCEApi().LootRetraceGroupPoints();
Spawn Candy

Spawns loot in all spawn points of either the currently selected group. It checks categories and tags of the container when selecting items for spawning. It does not honour nominals or spawn count, except for skipping items with 0 nominal.

When there is no selected group, it will spawn a FirstAidKit at the target cursor location.

Spawn Rotation Test

Spawn "AmmoBox_762x54_20Rnd" at target cursor position. The amount depends on the amount of rotation flags assigned to it.

Placement Test

Shows a "cylinder" made up out of spheres to see how placing interacts with the position. Pressing Insert will spawn "AmmoBox_762x54_20Rnd" at sphere positions.

Export Group

Will export the currently selected group into "storage/export/mapGroup_CLASSNAME.xml".

For example:

Running a single player mission located at "F:/Missions/ce.chernarusplus" while looking at "Land_House_2W02".

"F:/Missions/ce.chernarusplus/storage_-1/export/mapGroup_Land_House_2W02.xml".
Script equivalent: GetCEApi().LootExportGroup();
Export All Groups

Will export all groups into "storage/export/mapgroupproto.xml".

Script equivalents: (both do the same)

GetCEApi().ExportProxyProto();

GetCEApi().LootExportAllGroups();
Export Map

Will generate "storage/export/mapgrouppos.xml".

Script equivalent: (both do the same)

GetCEApi().ExportProxyData(vector.Zero, 0);

GetCEApi().LootExportMap();
Export Clusters

Will generate "storage/export/mapgroupcluster.xml". Possibly multiple are generated with number suffix due to technical limitations.

Script equivalent:

GetCEApi().ExportClusterData();

GetCEApi().LootExportClusters();
Export Economy [csv]

Will export economy into "storage/log/economy.csv".

Script equivalent: GetCEApi().EconomyLog(EconomyLogCategories.Economy);
Export Respawn Queue [csv]

Will export respawn queue into "storage/log/respawn_queue.csv".

Script equivalent: GetCEApi().EconomyLog(EconomyLogCategories.RespawnQueue);

Loot Tool

A collection of debug functionality for loot.

Deplete Lifetime

Depletes lifetime to 3 seconds, making it be scheduled for clean-up very soon.

Script equivalent: GetCEApi().LootDepleteLifetime();
Set Damage = 1.0

Sets health to 0.

Script equivalent: GetCEApi().LootSetDamageToOne();
Damage + Deplete

Performs both previously mentioned entries.

Script equivalent: GetCEApi().LootDepleteAndDamage();
Invert Avoidance

Toggles player avoidance. (The system responsible for detecting if a player is nearby.)

Project Target Loot
"Loot Vis" must be enabled for this to work.

Will emulate the spawning of the item which is being looked at and generate images and output logs.

The image files will be visualizing the places where it currently spawned and all the places it could spawn. SpawnAnalyze is the emulated one displaying all the locations it can spawn.

These could be used to overlay on top of an image of the map to get a better idea of the locations.

Example files and output when looking at "FlatCap_Grey":

"storage/lmap/FlatCap_Grey 2022_09_13 15_50_55.tga" "storage/lmap/SpawnAnalyze_FlatCap_Grey 2022_09_13 15_50_39.tga"

17:50:44.148 [CE][SpawnAnalyze] "FlatCap_Grey", count:30, real: 30, nominal:30, missing:0 17:50:55.519 lootSize:0.17, lootHeight:0.22 17:50:55.519 group:4413, free:4379 17:50:55.519 container:4413, free:4379 17:50:55.519 slots:16519, free:11789 17:50:55.519 point fit:28159, free: 23134 17:50:55.519 point worked:0 17:50:55.519 projected groups:4413

17:50:55.523 [CE][Projection] "FlatCap_Grey" 30 items.
Script equivalent: (both of them are being called)

GetCEApi().SpawnAnalyze("FlatCap_Grey");

GetCEApi().EconomyMap("FlatCap_Grey");

Infected

A collection of debug functionality for infected.

Infected Vis

Visualizes the zones and locations of zombies and whether they are dead ( + ) or alive. The colours will be those that are assigned to the territory.

Infected Vis

Script equivalent: GetCEApi().InfectedToggleVisualisation(bool);
Infected Zone Info

Gives on-screen debug info when camera is inside of an infected zone. It helps to visualize the zones with "Infected Vis" when using this.

Do note that this is not updated every frame.

Infected Zone Info

Script equivalent: GetCEApi().InfectedToggleZoneInfo(bool);
Infected Spawn

Spawns an infected inside the currently selected zone. Selecting a zone is done by being inside it with the camera.

When no zone is selected, it will spawn "InfectedArmy" at cursor target.

Script equivalent: GetCEApi().InfectedSpawn();
Reset Cleanup

Sets the clean up timer of an infected zone to 3 seconds.

Script equivalent: GetCEApi().InfectedResetCleanup();

Animal

A collection of debug functionality for animals.

Animal Vis

Visualizes the zones and locations of animals and whether they are dead ( + ) or alive. Additionally shows on-screen debug stats.

Animal Vis

Script equivalent: GetCEApi().AnimalToggleVisualisation(bool);
Animal Spawn

Spawns an animal inside the currently selected zone. Selecting a zone is done by being inside it with the camera.

When no zone is selected, it will spawn "AnimalGoat" at cursor target.

Script equivalent: GetCEApi().AnimalSpawn();
Ambient Spawn

Spawns "AmbientHen" at cursor target.

Script equivalent: GetCEApi().AnimalAmbientSpawn();

Building

A collection of debug functionality for buildings.

Building Stats

On-screen debug regarding the state of a building.

Stats on the left will show whether a door is open/closed and free/locked.

The second and third line of a door entry are only relevant when <building init="1" .../> in economy.xml, as this enables the door randomization. initOpened is a value in config used for door randomization, the "rand" underneath is the random number which was generated. When rand < initOpened, the door will be spawned as opened. (So initOpened of 0 means that the door can never spawn in opened.)

The middle part displays stats regarding buildings.bin. This will only matter if there is one, which means that building persistency must be enabled in economy.xml. (<building ... save="1" ... load="1"/>)

To summarize some quick common <building/> setups:

Setup Behaviour
<building init="0" load="0" respawn="0" save="0"/> No persistency, no randomization, all doors will be in default state after a restart.
<building init="1" load="0" respawn="0" save="0"/> No persistency, all door open/closed state will be randomized according to initOpened.
<building init="1" load="1" respawn="0" save="1"/> Only saves locked doors, all door open/closed state will be randomized according to initOpened.
<building init="0" load="1" respawn="0" save="1"/> Full persistency, saves full door state, no randomization, loads in exact same door state after a restart.

Examples with economy.xml set to <building init="1" load="1" respawn="0" save="1"/> (the values on official at current time of writing.)

In the following screenshot one door on one building on the map has been locked, so it shows "Auxiliary count: 1". But the building currently being looked at never had a locked door, so it is not part of 'auxiliary' (internal name for building storage).

building Stats 1

After locking one door, the building is saved to auxiliary.

Building Stats 2

When unlocking the door, the building will be removed from auxiliary again, since with the current settings, it only cares about locked doors.

Opening/closing a door will not affect auxiliary with current settings either. (But it would if randomization wasn't enabled.)

Vehicle&Wreck Vis

Visualizes all objects registered to the "Vehicle" avoidance. This is all objects inheriting from Building or InventoryItem that are registered to dynamic events and all objects inheriting from Car (regardless of being registered to a DE).

Additionally it shows an on-screen debug with stats, which will remain for ~10 seconds after disabling.

Colour Info
Yellow Car
Pink Wrecks (Building)
Blue InventoryItem

Vehicle & Wreck Vis

Script equivalent: GetCEApi().ToggleVehicleAndWreckVisualisation(bool);

Loot Vis

On-screen debug showing Economy Data. Is not actually Loot exclusive as the name would imply, it will try to display Economy Data for anything you look at. So that includes Infected, Dynamic Events, etc.

Loot Vis 1 Loot Vis 2 Loot Vis 3

Script equivalent: GetCEApi().ToggleLootVisualisation(bool);

Cluster Vis

On-screen debug showing Trajectory DE stats.

Cluster Vis

Script equivalent: GetCEApi().ToggleClusterVisualisation(bool);

Dynamic Events Status

On-screen debug showing DE stats.

Dynamic Event Status

Script equivalent: GetCEApi().ToggleDynamicEventStatus(bool);

Dynamic Events Vis

This is a tool to place DE spawn points.

Visualizes DE spawn points as coloured spheres, these are large when far away, but become smaller when coming closer. Top right there will be some on-screen debug giving stats about a point near the cursor target.

Key bind Functionality
[ Iterate backwards through available DE
] Iterate forward through available DE
Left Mouse Button Insert new point for selected DE
Right Mouse Button Delete point nearest to cursor target
Middle Mouse Button Hold or click to rotate the angle

Dynamic Events Vis

Script equivalent: GetCEApi().ToggleDynamicEventVisualisation(bool);

Dynamic Events Spawn

Spawns a dynamic event.

When "Dynamic Events Vis" is enabled and there is a "Nearby DE Point", it will spawn the DE belonging to that point. When "Dynamic Events Vis" is enabled and there is no "Nearby DE Point", it will spawn the DE belonging to the "Selected DE".

Otherwise it will spawn a "StaticChristmasTree".

Script equivalent: GetCEApi().DynamicEventSpawn();

Export Dyn Event

When "Dynamic Events Vis" is enabled, will export "Nearby DE Point" into "storage/export/eventSpawn_CLASSNAME.xml". This XML will contain all spawn points for that DE, including the ones added through "Dynamic Events Vis".

For example:

Running a single player mission located at "F:/Missions/ce.chernarusplus" while looking at a point for "VehicleTruck01".

"F:/Missions/ce.chernarusplus/storage_-1/export/eventSpawn_VehicleTruck01.xml".

When there is no selection it will export all DE points for all events into "storage/export/cfgeventspawns.xml".

Script equivalent: GetCEApi().DynamicEventExport();

Overall Stats

Shows an on-screen debug with stats regarding CE.

Overall Stats

Script equivalent: GetCEApi().ToggleOverallStats(bool);

Updaters State

Shows an on-screen debug with what CE is currently doing.

Updaters State

Idle Mode

Enable/disable the CE Idle Mode which makes the CE sleep. When paired with "Updaters State" the difference in amount of tasks is very visible.

Force Save

Forces the saving of the entire storage/data folder (so everything except player database).

AI

  • Show NavMesh
  • Debug Pathgraph World
  • Debug Path Agent
  • Debug AI Agent

Show NavMesh

Draws debug shapes to visualize the navigation mesh. Additionally shows an on-screen debug with stats.

Key bind Functionality
NUM 0 Register "Test start" at camera position
NUM 1 Regenerate tile at camera position
NUM 2 Regenerate tiles around camera position
NUM 3 Iterate forwards through visualization types
LAlt + NUM 3 Iterate backwards through visualization types
NUM 4 Register "Test end" at camera position

Will draw a wireframe sphere at "Test start" and "Test end" and a line between them If a path was successfully found, they will be green, otherwise red When no "Test start" was selected through NUM0, "Test start" will be <0, 0, 0>

NUM 5 NavMesh nearest position test (SamplePosition)

Will draw a blue wireframe sphere at camera position and pink wireframe sphere at result

NUM 6 NavMesh raycast test

Will draw a blue wireframe sphere at camera position and pink wireframe sphere at result

Show navmesh

Debug Pathgraph World

On-screen debug showing of many Path Job Requests have been completed and how many there are currently.

Debug Pathgraph World

Debug Path Agent

Turns on on-screen debug and debug shapes regarding a "Path Agent" (AI).

This one is for when only interested in their pathing.

Target an AI to select it for tracking.

Debug Path Agent

Debug AI Agent

Turns on on-screen debug and debug shapes regarding an AI.

This one is more for the alertness and behaviour of an AI.

Target an AI to select it for tracking.

Debug AI Agent

Sounds

  • Show playing samples
  • Show system info

Show playing samples

Debug for debugging playing sounds.

Available options: none, ImGui, DbgUI, Engine
Option Info
none Default: no debug
ImGui Separate screen debug made with dear ImGui, newest iteration, created to have all pros of the other two while fixing the cons.

The settings of the separate window will be stored in profiles under the names "playing_sounds_imgui.ini" and "playing_sounds_imgui.bin"

DbgUI Legacy
  • Pros: Filtering by category, more readable
  • Cons: Goes off screen, does not include vehicle category
Engine Legacy
  • Pros: Includes stats at the top, shows in real time what is happening with colour coding, contains a lot of data
  • Cons: Goes off screen, no legend for the colour coding

Show system info

Shows on-screen debug stats of the sound system. Used to be paired with "Show playing samples" DbgUI option, is also visible in the other two "Show playing samples" options.

Sound system info