• 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.
I'm pretty sure any_realm_province doesn't work in commands. At least I remember having issues with it.

Okay, disabled it for now.

Is there an easy way to find where exactly the problem in a file is?

I'm getting this after vailidating my mod;
View attachment 60182

One way is if you have a text editor that can jump to a certain line when you open it, such as Notepad++. See DidYouKnow.pdf for details. Then you'll just need to click on the check mark and it will go to the right line.
 
A false positive:

reverse_culture = PREVPREV
reverse_culture = ROOT

The Validator thinks those are duplicates, despite PREVPREV and ROOT being two different scopes.

The reverse_cutlure is a command setting the culture of the char/province to whatever PREVPREV or ROOT is? In that case it seems strange to have two of the commands. But maybe I misunderstand.
 
The reverse_cutlure is a command setting the culture of the char/province to whatever PREVPREV or ROOT is? In that case it seems strange to have two of the commands. But maybe I misunderstand.
No, it sets whatever target is specified to the current scope's culture. So PREVPREV and ROOT will mean two different provinces/characters change culture.
 
Beginning validation...

ec) EXCEPTION CONTEXT

ERROR
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Crusader Kings II\common\objectives\'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler)
at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
at System.IO.Directory.InternalGetFiles(String path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.C2.Clausewitz2ModPathResolver.GetFilesInternal(DirectoryPath path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.C2.Clausewitz2ModPathResolver.GetFiles(DirectoryPath path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.CDirectoryPath.GetFiles(String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.CDirectory.GetFiles(CDirectoryPath path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.CDirectory.GetFiles(CDirectoryPath path, String searchPattern)
at Audax.Validator.Clausewitz.Ck2.PlotFactory.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)

Looks to me like you're looking for an objectives folder, while the game has none.
 
Beginning validation...

ec) EXCEPTION CONTEXT

ERROR
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Crusader Kings II\common\objectives\'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler)
at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
at System.IO.Directory.InternalGetFiles(String path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.C2.Clausewitz2ModPathResolver.GetFilesInternal(DirectoryPath path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.C2.Clausewitz2ModPathResolver.GetFiles(DirectoryPath path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.CDirectoryPath.GetFiles(String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.CDirectory.GetFiles(CDirectoryPath path, String searchPattern, SearchOption searchOption)
at Audax.Clausewitz.IO.CDirectory.GetFiles(CDirectoryPath path, String searchPattern)
at Audax.Validator.Clausewitz.Ck2.PlotFactory.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)

Looks to me like you're looking for an objectives folder, while the game has none.

Whoopsies :eek:o

Fix out momentarily
 
Right then, false positives time!

"There are more PREV clauses than parent scopes" Can_use_title can be scoped to via PREVs.
FROMFROM is a valid scope for CBs; it is the aggressor. ROOT is usually the same, but not when pushing someone else's claim.
de_jure_liege_or_above works fine from province scope.
The Validator really needs to just ignore empty history files. Getting a hundred or so errors due to having to override some vanilla province histories is a bit annoying. This applies to both "the required x entry was not found" and to "duplicate IDs in file names"
 
Right then, false positives time!

"There are more PREV clauses than parent scopes" Can_use_title can be scoped to via PREVs.
FROMFROM is a valid scope for CBs; it is the aggressor. ROOT is usually the same, but not when pushing someone else's claim.
de_jure_liege_or_above works fine from province scope.
The Validator really needs to just ignore empty history files. Getting a hundred or so errors due to having to override some vanilla province histories is a bit annoying. This applies to both "the required x entry was not found" and to "duplicate IDs in file names"

In CB types, FROMFROM you can use in any of the trigger/command scopes and it will always refer to a character?

Can you post the code for the more PREV clause error?

Fixed the de_jure_liege_or_above issue.

For the empty history file, there should be an entry in ValidatorSettings.txt, "ProvinceHistory.NoWarnOnEmptyFile" if you're referring to province history
 
In CB types, FROMFROM you can use in any of the trigger/command scopes and it will always refer to a character?

Can you post the code for the more PREV clause error?

Fixed the de_jure_liege_or_above issue.

For the empty history file, there should be an entry in ValidatorSettings.txt, "ProvinceHistory.NoWarnOnEmptyFile" if you're referring to province history
1. Yes.
2. can_use_title = { FROM = { any_realm_title = { de_jure_liege_or_above = PREVPREV } } }
4. Okay, thanks. Should probably be on by default though :p
Edit: That doesn't seem to work. I'm still getting not found errors after uncommenting that line.
 
1. Yes.
2. can_use_title = { FROM = { any_realm_title = { de_jure_liege_or_above = PREVPREV } } }
4. Okay, thanks. Should probably be on by default though :p
Edit: That doesn't seem to work. I'm still getting not found errors after uncommenting that line.
1. Fixed
2. I can't seem to duplicate that; no error gets reported.
4. Hmm, works for me. To clarify, this only works for province history. Are there other history files that are often empty?
 
1. Fixed
2. I can't seem to duplicate that; no error gets reported.
4. Hmm, works for me. To clarify, this only works for province history. Are there other history files that are often empty?
Title history can be empty, but that wouldn't report any errors anyway.
The line I'm supposed to uncomment is in SettingsFiles\ck2.txt, right? It isn't doing anything for me.
 
Title history can be empty, but that wouldn't report any errors anyway.
The line I'm supposed to uncomment is in SettingsFiles\ck2.txt, right? It isn't doing anything for me.

DidYouKnow.pdf explains the details, but you'd need to copy the ck2.txt file into your CK2 root folder and rename it ValidatorSettings.txt
 
Use of namespace in on_actions should be flagged as an error; namespace doesn't currently work in on_actions.
 
Jamie550, I am using the latest non-beta version of your Validator tool to try and fix my landed_titles issue. It says I have two illegal closing brackets in that file, but I don't know where they are and the Validator won't locate them for me.

Thoughts?