Commands - gd-edit docs (2024)

The things that makes the editor go!

A commandline program usually gives you a bunch of commands that are somewhat"low-level". You can string together multiple commands and change/edit thingsthe way you want.

So! If you somehow can't find a single command that does exact what you want,you probably want to try breaking that task down to multiple commands andexecuting them one at a time.

Note

If anything in the documentation starts sounding like gibberish, don'tworry! The explanations are there for the sake of completeness. You can usethe editor just fine without knowing all the nitty-gritty details!

Basic commands

command: show

Explore your data in your save file like a directory path.

Tip

If you're able to see the field using "show", you can change the field using "set".

Usage

show <field path>

Examples

show inventory-sacks shows content of "inventory-sacks" field

show inv shows the content of the only field that matches "inv" whichhappens to be "inventory-sacks"

show inv/0 shows content of the first inventory

show inv/0/items shows all items in the first inventory

show inv/0/items/4 shows 5th item in the first inventory

Details

The character file holds quite a bit of binary data that's typically hard toexplore. This command lets you look around the contents of the file almost as ifyou're exploring directories.

Each path component in the field path needs to be separated by a '/'.

Partial field matching

Each component is also used to partially match against potential fields.

For example, "in" will match against "level-in-bio", "shine", "skill-points", and more.

As long as the component uniquely identifies a single field and the field is acollection, the editor will allow you to continue navigating deeper into the datahierarchy by chaining additional field components.

--

command: set

Set fields in the save file

Usage

set <field path> <new value here>set <field path to inventory items> <item name> <optional character level>set <field path to inventory items collection> <item name> <optional character level>

Examples

set iron 1000000 gives your character 1,000,000 iron for all your shopping needs

set character-name Morty changes your character name to Morty

set inv/0/items "sacred hammer of eternal wrath" puts a new fancy item into your inventory

Details

The 'set' command is actually 2 commands rolled into 1.

Setting values

set <field path> <new value here>

In the case where the field path refers to an actual value such as: integer, floats, strings, and booleans. It will just set the value to the new value you provided. It will do its best to coerce the value you entered to the correct type.

Item creation
set <field path to inventory item> <item name> <optional character level>set <field path to inventory items collection> <item name> <optional character level>

In the case where the field path refers to an item or an item collection, the editor will attempt to generate an item that matches the you entered. The editor does this by looking at the available affixes in the game. When possible, it will use "legal" affixes for the base item you asked for.

If you gave the editor an item collection, such as 'inv/0/items', it will try to find some empty spot in the inventory to place the item into.

The editor needs access to the game database for item creation to work. Ifthe editor throws an error during item creation, it is very likely that youneed to configure the gamedir correctly.

--

command: find

Find/locate an item, equipment, skills, devotions, and factions by name.

Usage

find <partial name>

Examples

find tonic Find some item that contains the word tonic

find "Maiven's Sphere of Protection" Find a specific skill by name

Details

There can be a lot of data in your character file. Although the editor allows you toto edit any item on a field-by-field basis, it is difficult to find the item you may wantto edit in the first place.

The find command solves this problem by searching through every piece of data in thefile and printing the location of things that partially matches the entered name. It isthen possible to use other commands to for targetted edits.

For example, if you're a bit low on health potions, you might do:

> find tonicTonic of Mending: inventory-sacks/0/inventory-items/0> set inventory-sacks/0/inventory-items/0/stack-count 99

In this example, we first the item entry for the tonic of mending, then change the stackcount so we have 99 of it in the stack.

--

command: swap-variant

Swap between variants of an item's basename, prefix, or suffix

Usage

swap-variant <item path> swap-variant <item path> basenameswap-variant <item path> prefixswap-variant <item path> suffix

Examples

swap-variant weapon-sets/0/items/0 Change the basename/base item ofthe currently equipped weapon

Details

The editor's 'set' command can be used to generate items. It doesn't, however,allow for you to pick the exact variant you might want. For example, thelegendary helm "Ravager's Dreadgaze" has 3 different variants, each with verydifferent boosts attached. When the 'set' command goes about generating thatitem, it really does not know which one you want specifically.

swap-variant solves this problem by letting you customize the item afteritem generation. The command can deal with swapping the base item (basename),prefix, or suffix.

When the command runs, it looks through the game db for items/affixes of withthe same name, then presents the found items in an on-screen menu. The menuworks the same way as the character selection menu when the editor first startsup. You can make your selection by inputing a number and hitting enter.

The editor will try to present only "interesting" fields in the item/affix. Inthis case, "interesting" means fields that are unique amongst all the variants.This means that the menu will not present the full list of boosts for theitem/affix. But it should present enough information to make picking thedesired variant possible.

--

command: write

Writes out the character that is currently loaded

Usage

writewrite <new character name>

Details

write writes out the currently loaded character. A backup is always madefirst so you can try to go back to a previous save file if anything should gowrong. If you changed your "character-name" at some point, the editor will alsomove your save files to the matching directory so the game can find it.

Warning

While the editor does its best to try not clobbering your save file,it would be advisable to make periodic backups on your own, just in case.

write <new character name> writes out a new copy of the loaded characterafter renaming the character.

--

command: load

Load from a save file

Syntax

load

Details

This is an odd command. This is the only command that will take you to adifferent menu. It will actually unload your current character, if any, thenshow you the character selection menu.

You probably expected the command look something like load <character name> That's not really ideal because:

  • You may have several savedir configured and have character of the same name
  • It's not clear which characters have been found and can be loaded without a menu

--

command: update

Update to the latest version of gd-edit

Details

The editor will check for a new version if it hasn't done so in the past 24hours. If a new version is found, a prompt should be shown shortly after theeditor is started.

Running the update command actually starts the download and relaunches theeditor, if possible.

--

command: exit

Just exits the program. Pretty straightforward!

Convenience commands

These are commands that typically require complicated operations on the character to complete. While the editor gives you a lot of tools to dig around the game db and alter your save file, sometimes, you just need a bit more oomph out of the editor.

command: level

Set the level of the loaded character to a new value

Usage

level <new level>

Details

You can level the character both up and down. This command will update the following fields:

  • character level (3 separate fields)
  • attribute points
  • skill points
  • experience points

--

command: respec

Respecs the loaded character

Usage

respecrespec attributesrespec devotionsrespec skillsrespec all

Details

respec, by itself, is the same respec all.

This is useful when you want to turn your character into another buildcompletely. Alternatively, you can also respec only attributes, devotions, orskills, if you just want to tweak your build a bit and avoid having to pickeverything all over again.

Note

In case it isn't clear, the editor doesn't provide any way of actuallypicking devotions and skills. You'll have to jump back into the game to dothat.

Configuration

command: savedir

Sets the save game directory to a path

Usage

savedirsavedir <path to save directory>

Details

The editor already looks in the following directory by default:

  • Steam cloud save directory (fetched from windows registry)
  • Documents\My Games\Grim Dawn\save\main

If, for some reason, the save directory doesn't reside in either of theselocations, you can use this command to add yet another path for the editor tolook into.

Note

Please point to the save\main directory. Because... reasons?

--

command: savedir clear

Removes the previous set game directory

--

command: gamedir

Sets the game installation directory to a path

Warning

A lot of the editor commands will not work unless the gamedir is configured!

Usage

gamedirgamedir <path to game install directory>

Details

The editor will fetch the steam install directory, then look into"\steamapps\common\Grim Dawn" sub-directory. If you're not using steam or ifyou've installed Grim Dawn to another directory, you'll need to use this commandto help the editor find the installation directory.

The editor needs "database\database.arz" and "resources\Text_EN.arc" to resolveaffixes, their readable names, among other pieces of data required by variouscommands. Setting this isn't strictly required if you're only using the 'show'and 'set' command of the editor. However, it's very likely you'll soon want tocreate items by name and respec your character, etc etc.

--

command: gamedir clear

Removes the previously set game installation directory

--

command: mod

Displays the mod currently selected

--

command: mod pick

Picks an installed mod to activate

Usage

mod pick

Details

This is another command that will not accept any parameters but take you to aselection menu. The menu will show the game mods you have installed and allowsyou to pick one for "activation".

When a mod is "active", the editor will bring the contents of the mod'sdatabase.arz file. From that point on, respecing, leveling, mastery/classmodifications will be take into consideration the data from the mod.

--

command: mod clear

Deselect the currently selected mod

Class manipulation

command: class

Displays the classes/masteries of the loaded character

--

command: class add

Add a class/mastery by name

Usage

class add <mastery name>

The editor is able to accept any mastery name that is listed in classlist, which should include all masteries added by mods.

The editor will try to remove 1 skill point from the character if possible.This is done for the sake of keeping skill point use consistent. If thecharacter has no skill points left to use, the editor will throw up a promptto let you do it anyway, if you'd like.

This command is mostly included for the sake of completeness, as you'll mostlikely pick your mastery directly from within the game.

--

command: class list

Display classes/masteries known to the editor.

This includes masteries added by mods. Please see the 'mod' commands toconfigure which GD mod the editor should consider when manipulating charactermasteries.

--

command: class remove

Remove a class/mastery by name

Usage

class remove <mastery name>

The editor is able to accept any mastery name that is listed in classlist, which should include all masteries added by mods.

Removing a mastery will not skills associated with the mastery. Any bonuses yougain from those skills should continue to be active. However, you'll loose the abilityto put points into those skills from the game's UI.

Removing a mastery will refund any skill points you've put into the mastery.

Database exploration

command: db

Explore the database interactively

Usage

db <record path>

Example

db records/items/gearfeet shows all known boots/foot-wear in the game

db records/items/gearfeet/d010 shows the database record for "Earthshatter Treads"

Details

This command is similar to the "show" command. Whereas the "show" command letsyou explore the character file like a directory structure, the "db" commandallows you to explore the game database like a directory structure.

Partial path matching rules also apply.

--

command: q

Query the database

Usage

q <match condition> <match condition> ...

Example

q key~offensivePhysicalMin find all records that has some field key thatpartially matches "offensivePhysicalMin"

q offensivePhysicalMin>50 find all records/items/affixes that causesminimum physical damage of 50

q offensivePhysicalMin>50 levelRequirement<20 find allrecords/items/affixes that causes minimum physical damage of 50 and can beequipment by characters lower than level 20

q recordname~axe finds all records where the name partially matches thestring "axe"

Details

Uh... Are you really reading this? Let me just say... it's very unlikely thatyou're going to need this command.

The game db holds a bit of data. There are some 30k records the last time Ilooked. This is just a little too much to manually search through. Thiscommand lets you sift through the database and narrow down the results tosomething that can be examined manually.

The game's database records are kept in what's known as "key/value" pairs akahashtable/dictionaries. The command accepts a number of match condition thatperforms a single test on the key or the value or both. If a record passes allthe listed conditions in the "query", then the record will be collected anddisplayed sometime in the future.

Match condition

A match condition takes the form of<match target> <operator> <match value>

A <match target> can be the string "recordname", "key", "value", or thepartial name of a key.

<operator> needs to be one of the following:

operatormeaning
~partial string match against
*=partial string match against
=exact match against
!=not equal
>greater than
>=greater than or equal to
<less than
<=less than or equal to

A <match value> can be a integer, a float, a quoted string, or any string

Result ordering

The editor will display the first 10 matched records, ordered by theirrecordname. You can alter the ordering by adding a clause in the form of "order".

The editor will always order in descending order if an order clause is provided.

--

command: qshow

Show the next page in the current query result

Details

Often a query will return many results. Each record is displayed in Theeditor only shows 10 records at a time. Running this command will cause the next10 command to be displayed.

If the last result has been shown, running this command again will "wrap-around"and start showing from the first matched record again.

--

command: qn

It's short for "query next". Does the same thing as 'qshow'. This is just analias to be able to see the "next" set of results.

Commands - gd-edit docs (2024)
Top Articles
Latest Posts
Article information

Author: Greg Kuvalis

Last Updated:

Views: 5549

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Greg Kuvalis

Birthday: 1996-12-20

Address: 53157 Trantow Inlet, Townemouth, FL 92564-0267

Phone: +68218650356656

Job: IT Representative

Hobby: Knitting, Amateur radio, Skiing, Running, Mountain biking, Slacklining, Electronics

Introduction: My name is Greg Kuvalis, I am a witty, spotless, beautiful, charming, delightful, thankful, beautiful person who loves writing and wants to share my knowledge and understanding with you.