"from_dynasty_suffix" exists in the executable, and ought to be valid any place "from_dynasty_prefix" is.
This doesn't work in the latest version?
"from_dynasty_suffix" exists in the executable, and ought to be valid any place "from_dynasty_prefix" is.
ec) EXCEPTION CONTEXT
ec) Validation Task: Buildings
Validation Key: Buildings
Validation Type: Audax.Validator.TypeExtension.DeclarativeValidatorJob
ec) Validating element with constraint [Buildings] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating constraint [String] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating element with constraint [BuildingGroup] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating element with constraint [BuildingGroup] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating constraint [String] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating element with constraint [BuildingDef] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating element with constraint [BuildingDef] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating constraint ["potential"] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating element with constraint [BuildProvTrigger] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating element with constraint [BuildProvTrigger] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ec) Validating constraint [BuildProvTrigger] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential:
ERROR
System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at Audax.Validator.ContextValidatorSystem.EventId..ctor(String idString, Boolean enableNamespaces)
at Audax.Validator.ContextValidatorSystem.CallSearchPath.SearchForCalls(Document doc, CallSearchMethod searchMethod)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.CallSearch.ProcessPath(CFilePath path, Document doc, IList`1 stringSearches, Boolean enableNamespaces)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.FindCalls(IList`1 callSearch, IList`1 stringSearches, CFilePath path, Document doc)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.ProcessPath(CFilePath path, IList`1 idSearch, IList`1 callSearch, IList`1 stringSearches, IList`1 eventScopes)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.GetWorker()
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.get_worker()
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.LoadAll()
at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Load()
at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Validate(Context c, String key, ElementNode node, NodeFlags flags)
at Audax.Validator.ContextValidatorSystem.ContextValidatorConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeExtension.DeclarativeValidatorJob.DeclarativeValidatorWorker.Validate(Context c)
at Audax.Validator.TypeExtension.DeclarativeValidatorJob.ValidateOverride()
at Audax.Validator.ValidatorJobBase.Validate()
at Audax.Validator.ValidatorJob.Validate()
at Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)
tp_hashcavlevy_7 = {
potential = {
FROM = {
OR = {
culture = serindian
culture = avar
culture = bulgar
culture = khazar
culture = turkish
culture = mongol
culture = cuman
culture = pecheneg
culture = saka
culture = parthian
culture = hunnic
}
}
}
prerequisites = { tp_householdtroops_1 }
upgrades_from = tp_hashcavlevy_6
build_cost = 150
build_time = 425
horse_archers = 40
knights = 13
light_cavalry = 40
light_infantry = 47
tax_income = -0.4
ai_creation_factor = 110
}
}
With just downloaded 1.2, I'm getting this:
Code:ec) EXCEPTION CONTEXT ec) Validation Task: Buildings Validation Key: Buildings Validation Type: Audax.Validator.TypeExtension.DeclarativeValidatorJob ec) Validating element with constraint [Buildings] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating constraint [String] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating element with constraint [BuildingGroup] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating element with constraint [BuildingGroup] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating constraint [String] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating element with constraint [BuildingDef] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating element with constraint [BuildingDef] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating constraint ["potential"] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating element with constraint [BuildProvTrigger] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating element with constraint [BuildProvTrigger] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ec) Validating constraint [BuildProvTrigger] @ <mod>\common\buildings\00_buildings.txt ! temple\tp_hashcavlevy_7\potential: ERROR System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) at Audax.Validator.ContextValidatorSystem.EventId..ctor(String idString, Boolean enableNamespaces) at Audax.Validator.ContextValidatorSystem.CallSearchPath.SearchForCalls(Document doc, CallSearchMethod searchMethod) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.CallSearch.ProcessPath(CFilePath path, Document doc, IList`1 stringSearches, Boolean enableNamespaces) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.FindCalls(IList`1 callSearch, IList`1 stringSearches, CFilePath path, Document doc) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.ProcessPath(CFilePath path, IList`1 idSearch, IList`1 callSearch, IList`1 stringSearches, IList`1 eventScopes) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.GetWorker() at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.get_worker() at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.LoadAll() at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Load() at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Validate(Context c, String key, ElementNode node, NodeFlags flags) at Audax.Validator.ContextValidatorSystem.ContextValidatorConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeExtension.DeclarativeValidatorJob.DeclarativeValidatorWorker.Validate(Context c) at Audax.Validator.TypeExtension.DeclarativeValidatorJob.ValidateOverride() at Audax.Validator.ValidatorJobBase.Validate() at Audax.Validator.ValidatorJob.Validate() at Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)
This is tp_hascavlevy_7:
I haven't changed 00_buildings.txt, and it didn't cause this kind of error in rc10.Code:tp_hashcavlevy_7 = { potential = { FROM = { OR = { culture = serindian culture = avar culture = bulgar culture = khazar culture = turkish culture = mongol culture = cuman culture = pecheneg culture = saka culture = parthian culture = hunnic } } } prerequisites = { tp_householdtroops_1 } upgrades_from = tp_hashcavlevy_6 build_cost = 150 build_time = 425 horse_archers = 40 knights = 13 light_cavalry = 40 light_infantry = 47 tax_income = -0.4 ai_creation_factor = 110 } }
namespace = WHATEVER
character_event = {
id = WHATEVER.1
...
}
province_event = {
id = WHATEVER.2
...
}
You need to specify a namespace for alpha-numeric IDs:
Code:namespace = WHATEVER character_event = { id = WHATEVER.1 ... } province_event = { id = WHATEVER.2 ... }
This is a CK2 necessity, not something Validator arbitrarily does. Also note that (as far as I know) namespace event IDs still can't be used in on_actions.
Hmmm... not sure about that. I use namespace events in on_actions, and haven't had a problem so far.Also note that (as far as I know) namespace event IDs still can't be used in on_actions.
--- Error 1 of 6 ---
At <mod>\events\waylit_siege_pulse_events.txt [character_event[2]\trigger\siege\OR\AND] (Line 285, Column 5):
Invalid node "holder_scope" in scope SiegeTrigger (value is: <a complex type>)
--- Error 2 of 6 ---
At <mod>\events\waylit_siege_pulse_events.txt [character_event[2]\trigger\siege\OR\AND] (Line 285, Column 5):
Invalid node "is_capital" in scope SiegeTrigger (value is: yes)
--- Error 3 of 6 ---
At <mod>\events\waylit_siege_pulse_events.txt [character_event[2]\trigger\siege\OR] (Line 280, Column 4):
Invalid node "holder_scope" in scope SiegeTrigger (value is: <a complex type>)
--- Error 4 of 6 ---
At <mod>\events\waylit_siege_pulse_events.txt [character_event[1]\trigger\siege\OR\AND] (Line 29, Column 5):
Invalid node "holder_scope" in scope SiegeTrigger (value is: <a complex type>)
--- Error 5 of 6 ---
At <mod>\events\waylit_siege_pulse_events.txt [character_event[1]\trigger\siege\OR\AND] (Line 29, Column 5):
Invalid node "is_capital" in scope SiegeTrigger (value is: yes)
--- Error 6 of 6 ---
At <mod>\events\waylit_siege_pulse_events.txt [character_event[1]\trigger\siege\OR] (Line 24, Column 4):
Invalid node "holder_scope" in scope SiegeTrigger (value is: <a complex type>)
siege = {
is_attacker = no
OR = {
holder_scope = {
character = ROOT
tier = baron
}
AND = {
holder_scope = {
character = ROOT
higher_tier_than = baron
}
is_capital = yes
}
}
}
Beginning validation...
ec) EXCEPTION CONTEXT
ERROR
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: count
at System.Linq.Enumerable.Range(Int32 start, Int32 count)
at Audax.Validator.Clausewitz.Ck2.Ck2ConstraintFactory.LoadDefaultConstraints()
at Audax.Validator.TypeCore.ConstraintPrevalidation.<OnPrevalidation>b__1(KeyValuePair`2 fac)
at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
at Audax.Validator.TypeCore.ConstraintPrevalidation.OnPrevalidation(Context c, Scope scope)
at Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)
* Added is_marriage_adultI really love this tool, it makes it so much easier to find errors in my mod.
Some things I hope can be done for the next version:
*) Missing character trigger is_marriage_adult, is always valid where is_adult is.
*) Also another feature request... can you limit the twin check to characters with two parents set, and make it not check for bastards/legit_bastards? This'd really limit the number of false positives (especially muslims).
Chars with only one parent may be twins, but probably aren't in most cases (or their mother would also be set).
The soon-to-be-released version should be able to at least pinpoint the problem better.Jamie, are you going to work on fixing my last reported problem soon? I had to downgrade to 1.2 RC10 because 1.2 is unusable for checking Lux Invicta in its current form.
Should be fixed.Maybe namespaces in on_actions got fixed in the last patch or two. I just didn't hear about it (or overlooked it in the changelog), so assumed it was still broken.
From studying vanilla events, it seems that siege scopes to the holding under siege. I'm sure the tier = baron part works, I haven't tested the other part since the last revision (it hadn't been working, I think it's correct now.)Code:siege = { is_attacker = no OR = { holder_scope = { character = ROOT tier = baron } AND = { holder_scope = { character = ROOT higher_tier_than = baron } is_capital = yes } } }
Added a better error message anyways (for others that may run into this)I'm getting an exception when I'm running the validator (v1.2):
Code:Beginning validation... ec) EXCEPTION CONTEXT ERROR System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: count at System.Linq.Enumerable.Range(Int32 start, Int32 count) at Audax.Validator.Clausewitz.Ck2.Ck2ConstraintFactory.LoadDefaultConstraints() at Audax.Validator.TypeCore.ConstraintPrevalidation.<OnPrevalidation>b__1(KeyValuePair`2 fac) at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext() at Audax.Validator.TypeCore.ConstraintPrevalidation.OnPrevalidation(Context c, Scope scope) at Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)
I'm just starting on my mod, so I've made a gazillion changes and this is my first attempt to validate.
I'm successfully validating Game of Thrones, so I think my validation installation etc. should be good. The mod crashes to desktop after loading up in the game, at the character selection screen, but there isn't anything valuable in the log files that I can see.
EDIT: Solved! It was caused by max_provinces being smaller than sea_starts in default.map
-Magnus
Time for another round of Spot the False Positive!
Invalid node "desc" in scope BuildingDef (value is: ca_con_wall_6_desc)
Desc is now a valid attribute.
Invalid node "capital_holding" in scope CharTrigger (value is: <a complex type>)
Capital_holding is now a valid scope.
Invalid node "is_merchant_republic" in scope CharTrigger (value is: yes)
That's now a valid condition.
Invalid node "intrigue" in scope BuildingDef (value is: 1)
That's now a valid attribute. The other character attributes are presumably also valid.
Invalid node "monthly_character_piety" in scope BuildingDef (value is: 0.50)
Invalid node "church_opinion" in scope BuildingDef (value is: 10)
Invalid node "monthly_character_prestige" in scope BuildingDef (value is: 0.25)
Invalid node "fertility" in scope BuildingDef (value is: 0.1)
Invalid node "retinuesize" in scope BuildingDef (value is: 3000)
All valid attributes.
Invalid node "is_patrician" in scope CharTrigger (value is: yes)
Invalid node "trade_post_owner" in scope CbTitleTrigger (value is: <a complex type>)
Invalid node "has_trade_post" in scope CbTitleTrigger (value is: yes)
Invalid node "num_of_trade_post_diff" in scope CharTrigger (value is: <a complex type>)
Invalid node "has_embargo" in scope CharTrigger (value is: FROM)
Invalid node "num_of_trade_posts" in scope CharTrigger (value is: 1)
Valid conditions.
Invalid node "seize_trade_post" in scope CbTitleCommand (value is: ROOT)
Valid command.
Invalid node "trade_post_owner" in scope CbTitleTrigger (value is: <a complex type>)
Invalid node "any_direct_de_jure_vassal_title" in scope TitleTrigger (value is: <a complex type>)
Invalid node "thirdparty_title" in scope WarTrigger (value is: <a complex type>)
Valid scopes.
Invalid node "check_all_trade_posts" in scope CbTypeDef (value is: yes)
Valid CB attribute.
Probably not all of it, but should cover most of it.
ERROR
System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at Audax.Validator.ContextValidatorSystem.EventId..ctor(String idString, Boolean enableNamespaces)
at Audax.Validator.ContextValidatorSystem.CallSearchPath.SearchForCalls(Document doc, CallSearchMethod searchMethod)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.CallSearch.ProcessPath(CFilePath path, Document doc, IList`1 stringSearches, Boolean enableNamespaces)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.FindCalls(IList`1 callSearch, IList`1 stringSearches, CFilePath path, Document doc)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.ProcessPath(CFilePath path, IList`1 idSearch, IList`1 callSearch, IList`1 stringSearches, IList`1 eventScopes)
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.GetWorker()
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.get_worker()
at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.LoadAll()
at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Load()
at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Validate(Context c, String key, ElementNode node, NodeFlags flags)
at Audax.Validator.ContextValidatorSystem.ContextValidatorConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags)
at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c)
at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c)
at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node)
at Audax.Validator.TypeExtension.DeclarativeValidatorJob.DeclarativeValidatorWorker.Validate(Context c)
at Audax.Validator.TypeExtension.DeclarativeValidatorJob.ValidateOverride()
at Audax.Validator.ValidatorJobBase.Validate()
at Audax.Validator.ValidatorJob.Validate()
at Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)
It's still crashing for me when validating Lux Invicta. This time with the error message:
Code:ERROR System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) at Audax.Validator.ContextValidatorSystem.EventId..ctor(String idString, Boolean enableNamespaces) at Audax.Validator.ContextValidatorSystem.CallSearchPath.SearchForCalls(Document doc, CallSearchMethod searchMethod) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.CallSearch.ProcessPath(CFilePath path, Document doc, IList`1 stringSearches, Boolean enableNamespaces) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.FindCalls(IList`1 callSearch, IList`1 stringSearches, CFilePath path, Document doc) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.ProcessPath(CFilePath path, IList`1 idSearch, IList`1 callSearch, IList`1 stringSearches, IList`1 eventScopes) at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.ContextFileCrawlerPrototype.GetWorker() at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.get_worker() at Audax.Validator.ContextValidatorSystem.ContextFileCrawler.LoadAll() at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Load() at Audax.Validator.ContextValidatorSystem.ContextValidatorInfo.Validate(Context c, String key, ElementNode node, NodeFlags flags) at Audax.Validator.ContextValidatorSystem.ContextValidatorConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.PlaceholderConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Audax.Validator.TypeCore.ICChildJudge.InternalValidate(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ConstraintExtensions.Validate(ICChildJudge constraint, Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(Context c, NodeFlags flags) at Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(Context c) at Audax.Validator.TypeCore.ComplexConstraint.Audax.Validator.TypeCore.ICElementJudge.InternalElementValidate(Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c) at Audax.Validator.TypeCore.ConstraintExtensions.ElementValidate(ICElementJudge constraint, Context c, ElementNode node) at Audax.Validator.TypeExtension.DeclarativeValidatorJob.DeclarativeValidatorWorker.Validate(Context c) at Audax.Validator.TypeExtension.DeclarativeValidatorJob.ValidateOverride() at Audax.Validator.ValidatorJobBase.Validate() at Audax.Validator.ValidatorJob.Validate() at Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)