• 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

'
57 Badges
Jan 29, 2007
4.251
213
  • Hearts of Iron IV Sign-up
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris: Leviathans Story Pack
  • 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
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: 0.8
Released: 30 June 2010
--> Download v0.8 (Current Version) <--

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

Older versions
0.7.4 beta
0.7.3 beta is not available.
0.7.2 beta
0.7.1 beta
0.7 beta
0.6.3 beta
Old 0.6.1 beta
Old 0.5 beta
Old 0.4 beta
Old 0.3 beta
Old 0.2 beta
Old 0.1.4 beta

Download the User Guide Here

System Requirements
.NET Framework 4.0
Any reasonably new computer

More detailed usage instructions can be found in the user guide; download link above.
 
Last edited:
v0.7.2 beta has been released

Download v0.7.2b here

There have been a number of UI enhancements. Full changelog is below.

Code:
General
Duplicate ID errors now have their own problem correction.
Fixed several bugs that would cause validation crash (mainly in Hoi3).
Double clicking will jump to "correct problem" if "show error details" is unavailable.
Pressing enter will now have the same action as double clicking.
Fixed some annoyances with deleting and suppressing errors.
A few options have been added to make selection of validators somewhat easier.
In a type mismatch error, when there is a match but with differing case, the match will be suggested.
Validation Changes
Added self-validation for the AtMostOne constriant.
Added a RestrictedNumber constraint.
Removed the RestrictedInt constraint.
Moved the Percent type from code to Global.pdox.
Hoi2
Many improvements in scenario validation.
Fixed bug with division_exists trigger.
When validating commands, empty clauses are accepted.
When validating commands, incorrect "type" entries are pointed to.
Changed free_* commands to accept doubles, as they should.
Changed garrison trigger to have the "area" clause be optional.
In activate_division command, made when and where fields optional.
Added the info_may_cause command.
Command add_prov_resource now accepts a double for the value field.
Added commands night_move, night_attack, night_defense.
Added long form of technology trigger clause.
Added disorg_division command.
Added lock_division and unlock_division commands.
Added the "where = relative" optional clause to build_time and build_cost.
Commands manpower, supply_consumption, and fuel_consumption now accept doubles for value.
Added convoy_prod_mod command.
Add new_model and scrap_model commands.
Added weather and terrain attack/defense/movement modifier commands.
Added minisub_bonus command.
Added allow_building command.
Added land_percentage, air_percentage, and naval_percentage triggers.
Added range trigger.
Added songs command.
Removed ground_def_eff command as it may not exist, and needs further documentation.
Command civil_war is no longer only optional, but a child.
Commands build_cost and build_time now have doubles instead of ints for values.
Command industrial_modifier.value is now a double instead of an int.
Command industrial_multiplier has been added.
Command sce_frequency.value is now double, not int.
Added many scenario clauses.
Moved Rank and Skill types from code.
Eu3
Ht: Added dynasty clause to ruler clause in commands.
Ht: Added birth_Date and death_Date in country history (as opposed to birth_date and death_date), because many vanilla files have that.
"tag" trigger can now accept This as well as Tag.
Ht: Added "exclusive" option for province events, as seems to be the case.
Ht: Added cultural_decisions and hre_decisions clauses to decisions.
Added ai_hard_strategy clause inside country files.
Added militarist and peaceful AI personalities.
Province is_core trigger can now accept "current".
Added nationalism province command.
Province revolt_risk command now accepts doubles.
Ht: Added infamy command, infamy trigger, and infamy modifier command.
Command define_ruler now accepts lowercase as well as uppercase adm, dip, mil.
Added optional regency clause in define_ruler.
Triggers infantry_in_province and galleys_in_province now accept THIS and tags as well as ints. units_in_province also accepts tags now.
Command set_revolution_target now accepts "XXX".
Command with RebelType now accepts doubles.
Trigger war_score now accepts -1.0 to 1.0, inclusive.
Modifiers for events can now be from static_modifiers.txt as well.
Command remove_province_modifier can be used in country scope, and checks for proper modifier names.
Added in trigger and command relation.who, possibilities of "league_leader" and "emperor".
Removed some redundant scope declarations in the triggers file.
Added threat_countries and sea_zones mission types.
Province history - there can now be multiple revolts in a date clause.
Values for "adm", "dip", and "val" are restricted now to integers between 1 and 12, inclusive.
Triggers: Will now warn in case of "adm" and "ADM" in the same clause.
Trigger has_country_modifier will accept all sorts of modifiers now.
Added advisor types validation.
Added price calculation validation.
 
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.15 is available for download

--> Download Validator v0.7.4.15 <--


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:
[b]General[/b]
Added a "shared" scope - between global scope and private scope, sharing its contents only with the file that referenced it with an Includes clause.
Error dialogs: Error dialog for parse failures no longer has an extraneous "= { }" wrapping the text.
Error dialogs: The comboboxes in error dialogs for type mismatch errors will open fast, even if they contain many items.
Fixed bug where some enum validators reported that they were case insensitive even though they were not.
Fixed file corruption when double quotes were inputed into certain text fields in the Settings dialog.
Fixed UI bug where opening a Details dialog on certain types of errors (e.g. TypeMismatchError, ParseFailureError) would, upon dialog closing, leave the context menu nonfunctional, as well as selecting an additional item without holding down modifiers.
The registry is now able to add, delete, and edit entries.
Fixed bug in context validation where sometimes the right side would be reported as in error whereas the left side was in error.
[b]Ftg[/b]
Now no longer designated "INCOMPLETE".
Scenarios: A country's knownprovinces now accepts lake provinces.
Scenarios: Tags in wars and alliances are checked for being a part of the tag list.
Scenarios: Now checks for duplicate IDs.
Leaders: Common alternate casings of 'remark' have been added.
Monarchs: Common alternate casings of 'remark' have been added.
Common alternate casings of months have been added.
Common alternate casings of policies have been added.
[b]Victoria[/b]
Events: Empty command entries are now accepted.
Scenarios: The old validation system requiring the creation of new modules has been replaced with a lightweight version making use of Locals.
Scenarios: VIP's system of multiple EUG files no longer throws errors.
Scenarios: AI file paths are now validated.
Scenarios: Improved ID validation.
Scenarios: General validation improvements.
[b]Hoi2[/b]
Removed the 'incomplete' designation.
[b]Hoi3[/b]
Added the option to validate SF.
SF: Fixed reading of TechCategory by scanning the 'practical' and 'theoretical' nodes.
SF: Units: Added optional 'can_be_pride' field to naval brigades.
Modifier commands: Added command 'supply_consumption'.
SF: OOBs: Added optional 'pride' field to ships.
SF: Laws: Added 'cost' field to laws.
SF: Events: Added province events.
Added building validation.
Added combat event validation.
Technology: Modded combat events will now be able to be set as expected; whereas before the default combat events were hardcoded.
Cabinet positions are now dynamically loaded rather than being hardcoded.
Countries: Minister positions are no longer hardcoded, and each position may at most have one entry.
Countries: Ministers' traits are now checked for correctness.
Triggers: Minister positions are no longer hardcoded.
Modifier commands: Added 'decay' command.
Modifier commands: Added 'air_organisation' command.
Modifier commands: Added 'offmap_land_intel' command.
Modifier commands: Added 'offmap_industry_intel' command.
Modifier commands: Added 'offmap_political_intel' command.
Modifier commands: Added 'peace_offmap_intel' command.
Modifier commands: Added 'threat_impact' command.
Modifier commands: Added 'suseptibility', '_allies', '_axis', '_comintern' commands.
Modifier commands: Added 'defend_reinforce_chance' command.
Modifier commands: Added 'air_organisation' command.
Modifier commands: Added 'attack_reinforce_chance' command.
Modifier commands: Added 'territorial_pride' command.
Modifier commands: Added 'naval_capacity' command.
Added minister trait validation.
Modifiers: The uniqueness of modifier names is now checked.
SF: Added achievement validation.
SF: Triggers: Added country triggers 'air_battles_fought', 'land_battles_fought', and 'naval_battles_fought'.
The "units" folder is scanned one less time, by merging the creation of Brigade with a script creating LandBrigade, AirBrigade, and NavalBrigade.
SF: Added unit upgrade validation.
SF: Added faction aims validation.
[b]Eu3[/b]
H3T: Added modifier 'cultural_tradition_decay'.
Policies: 'on_left' and 'on_right' now accept 0 as an indicator of no action.
H3T: Maps: The climate file will accept ocean provinces in "impassable" climates, with warning.
Maps: Each region will check for uniqueness of entries within itself.
H3T: Maps: It is now possible to disable the warning about not all provinces being present in the climate file.
H3T: Maps: It is now possible to disable the warning about not all provinces being present in the natives file.
H3T: Maps: It is now possible to disable the warning about wasteland provinces being present in the region file.
H3T: Triggers: 'national_focus' is now also a country trigger, accepting a province ID.
 
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'.
 
Announcement

Validator v0.8 will be the last version that supports Crusader Kings I. The fact that CK2 has been announced, combined with the fewer modding projects and lack of interest in CK1 validation, has made continued maintenance and development of validation, especially the integration of new constraints, impractical. However, v0.8 will remain available for download indefinitely, for those interested.

If any person or group of persons is interested in continuing to maintain validation for CK1, then they may PM me to work out details. It seems, however, that validation is relatively complete, and that v0.8 will be sufficient for continued use, as Crusader Kings I fades slowly into the background.
 
Announcement

Validator v0.8 will be the last version that supports Crusader Kings I. The fact that CK2 has been announced, combined with the fewer modding projects and lack of interest in CK1 validation, has made continued maintenance and development of validation, especially the integration of new constraints, impractical. However, v0.8 will remain available for download indefinitely, for those interested.

If any person or group of persons is interested in continuing to maintain validation for CK1, then they may PM me to work out details. It seems, however, that validation is relatively complete, and that v0.8 will be sufficient for continued use, as Crusader Kings I fades slowly into the background.

--- Error 1 of 1 ---
Type Mismatch Error
At c:\deus_vult_1066\db\events\Provincial_Conversion_Events.txt [character_event[2]\mean_time_to_happen\modifier[1]\condition\type] (2768, 18):
"has_advance" is not a valid type or type or type.

--- Error 1 of 1 ---
Child Count Error
At c:\deus_vult_1066\db\events\Crusader_Events.txt [character_event[76]\mean_time_to_happen\modifier] (17688, 3):
At least 1 instance(s) of a literal "factor" entry are required, but there are only 0 instances.

is not error
 
--- Error 1 of 1 ---
Type Mismatch Error
At c:\deus_vult_1066\db\events\Provincial_Conversion_Events.txt [character_event[2]\mean_time_to_happen\modifier[1]\condition\type] (2768, 18):
"has_advance" is not a valid type or type or type.

--- Error 1 of 1 ---
Child Count Error
At c:\deus_vult_1066\db\events\Crusader_Events.txt [character_event[76]\mean_time_to_happen\modifier] (17688, 3):
At least 1 instance(s) of a literal "factor" entry are required, but there are only 0 instances.

is not error
A character cannot have an advance, and a mtth modifier needs a factor or otherwise it is pointless.
 
While awesome I think it doesn't have implemented or reads wrong some realm conditions. Are realm conditions supposed to be used in character events? Such as:

Code:
type = has_province_effect value = { [effect type] = [yes/no] ... }		Note: Check if the effect exist in the capital province of the court the character is in

Because it reports that as type mismatch error while I believe it is working properly.
 
Are realm conditions supposed to be used in character events?
A character cannot have a province effect, I don't know how it could be working properly. It may not have crashed on load though.

To implement it properly you'd have to follow that character to the ruler_csc to the province (unless ruler is specified). For example, this code would work to check if the capital province of the demesne he/she is in is in revolt:
Code:
condition = { type = ruler_csc condition = { type = capital condition = { type = has_province_effect value = { revolt = yes } } } }

If you specified it had to be a ruler you can drop the ruler_csc link.

You can see examples of this being used in stability_events, thought they specify ruler only so they don't use the ruler_csc. But in realm_disruption_events on line 42428 you can see an example of following a liege to a capital to see a particular effect.

I think it's a double shame that all the negative posts are people saying it's wrong for doing exactly what it should!
 
Last edited:
I know that. My point is to read the note carefully. It says:

Note: Check if the effect exist in the capital province of the court the character is in

I might be wrong but I understand it like this. It's a character event - because you need a character, then locates what court he is in and which capital corresponds to that court. And THEN it checks the province that is this capital.

Take the count of Anjou for example. It finds him, then locates him and sees that he is in the county of anjoy and THEN it checks if that province has the effect.
 
After some extensive usage of this in my foray into modding, it does have a couple problems but nothing like what has been said.

First it won't identify when there shouldn't be nested condition = { like
condition = { type = blah condition = { } }

it also allows things the engine doesnt like in a mtth modifier
condition = { type = has_advance value = techname }
but the engine wants you to put
condition = { type = has_advance value = { techname = yes } }
for whatever reason (has_advance sucked the most amount of my time by far)

It also doesn't know previous_char, is_target or pretty much anything listed as new for DV (can't find thread but it's there).

But for basic validation it's great, and saves a lot of gruntwork.
 
Note: Check if the effect exist in the capital province of the court the character is in
I might be wrong but I understand it like this. It's a character event - because you need a character, then locates what court he is in and which capital corresponds to that court. And THEN it checks the province that is this capital

Wasn't ignoring you by the way but I have no idea how you are extrapolating all this from that line you posted, if that's from a province_effect then the validator wouldn't fire the error. Character -> has_province_effect doesn't have an implied province location in the middle, at least as far as I know. It definitely doesn't have an implied location -> owner -> capital in the middle.

It will take it though, just always return false. If that is from a province effect then check that it's not nested in an owner or ruler scoped list, found a few of those in vanilla files.