• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Jamie550

'
56 Badges
Jan 29, 2007
4.233
199
  • Hearts of Iron IV: Cadet
  • Stellaris: Leviathans Story Pack
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Victoria 2
  • 200k Club
  • 500k Club
  • Europa Universalis IV: Pre-order
  • Victoria 2 Beta
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Stellaris: Digital Anniversary Edition
  • Stellaris - Path to Destruction bundle
  • Stellaris: Synthetic Dawn
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Stellaris: Distant Stars
  • Stellaris: Megacorp
  • Stellaris: Ancient Relics
  • Stellaris: Lithoids
  • Stellaris: Federations
  • Stellaris: Necroids
  • Stellaris: Nemesis
  • Crusader Kings II
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Sons of Abraham
  • Deus Vult
  • Europa Universalis III
  • Europa Universalis III: Chronicles
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Call to arms event
  • Arsenal of Democracy
  • For the Motherland
  • Galactic Assault
  • Hearts of Iron III
  • Heir to the Throne
  • Europa Universalis III Complete
  • Knights of Pen and Paper +1 Edition
  • Magicka
  • March of the Eagles
  • Europa Universalis III Complete
  • Victoria: Revolutions
  • Europa Universalis: Rome
  • Semper Fi
A Validator for Rome

Sick of hunting typos for hours and hours in your files? Hunt no more (or rather, find them in seconds) with the Validator. It will scan all of your files (moddir support included) and report any problems it finds.

8dcf881656.png


Current version: v1.0
Released: 26 July 2012
Download v1.0 here

NOTE: If you want to validate non-VV games, double-click on EnableOlderVersions.bat.

NOTE: This version requires the .NET Framework 4.0 Client Profile!!!
Download the Framework here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab

Important Note
If there is interest, a new version of the Validator will be released with bugfixes and so on. If you are not satisfied with the current final version, please download this and report any issues you find. Please do this by 1 September 2014. Note: I will try to fix reported bugs, but there is no guarantee that they will be fixed.

Download the User Guide Here

Please note that there will be no more updates, unless new patches or expansions are released.
 
Last edited:
Thanks! I can't find any event and decision validation, but mission validation works fine. You should remove the 'maybe' from your signature. ;)
Yeah, there is no event or decision validation for Rome, since there isn't anyone working on it. As for "maybe", the thing is that right now the Rome validator is pretty primitive, so it may be removed unless someone improves it (after all, putting out half-baked software is bad).
 
The main changes will need to be in Data\EuRome\Effects.txt and Data\EuRome\Triggers.txt. Someone has to add all of the commands and triggers that are not there yet, which is a lot. Note that the <Debug={}> clauses swallow invalid nodes - if you have <wealthh>, no error will be reported. These Debug clauses should be removed when all effects and triggers are added. Also, Decisions.txt, Events.txt, and Technology.txt need some work, though I could do those. (Note: In _EuRome.gam.txt, you should uncomment
Code:
 		#Include = "EuRome\Decisions.txt"
		#Include = "EuRome\Events.txt"
		Include = "EuRome\Missions.txt"
		#Include = "EuRome\Technology.txt"


More details about how the files work are in "Information\Modding.txt" which gives most of the information needed though it is slightly outdated.
 
Two suggestions for future versions, applicable for both EUR and EU III.
1. Make decision = x a valid node in country history.
2. Link province history files to buildings.txt, so that <new building> = yes becomes a valid node.

EDIT: I added Optional = { Left = "decision" Right = Decision } under DateGroup in Countries.txt. It doesn't work, though. How can I add a functional decision check?

EDIT#2: I've added a line in _EuRome.gam.txt that refers to one specific decisions file. The only problem is that I don't get the hang of your *s and #s, so I don't know how to create a functional SelectPath.
 
Last edited:
For the SelectPath:
How this works is it first opens every file listed in the FileGroup. Then, the sections of each SelectPath are divided by slashes (or are they backslashes?). All of the sections except the last select a new group of nodes. The sections can be *, to select all child nodes, or a name, to select nodes of that name.

If we have a hypothetical file
Code:
Decisions={ Dec1={...} Dec2={...} Dec3={...} }
BadDecisions = { BadDec1 = {...} }
The first node we want to select is the Decisions, so we write "Decisions\". Then we want to select all of the child decisions, so we add "*\". Now, the nodes Dec1, Dec2, Dec3 are in the "selected" list. Then, we want the actual names of the decisions, so in the last part we write "#". This will give us the strings "Dec1", "Dec2", and "Dec3". If our file instead had "Dec1 = abcd" and we wanted the "abcd" part, we would write "!" instead of "#" as the last part.

So our full path would be
SelectPath = "Decisions\*\#"

A note: If there can be multiple decisions made in a DateGroup, you might want to change "Optional" to "Child".

I'll add your suggestions to the validator.

It's good to see someone working on this, and good luck :)
 
Working Version 0.7.4.13 is available for download

--> Download Validator v0.7.4.13 <--


NOTE: This version requires the .NET Framework 4.0 Client Profile!!!
Download the Framework here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab

Changelog
Code:
General
Added the ability to "catch" validation errors and perform actions such as appending additional information to the error message.
Removed dependency on the F# library, which was causing problems with some users.
Improved a validation error message when validating certain types of events from older games.
Eu3
H3T: Wasteland provinces are no longer expected in natives.txt.
Ocean provinces are now accepted in region.txt.
Errors in map validation are better explained.
"hre_size", "has_hre_emperor_modifier" and "has_hre_member_modifier" are now province triggers as well as country triggers.
Ftg
Added country validation.
Added technology group validation.
Added special country validation.
Added cultures validation.
Added goods validation.
Added localization validation.
Added event validation, which still appears to have many false positives.
Hoi2
Improved AI validation.
Rome
Fixed bug in event validation where events called only by character events were errorneously reported as having no callers.
Added trait validation.
Improved event validation.
 
Working Version 0.7.4.14 is available for download

--> Download Validator v0.7.4.14 <--


NOTE: This version requires the .NET Framework 4.0 Client Profile!!!
Download the Framework here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab

Changelog
Code:
General
Added 'node' and 'arg' parameters to RestrictedNumber constraints.
Improved error messages for various types of numbers.
Slightly improved heuristics for recognition of complex types.
Added a "strict" validation mode which will print warnings as well as errors.
The option of "debug" mode is now available through the options dialog box.
Fixed a bug in the duplication error where the error was always assumed to be on the left.
Improved error message for duplication errors in lists.
Fixed bug where attempting to search for a culture that did not exist would result in a crash.
Added the concept of "locals".
The Ensure and OldScenarioValidator constraints have been made obsolete; while they can still be used it is inadvisable to do so.
Fixed crash when utilizing the AtMostOne constraint.
Ftg
Event commands: Added "-1" as a valid "value" in the "gainmanufactory" command.
Event commands: Added [-1 .. -7] as valid tags.
Event commands: Added "cash" as a synonym for "treasury".
Event commands: Added "addcore" as a deprecated synonym for "addcore_national".
Event commands: Added "removecore" as a deprecated synonym for "removecore_national".
Event commands: Added "infantry", "cavalry", and "artillery" as synonyms for "inf", "cav", and "art".
Event commands: Added "monarch" as a synonym for "wakemonarch".
Event commands: Added "secedeprovince" as a deprecated synonym for "cedeprovince".
Event triggers: Added "core" as a deprecated synonym for "core_national".
Added leader validation.
Added revolt file validation.
Event commands: Empty command clauses are now allowed.
Added scenario validation.
Hoi2
Finished AI validation.
 
Working Version 0.7.4.16 is available for download

--> Download Validator v0.7.4.16 <--


NOTE: This version requires the .NET Framework 4.0 Client Profile!!!
Download the Framework here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab

A number of items are no longer hardcoded. Also, some validation has been improved (try running Country validation, for example). The main news, however, is that Semper Fi is now supported! (There are some problems with event validation - triggers seem to be in wrong scopes, but that could simply be a new feature).

Changelog
Code:
General
Moddir system has been overhauled internally for greater extensibility.
Improved list recognition slightly (by making sure that the document format is Pdox before scanning checking for list of childless elements.
While validation is running, the Scheme selection combo box is disabled to prevent change.
Audax.Clausewitz.Validator.exe and Audax.Clausewitz.Validator.Core.dll are now signed with strong names.
Localization is now supported in the form of seperate translation files, as well as legacy inline translation.
Ftg
Many restricted number validators now show the actual value.
Localization now works right with mods (i.e. a mod without a language in the base will no longer generate a multitude of errors).
Hoi3
Commands: 'remove_province_modifier' now checks that the modifier is a real modifier.
Commands: 'add_province_modifier' has been fixed to take a clause rather than a string.
SF: Events: Added 'fire_only_once' and 'subtitle' to province events.
Commands: Added province commands 'set_province_flag' and 'clr_province_flag'.
Triggers: 'province_id' now accepts both land and sea provinces.
SF: Triggers: Added province triggers 'last_battle_winner_losses' and 'last_battle_loser_losses'.
Ck
Scenarios: streamlined internal validation logic, akin to recent Victoria improvement.
Removed dynasty  validation - this is now a part of scenario validation.
Scenarios: Uniqueness of dynasty province lists is now checked.
Province effects: Fixed false duplication positive in vanilla files.
Province improvements: Checks for duplication in 'required_advances' and 'required_province_improvements'.
Added tags 'U000' and 'U001'.
Eu3
IN: Fixed crash when validating maps.
Hoi2
Improvements in scenario validation.
 
Working Version 0.7.4.17 is available for download

--> Download Validator v0.7.4.17 <--


NOTE: This version requires the .NET Framework 4.0 Client Profile!!!
Download the Framework here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab

Changelog
Code:
General
Added the possibility of nameless nodes (i.e. A = { { ... } } ) to the PDO parser.
Made it easier to describe PDO lists with a PdoListItem constraint.
Many PDO lists have been converted to use a PdoListItem constraint.
Added "[" and "]" as valid starting characters in a PDO file.
The PDO format now supports conditionals in the form '¤IF XXX', '¤ELSE', and '¤ENDIF'.
Games based on the Clausewitz validation will now have mods worked as before, though using the "name" argument in the .mod file still works.
Eu3
Triggers: Country trigger 'technology_group' now accepts THIS when in reference to a country.
Ftg
Commands: Command 'provinceculture' now accepts -1 as a value, indicating the primary culture of the country receiving the event.
Scenarios: Added to permissible values in a province definition 'looted' (and 'date'), 'manpower', 'province_revoltrisk', 'mine', and 'goods'.
Scenarios: province definition 'income' has been changed from PositiveInt to NonNegInt.
Scenarios: When a mod is used, scenarios in vanilla will not be checked. (To do so, the Scenarios folder has been given a 'replace' characteristic, as opposed to 'extend'.
Leaders: When validating a mod, invalid files in the vanilla folder will not trigger an error (i.e. having a file "leaders_ABC.txt" in vanilla will not trigger an error if there is no such tag "ABC" in the mod).
Monarchs: When validating a mod, invalid files in the vanilla folder will not trigger an error (i.e. having a file "monarchs_ABC.txt" in vanilla will not trigger an error if there is no such tag "ABC" in the mod).
Scenarios: Fixed invalid warning in clause 'flagname' in case of ' ABC = Blah DEF = Blah '; now the warning will warn about ' ABC = Blah ABC = MoreBlah '.
Scenarios: Added 'combat' clause.
Commands: Added 'leader' as a synonym for 'wakeleader'.
Localization: Will no longer crash if a mod has a language not included in the base game.
'ai' clauses will no longer crash if their value is not a string.
Scenarios: Now recognizes 'option' clauses in the header, and will use their default values.
Scenarios: The 'name' clause in units is now optional.
Scenarios: Added optional 'loansize' to country definitions.
Scenarios: The following entries in country definitions are now optional: colonialattempts, colonialnation, major, colonists, merchants, inflation.
Scenarios: The 'date' entry in a country's policy definition is now optional.
Scenarios: Added optional 'trade' and 'guarenteed' clauses to a country's relation list.
Scenarios: Added optional 'historicalleader' to a country's unit clauses.
Victoria
'ai' clauses will no longer crash if their value is not a string.
Hoi3
SF: Oob: Added optional 'organisation' clause to wings, regiments, and ships.
Modifiers: Added 'global_metal' modifier.
Triggers: Country trigger 'faction' now accepts THIS in reference to a country, as well as Factions.
Triggers: Added country trigger 'total_amount_of_brigades'.
Non-SF: Triggers: Province trigger 'province_id' has been removed.
Modifiers: Added 'local_manpower' and 'local_leadership' modifiers.
SF: Triggers: Added 'land_fort' province trigger.
SF: Events: Added 'triggered_only_once' to country events.
SF: Commands: Added 'surrender_inherit' country command.
SF: Commands: Added province commands (already country commands) 'add_country_modifier', 'clr_global_flag', and 'set_global_flag'.
SF: Triggers: Added province triggers (already country triggers) 'tag' and 'has_global_flag'.
 
Last edited:
v0.8.9 beta is available for download

--> Download Validator v0.8.9 beta <--

As this is a beta version, it has not undergone the extensive testing of a full release. However, reasonable attempts to limit the number and severity of bugs have been made.

NOTE: This version requires the .NET Framework 4.0 Client Profile
Download the Framework here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab

Code:
General
Fixed bug that could cause a crash when opening multiple errors at the same time.
Improved the handling of file paths in PDOX.
Eu3
Commands: define_advisor no longer requires a skill entry.
Commands: The spawn_rebels commands now accepts friend as optional.
Commands: The province command for rebel creation now accepts only non-negative doubles rather than all doubles.
Triggers: Added ThisCountry to dominant_religion and dominant_culture.
Country history: Date clauses are now checked for left uniqueness.
Country history: Date clauses can now contain unit_type.
Province history: Fixed bug where non-empty revolt clauses were being reported.
Added the ability to list all events.
Hoi3
Added the ability to list all events.
SF: Country and province events now have the same ID list when checking for unique IDs.
Rome
Added the ability to list all events.
Fixed a number of crash bugs.
Vic2
Added the ability to list all events.