• 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.
* 'character = X': So this works both as a general trigger, and also in a "defending_against_claimant" clause?
* Non factor entry: Can you post the exact, full error message? This should be off by default.
* religion_group, tier: Can you post the exact error message? As for case-sensitivity, consistency is good so the Validator (usually) enforces it.
* XXXX years old: I fixed a related bug after looking into this, but it shouldn't have caused your message. Maybe you can post the error in case something else is wrong?
* PREV: It is probably an unrelated issue than what you think, can you post the event file? Or if you have this mod downloadable, I can look through the error messages.
* is_landed: Seeing the whole event would be helpful
* 'valid localization key': The validator can't well what is a localization key and what is a string, so it treats everything as localization keys, but you can disable localization checking.
* c_xxxxx is not a valid AnyTitle: I'd need to look closer into this, so a mod download would be useful.

Thank you! You can download the mod here: Britannia 479 AD - The Winter King.

What is the quickest way to post full exact error messages? I mean... is there a file containing error reports from which I can copy and then paste here?
 
Thank you! You can download the mod here: Britannia 479 AD - The Winter King.

What is the quickest way to post full exact error messages? I mean... is there a file containing error reports from which I can copy and then paste here?

Highlighting the error and pressing Ctrl+C should put the message into the clipboard.
 

Some observations:
* tier: Yes, this is complaining about case, because consistent casing is good.
* Fixed "character=X" issue.
* You mean the religion_group=muslim issue? I don't see muslim in your 00_religions.txt file.
* PREV: I think you mean e.g. "Revolts for new Kingdoms - Northumbria"? Apparently, "spawn_unit" may count as a scope ; at least in vanilla files, that is how it is written. So the Validator treats spawn_unit as a scope. It would be nice to know for sure whether or not that is the case, but for now since that is how vanilla does it...
* is_landed: Since it's a trigger in an option inside a province event, wouldn't it be a province trigger?
 
I think is_landed expects a character scope.
 
Some observations:
* tier: Yes, this is complaining about case, because consistent casing is good.
* Fixed "character=X" issue.
* You mean the religion_group=muslim issue? I don't see muslim in your 00_religions.txt file.
* PREV: I think you mean e.g. "Revolts for new Kingdoms - Northumbria"? Apparently, "spawn_unit" may count as a scope ; at least in vanilla files, that is how it is written. So the Validator treats spawn_unit as a scope. It would be nice to know for sure whether or not that is the case, but for now since that is how vanilla does it...
* is_landed: Since it's a trigger in an option inside a province event, wouldn't it be a province trigger?

- Tier: ok, I'll check my casing!
- Thanks
- No the error message is "No direct match found for religion_group (is the casing correct?)" so it must be a casing error again. Not related to muslim.
- Understood.
- No, I think you're slightly wrong here. Options exist only for characters who receive the event and get offered one or more options depending on triggers. The 'option' trigger works always in character scope, even inside a province_event or narrative_event. I can not be 100% sure, but everything I do based on this assumption works out fine, so I guess...

By the way, thank you for your work! :)
 
Like I said, usually when it gives the "no direct match for religion/religion_group/culture/culture_group (is the casing correct?)", the problem turns out to be a bad right side, so muslim being the right side and not in the religions.txt would give that error.

Example of a vanilla province_event with an option that is obviously province scope:
Code:
province_event = {
	id = 68000
	desc = "EVTDESC68000"
	picture = "GFX_evt_bandits"
	
	trigger = {
		NOT = { owner = { demesne_efficiency = 1.0 } }
		NOT = { has_province_modifier = incompetent_rule } 
	}
	
	mean_time_to_happen = {
		months = 2600
		
		#lower if really bad demesne efficiency
<snip factors>

	option = {
		name = "EVTOPTA68000"
		add_province_modifier = {
			name = incompetent_rule
			duration = -1
		}
	}
}
Province modifiers can only be applied to provinces, so obviously the scope is province scope, not character scope.
 
Like I said, usually when it gives the "no direct match for religion/religion_group/culture/culture_group (is the casing correct?)", the problem turns out to be a bad right side, so muslim being the right side and not in the religions.txt would give that error.

Example of a vanilla province_event with an option that is obviously province scope:
Code:
province_event = {
	id = 68000
	desc = "EVTDESC68000"
	picture = "GFX_evt_bandits"
	
	trigger = {
		NOT = { owner = { demesne_efficiency = 1.0 } }
		NOT = { has_province_modifier = incompetent_rule } 
	}
	
	mean_time_to_happen = {
		months = 2600
		
		#lower if really bad demesne efficiency
<snip factors>

	option = {
		name = "EVTOPTA68000"
		add_province_modifier = {
			name = incompetent_rule
			duration = -1
		}
	}
}
Province modifiers can only be applied to provinces, so obviously the scope is province scope, not character scope.

Sorry I probably didn't explain myself well enough. The trigger of the option works in character scope. There is no trigger in the option of your example.

Regarding the religion_group problem I got error reports with existing religion groups, not only for muslim. If I recall correctly there is a specific different error report if a non-defined religion group is put on the right of a 'religion_group =' condition (report would say 'XXX' is not a valid religion group, instead of 'no direct match for...')
 
Trigger's also in province scope, see:
Code:
province_event = {
	id = 77007
	desc = "EVTDESC77007"
	picture = GFX_evt_emissary
	
	trigger = {
		port = yes
		owner = {
			NOT = {
				religion_group = muslim
			}
		}
		any_province_lord = {
			is_feudal = yes
		}
		any_province_lord = {
			is_republic = yes
		}
		any_province_lord = {
			is_theocracy = yes
		}
	}
	
	mean_time_to_happen = {
		months = 36000
		
	}
	
	option = {
		name = "EVTOPTA77007"
		trigger = {
			owner = {
				NOT = {
					is_theocracy = yes
				}
			}
		}
		random_province_lord = {
			limit = {
				is_theocracy = yes
			}
			opinion ={
				modifier = opinion_happy
				who = ROOT
				years = 2
			}
		}
	}
	option = {
		name = "EVTOPTB77007"
		trigger = {
			owner = {
				NOT = {
					is_republic = yes
				}
			}
		}
		random_province_lord = {
			limit = {
				is_republic = yes
			}
			opinion ={
				modifier = opinion_happy
				who = ROOT
				years = 2
			}
		}
	}
	option = {
		name = "EVTOPTC77007"
		trigger = {
			owner = {
				NOT = {
					is_feudal = yes
				}
			}
		}
		random_province_lord = {
			limit = {
				is_feudal = yes
				ROOT = {
					owner = {
						NOT = {
							character = PREVPREV
						}
					}
				}
			}
			opinion ={
				modifier = opinion_happy
				who = ROOT
				years = 2
			}
		}
	}
	option = {
		name = "EVTOPTD77007"
		owner = {
			scaled_wealth = 0.05
		}
	}
}
Scope to owner, then apply character scope checks.
 
--- Error 1 of 1 ---
At <mod>\decisions\demesne_laws.txt [laws\temple_tax_3\potential\NOT[2]\holder_scope\religion_group] (Line 672, Column 29):
No direct match found for religion_group (is the casing correct?). However, other possible matches in scope CharTrigger were found.
Left: ["religion_group"] Right: [ReligionGroup]
Left: ["religion_group"] Right: [ThisChar, ThisProv, or ThisTitle]
Line 672:
Code:
			NOT = { holder_scope = { religion_group = muslim } }
Every other "no direct match found for religion_group" error in demesne_laws.txt has the identical line.
--- Error 1 of 1 ---
At <mod>\decisions\succession_laws.txt [gender_laws\true_cognatic_succession\allow\holder_scope\culture] (Line 379, Column 21):
No direct match found for culture (is the casing correct?). However, other possible matches in scope CharTrigger were found.
Left: ["culture"] Right: [Culture]
Left: ["culture"] Right: [ThisChar, ThisProv, or OpinionClauseDefinedTypes]
Line 379:
Code:
			holder_scope = { culture = basque }
"basque" is not in your cultures file.
--- Error 1 of 1 ---
At <mod>\decisions\succession_laws.txt [succession_laws\succ_open_elective\potential\OR[1]\holder_scope\OR\AND\NOT\religion_group] (Line 243, Column 16):
No direct match found for religion_group (is the casing correct?). However, other possible matches in scope CharTrigger were found.
Left: ["religion_group"] Right: [ReligionGroup]
Left: ["religion_group"] Right: [ThisChar, ThisProv, or ThisTitle]
Line 243:
Code:
							NOT = { religion_group = muslim }
The other religion_group errors in succession_laws also reference muslim.

I could go on, but like I said... this error almost always indicates a right side error.
 
Trigger's also in province scope, see:
Code:
province_event = {
	id = 77007
	desc = "EVTDESC77007"
	picture = GFX_evt_emissary
	
	trigger = {
		port = yes
		owner = {
			NOT = {
				religion_group = muslim
			}
		}
		any_province_lord = {
			is_feudal = yes
		}
		any_province_lord = {
			is_republic = yes
		}
		any_province_lord = {
			is_theocracy = yes
		}
	}
	
	mean_time_to_happen = {
		months = 36000
		
	}
	
	option = {
		name = "EVTOPTA77007"
		trigger = {
			owner = {
				NOT = {
					is_theocracy = yes
				}
			}
		}
		random_province_lord = {
			limit = {
				is_theocracy = yes
			}
			opinion ={
				modifier = opinion_happy
				who = ROOT
				years = 2
			}
		}
	}
	option = {
		name = "EVTOPTB77007"
		trigger = {
			owner = {
				NOT = {
					is_republic = yes
				}
			}
		}
		random_province_lord = {
			limit = {
				is_republic = yes
			}
			opinion ={
				modifier = opinion_happy
				who = ROOT
				years = 2
			}
		}
	}
	option = {
		name = "EVTOPTC77007"
		trigger = {
			owner = {
				NOT = {
					is_feudal = yes
				}
			}
		}
		random_province_lord = {
			limit = {
				is_feudal = yes
				ROOT = {
					owner = {
						NOT = {
							character = PREVPREV
						}
					}
				}
			}
			opinion ={
				modifier = opinion_happy
				who = ROOT
				years = 2
			}
		}
	}
	option = {
		name = "EVTOPTD77007"
		owner = {
			scaled_wealth = 0.05
		}
	}
}
Scope to owner, then apply character scope checks.

Ok I surrender... :rolleyes: ...but I assure you, it works even without 'owner' first, so it must be both ways, I don't know...

Thanks for looking into the religion_group issue, I double checked and you're right. I could not believe it was only fired by missing references because the number of errors was very high, but indeed I have a lot of missing religion_group references in events and decisions ported from vanilla. Sorry, my mistake on this one.

Thanks again for your helpfulness Richard!
 
Hi Jamie, thanks for your great tool.
If you take feature requests, these I'd like to see:

For any child with two parents, check if their parents are married on their birth UNLESS the character has the 'bastard' or 'legit_bastard' trait set. Also the other way around, any child with married parents on his birth should not be bastard.

If children are born on the same date with the same parents, they should have the 'twin' trait, likewise any child who has 'twin' but no siblings born on the same day to the same parents should throw an error.
 
Last edited:
Hi Jamie, thanks for your great tool.
If you take feature requests, these I'd like to see:

For any child with two parents, check if their parents are married on their birth UNLESS the character has the 'bastard' or 'legit_bastard' trait set. Also the other way around, any child with married parents on his birth should not be bastard.

If children are born on the same date with the same parents, they should have the 'twin' trait, likewise any child who has 'twin' but no siblings born on the same day to the same parents should throw an error.

I suspect these will be done soon, but not in the version about to be released.
 
Here is a prerelease of v1.3 RC1 (prerelease, because it might actually get added to v1.2.1 if there is a screwup in the Eu3 code and I have to update on that end)

http://www.mediafire.com/download.php?xnb5bn9ae55v1lm

It has jordarkelf's requests of checking bastard/legit_bastard and twin traits. jordarkelf, please check if the implementation is as expected.

To anyone else, if you have complex requests regarding characters or similar, they are relatively easy to do, so share them and likely they'll appear in a future version.
 
Wow that was fast!

The twin check works exactly like I hope it would.

As for the bastard check, I find that most results are actually results of marriages or child birth set to the wrong date (parents are married, but childbirth is before this date).

I hate to ask, but can you separate the bastard check into two different ones, one to check for cases where there are two parents but NO marriage and one where the child birth proceeds the marriage?

For the second case, something like this:
'This character, ID, is born on <date> which is prior to the parent's marriage on <date>'

The current check works good to find these cases already but the text is misleading.
 
Wow that was fast!

The twin check works exactly like I hope it would.

As for the bastard check, I find that most results are actually results of marriages or child birth set to the wrong date (parents are married, but childbirth is before this date).

I hate to ask, but can you separate the bastard check into two different ones, one to check for cases where there are two parents but NO marriage and one where the child birth proceeds the marriage?

For the second case, something like this:
'This character, ID, is born on <date> which is prior to the parent's marriage on <date>'

The current check works good to find these cases already but the text is misleading.

Done, will release in a few days (unless it is urgent).
 
Wow, this is really, really useful. Especially for non-game crashing errors, such as the one it just found, where I'd left in a typo and when I loaded up CK2 to test, I received no error. For the record, I'd missed the e out on morale.

Thanks for taking the time to make this!
 
--- Error 1 of 1 ---
At <mod>\common\cultures\00_cultures.txt [west_slavic\bohemian] (Line 2422, Column 2):
Invalid node "from_dynasty_suffix" in scope Culture (value is: ski)
"from_dynasty_suffix" exists in the executable, and ought to be valid any place "from_dynasty_prefix" is.