How-To: Manually Edit options.txt

So, I just created my keybindings.txt guide - How-To: Manually Edit keybindings.txt - and after some consideration I figured, “Why not create one for options.txt?” And here we are.



First things first. Editing the options.txt file is considerably easier and less cryptic than dealing with keybindings.txt. It is also much more likely/common to have a need to edit the options file than the keybindings file.

You might ask yourself, “But why do we need a guide? Most of the stuff in options.txt is rather straightforward - change a true to a false, a 0 to a 1, and so on.” It is a good question.

My answer to that is 2 reasons:

  1. Not every line in the file is clear what it does plus we have options like uiScale that actually can do more in this file than what is possible if you attempt to adjust it in-game.

  2. To finally bring a more “complete” discussion and dissection of what can and can’t be done with this file into a central location and to have a place where everything in it is laid bare in one spot for all to see in a hopefully somewhat organized fashion so that others can ask questions if needed and hopefully get answers - and for anyone that has insights on a perhaps obscure setting to be able to share that and add their knowledge to the “pool”.


Like keybindings.txt, your options.txt can always be found in the same place:

C:\Users\YOUR_USERNAME_HERE\Documents\My Games\Grim Dawn\Settings\options.txt

FYI: neither of these files is ever “in the cloud”. They are created on the spot the first times you launch the game and kept locally.

Here is MY default options.txt file:

quickBuy                  = true
lockItemPickup            = true
mapZoom                   = 0.5
importedCharacters        = false
lockMapRotation           = false
cameraShake               = true
gore                      = true
questwidgetopen           = true
corpsePersistence         = 0.5
blood                     = 1
reportStats               = 1
targetLock                = false
inactiveUpdateRate        = 0
cloudSaving               = true
gamepadSupport            = false
breakingMoveTo            = true
classicCasting            = false
gamepadTargetLock         = true
autoLootRelics            = false
showMonsterLevelOnRollover = true
displayDamage             = true
critMultipliers           = false
targetOutline             = true
monsterBars               = true
playerBars                = true
playerLocalBar            = false
petBars                   = false
playerHealth              = true
monsterHealth             = true
monsterIcons              = true
monsterBarsUndamaged      = false
tutorialTips              = true
errorMessages             = true
autoItemTooltips          = true
extraRollovers            = true
sortConfirmBypass         = false
textureQuality            = high
shadowQuality             = high
shadows                   = true
weatherQuality            = high
weatherEnabled            = true
depthOfField              = true
softParticles             = false
reflectionQuality         = high
detailLevel               = ultra
resolution                = 1920 1080
refreshRate               = 60000 1000
windowPosition            = 0 0
antiAliasing              = 1
anisotropicFiltering      = 1
screenMode                = 0
syncToRefresh             = true
tripleBuffer              = false
detailObjects             = true
advancedEffects           = true
brightness                = 0.5
contrast                  = 0.5
gamma                     = 0.5
fxQuality                 = medium
lightingQuality           = medium
uiScale                   = 0.5
device                    = 0
colorblind                = 0
alphatocoverage           = false
ambientocclusion          = false
deferredrendering         = false
fxaa                      = true
masterVolume              = 1
musicVolume               = 1
effectsVolume             = 1
ambientVolume             = 1
dialogVolume              = 1
rockOn                    = false
speakerType               = 1
soundDevice               = 0
errorSpeech               = true
captureDevice             = 0
micLoopback               = false
voiceVolume               = 1
voicechatEnabled          = false
voicechatPushToTalk       = false
networkAdapter            = ""
networkMTU                = 1400
UPnPEnable                = true
language                  = "English"
datapath                  = ""
forceSingleProcessorMode  = false
maxResourceThreads        = 1
skipCompatibilityChecks   = false
useArchives               = true
setupComplete             = false

You might wonder why I bolded and capitalized the word MY above. Because MY defaults are not all going to be your defaults.

  • In particular I am referring to the resolution and the refreshRate lines. Grim Dawn naturally is going to fill in these lines values based on the information it gleans from your OS about your monitor and its refresh rate the first times you launch the game. These values will vary from person to person.

  • The other line that can vary is the reportStats line. This can have a value of either 1 or 2. When you first launch the game Grim Dawn asks you a question:

    image

    This is what reportStats does and depending on what you answer will be a 1 for Yes and a 2 for No. Naturally, it can be later configured in the options menu itself if you want to change this - or manually in the file.

  • I would also assume that some of the audio device and network related settings could also vary depending on the user as well.



Now, I do not intend to go over every function listed in the file - there are 91 lines total! I’d rather leave that up to future discussion and only then going on to add the most noteworthy and “cryptic” lines to the OP here for easier access. I do intend to create a table (below) of MY default file, much like the one in my keybindings how-to, that shows the line in the file each function belongs to for easier referencing.

  • The File Line column denotes the line number of the Function as it is located in the file. Everything else should be more or less self-explanatory.
File Line Function Value
1 quickBuy true
2 lockItemPickup true
3 mapZoom 0.5
4 importedCharacters false
5 lockMapRotation false
6 cameraShake true
7 gore true
8 questwidgetopen true
9 corpsePersistence 0.5
10 blood 1
11 reportStats 1
12 targetLock false
13 inactiveUpdateRate 0
14 cloudSaving true
15 gamepadSupport false
16 breakingMoveTo true
17 classicCasting false
18 gamepadTargetLock true
19 autoLootRelics false
20 showMonsterLevelOnRollover true
21 displayDamage true
22 critMultipliers false
23 targetOutline true
24 monsterBars true
25 playerBars true
26 playerLocalBar false
27 petBars false
28 playerHealth true
29 monsterHealth true
30 monsterIcons true
31 monsterBarsUndamaged false
32 tutorialTips true
33 errorMessages true
34 autoItemTooltips true
35 extraRollovers true
36 sortConfirmBypass false
37 textureQuality high
38 shadowQuality high
39 shadows true
40 weatherQuality high
41 weatherEnabled true
42 depthOfField true
43 softParticles false
44 reflectionQuality high
45 detailLevel ultra
46 resolution 1920 1080
47 refreshRate 60000 1000
48 windowPosition 0 0
49 antiAliasing 1
50 anisotropicFiltering 1
51 screenMode 0
52 syncToRefresh true
53 tripleBuffer false
54 detailObjects true
55 advancedEffects true
56 brightness 0.5
57 contrast 0.5
58 gamma 0.5
59 fxQuality medium
60 lightingQuality medium
61 uiScale 0.5
62 device 0
63 colorblind 0
64 alphatocoverage false
65 ambientocclusion false
66 deferredrendering false
67 fxaa true
68 masterVolume 1
69 musicVolume 1
70 effectsVolume 1
71 ambientVolume 1
72 dialogVolume 1
73 rockOn false
74 speakerType 1
75 soundDevice 0
76 errorSpeech true
77 captureDevice 0
78 micLoopback false
79 voiceVolume 1
80 voicechatEnabled false
81 voicechatPushToTalk false
82 networkAdapter “”
83 networkMTU 1400
84 UPnPEnable true
85 language “English”
86 datapath “”
87 forceSingleProcessorMode false
88 maxResourceThreads 1
89 skipCompatibilityChecks false
90 useArchives true
91 setupComplete false



Interesting\Obscure Functions

I am placing here functions from the file that I, personally, am interested to understand more about what, if anything, they can do. Anyone with information or ideas - feel free to share. There are obviously a handful of other functions in this file that are also worth expanding more on in the future as well, while the majority of the rest need little illuminating at all.

  • importedCharacters = false
    This entry confuses me. I suspect that it has to do with this pop-up:
    image

    …but I have yet to make it do anything discernible by switching its value to true.

  • inactiveUpdateRate = 0

  • datapath = ""

  • maxResourceThread = 1
    This particular entry actually sees a lot of radio-play in Grim Dawn-world. Especially when it comes to the area we call “optimization” when dealing with fps issues and the like.

    The general advice is that this number somehow corresponds to your CPU’s and that you should set this according to the number of cores your CPU flaunts. However, @Rhis (Crate Programmer) years ago on Steam made a statement to the effect of: “That may not do what you think it does”.

  • useArchives = true

  • setupComplete = false

1 Like

Update:

Added this bit to the bottom of the OP:


Interesting\Obscure Functions

I am placing here functions from the file that I, personally, am interested to understand more about what, if anything, they can do. Anyone with information or ideas - feel free to share. There are obviously a handful of other functions in this file that are also worth expanding more on in the future as well, while the majority of the rest need little illuminating at all.

  • importedCharacters = false
    This entry confuses me. I suspect that it has to do with this pop-up:
    image

    …but I have yet to make it do anything discernible by switching its value to true.

  • inactiveUpdateRate = 0

  • datapath = ""

  • maxResourceThread = 1
    This particular entry actually sees a lot of radio-play in Grim Dawn-world. Especially when it comes to the area we call “optimization” when dealing with fps issues and the like.

    The general advice is that this number somehow corresponds to your CPU’s and that you should set this according to the number of cores your CPU flaunts. However, @Rhis (Crate Programmer) years ago on Steam made a statement to the effect of: “That may not do what you think it does”.

  • useArchives = true

  • setupComplete = false

1 Like