[General]
# 0 -> no print
# 1 -> print to OutputDebugString
# 2 -> print to file xv2_log.txt (needs write access permission in XV2PATCHER directory!)
# >= 3 -> MessageBox
# Note: some messages are forced to MessageBox if they are critical
default_log_level = 2

[Patches]
loose_files = true
new_chara = true
new_stages = true
# It unlocks all characters (only in code, saves or any other files aren't modified)
unlock_chara_all = false
# It unlocks only characters that are not selectable in base game. This includes some existing chara in the game (bulma, oozarus, etc) and chara with new ids made by modders
# If unlock_chara_all is true, this value holds no meaning, as all character will be unlocked, modded or not.
unlock_chara_mods = true
# Disables or enables ActionScript3 trace
iggy_trace = false
# Disables or enables printing iggy related errors
iggy_warning = false
# It unlocks all stages (only in code, saves or any other files aren't modified)
unlock_stage_all = false
# Disables internet usage by the game
offline_mode = false
# Enables the disabling of the game bac/bcm protection that prevents skills from being modded. This value is required to be true to mod skills.
bac_bcm = true
# The dump_auto_gen_portrait setting has been removed, it has no use to set it.
# Use the XV2Patcher UI extensions to achieve the same functionality in a more stable way.
# dump_auto_gen_portrait = false
# Enable or disable the patch to change the offline battle timer
# To set the time, look at the [BattleTimer] section.
battle_timer = false
# Enables the modification of gdraw limits. This is needed to increase number of slots without crash. This setting enables the GDraw_Limits section
gdraw_limits_patch = true
# Enables characters to use awaken skills. Use the AIextend section to configure parameters
ai_extend = false
# Enables the portrait of enemy to be displayed, not just few enemies like in vanilla game
ui_enemy_portrait = false
# Enables the auto generated portrait dump functionality for the UI extensions (requires UI extensions to be installed)
dump_auto_gen_portrait = true
# Enables the toggle battle ui functionality in the UI extensions (requires UI extensions to be installed)
hide_battle_ui = true
# Makes Freezer siege event possible in offline mode. It requires "offline_mode = true" too or you won't be able to launch the game
# You can configure the possibility, length and other parameters of the offline event in the FS_OFFLINE section.
fs_event_offline = false
# Enables the patch to disable "untransform" on cut scenes. You can configure extra parameters in the section UNTRANSFORM_CUT_SCENES
dont_untransform_cut_scenes = false
# Enables a patch to allow to select allies in expert missions
enable_multiselect_expert = false
# Enables the patch to allow taking control of cpu allies (requires ui extensions too)
take_ally_control = false
# The following patch is undocumented. Use it only at your own risk.
excessive_air_contamination = false
# Enables new HLQ (expert) quests to appear in the global orb even before they are completed
# This doesn't affect exisiting vanilla HLQ quests, only added ones.
# Have in a mind that a quest can still not appear if it has an unlock requirement not met.
mod_hlq_always_in_global_orb = true


### Debug patches ####
debug = false
# All of belove require debug to be true too, or they will be ignored
log_old_open_cpk_file = false
log_encryption = false

[LooseFiles]
# Note about logging: some files go through different functions than these ones, those aren't logged.
# Enables the log of all files that go through the CpkGetFileInfo function. 
# If debug is enabled, you may get messages from the game like "W2008082701:Specified file was not found in the binder.". These messages are normal.
log_all_files = false
# Enables the log of only the ones that fail and must be get from loose files. If log_all_files is true, this param is meaningless because all files are logged.
log_loose_files = false

[NewChara]
# Anything in this section is only read if "new_chara" in Patches is set to true!
# The value below must be either "auto" or a number.
# If auto, the program will try to autodetect it.
# The auto-detection works like this: if a loose file exists in data/ui/iggy/CHARASELE.iggy, it will try to autodetect it using a simple heuristic algorithm.
# If the file doesn't exist or the heuristic fails, it will assume 99 (default of game). The decision of algorithm is written in the log.
# If non-auto, it must match the AS3 variable CharacterMax in CharaSele.as in CHARASELE.iggy (if they don't match, you will end with a broken selection dialogue) 
CharacterMax = auto

[BattleTimer]
# Anything in this section is only read if "battle_timer" in Patches is set to true!
# The time here represents the number of seconds of the timer.
# This value is a fractional number (32 bits float). Any value of the IEEE 754 standard for single precision can be used here
# infinity is a valid value and it will make the timer dissapear
time = infinity

[GDraw_Limits]
# Note: this section is not read unless gdraw_limits_patch = true in the Patches section.
# This value holds number of UI objects? Or maybe something else but not too far from it. Default of game is 768. Default of patcher is 1536.
# This value is needed to increase number of slots without crash.
gdraw_setting_2a = 1536

[AIextend]
#Note: this section is not read unless ai_extend = true in the Patches section.

chance_ally_T1_100p = 30
chance_ally_T1_80p = 45
chance_ally_T1_60p = 60
chance_ally_T1_40p = 75
chance_ally_T1_20p = 90

chance_ally_T2_100p = 18
chance_ally_T2_80p = 33
chance_ally_T2_60p = 48
chance_ally_T2_40p = 63
chance_ally_T2_20p = 78

chance_ally_T3_100p = 8
chance_ally_T3_80p = 23
chance_ally_T3_60p = 38
chance_ally_T3_40p = 53
chance_ally_T3_20p = 68

chance_enemy_T1_100p = 30
chance_enemy_T1_80p = 45
chance_enemy_T1_60p = 60
chance_enemy_T1_40p = 75
chance_enemy_T1_20p = 90

chance_enemy_T2_100p = 18
chance_enemy_T2_80p = 33
chance_enemy_T2_60p = 48
chance_enemy_T2_40p = 63
chance_enemy_T2_20p = 78

chance_enemy_T3_100p = 8
chance_enemy_T3_80p = 23
chance_enemy_T3_60p = 38
chance_enemy_T3_40p = 53
chance_enemy_T3_20p = 68

[FS_OFFLINE]
# Note: this section is not read unless fs_event_offline = true in the Patches section
# A number between 0.0 and 1.0. This is the probability that the siege will happen. 
# Note that this number is evaluated every time the player goes to Conton City, either at the beginning or when returning from a battle/quest/etc.
# The default value of 0.01 is 1/100
# Note 2: the fs offline event can only happen once per executable run. 
probability = 0.01
# This is the MAX duration of the event in minutes. After this time, and once the player goes back again to Conton City, the event will end, regardless of resistance points.
duration = 120
# This is the goal in resistance points. After these points or more are earned, the event will end, regardless of time passed.
# It is worth to mention that the game has the following internal states related to the current resistance points,
# and the higher the state, the more probability for stronger enemies that give more points to appear:
# State 0: 0-300
# State 1: 301-500
# State 2: 501-750
# State 3: 751-1500
# State 4: 1501-3000
# State 5: 3001-6000
# State 6: 6001-10000
# State 7: 10001-32767
goal = 15000
# This is the multiplier applied to resistance points earned. 1.0 = same points that in vanilla.
resistance_multiplier = 2.5
# This is the prize in tp medals for completing the event by goal (it won't be received if the event ends by time). 
# Note that this doesn't exist in vanilla online event. Set it to 0 if you don't want it.
# Also note that the game ui can only show a max value of 99, but a value higher will actually work and give that amount, it will just show wrongly in the gui.
prize_tp = 99

[UNTRANSFORM_CUT_SCENES]
# Note: this section is not read unless dont_untransform_cut_scenes = true in the Patches section

# List of transformation to be excluded. The number is the "trans control" of the transformation (sometimes badly called "cus aura")
# This is a list separated by comma. Default value: 12 (giant), 14 (purification), 15-16 (villain)
exclude_trans = "12, 14, 15, 16"

# Apply this to roster characters. Note that setting this to true could make some charactes in story stay transformed despite they should be untransformed for the scene to make sense,
# which is why the default value is false.
apply_to_roster = true

[MULTISELECT_EXPERT]
# This section is only read if enable_multiselect_expert = true

# Mode 6 = true -> the character selection will be like in the 3 vs 3 battle, but all selected chars will be allies. You must select always 6 chars.
# Mode 6 = false -> the character selection will be like in PQ. You can choose any number from 1-3 chars.
use_mode_6 = true

[Debug]
# Note: this section doesn't depend on the Patches:debug flag.
# Enable exception handler. Only useful for debugging purposes
exception_handler = false
# If the exception handler is enabled, this contains the list of modules that will be ignored (comma separated list)
exception_ignore_modules = "KERNELBASE.dll"