Set File Format Specification v4.0
The Official Format Definition
Updated: November 2025
About This Specification
This specification defines the Set file format - a human-readable data format for storing settings, configuration, and structured data.
Version 4.0 represents the first public release of this tool, that has been in use for more than two decades.
License: Creative Commons Attribution 4.0 International (CC BY 4.0)
Copyright © 2025 Kirk Siqveland
Quick Navigation
Core Format Specification
The authoritative format definition. These five sections define what a Set file is.
Section 1: Introduction & Philosophy
- What are Set files?
- Design principles
- When to use Set files
- File extensions and implementation flexibility
Read Section 1 →?
Section 2: Minimum Core Specification
- File structure
- Groups and group naming
- Group content (key-value pairs and positional fields)
- End of group markers
- Text blocks
- Text block references
- Delimiters
- Escape sequences
- Comments
Read Section 2 →
Section 3: File Configuration
- Filename conventions
- The ##[THIS-FILE]## group
- Configuration keys (Delimiters, Encode, Localize)
- Metadata keys
- Placement recommendations
Read Section 3 →?
Section 4: Group Types in Detail
- Regular groups (positional fields)
- Key-value groups
- Text block groups
- Text block references
- Mixed usage
Read Section 4 →?
Section 5: Optional Advanced Features
- Single-use fields (##:::##)
- Ellipsis shorthand
- Single-line delimiter override
- Alternative delimiters
- Advanced escape sequences
- Extended localization
Read Section 5 →?
Implementation Guide
Comprehensive guidance for building Set file parsers and using advanced features. These are recommendations and patterns, not requirements.
Complete Examples
View all examples demonstrating:
- Simple configuration files
- Structured data with tables
- Multi-language content
- Advanced features
- Environment-specific configurations
Version History
Version 4.0 (November 2025) - Current
Major simplifications:
- Removed mandatory preamble → Use optional ##[THIS-FILE]## group
- Removed ##KEYVALUE## notation → Just use ##[GROUPNAME]##
- Removed comment block syntax → Text outside groups is inherently comments
- Simplified escape sequences → Only ##\\|## needed (delimiter escape)
- Added single-line delimiter override
- UTF-8 direct input emphasized
Full version history and migration guide →?
Previous Versions
- v3.3 (November 2025) - Clarified progressive preamble, standardized naming
- v3.2 (November 2025) - Added key-value groups and text blocks
- v3.0 (September 2025) - Added special functions, SetQL, internationalization
- v2.0 - Core format, escape sequences, comment blocks
Download Specification
Quick Reference
File Structure:
filename.set
Comments outside groups
[GROUPNAME]
Key|Value
Field1|Field2|Field3
[{TEXTBLOCK}]
Multi-line content
No escaping needed
[EOG]
Key Rules:
- Groups: ##[NAME]## for data, ##[{NAME}]## for text
- Delimiter: ##|## (pipe) by default
- Escape: ##\\|## for pipes in data
- Comments: Any text outside groups
- End markers: ##[EOG]## optional, blank line works too
Getting Help
← Back to Home