Format Template
Formatting presets and details about tokens and replacements.
The version format template is a string you define with tokens that Version Forge replaces with real values. You can either choose a preset or write your own.
Presets
Choosing a preset will fill in the Format Template and Date Format fields. Choose the Custom preset to write your own.
| Preset | Format Template | Date Format |
|---|---|---|
| SemVer | {major}.{minor}.{patch}{prerelease}+{platform}.{config}.{date}.{build} | %Y%m%d |
| 1.5.7-beta+Windows.Shipping.20261123.418 | ||
| SemVer (No Build Data) | {major}.{minor}.{patch}{prerelease}+{platform}.{config} | |
| 1.5.7-beta+Windows.Shipping | ||
| CalVer Year | {date}.{patch}{prerelease}+{platform}.{config}.{build} | %Y |
| 2026.7-beta+Windows.Shipping.418 | ||
| CalVer Year Month | {date}.{patch}{prerelease}+{platform}.{config}.{build} | %Y.%m |
| 2026.11.7-beta+Windows.Shipping.418 | ||
| CalVer Year Month Day | {date}{prerelease}+{platform}.{config}.{build} | %Y.%m.%d |
| 2026.11.23-beta+Windows.Shipping.418 | ||
| CalVer Compact | {date}{prerelease}+{platform}.{config}.{build} | %Y%m%d |
| 20261123-beta+Windows.Shipping.418 | ||
| Sequential | {build}{prerelease}+{platform}.{config}.{date} | %Y%m%d |
| 418-beta+Windows.Shipping.20261123 |
Examples are using Project Version 1.5.7, Build Number 418, Pre-release tag beta, and the default Patch Source.
- Build and platform details follow a literal
+in accordance with Semantic Versioning metadata specifications. - SemVer (No Build Data) leaves out the build number, changelist, and date. It suits any project that does not want build data in its version.
- When Patch Source is set to Build Number, the patch value already contains the build number, so SemVer, CalVer Year, and CalVer Year Month presets then drop the
{build}token.
Tokens
| Token | Replaced with | Example |
|---|---|---|
{major} | The first part of Project Version. | 1 |
{minor} | The second part of Project Version. | 5 |
{patch} | The resolved patch value. See Patch source. | 7 |
{projectpatch} | The third part of Project Version. | 7 |
{build} | The captured build number. | 418 |
{cl} | The captured changelist number or hash. | 98765 or d83ab2b |
{prerelease} | The configured pre-release tag with a leading -. | -beta |
{platform} | The packaged game's platform. | Windows |
{config} | The packaged game's configuration. | Shipping |
{date} | The captured build date, formatted by Date Format. | 20261123 |
Date format
Date Format sets what the {date} token is replaced with. It uses Unreal's FDateTime::ToString patterns. The default is %Y%m%d.
| Format | Outputs | Example |
|---|---|---|
%Y | 4-digit year | 2026 |
%y | 2-digit year | 26 |
%m | 2-digit month | 01-12 |
%d | 2-digit day of month | 01-31 |
%D | 3-digit day of year | 001-366 |
%H | Hour, 24-hour clock | 00-23 |
%h | Hour, 12-hour clock | 01-12 |
%a | Lowercase am/pm | am or pm |
%A | Uppercase AM/PM | AM or PM |
%M | Minute | 00-59 |
%S | Second | 00-59 |
%s | Millisecond | 000-999 |
Patch source
Patch Source sets what value {patch} resolves to.
| Setting | {patch} resolves to | Use it when |
|---|---|---|
| Project Patch Version (default) | The third segment of Project Version. | You want to bump the patch number by hand. |
| Build Number | The build number from the CI job. | You don't want to manage the patch version and let CI builds drive it instead. |
| Changelist | The source control changelist number. | Same as above, but with the captured changelist value. |
If the changelist value is not numeric, such as a git hash, Changelist falls back to Project Patch.
Long and short versions
The API and Widget allow getting and displaying long and short version strings.
| Version | Example | |
|---|---|---|
| Long Version | The full version string with metadata. | 1.5.7-beta+Windows.Shipping.20261123.418 |
| Short Version | The version string without metadata. | 1.5.7-beta |

