• 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:
I would love to see the inc files be parsed to check for missing { } , " " ,
misspellings, duplicate ids, check if province id is valid, outdated units, technology level vs units in inc ( ie does tech exist for unit? ).

for events id like to see it check for missing { } " ", free ids for events in the scenario files. duplicate event ids. everything else event related is really up to the modder i suppose.

BTW i have not tried the prog yet.
 
I need your opinion on event validation. Right now, all scenario files are scanned, and all event files are taken out. These files are then validated. The problem is that by validating all event files at once, some things cannot be checked, such as whether the command = { type = trigger which = ID } actually refers to a valid ID. This is because the events are not necessarily all included in a scenario. The alternative option is to validate events as part of a scenario - an event will be validated once for each scenario that it is included in. However, in practice, it seems that all scenarios almost always include all events. Also, validating an event every time for every scenario is slow, especially if there are a lot of events.

So, do you think event validation should be kept separate, or should it become a subset of scenario validation?



Noted (some had already been added) :)
 
Development on the Validator is continuing on progress. Support for individual games is being improved. There are also a few new features you may like.

Schemes
Schemes make it convenient to validate multiple games without having to retype paths over and over again. Now if you don't like schemes you will never have to use them. Just ignore the Scheme combo box, and keep typing your paths in as normal. That being said, Schemes are very convenient.

2be963994e.png


If you choose never to use schemes, you will always be using scheme <none>, which is the big blank space at the top left. Notice that right now the selected scheme is _MmpCurrent, and that the game path, mod name, and game list are all disabled. They are disabled when you are using any scheme except none. This is to prevent confusion, when you change the game path, but the change isn't saved inside the scheme. Instead, all changes to the scheme are made inside the scheme menu. To change something, just click on the area - they are all textboxes - and type something new.

Onto scheme management. To add a new scheme, just type inside the <new scheme> box. Once you exit the text box, a new <new scheme> scheme will appear below, and you can continue editing your scheme as desired. To delete a scheme, just press the X on the top-right of a scheme. Note that there are two special schemes - the <none> scheme, at the very beginning, and the <new scheme> scheme, at the very end. These cannot be deleted, for obvious reasons.

Right now the schemes are sorted alphabetically. Hence, by putting an underscore in front, _MmpCurrent becomes the very first item. If I had a lot of time, you would be able to just drag the schemes and rearrange them. However that is a bit too fancy, and the dots at the bottom left right now only serve as a reminder of where you can click to select a scheme.

Error Suppression
Tired of seeing the same errors over and over again? Well, now you don't have to see them any more, with the new feature called Error Suppression. To use, just right-click an error and select "Suppress Error".

19b11a9e15.png


The error will never show up again, at least not unless you make changes to the specific file. Note, though, that you can suppress only one error message at a time. In the above example, for example, suppressing the hard_ai_strategy error will only get rid of that one. The ones below that will remain. The solution to hard_ai_strategy is to actually fix the validation files. The main purpose of Error Suppression is to get rid of those few errors that you are not sure of at all.

If you want to reshow all errors, just go to the File menu and choose "Clear Suppressions". Note that you cannot reshow individual errors. Again, this is tied to the fact that Error Suppression is meant only to hide a few specific errors.

Now, how are the errors stored? Well, each error will generate an unique string ID on demand (the ID is not necessarily unique, which could cause problems). The suppressed errors are added to a file "Core\errorSuppressions.txt". When the validator detects a new error, it will first check if the file has an unique id that is the same as the new error. If it does, the error will never be added.

Below is a sample errorSuppression.txt. As you can see, the ids are mostly indecipherable, which is fine, since they should never need to be seen by human eyes. Instead, their purpose is to make sure, as much as possible, that different errors do not have the same unique ID. Included in the UID is the line and column numbers of the offending nodes. This is convenient, since even if something in the file above the node changes, the line and column numbers may not change, whereas the byte index of the node will almost certainly change. However, if the line number of the node does change, you will need to suppress the error again.

Code:
InvChild|NSE-PD:\Games\Eu3\mod\Mmp C10\common\country_colors.txt-NN-NL0-NC0--CNFLA-CL1062-CC1
InvChild|NSE-PD:\Games\Eu3\mod\Mmp C10\common\country_colors.txt-NN-NL0-NC0--CNQAS-CL1206-CC1
InvChild|NSE-PD:\Games\Eu3\mod\Mmp C10\common\countries\Aragon.txt-NN-NL0-NC0--CNai_hard_strategy-CL118-CC1

Other Changes
- Comment symbols now include '!' and ';', as they are valid comments in game engines.
- Copying errors is more reliable, as it will retry multiple times, and will not crash if unsuccessful on all attempts. Some people with terminal services had this problem.
- The global file now resides in the data folder.
- SelfValidation.pdox is no longer used. Validation will be handled internally (this is still to be implemented)
 
Download v0.7.1 beta

Changelog said:
Bugfixes
The type mismatch correction dialog will no longer crash when confronted with a read-only file.
Fixed a PositivePercent bug.
Crusader Kings
Officially released for Crusader Kings Deus Vult.
Minor error in spelling of stability in triggers.

The main purpose of this release is a fix for the newer games (Eu3, Hoi3).
 
v0.7.2 beta has been released

Download v0.7.2b here

There have been quite a few validation improvements, as well as 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.
 
I hat to say this but why does it have to throw a error up on everything on every file? I use AOD to check on this due to the fact it's based on Hoi2 DDA so I felt it would be best to use this.
 
I hat to say this but why does it have to throw a error up on everything on every file? I use AOD to check on this due to the fact it's based on Hoi2 DDA so I felt it would be best to use this.
First, AoD is different and not supported yet. Second, could you list some of the errors (right click and press "Copy Errors" for ease), in case that it is a Hoi2 error. If someone wants and AoD version, they'd have to develop one, or wait a long time until I acquire a method of purchase.
 
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'.
 
this is so awesome
thx man