• 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.
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.
Thanks yet again Jamie! :D
 
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

An overhaul for Victoria was long overdue, and it is now here! In particular, scenarios have less false positives and false negatives. VIP's scenario system of multiple EUG files should now function without pesky errors, too.

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'.
 
Version 0.8 has been released

--> Download Validator v0.8 <--


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

8dcf881656.png
 
Here:

Code:
Name = "Victoria"
Key = "Vic"
System = "None"
	
Packages = {
	"VicCore"
	"OldCore"
}

Global = {
(Literal Yes) = "yes"

(Type.Enum "Government") = { Values = {
	"democracy"
	"constitutional_monarchy"
	"monarchy"
	"presidential_dictatorship"
	"proletarian_dictatorship"
} }
		
(Type.Enum "Ideology") = { Values = {
	"communist"
	"fascist"
	"anarcho_liberal"
	"conservative"
	"reactionary"
	"socialist"
	"liberal"
} }

(Type.Enum "TechAppId") = { Import = { (FileGroup "db\tech" "*.txt") SelectPath = "technology\area\application\id\!" 

} }
(Type.Enum "TechAreaId") = { Import = { (FileGroup "db\tech" "*.txt") SelectPath = "technology\area\id\!" } }
	
(Type "Date") = {
	Single = { Left = "year" Right = Int }
	Optional = { Left = "month" Right = Month }
	Optional = { Left = "day" Right = Int }
}

(Type.Enum "PopType") = { CaseInsensitive = True Values = { aristocrats officers clergymen capitalists clerks 

craftsmen soldiers farmers labourers slaves } }
(Type.Enum "Establishment") = { Values = { "traditional_academic" "industrialist_science" "naval_industrial" 

"banker_science" "army_industrial" "radical_academic" } }
(Type.Enum "Building") = { Values = { "anarchic_bombthrowers" "terrorist_cells" "citizen_guards" "immoral_business" 

"trusts" "mafia" "rottenboroughs" "machine_politics" "spoil_system" } }
(Type.Enum "TradeUnionLevel") = { Values = { "none" "socialist" "non_socialist" "all" } }
(Type.Enum "ExecutiveDesignation") = { Values = { "laws_by_decree" "hms_government" "parliamentarism" } }
(Type.Enum "PartySystem") = { Values = { "one_party" "two_party" "multi_party" } }
(Type.Enum "NationalValue") = { Values = { "order" "liberty" "equality" } }
(Type.Enum "VotingRights") = { Values = { "none" "wealth" "landed" "suffrage" } }
(Type.Enum "PressRights") = { Values = { "state_press" "censorship" "free_press" } }
(Type.Enum "PoliticalParties") = { Values = { "none_allowed" "right_to_ban" "all_allowed" } }
(Type.Enum "ServiceLevel") = { Values = { "none" "trinkets" "low" "acceptable" "good" } }
(Type.Enum "Continent") = { Values = { "america" "europe" "asia" "oceania" "africa" } }
(Type AiFile) = {
	Right = String
	(AiFileD IfNot = Debug)
}
}

(Type.Enum "Month") = { CaseInsensitive = True Values = { "january" "february" "march" "april" "may" "june" "july"
	"august" "september" "october" "november" "december" } }
		
Includes = {
	# Lists
	"Lists\Backgrounds"
	"Lists\Cultures"
	"Lists\Factories"
	"Lists\Policies"
	"Lists\Religions"
	"Lists\Resources"
	"Lists\Rgos"
	"Lists\Tags"
	"Lists\Units"
	"Lists\Personalities"

	"Triggers"
	"Commands"

	"Ai"
	"Localization"
	"Events"
	"Leaders"
	"Parties"
	"Scenarios\_Scenarios"
	"Technology"
	"Pops"
}

Global = {
Script = {
	DocSource = {
		Type = Csv
		Path = "db\province.csv"
		ColumnCount = 51
	}
	
	(MakeEnumValidator Province) = "Entry\0\[R]"
	(MakeEnumValidator LandProvince) = "Entry { (2\[R]) != 'Sea' } \0\[R]"
	(MakeEnumValidator SeaProvince) = "Entry { (2\[R]) == 'Sea'} \0\[R]"
}
}
 
Here:

Code:
Name = "Victoria"
Key = "Vic"
System = "None"
	
Packages = {
	"VicCore"
	"OldCore"
}

Global = {
(Literal Yes) = "yes"

(Type.Enum "Government") = { Values = {
	"democracy"
	"constitutional_monarchy"
	"monarchy"
	"presidential_dictatorship"
	"proletarian_dictatorship"
} }
		
(Type.Enum "Ideology") = { Values = {
	"communist"
	"fascist"
	"anarcho_liberal"
	"conservative"
	"reactionary"
	"socialist"
	"liberal"
} }

(Type.Enum "TechAppId") = { Import = { (FileGroup "db\tech" "*.txt") SelectPath = "technology\area\application\id\!" 

} }
(Type.Enum "TechAreaId") = { Import = { (FileGroup "db\tech" "*.txt") SelectPath = "technology\area\id\!" } }
	
(Type "Date") = {
	Single = { Left = "year" Right = Int }
	Optional = { Left = "month" Right = Month }
	Optional = { Left = "day" Right = Int }
}

(Type.Enum "PopType") = { CaseInsensitive = True Values = { aristocrats officers clergymen capitalists clerks 

craftsmen soldiers farmers labourers slaves } }
(Type.Enum "Establishment") = { Values = { "traditional_academic" "industrialist_science" "naval_industrial" 

"banker_science" "army_industrial" "radical_academic" } }
(Type.Enum "Building") = { Values = { "anarchic_bombthrowers" "terrorist_cells" "citizen_guards" "immoral_business" 

"trusts" "mafia" "rottenboroughs" "machine_politics" "spoil_system" } }
(Type.Enum "TradeUnionLevel") = { Values = { "none" "socialist" "non_socialist" "all" } }
(Type.Enum "ExecutiveDesignation") = { Values = { "laws_by_decree" "hms_government" "parliamentarism" } }
(Type.Enum "PartySystem") = { Values = { "one_party" "two_party" "multi_party" } }
(Type.Enum "NationalValue") = { Values = { "order" "liberty" "equality" } }
(Type.Enum "VotingRights") = { Values = { "none" "wealth" "landed" "suffrage" } }
(Type.Enum "PressRights") = { Values = { "state_press" "censorship" "free_press" } }
(Type.Enum "PoliticalParties") = { Values = { "none_allowed" "right_to_ban" "all_allowed" } }
(Type.Enum "ServiceLevel") = { Values = { "none" "trinkets" "low" "acceptable" "good" } }
(Type.Enum "Continent") = { Values = { "america" "europe" "asia" "oceania" "africa" } }
(Type AiFile) = {
	Right = String
	(AiFileD IfNot = Debug)
}
}

(Type.Enum "Month") = { CaseInsensitive = True Values = { "january" "february" "march" "april" "may" "june" "july"
	"august" "september" "october" "november" "december" } }
		
Includes = {
	# Lists
	"Lists\Backgrounds"
	"Lists\Cultures"
	"Lists\Factories"
	"Lists\Policies"
	"Lists\Religions"
	"Lists\Resources"
	"Lists\Rgos"
	"Lists\Tags"
	"Lists\Units"
	"Lists\Personalities"

	"Triggers"
	"Commands"

	"Ai"
	"Localization"
	"Events"
	"Leaders"
	"Parties"
	"Scenarios\_Scenarios"
	"Technology"
	"Pops"
}

Global = {
Script = {
	DocSource = {
		Type = Csv
		Path = "db\province.csv"
		ColumnCount = 51
	}
	
	(MakeEnumValidator Province) = "Entry\0\[R]"
	(MakeEnumValidator LandProvince) = "Entry { (2\[R]) != 'Sea' } \0\[R]"
	(MakeEnumValidator SeaProvince) = "Entry { (2\[R]) == 'Sea'} \0\[R]"
}
}
Okay, I think the problem is that your province.csv file has extra or fewer columns. Try pressing ignore for this and any other messages that appear, then see if the error list contains any mentions of province.csv.

In the future, there will be no dialog box, but just an exception thrown, and the information shown in the log on the bottom.
 
Yes I get this:

Code:
--- Error 1 of 1 ---
Incorrect CSV column count
At D:\Spiele\Victoria\db\province.csv
Expected columns: 51
Original error: Expected 51 columns, but actually 73 columns at line 1057.
(If you wish to mass-fix the file, press the 'show details' button.)

already while the dialog pops up.
However, it doesn't continue afterwards even when pressing ignore.
 
Yes I get this:

Code:
--- Error 1 of 1 ---
Incorrect CSV column count
At D:\Spiele\Victoria\db\province.csv
Expected columns: 51
Original error: Expected 51 columns, but actually 73 columns at line 1057.
(If you wish to mass-fix the file, press the 'show details' button.)

already while the dialog pops up.
However, it doesn't continue afterwards even when pressing ignore.
Yes, the extra columns have to be removed first. Unfortunately, the Validator as of now will only parse a CSV file if it has the exact number of columns expected.
 
Yeah autofixing it with the validator leads to the game not starting anymore :/
Examine the line 1057 that has too many columns, and see what in it isn't supposed to be there. Alternatively, use a backup province.csv for validation purposes, and one for starting the game.
 
Announcement

Validator v0.8 will be the last version that supports Victoria I. The fact that Victoria II has been released, combined with the fewer modding projects and lack of interest in Victoria 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 Victoria I, 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 Victoria fades slowly into the background.