Appearantly, build_holding only doesn't work with type = tribal. If it is so, it should be reported by the validator
So what you are saying is thatAppearantly, build_holding only doesn't work with type = tribal. If it is so, it should be reported by the validator
build_holding = {
type = tribal
...
}
build_holding = { type = castle ... }
Maybe bugreport it and hopefully it gets fixed?Not that it is not allowed, but that it has no effect, and yes the validator doesn't detect it. To build new tribal holding by event I need to use
then scope to that holding and use convert_to_tribal = yes. The most probable explaination is that the command *should* work but the devs forgot to update the hard code to support it.Code:build_holding = { type = castle ... }
--- Error 1 of 2 ---
At <mod>\decisions\demesne_laws.txt [laws\clanic_centralization_0\ai_will_do\modifier\NOT\OR\AND\over_vassal_limit] (Line 1356, column 8):
Invalid node "over_vassal_limit" in scope TitleTrigger (value is: -6)
--- Error 2 of 2 ---
At <mod>\decisions\demesne_laws.txt [laws\clanic_centralization_0\ai_will_do\modifier\NOT\OR\AND\over_max_demesne_size] (Line 1357, column 8):
Invalid node "over_max_demesne_size" in scope TitleTrigger (value is: -2)
ai_will_do = {
factor = 1
modifier = {
factor = 0.8
}
modifier = {
factor = 0
NOT = {
OR = {
AND = {
has_law = clanic_centralization_1
over_vassal_limit = -1
over_max_demesne_size = -1
}
AND = {
has_law = clanic_centralization_2
over_vassal_limit = -6
over_max_demesne_size = -2
}
ai_will_do = {
factor = 1
modifier = {
factor = 0.9
}
modifier = {
factor = 0
NOT = {
OR = {
AND = {
has_law = centralization_0
over_vassal_limit = -1
over_max_demesne_size = 1
}
AND = {
has_law = centralization_2
over_vassal_limit = 1
over_max_demesne_size = -1
}
Put it either in .../steam/steamapps/crusader kings 2 or .../paradox interactive/crusader kings 2/mod/<your mod folder>how does one prevent the validator from constantly telling you 'Non-namespace ID is larger than 9999'? thanks
Edit: so i have this to be disable in 'ValidatorSettings.txt' in my ck2/mod folder, yet it still finds these errors.
how does one prevent the validator from constantly telling you 'Non-namespace ID is larger than 9999'? thanks
Edit: so i have this to be disable in 'ValidatorSettings.txt' in my ck2/mod folder, yet it still finds these errors.
The upcoming version will have "CharacterHistory.NoDisconnectedDynastyChecks". But you should be able to disable checks that only involve vanilla characters by choosing the option to only show main mod errrors.It is great that you added a flag to disable the duplicate landed_titles check!
Could you also add such a flag to disable the disconnected dynasty check? I am loading up my mod alongside vanilla characters and there's 100+ of those problems in vanilla alone. It would be useful if it only showed the ones in the mod but the vanilla problems are a giant distraction.
Also I get this error now. Is there a way to track down my syntax error in the history files that causes this?
Beginning validation...
Beginning Characters validation...
Character DB loaded in 2220 ms.
ec) EXCEPTION CONTEXT
ec) Validation Task: Characters
Validation Key: CharacterFile
Validation Type: Audax.Validator.TypeExtension.DeclarativeValidatorJob
ERROR
System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.ArgumentOutOfRangeException: Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.
bei Audax.Validator.LongDateTime..ctor(Int32 year, Int32 month, Int32 day)
bei Audax.Validator.LongDateTime.AddYears(Int32 years)
bei Audax.Validator.Clausewitz.Ck2.Age..ctor(LongDateTime birth, LongDateTime current)
bei Audax.Validator.Clausewitz.Ck2.CharInfo.AgeAt(LongDateTime date)
bei Audax.Validator.Clausewitz.Ck2.CharInfo.get_AgeAtDeath()
bei Audax.Validator.Clausewitz.Ck2.CharMaxAgeCheck.Run(ElementNode node)
bei Audax.Validator.Clausewitz.Ck2.CharConstraintBase.RunOnElement(ElementNode node)
bei Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Validate(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ComplexConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.PlaceholderConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Validate(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ComplexConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.PlaceholderConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Validate(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ComplexConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeExtension.DeclarativeValidatorJob.DeclarativeValidatorWorker.Validate()
bei Audax.Validator.TypeExtension.DeclarativeValidatorJob.ValidateOverride()
bei Audax.Validator.ValidatorJobBase.Validate()
bei Audax.Validator.ValidatorJob.Validate()
bei Audax.Validator.GameValidator.<>c__DisplayClass5.<Validate>b__3(ValidatorJob val)
bei System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.<ForWorker>b__c()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass11.<ExecuteSelfReplicating>b__10(Object param0)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
bei System.Threading.Tasks.Task.Wait()
bei System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
bei System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
bei System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
bei Audax.Validator.GameValidator.Validate(Action onEachValidatorCompleteAction)
---> (Interne Ausnahme #0) System.ArgumentOutOfRangeException: Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.
bei Audax.Validator.LongDateTime..ctor(Int32 year, Int32 month, Int32 day)
bei Audax.Validator.LongDateTime.AddYears(Int32 years)
bei Audax.Validator.Clausewitz.Ck2.Age..ctor(LongDateTime birth, LongDateTime current)
bei Audax.Validator.Clausewitz.Ck2.CharInfo.AgeAt(LongDateTime date)
bei Audax.Validator.Clausewitz.Ck2.CharInfo.get_AgeAtDeath()
bei Audax.Validator.Clausewitz.Ck2.CharMaxAgeCheck.Run(ElementNode node)
bei Audax.Validator.Clausewitz.Ck2.CharConstraintBase.RunOnElement(ElementNode node)
bei Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Validate(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ComplexConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.PlaceholderConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Validate(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ComplexConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.PlaceholderConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ChildConstraintSystem.ChildConstraint.Validate(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ValidateInstanceAsBase(ElementNode node, NodeFlags flags)
bei Audax.Validator.TypeCore.ComplexConstraint.ComplexConstraintWorker.ElementValidate(ElementNode node)
bei Audax.Validator.TypeCore.ComplexConstraint.ElementValidate(ElementNode node)
bei Audax.Validator.TypeExtension.DeclarativeValidatorJob.DeclarativeValidatorWorker.Validate()
bei Audax.Validator.TypeExtension.DeclarativeValidatorJob.ValidateOverride()
bei Audax.Validator.ValidatorJobBase.Validate()
bei Audax.Validator.ValidatorJob.Validate()
bei Audax.Validator.GameValidator.<>c__DisplayClass5.<Validate>b__3(ValidatorJob val)
bei System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.<ForWorker>b__c()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass11.<ExecuteSelfReplicating>b__10(Object param0)<---
Edit: Found it. One of my dates was missing a point: 180002.08={birth=yes}
Would be great if this could be reported in the normal way
Edit2: Nah, I still get that lengthy error whenever I run it. Must be something else :/
Historically (and maybe still, not sure) the paradox game engine doesn't handle leap years properly (so if you say 2/29, it would go to 3/1. If this is fine for you there is a ValidatorSettings.txt setting to allow 2/29 when it is a leap year.Thanks!
Is this intentional? 1808 was, in fact, a leap year ...
![]()
What is a LocalizationKey and how do I add it to my mod?
--- Error 1 of 1 ---
At <mod>\common\landed_titles\CK2Plus_titles.txt [e_sicily\allow\is_title_active] (Line 2069, column 3):
"FROM" is not a valid AnyTitle.
A false positive:
Code:--- Error 1 of 1 --- At <mod>\common\landed_titles\CK2Plus_titles.txt [e_sicily\allow\is_title_active] (Line 2069, column 3): "FROM" is not a valid AnyTitle.
In the landed title folder, FROM refers back to the title being formed.
That is a superfluous condition. Titles that are not active already cannot be formed (for instance, e_rome).