ListFan
Text · Free

Valve KeyValues1 formatter

Format textual Valve KeyValues1 configuration while preserving nested sections, order and duplicate keys.

01Enter your values

Runs in your browser

Runs offline in your browser. Once the page and required files have loaded, processing needs no internet.

Tokenize quoted or unquoted keys and values, braces and line comments. Parse into ordered key/value pairs rather than a JSON object, so duplicate keys survive. Re-emit quoted, indented KeyValues1 text; comments are omitted.

Example
KeyValues1 text

How it works

Format textual Valve KeyValues1 configuration while preserving nested sections, order and duplicate keys.

No. This is text KeyValues1 only, up to 100000 characters and 32 nested blocks. It rejects binary VDF, KeyValues2/3, include directives and conditionals. Supported quoted escapes are backslash, quote, newline and tab. It checks structure, not application-specific settings or game ownership. Keep the original file because comments are removed.

Your data stays yours

Inputs are processed on this page and are never sent to a server.

About this tool

Format textual Valve KeyValues1 configuration while preserving nested sections, order and duplicate keys.

Tokenize quoted or unquoted keys and values, braces and line comments. Parse into ordered key/value pairs rather than a JSON object, so duplicate keys survive. Re-emit quoted, indented KeyValues1 text; comments are omitted.

Use tool ↑

How to use it

  1. Enter your values

    KeyValues1 text

  2. Calculate / generate

    Format textual Valve KeyValues1 configuration while preserving nested sections, order and duplicate keys.

  3. Result

    "settings" { "volume" "0.5" "enabled" "1" }

Calculation method

  1. Tokenize quoted or unquoted keys and values, braces and line comments.
  2. Parse into ordered key/value pairs rather than a JSON object, so duplicate keys survive.
  3. Re-emit quoted, indented KeyValues1 text; comments are omitted.
Example scenario

Valve KeyValues1 formatter

KeyValues1 text
"settings" { "volume" "0.5" "enabled" "1" }
Result
"settings"
{
	"volume"	"0.5"
	"enabled"	"1"
}

Frequently asked questions

Does this support all VDF formats?

No. This is text KeyValues1 only, up to 100000 characters and 32 nested blocks. It rejects binary VDF, KeyValues2/3, include directives and conditionals. Supported quoted escapes are backslash, quote, newline and tab. It checks structure, not application-specific settings or game ownership. Keep the original file because comments are removed.

Where does my data go?

Calculations run on your device. Form inputs are not sent to a server.

Terms and definitions

Enter your values

KeyValues1 text

Paste readable key/value pairs and nested braces. Duplicate keys and their order are preserved; // comments are removed.

Enter the source text; it is processed locally.

Result

Result

Tokenize quoted or unquoted keys and values, braces and line comments. Parse into ordered key/value pairs rather than a JSON object, so duplicate keys survive. Re-emit quoted, indented KeyValues1 text; comments are omitted.

Calculated from your entries using the method below.

Common mistakes and quick fixes

Format

Mistake: Treating every .vdf file as textual KeyValues1.

Fix: Check that the file contains readable key/value pairs and braces. Do not paste binary data, directives or conditional syntax.

Limits and key assumptions

  • No. This is text KeyValues1 only, up to 100000 characters and 32 nested blocks. It rejects binary VDF, KeyValues2/3, include directives and conditionals. Supported quoted escapes are backslash, quote, newline and tab. It checks structure, not application-specific settings or game ownership. Keep the original file because comments are removed.