• 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.
Right then, false positives time.
I'm getting a bunch of '"k_bavaria" is not a valid ThisChar or ThisTitle' when doing "de_jure_liege_or_above = k_bavaria" and such. Any title in landed_titles should work fine.
""THIS" is not a valid ThisChar." - THIS is valid
"Invalid node "de_jure_vassal_or_below" in scope CharTrigger (value is: PREV)" - That's a valid condition.
"Invalid node "set_de_facto_liege" in scope CharCommand (value is: THIS)" - That's a valid command.
"Invalid node "succ_law_title" in scope TitleTrigger (value is: <a complex type>)" - That's a valid scope.

"Incorrect Literal
Expected value: default_culture_modifier
Actual value: cultural_flexibility"
One can actually set that modifier to things, as long as they're in static_modifiers.
"There must be at least one non-factor entry within a factor modifier." - Nope. Paradox uses one with only "factor = 0.5" to slow a bunch of stuff down.
""yes" is not a valid ThisTitle." - True, but it is a valid argument for "destoy_landed_title"
"Invalid node "prestige" in scope TitleTrigger (value is: 100)"
""yes" is not a valid Faction." - True, but it is a valid argument for "leads_faction"

"No direct match found for IF. However, other possible matches in scope CharCommand were found.
Left: ["if"] Right: [CharIfClause]"
No idea why it is objecting, seeing as there is a "limit" there. Perhaps because if has been written as "IF"?
"The event is set to be triggered only, but it is never called." - I triggered it in an "effect" scope in character history (that's possible as of 1.07).
"Invalid node "culture_flex" in scope <anon> (value is: -0.4)" - Culture Flex is a valid command, as is everything else used in Technology.
"Invalid node "fertility" in scope ObjectiveDef (value is: 0.25)" - Objectives can apparently add fertility now.
"Invalid node "defending_against_claimant" in scope CharTrigger (value is: <a complex type>)" - Added in 1.07
"Invalid node "is_conquered" in scope TitleChanceModifier (value is: yes)" - Added in 1.07
 
Last edited:
"--- Error 1 of 1 ---
At <mod>\common\cb_types\00_cb_types.txt [other_claim\can_use_title\OR[1]\AND\NOT[2]] (Line 167, Column 5):
Invalid node "succ_law_title" in scope TitleTrigger (value is: <a complex type>)"

This is something new in vanilla I think,
Code:
	can_use_title = {
		OR = {
			ROOT = { is_female = no }
			AND = {
				NOT = { ROOT = { religion_group = muslim } }
				NOT = { succ_law_title = { has_law = agnatic_succession } }
			}
is used to keep you from pressing a claim to an agnatic succession title for a female claimant.
 
"--- Error 1 of 1 ---
At <mod>\common\cb_types\00_cb_types.txt [nm_prestige_revolt\on_success\any_attacker[1]\disband_event_forces] (Line 6398, Column 4):
"prestige_revolters" is not a valid EarmarkType or Yes."

It appears that you can use custom earmarks. I gave spawned units for the Norse Mod prestige revolters the earmark "prestige_revolters" in the prestige revolt event, and disbanded them on war end in the prestige revolt CB, and at end of war in a test game they disbanded. "Yes" is no longer valid for version 1.07.

"--- Error 1 of 1 ---
At <mod>\events\NM_prestige_effects.txt [character_event[2]] (Line 325, Column 1):
Invalid node "only_independent" in scope CharEvent (value is: yes)"

"only_independent = yes" is used in one vanilla event (#88010 in hashshashin_order_events.txt) before the trigger block.
 
Last edited:
--- Error 1 of 1 ---
At <mod>\localisation\better_rebels_mod.csv [Entry[35]\1] (Line 36, Column 25):
Localization error: Invalid dollar sign command: "PROVINCENAME" in "$PROVINCENAME$ is no longer isolated"

This dollar sign command works.
 
Right then, false positives time.
I'm getting a bunch of '"k_bavaria" is not a valid ThisChar or ThisTitle' when doing "de_jure_liege_or_above = k_bavaria" and such. Any title in landed_titles should work fine.
""THIS" is not a valid ThisChar." - THIS is valid
"Invalid node "de_jure_vassal_or_below" in scope CharTrigger (value is: PREV)" - That's a valid condition.
"Invalid node "set_de_facto_liege" in scope CharCommand (value is: THIS)" - That's a valid command.
"Invalid node "succ_law_title" in scope TitleTrigger (value is: <a complex type>)" - That's a valid scope.

"Incorrect Literal
Expected value: default_culture_modifier
Actual value: cultural_flexibility"
One can actually set that modifier to things, as long as they're in static_modifiers.
"There must be at least one non-factor entry within a factor modifier." - Nope. Paradox uses one with only "factor = 0.5" to slow a bunch of stuff down.
""yes" is not a valid ThisTitle." - True, but it is a valid argument for "destoy_landed_title"
"Invalid node "prestige" in scope TitleTrigger (value is: 100)"
""yes" is not a valid Faction." - True, but it is a valid argument for "leads_faction"

"No direct match found for IF. However, other possible matches in scope CharCommand were found.
Left: ["if"] Right: [CharIfClause]"
No idea why it is objecting, seeing as there is a "limit" there. Perhaps because if has been written as "IF"?
"The event is set to be triggered only, but it is never called." - I triggered it in an "effect" scope in character history (that's possible as of 1.07).
"Invalid node "culture_flex" in scope <anon> (value is: -0.4)" - Culture Flex is a valid command, as is everything else used in Technology.
"Invalid node "fertility" in scope ObjectiveDef (value is: 0.25)" - Objectives can apparently add fertility now.
"Invalid node "defending_against_claimant" in scope CharTrigger (value is: <a complex type>)" - Added in 1.07
"Invalid node "is_conquered" in scope TitleChanceModifier (value is: yes)" - Added in 1.07

- ""THIS" is not a valid ThisChar." - THIS is valid
True, but it seems like they're trying to get people to use ROOT in general, so maybe we just want to leave this as is?

- "Invalid node "set_de_facto_liege" in scope CharCommand (value is: THIS)" - That's a valid command.
Is set_defacto_liege not a valid command then? I seem to have that listed.

- "Invalid node "succ_law_title" in scope TitleTrigger (value is: <a complex type>)" - That's a valid scope.
So this switches to another title scope?

- "There must be at least one non-factor entry within a factor modifier." - Nope. Paradox uses one with only "factor = 0.5" to slow a bunch of stuff down.
Is that any different then just modifying the base factor that is on top?

- "No direct match found for IF. However, other possible matches in scope CharCommand were found.
Left: ["if"] Right: [CharIfClause]"
It's case sensitive and complaining about uppercase IF

- "Invalid node "defending_against_claimant" in scope CharTrigger (value is: <a complex type>)" - Added in 1.07
Could you expand on how this works?

Everything else should have been fixed. (I'm assuming you did verify that all the things you listed actually do work)
 
"--- Error 1 of 1 ---
At <mod>\common\cb_types\00_cb_types.txt [nm_prestige_revolt\on_success\any_attacker[1]\disband_event_forces] (Line 6398, Column 4):
"prestige_revolters" is not a valid EarmarkType or Yes."

It appears that you can use custom earmarks. I gave spawned units for the Norse Mod prestige revolters the earmark "prestige_revolters" in the prestige revolt event, and disbanded them on war end in the prestige revolt CB, and at end of war in a test game they disbanded. "Yes" is no longer valid for version 1.07.

"--- Error 1 of 1 ---
At <mod>\events\NM_prestige_effects.txt [character_event[2]] (Line 325, Column 1):
Invalid node "only_independent" in scope CharEvent (value is: yes)"

"only_independent = yes" is used in one vanilla event (#88010 in hashshashin_order_events.txt) before the trigger block.

Fixed the earmark issues. So only_independent definitely does work (as opposed to being a typo)?
 
- ""THIS" is not a valid ThisChar." - THIS is valid
True, but it seems like they're trying to get people to use ROOT in general, so maybe we just want to leave this as is?

- "Invalid node "set_de_facto_liege" in scope CharCommand (value is: THIS)" - That's a valid command.
Is set_defacto_liege not a valid command then? I seem to have that listed.

- "Invalid node "succ_law_title" in scope TitleTrigger (value is: <a complex type>)" - That's a valid scope.
So this switches to another title scope?

- "There must be at least one non-factor entry within a factor modifier." - Nope. Paradox uses one with only "factor = 0.5" to slow a bunch of stuff down.
Is that any different then just modifying the base factor that is on top?

- "No direct match found for IF. However, other possible matches in scope CharCommand were found.
Left: ["if"] Right: [CharIfClause]"
It's case sensitive and complaining about uppercase IF

- "Invalid node "defending_against_claimant" in scope CharTrigger (value is: <a complex type>)" - Added in 1.07
Could you expand on how this works?

Everything else should have been fixed. (I'm assuming you did verify that all the things you listed actually do work)
THIS and ROOT are not the same. THIS refers to the current scope (E.G., set_defacto_liege = THIS makes a char his own liege, and thus independent), while ROOT refers to the initial scope of an event/decision/etc.

"set_de_facto_liege", oops, didn't notice the underscore in that. You're right, set_defacto_liege is the correct way to put it.

Yeah, that's another title scope.

To my knowledge the base factor only supports integers. Either way, it is used in vanilla and works fine, so it probably shouldn't give an error report.

Ok. Not very clear from the error though. Could the text for that be improved?

I have no idea how it works, all I know is that it was added in 1.07 :)
 
Does RC4 support putting mods in the Documents directory tree? If not, are you planning on adding that support?
It does not. From the thread it sounds like the issue will be fixed so it's unlikely to be added, unless for some reason lots of people want the capability.

Devs have been trying to solve the replace_path bug for a long time without success. I personally would be sooooo happy if you could release a version of the Validator that works in documents folder. It doesn't sound like a complicated feature to implement (I could be wrong of course). Right now, everytime I want to use the Validator with my mod I have to move it to the game main folder, then move it back to documents when I'm done. It's enough to make me use the Validator a lot less than before.

Anyway... thanks for this great tool!
 
Devs have been trying to solve the replace_path bug for a long time without success. I personally would be sooooo happy if you could release a version of the Validator that works in documents folder. It doesn't sound like a complicated feature to implement (I could be wrong of course). Right now, everytime I want to use the Validator with my mod I have to move it to the game main folder, then move it back to documents when I'm done. It's enough to make me use the Validator a lot less than before.

Anyway... thanks for this great tool!
To fix replace_path even with the mod in the game folder:
Make a file called userdir.txt in the CKII folder. Put a single period (.) in it, and save. All temporary data (saves, screenshots, etc) will now be saved to the game folder, and replace_path will work.
 
Fixed the earmark issues. So only_independent definitely does work (as opposed to being a typo)?

Well, it's in the executable, amidst a group of pre-trigger filters.
 
To fix replace_path even with the mod in the game folder:
Make a file called userdir.txt in the CKII folder. Put a single period (.) in it, and save. All temporary data (saves, screenshots, etc) will now be saved to the game folder, and replace_path will work.

Thanks for the suggestion Meneth! Knowing your reputation as a modder I almost replied with a huge "YEEEEAAAH! THANK YOU!!!!!" even before trying that, but then I decided to try and it's not working. I've put a userdir.txt file containing only a '.' in the CKII main folder as you said, but the replace_path still doesn't work. All files from vanilla get read anyway, and as a result the mod is a big mess.

Am I doing something wrong? Does the trick work for you?

Do you have a steam version? I always thought the replace_path bug could be related to the long address of the mod location when CKII is installed in the program files/steam/steamapps/common etc. folder...
 
Thanks for the suggestion Meneth! Knowing your reputation as a modder I almost replied with a huge "YEEEEAAAH! THANK YOU!!!!!" even before trying that, but then I decided to try and it's not working. I've put a userdir.txt file containing only a '.' in the CKII main folder as you said, but the replace_path still doesn't work. All files from vanilla get read anyway, and as a result the mod is a big mess.

Am I doing something wrong? Does the trick work for you?

Do you have a steam version? I always thought the replace_path bug could be related to the long address of the mod location when CKII is installed in the program files/steam/steamapps/common etc. folder...
I don't use the Steam version, but replace_path is working fine for me with mods in the game folder.
Could you check and make sure it is saving stuff like logs and saves and such in the game folder? If not, something must've gone wrong.
 
I don't use the Steam version, but replace_path is working fine for me with mods in the game folder.
Could you check and make sure it is saving stuff like logs and saves and such in the game folder? If not, something must've gone wrong.

No, it's not. No logs or saved games folder were created in the main CKII folder. It still writes in documents folder. This happened both running the mod and vanilla with the 'userdir.txt' file added.

It really looks like a Steam issue, since apparently it's the only difference between my setup and yours (vanilla 1.07b should be identical... so...).
 
--- Error 1 of 1 ---
At <mod>\localisation\1_CharTooltip.csv [Entry\1] (Line 2, Column 27):
Localization error: Invalid bracket command: "GetAmbition" in "GetAmbition" in "§G Debug Info:§!\n ID: [GetID]\n Age: [GetAgeYears]\n Player-[GetInstantPlayerOpinion]\n Liege-[GetInstantLiegeOpinion]\n Ambition: [GetAmbition]\n Plot: [GetPlot]"
[GetAmbition] works.
So does $PROVINCENAME$:
--- Error 1 of 1 ---
At <mod>\localisation\better_rebels_mod.csv [Entry[33]\1] (Line 34, Column 25):
Localization error: Invalid dollar sign command: "PROVINCENAME" in "$PROVINCENAME$ is isolated from the rest of the realm. It is difficult to control"
 
Last edited:
THIS and ROOT are not the same. THIS refers to the current scope (E.G., set_defacto_liege = THIS makes a char his own liege, and thus independent), while ROOT refers to the initial scope of an event/decision/etc.

"set_de_facto_liege", oops, didn't notice the underscore in that. You're right, set_defacto_liege is the correct way to put it.

Yeah, that's another title scope.

To my knowledge the base factor only supports integers. Either way, it is used in vanilla and works fine, so it probably shouldn't give an error report.

Ok. Not very clear from the error though. Could the text for that be improved?

I have no idea how it works, all I know is that it was added in 1.07 :)

Done except for base.

Can someone comment on the modifier? In particular, if the base can infact be a float (and can it?), does it make sense to allow these empty modifiers to influence speed, even if they do technically work?