• 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.
There was indeed an issue there, exactly as you described, so there's no need to change anything in the Validator. I don't see how it was related to the issue at hand, but fixing the effect has fixed the report coming up.
The Validator found the list of scripted_effects, which included "new_character". The Validator then looked for "set_variable" etc. It got to a "new_character", and was like, "Aha! This is a scripted effect! I don't need to look inside it but just need to look in the definition of the scripted_effect!" (I wonder if validator should look inside anyways, but whatever)

In this case, it's checked in character scope, so it's checking if the target province is the capital of the scoped character. This trigger only works like that in character scope, so it's effectively an entirely different trigger than the one that's used in title and province scopes.
Validator does not think it is in char scope, Validator thinks it's in prov or title scope (I think title scope). Why? The scope is ROOT, which means "settlement_decisions\nomad_adopt_republicanism\effect", and for settlement_decisions, that is title. So please point out the wrong logic here.
 
The Validator found the list of scripted_effects, which included "new_character". The Validator then looked for "set_variable" etc. It got to a "new_character", and was like, "Aha! This is a scripted effect! I don't need to look inside it but just need to look in the definition of the scripted_effect!" (I wonder if validator should look inside anyways, but whatever)

That makes total sense. Thanks!

Validator does not think it is in char scope, Validator thinks it's in prov or title scope (I think title scope). Why? The scope is ROOT, which means "settlement_decisions\nomad_adopt_republicanism\effect", and for settlement_decisions, that is title. So please point out the wrong logic here.

You're right again. Sorry for my carelessness.
 
Thank you very much for the Validator. It is an amazing tool.

I found something that the Validator doesn't detect, and it might be important, because in this case the game freezes on Loading Databases, with no sign of what the issue is in the logs.

Namely, accidentally making a building upgrade from itself, i.e. custom_building_3 upgrades_from = custom_building_3 instead of upgrades_from = custom_building_2 the way it should be. The Validator doesn't detect this, and the bad coding makes the game freeze on load. It was suggested that I report this as a bug here. Thanks.
 
Thank you very much for the Validator. It is an amazing tool.

I found something that the Validator doesn't detect, and it might be important, because in this case the game freezes on Loading Databases, with no sign of what the issue is in the logs.

Namely, accidentally making a building upgrade from itself, i.e. custom_building_3 upgrades_from = custom_building_3 instead of upgrades_from = custom_building_2 the way it should be. The Validator doesn't detect this, and the bad coding makes the game freeze on load. It was suggested that I report this as a bug here. Thanks.
Given the complexity and current maintenance state of the Validator, probably not, sorry
 
Given the complexity and current maintenance state of the Validator, probably not, sorry
Have you considered making a consolidated list somewhere (perhaps on the wiki?) of scripting errors that are not detected by the Validator, and will never be implemented? And, if possible, link it from inside the Validator?

Having a reference list of "scripting bugs the Validator won't catch" would probably help future modders with their debugging, without requiring the same amount of time and effort that would be needed to implement every possible check. If you leave it open to other people to edit, they can expand the list as they discover edge cases - which is why I suggested the wiki.
 
Have you considered making a consolidated list somewhere (perhaps on the wiki?) of scripting errors that are not detected by the Validator, and will never be implemented? And, if possible, link it from inside the Validator?

Having a reference list of "scripting bugs the Validator won't catch" would probably help future modders with their debugging, without requiring the same amount of time and effort that would be needed to implement every possible check. If you leave it open to other people to edit, they can expand the list as they discover edge cases - which is why I suggested the wiki.
If someone makes such a page and provides reasonable evidence that it's allowed to do so, I can at least link it in the first post of this thread.
 
If someone makes such a page and provides reasonable evidence that it's allowed to do so, I can at least link it in the first post of this thread.
There are mods with wiki pages, and the community CK2 to EU4 converter also has a page, so my interpretation is that modding tools are permitted to have pages on the wiki. For CK2, at least. (No idea about the other Paradox games covered by the Validator.) Reasonable enough?

I have a wiki account that was validated or some such a while back, so I might be permitted to make new pages. I haven't ever previously attempted anything anywhere near that large on a wiki, but probably it only needs a barebones page initially. If you're game for it, I could try? (Not tonight, because it's late, but tomorrow or later this week.)
 
There are mods with wiki pages, and the community CK2 to EU4 converter also has a page, so my interpretation is that modding tools are permitted to have pages on the wiki. For CK2, at least. (No idea about the other Paradox games covered by the Validator.) Reasonable enough?

I have a wiki account that was validated or some such a while back, so I might be permitted to make new pages. I haven't ever previously attempted anything anywhere near that large on a wiki, but probably it only needs a barebones page initially. If you're game for it, I could try? (Not tonight, because it's late, but tomorrow or later this week.)

The Validator already has a page on the CK2 wiki.
 
The Validator already has a page on the CK2 wiki.
...And this was another good reason for waiting! I should probably try to reconstruct all of the pages I went to which directed me to this forum thread instead of the relevant wiki page.

For now, I added a section for issues not detected, and added yesterday's issue from @GodModder. Eventually, it would be nice to go back through the last 10ish pages of this thread to see if there's anything else that's been deliberately excluded.
 
  • 1Like
Reactions:
Just chiming in to verify that it's super okay to have a Validator page on the CK2 wiki. : ) It's even mentioned in the top article for CK2 modding and that's a good thing so that people can discover the tool.

And for a fun fact I could mention that we even caught a bunch of bugs in the base-game with the help of the Validator some years ago for the later patches of CK2. So thank you for all the work with the tool! And it's fun to see that CK2 modding still lives on - the CK legacy would've never been the same without all of our cool mod projects, big and small.
 
  • 3Like
  • 1
  • 1
Reactions:
Just chiming in to verify that it's super okay to have a Validator page on the CK2 wiki. : ) It's even mentioned in the top article for CK2 modding and that's a good thing so that people can discover the tool.

And for a fun fact I could mention that we even caught a bunch of bugs in the base-game with the help of the Validator some years ago for the later patches of CK2. So thank you for all the work with the tool! And it's fun to see that CK2 modding still lives on - the CK legacy would've never been the same without all of our cool mod projects, big and small.
Ah I had always hoped that Paradox people would have used it to find bugs and stuff but it never seemed to happen, so it's gratifying to know that it did happen at some point after all.
 
  • 1Like
Reactions:
Today, I discovered a couple more oversights in the Validator:
  • Wonder is a valid localisation scope, which can be used from any province-type scope.
    • Example usage: [This.Location.Wonder.GetName] (where This is a count-tier title) is valid and produces correct in-game text.
    • Example Validator error text:
      At <mod>\localisation\expd_gp_localisation.csv [Entry\1] (Line 13, column 42):
      Localization error: Invalid bracket command: "Wonder" in "This.Location.Wonder.GetName" in "The Great Project "§Y[This.Location.Wonder.GetName]§!" (in §Y[This.GetName]§!) will be §Rpermanently destroyed§!."


  • has_started_building_wonder_upgrade is a valid condition
    • Example usage: has_started_building_wonder_upgrade = no correctly returns false if a wonder has an upgrade in progress (paused or not).
    • Example Validator error text:
      At <mod>\common\scripted_triggers\expd_gp_scripted_triggers.txt [expd_gp_title_is_great_project_county_where_slot_purchase_is_possible\custom_tooltip\location\wonder\has_started_building_wonder_upgrade] (Line 49, column 5):
      Invalid node "has_started_building_wonder_upgrade" in scope WonderBuildingTrigger (value is: no)
      * called from <mod>\decisions\expd_gp_expansion_decisions.txt [title_decisions\expd_gp_add_improvement_slot\allow\expd_gp_title_is_great_project_county_where_slot_purchase_is_possible] (Line 15, column 4)
@Jamie550 It's been a year, so: Are you still maintaining the Validator? If yes, that's very cool, thank you! If no, that's completely understandable, and I'll add these to the list of known gaps on the wiki.
 
My apologies for the question, however, it's been a couple years since I modded CK2, and I just decided to pick it up a gain for a bit.

I'm getting an error that is a false positive, and I thought I had the config set to ignore it.

I made a copy of Ck2.txt from the SettingsFile folder and copied it into the folder where my mod is stored (not the root mod folder).
I've edited the following (un-commenting the second line)

# Disable checking that events start with GFX_event_[normal|narrative|letter|long]_frame depending on the event type
AddFlag = Events.NoCheckEventBorderPrefix

I've closed Validator, and after relaunching it, I still get GFX_event_normal_frame_religion errors in my events that reference it.

I'm assuming that I've made an error somewhere, and would appreciate any assistance.
 
My apologies for the question, however, it's been a couple years since I modded CK2, and I just decided to pick it up a gain for a bit.

I'm getting an error that is a false positive, and I thought I had the config set to ignore it.

I made a copy of Ck2.txt from the SettingsFile folder and copied it into the folder where my mod is stored (not the root mod folder).
I've edited the following (un-commenting the second line)

# Disable checking that events start with GFX_event_[normal|narrative|letter|long]_frame depending on the event type
AddFlag = Events.NoCheckEventBorderPrefix

I've closed Validator, and after relaunching it, I still get GFX_event_normal_frame_religion errors in my events that reference it.

I'm assuming that I've made an error somewhere, and would appreciate any assistance.
And you also renamed Ck2.txt to ValidatorSettings.txt? And it's somewhere like Documents/Paradox/Eu4/mod/mymod/ValidatorSettings.txt?
 
And you also renamed Ck2.txt to ValidatorSettings.txt? And it's somewhere like Documents/Paradox/Eu4/mod/mymod/ValidatorSettings.txt?

Yes and yes (Documents/,,,/Ck2/mod/mymod/ValidatorSettings.txt)

Path pointing to Vanilla Ck2
Mod Name has the name of my mod
Validating it on Show Main Mod Errors option
 
Thank you for the assistance.

- Packaged and attached.
- Screen shot below
- Error message is the only one in the screen shot (just in 4 different spots).

Copy of 1 of the error messages:
--- Error 1 of 1 ---
At <mod>\events\TestModSeduction.txt [character_event\border] (Line 1121, column 2):
"GFX_event_normal_frame_religion" is not a valid GfxElement.

Section of Validator Settings that I'm assuming would suppress the error message.
# Disable checking that events start with GFX_event_[normal|narrative|letter|long]_frame depending on the event type
AddFlag = Events.NoCheckEventBorderPrefix

Validator.jpg
 

Attachments

  • Validator.jpg
    Validator.jpg
    470,1 KB · Views: 0
  • mod.zip
    23,3 KB · Views: 0
Oh ok sorry I see now, this error is not affected by Events.NoCheckEventBorderPrefix.

What the error is saying is that eg GFX_event_normal_frame_religion cannot be found by looking at all the interface\*.gfx files and finding entries of spriteTypes\spriteType\name\* (i.e. it's just trying to see that GFX_event_normal_frame_religion is registered in the game somewhere).

So is GFX_event_normal_frame_religion (and others) actually defined somewhere? If so the Validator needs to be fixed to handle that.