This guide is intended to help users better understand the settings available to them in the dzai_config.sqf file. Hopefully this will answer some questions about "how do I change this setting? This guide will go through multiple edits as I further improve it.
---
Section 1: DZAI Settings
These settings control how DZAI functions in the background, and aren't relevant to the AI units.
1. DZAI_debugLevel: Controls the amount of detail that DZAI reports into the arma2oaserver.RPT file. If enabled, DZAI will produce debug output into the log as it performs various tasks, such as spawning units, processing unit deaths, etc. This information lets you know what DZAI is doing in the background and is essential when trying to find the cause of a problem.
Possible values:
What is reported by the DZAI monitor:
3. DZAI_verifyTables: This setting determines whether DZAI will check classnames defined in its configuration files. The verification process takes a short amount of time to complete during server startup (less than 3 seconds depending on number of classnames). During this process, DZAI will check whether classnames exist and are unbanned.
Notes:
4. DZAI_objPatch: If this setting is enabled, DZAI will read DayZ's CfgTownGenerator file and spawn all objects defined there. Normally, clients read this file in order to spawn client-sided objects. This causes problems when server-sided AI is involved because AI cannot see or interact with these objects (since it doesn't exist on the server). By enabling this setting, DZAI will spawn all these objects as local objects on the server so AI will not see/shoot/walk through these objects.
Notes:
Possible values: True (enable) or false (disable)
5. DZAI_cleanupDelay: Frequency of DZAI's dead body/destroyed vehicle cleanup script. DZAI will only clean up bodies and objects that it spawns, but DayZ's own cleanup script may interfere by performing its own cleanups.
Notes:
Possible values: Script frequency in seconds.
6. DZAI_readOverrideFile: If enabled, DZAI will read additional user-defined settings in dzai_settings_override.sqf. This file is useful to store settings that you plan on re-using when upgrading to a newer version of DZAI, simply store it and overwrite it after upgrading. The settings in this file have priority over the ones in dzai_config.sqf
Notes:
7. DZAI_modName: Refer to the comment section in dzai_config.sqf. In most cases, you won't need to touch this setting.
---
Section 1: DZAI Settings
These settings control how DZAI functions in the background, and aren't relevant to the AI units.
1. DZAI_debugLevel: Controls the amount of detail that DZAI reports into the arma2oaserver.RPT file. If enabled, DZAI will produce debug output into the log as it performs various tasks, such as spawning units, processing unit deaths, etc. This information lets you know what DZAI is doing in the background and is essential when trying to find the cause of a problem.
Possible values:
- 0: No debug output. DZAI may still produce some output during server start but during gameplay DZAI should remain silent.
- 1: Debug output with basic information. DZAI will report basic events without going into too much detail. Good if you want to know what's going on your server without being overloaded with too much information.
- 2: Extended debug output with detailed information. DZAI will report as much information as possible, such as specific weapons and items spawned for each AI unit. Very useful when searching for causes of bugs, but not recommended for constant, everyday use unless a huge log file isn't a concern.
What is reported by the DZAI monitor:
- Server uptime in day:hour:minute:second format
- Total number of active ground AI units (vehicle AI units are not counted until they exit their vehicles).
- Number of active static spawns(includes both preset static spawns and custom static spawns).
- Number of AI groups that are waiting for respawn.
- Total number of active/existing dynamic spawns
- "Active" means that a player is within the trigger area.
- It is not unusual for this statistic to appear as 0/0 in your log file. This simply means that no dynamic spawns have been created yet.
- Total/maximum number of air and land AI patrols (current/maximum)
- The "current" number refers to how many alive patrols currently exist. As players destroy each patrol vehicle, this number will decrease. As the patrols respawn, this number will increase.
- The "total" number is a fixed number and is determined by how many patrols you have specified to spawn.
- Any number in seconds. This number determines how often DZAI reports statistical information into your log file.
- If you don't plan on reading your log file regularly, consider increasing this number. If you don't plan on reading it at all, set it to 0 for no log output.
3. DZAI_verifyTables: This setting determines whether DZAI will check classnames defined in its configuration files. The verification process takes a short amount of time to complete during server startup (less than 3 seconds depending on number of classnames). During this process, DZAI will check whether classnames exist and are unbanned.
Notes:
- DZAI cannot determine whether the classname is appropriately defined. For example, if you place a valid weapon name into the AI skin list, there will be no errors detected since the weapon name is valid and DZAI doesn't know what a "skin" is or is not. However, this will cause problems because obviously a weapon classname can't be used as a skin.
- If DZAI doesn't report any invalid/banned classnames during server startup, then it is safe to disable this setting for future startups. However, you must remember to re-enable this setting if you update to a new DayZ mod version or modify any classnames.
4. DZAI_objPatch: If this setting is enabled, DZAI will read DayZ's CfgTownGenerator file and spawn all objects defined there. Normally, clients read this file in order to spawn client-sided objects. This causes problems when server-sided AI is involved because AI cannot see or interact with these objects (since it doesn't exist on the server). By enabling this setting, DZAI will spawn all these objects as local objects on the server so AI will not see/shoot/walk through these objects.
Notes:
- The script may take several minutes to complete spawning all server-sided objects.
- It is always recommended to keep this setting enabled.
- Only disable this setting if you are absolutely sure that it is not needed. For example, if the DayZ mod you're using does not spawn any client-sided objects using CfgTownGenerator.
- This setting has no effect for DayZ Epoch because Epoch no longer uses the CfgTownGenerator.
Possible values: True (enable) or false (disable)
5. DZAI_cleanupDelay: Frequency of DZAI's dead body/destroyed vehicle cleanup script. DZAI will only clean up bodies and objects that it spawns, but DayZ's own cleanup script may interfere by performing its own cleanups.
Notes:
- DZAI will clean up all dead AI bodies as well as the fly sounds
- If DayZ's cleanup script manages to remove AI bodies before DZAI is able to, the fly sounds may not be properly removed
- DZAI will not clean up a dead AI body if a player is within 20 meters of the body.
- If AI skins are removed by the Remove Skin addon, DZAI will not be able to properly clean up the body, since the addon deletes the old body and creates a new one in its place. This new body will not have the necessary variables that DZAI relies on to perform the cleanup.
- DZAI will clean up destroyed/disabled AI vehicles
Possible values: Script frequency in seconds.
6. DZAI_readOverrideFile: If enabled, DZAI will read additional user-defined settings in dzai_settings_override.sqf. This file is useful to store settings that you plan on re-using when upgrading to a newer version of DZAI, simply store it and overwrite it after upgrading. The settings in this file have priority over the ones in dzai_config.sqf
Notes:
- Remember to check if any of the stored settings have changed between DZAI versions! For example, if a setting is an integer in one version but has been changed to a boolean value in the next version, you must change the setting accordingly, otherwise problems will happen!
- If you suddenly experience problems after upgrading to a newer version of DZAI, try clearing your dzai_settings_override.sqf file. Some of your old settings may be incompatible with the new ones. I will always announce warnings about incompatible settings in rolling changelogs.
- If you modify a setting in dzai_config.sqf and it doesn't seem to have any effect, first check if you have the same setting already defined in dzai_settings_override.sqf. Your settings may be overwritten by this file.
7. DZAI_modName: Refer to the comment section in dzai_config.sqf. In most cases, you won't need to touch this setting.