• 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 looking for an opinion. From a usability standpoint, would it be easier for everyone if we split landed_titles into several files based on title-tier and assigned the de-jure liege solely in History, or is the current vanilla method (default de jure being defined in landed_titles with history files overwriting) preferred?

I'd say it is better to have the default de jure structure intact in the landed_titles file (or files; splitting the vanilla file on an empire-by-empire basis and also having a separate file for titular titles wouldn't be a bad idea) than tp have it assigned in the history files since you'd otherwise need to check several files to determine the de jure structure if you want a higher liege or a vassal of a vassal, which would be bothersome if you e.g. want all de jure counties in an empire (which is trivial to obtain if you've got the de jure structure in one file (or a small number of files)) or want to do a quick count of something de jure-related (e.g. "How many duchies are there in [empire]?").

Setting it up in the history files would also mean you'd have to create title history files for titles that don't have a holder in any start just to set up the de jure structure, which would mean even more files being added to one of the most file-heavy directories in the game (I think the only more file-heavy directory is the \gfx\flags\ directory), which would break a vanilla convention ("Titles have their default de jure liege set in [a/the] landed_titles file") that I suspect a good number of mods use and thus cause extra compatibility work for all of those mods (and clutter their title history file directories with a ton of vanilla titles that haven't been changed beyond having the de jure liege defined in them) if they end up using CleanSlate, and -- if we get further vanilla patches (I don't think that's extremely likely, but given that Vicky 2 got patched recently...) that mess with the history files -- would require compatibility patching of files that you'd quite possibly be able to ignore if it wasn't for the de jure liege setup being moved there, which seems like a bunch of negative side-effects that you'd avoid by not defining the de jure setup in the title history files except when it changes from the default.
 
  • 5
  • 1Like
Reactions:
Time for another update. Since last time, all decisions were rewritten and significant progress has been made on rewriting all events. They're now roughly 20% done. That may not sound like much, but events are the biggest part of the game's script. As such, it's a lot of work to go over every single line, but that's exactly what we're doing. For your enjoyment, here are the significant fixes made to two recent events files commits:

Code:
plot_events.txt
Plots now won't be leaked to anyone who is backing any plot that isn't yours - instead they need to not be backing your plot
Plots leaking no longer depends on the plot backers of your liege instead of your own
Only one realm lord will discover any plot at a time, instead of everyone eligible to discover it
Restricted more notification events to players only
Added checks to prevent plots with many backers/high plot power from affecting plots with much fewer backers/less plot power. Successful kill plots may now be rarer.
Changed traits that affect child drowning chance in event 7805 to match survival chance, as well as the incapable drowning plot
Event 7835 now calls on_action event 11 for consequences of plot discovery, in line with all other similar events
MTTH for plot leaders to see opportunities no longer depends on other character's backed plots to have high plot power, instead of their own plots
Fixed Assassination quest checks in all plot events, potentially making this quest a lot more difficult to complete...
Plot backers can now only see opportunities to kill decadent characters if they also use decadence
Added 3 missing plot_power checks in event 7801
Plot backers are no longer twice as likely as the plot leader to see an opportunity to poison a plot target's wine, matching other plot opportunities

religious_events.txt
The Catholic/Fraticelli Pope and Ecumenical Patriach now disapprove of all non-Christian councillors, not just Muslims and pagans (event 39240/39260)
Several events properly check for the overall religion head, instead of possibly checking for antipopes
Reworked event (39271) in which the Pope demands a ruler replace a bishop. Now a new bishop is created instantly and subsequent messy events have been disabled.
Removed several ping events
Events 39701 and 39702 are no longer MTTH, but called on_character_convert_religion instead
Event 39705 (Restore the Pope in Rome) is announced as a major event once more, just like event 39706 (Restore the Ecumenical Patriarchy)
Vassals no longer always refuse to attend their liege's Bema festival because they dislike themselves
Fixed event option triggers for vassal invitation to Sadeh festival

As you can see, there were many problems in these two files, and these are only the issues significant enough to mention in the full changelog. Other minor improvements are made everywhere, including better tooltips, fixes to inconsistent triggers, performance optimisations and of course readability of the script itself.

Meanwhile, we've made significant improvements to all laws as well. Succession laws especially are now very lean, and much easier on the eyes. Useless information is no longer displayed (vice royalties are only relevant to realms that can have them, non-tribal rulers aren't told they shouldn't be tribal) and more useful is now displayed. For example, Muslim and Dharmic religion characters of king tier will now see the requirement to enact elective succession before they are allowed to enact it.

Here are a few comparisons of in-game tooltips:
CleanSlateLawTooltips.png


The real improvement is in the actual script for laws. Here are the original and optimised potential triggers for Gavelkind and Open Elective succession:

Code:
potential = {
    NAND = {
        has_law = succ_byzantine_elective
        OR = {
            title = e_byzantium
            title = e_roman_empire
        }
    }
    holder_scope = {
        OR = {
            independent = yes
            NOT = {
                any_liege = {
                    holy_order = yes
                }
            }
        }
        NOT = { religion_group = muslim }
        is_merchant_republic = no
        is_patrician = no
        OR = {
            independent = yes
            NOT = {
                any_demesne_title = {
                    is_vice_royalty = yes
                }
            }
        }
    }
    OR = {
        is_landless_type_title = no
        is_tribal_type_title = yes
        temporary = yes
    }
  
    rebel = no
  
    OR = {
        holder_scope = { is_feudal = yes }
        holder_scope = { is_tribal = yes }
    }
    is_primary_type_title = no
    NOT = { holder_scope = { government = confucian_bureaucracy } }
}

Code:
potential = {
    rebel = no
    is_primary_type_title = no

    trigger_if = {
        limit = { is_landless_type_title = yes }
        temporary = yes
    }

    holder_scope = {
        OR = {
            is_feudal = yes
            is_tribal = yes
        }

        NOR = {
            any_demesne_title = { is_vice_royalty = yes }
            government = confucian_bureaucracy
            government = muslim_government
            government = order_government
            government = roman_imperial_government
        }
    }
}

Code:
potential = {
    NAND = {
        has_law = succ_byzantine_elective
        OR = {
            title = e_byzantium
            title = e_roman_empire
        }
    }
    NOT = { title = k_papal_state }
    temporary = no
    OR = {
        is_primary_type_title = yes
        holy_order = yes
        AND = {
            tier = baron
            OR = {
                is_republic = yes
                AND = {
                    is_theocracy = yes
                    NOT = { holder_scope = { religion_group = muslim } }
                }
            }
        }
        holder_scope = {
            OR = {
                is_republic = yes
                AND = {
                    is_theocracy = yes
                    NOT = { religion_group = muslim }
                }
            }
        }
    }
    OR = {
        is_landless_type_title = yes
        holder_scope = { is_theocracy = no }
        holder_scope = {
            NOT = { religion = catholic }
            NOT = { religion = fraticelli }
        }
    }
    holder_scope = {
        is_patrician = no
        is_merchant_republic = no
        OR = {
            independent = yes
            is_feudal = no
            NOT = {
                any_liege = {
                    holy_order = yes
                }
            }
        }
    }
    NAND = {
        has_law = succession_voting_power_1
        OR = {
            has_law = succ_feudal_elective
            has_law = succ_hre_elective
        }
    }
    NOT = { holder_scope = { government = confucian_bureaucracy } }
    NOT = { holder_scope = { government = chinese_imperial_government } }
}

Code:
potential = {
    temporary = no

    OR = {
        is_primary_type_title = yes
        holy_order = yes
        is_republic = yes
        is_theocracy = yes
    }

    holder_scope = {
        trigger_if = {
            limit = { is_theocracy = yes }

            # Use Investiture and Papal succession instead
            NOR = {
                is_law_potential = succ_papal_succession
                is_law_potential = succ_catholic_bishopric
            }
        }
        trigger_else_if = {
            limit = { is_republic = yes }

            is_patrician = no
        }
    }
}

Other tooltip improvements look like the one below.
1593068907372.png

1593068915146.png


We've also vastly improved the shoddy way Paradox decided to periodically clean out Holy Order leaders of the wrong religion. They now abdicate as soon as they convert religion.
 
Last edited:
  • 9Like
  • 3Love
Reactions:
I've followed the work on GitHub and it's almost insane how good this mod looks already. Thank you for the dedication to fixing a game without any monetary drive, it's stellar
 
  • 5Like
  • 1
Reactions:
will you be adding fixes and other QOL things to cleanslate such as

ais being able to make bloodlines with the same requirements as players

ais being able to make custom titles

the better ai mods
 
  • 2
Reactions:
will you be adding fixes and other QOL things to cleanslate such as

ais being able to make bloodlines with the same requirements as players

ais being able to make custom titles

the better ai mods
Fixes yes, major gameplay changes no. CleanSlate is intended to be as close to vanilla as possible while also fixing bugs and oversights with maybe a mod hook or two thrown in. Anything beyond that is up to people modding off of it to do.
 
  • 1
  • 1Like
Reactions:
This mod is great <3 Thanks to Whizzer,schwarherz and LaTueur for their great effort <3 But dont expect any compatibilty from CleanSlate right now(A dev said this). As I know its only compatible with looking/graphic mods.
 
  • 1
Reactions:
Hey all, my turn to post one of these. Though I cheated a bit and am just copying a changelog that @Whizzer put together for the current state of the project:

Whizzer said:
=== For players ===

Simplified/prettified many tooltips
Fixed countless minor issues and oversights
Fixed various grammatical and spelling errors in localisation
Random tiger accidents now only happen in India, rather than only outside India (random_accident_death_effect)
Added missing notification events in various places
Added missing 'No longer humble/proud/trusting' notification event calls
Corrected wrong notification event for becoming shy
A successful faction to increase council power now increases available council laws in the correct order
stable_attribute_improvement_effect now also never causes burnout the first time for diplomacy and martial, not only stewardship, intrigue
Holy Family is now selected properly (child and sibling) upon reforming with the correct religion features
Holy orders will now actually abdicate their leaders if not the correct religion and also keep in mind heresy takeovers of holy orders
Fixed events where old religion wouldn't be set as secret religion
Removed obsolete event MNM.10025 (save game conversion of secret_traits to secret religions)
Removed obsolete event ZP.5 (converts old pet traits into modifiers_
legitimize_bastard decision now works for polygamist religions
Fixed bug where a ruler wouldn't take their child out of hiding if they, personally, had a plot against them but not the child.
Leaders of holy orders now abdicate as soon as they convert to a different religion (players excluded, just in case)
Added various checks preventing holy order leaders from converting religion in some events
Fixed baptism decisions, no longer blocking a non-religion head baptism
Fixes several logic errors in the baptism event which could/would cause a satanic character to be baptised into the satanists by the pope
AI will now properly enact useful Centralization laws, keeping in mind both vassal limit and demesne limit
The Fraticelli Papacy will now also use papal succession
AI can now found bloodlines through decision
The first leader of a newly founded holy order is now of the proper religion, instead of Catholic
Dissatisfied vassals are now more likely to remain vassals, instead of less likely, after a succession of a ruler who was over vassal limit
Characters can now get Aztec Syphilis randomly
The various German kingdoms can no longer be created in other starts, and only if non-titular in 936, or by event.
Various achievement requirements are now consistent with their descriptions
Provinces in which peasants/heretics/rebels/nationalists rise up will now get reduced revolt risk for five years
Grace is now taken away from both claimant and attacker in third party CBs (other_claim and other_dejure_county_claim)
Catholic/Fraticelli AI will now wage fewer wars only if they are not yet coronated and are actually eligible for coronation
Tribal Kinslayer will now be added whenever it should be
Safe religion checks no longer allow game-overs
Fixed exploit allowing plot leader to frame a plot backer
Fixed a wrong event call in 'Carriage Accident' and 'Decadent Debauchery' plot event chains
Player heir's secret religion is no longer cleared on player death, since only public religion is restricted by DLC
Merchant Republics can revert to Minimum Crown Authority again
Merchant Republics will no longer spawn and destroy patrician houses under Holy Order lieges
All GHW-traits are now taken into account for succession screen heir flavour text
Added female title for d_bon_reformed
Removed duplicate Chinese temple names
Open Succession is now only unlocked, not enacted when a religion is reformed with Agnatic/Enatic Clans, to be consistent with these features' tooltips
Only the 'feminist' Christian religions (Cathar, Messalian) start off with Agnatic-Cognatic gender succession, instead of all of them
The Jomsvikings now convert to Reformed Germanic if they were founded before the Germanic religion is reformed
A theocratic Germanic religious head will no longer have gavelkind succession, but open elective, like all other theocratic pagan religious heads
Brazen Bull and Dragon Burning decisions now also apply kinslayer traits, if applicable
Claim Duel decision is now available when having a strong claim on any of the target's demesne titles, not just the primary title, matching the description
Added expelled modifier for k_teutonic_state
Becoming Genghis Khan without Horse Lords enabled will now also give the appropriate bloodline, if Holy Fury is enabled
The Teutonic State is now also checked wherever the Teutonic Order is checked
AI devil worshippers can now recruit other AI into their societies
You can no longer game over by restoring the Pope in Rome
Torture decisions now properly use the torturer's capital location, rather than the torturee's
The nomad prisoner humiliation (tar and feathers on horseback) now properly works for nomads only, instead of for everyone but nomadic and tribal torturers
Landed holy orders can no longer request mass baptism
Fixes issues where councillors could possibly not take a vote stance due to having certain exact opinions of their liege or other characters
Malcontents may now vote along with their liege on status of women laws, depending on their gender, enabling long dormant script
Fixed some council vote tooltips being misleading, even if they worked correctly
Made many other council vote tooltips easier to read
Impregnation effects no longer work on children
Province names are now displayed when their prosperity slightly increases/decreases due to decisions/events
Various events for the Knights of St. John and the Knights Templar should now work after the Schism has been mended and the orders have become Orthodox
Various birth events (449, 456) now properly check for required participants
Event 1926 now requires child to be attractive or groomed, properly restricted to lacking Conclave DLC
Event 1935 now checks diplomacy instead of intrigue
Event 1986 is now exclusive to muslims only
All childhood events are now restricted to non-imprisoned, non-incapable children
Events 38200 - 38204 no longer checks traits of the grandfather instead of the father
Various event options now affect the child instead of the guardian
Added missing weight effects to trait notification scripted effects
The Pope will now also lift the excommucation for rulers whose top liege is not Catholic
Muslims who have changed their succession away from Agnatic should be able to press female claims
Rulers on a hunt who are being targeted by a courtier's murder plot can no longer kill everyone at court, who isn't part of such a plot, in an ambush. Instead, one courtier is picked randomly, excluding the ruler
Fixed requirements for the Phalaris bloodline event in alternate starts
The capital of the Golden Horde/Il-Khanate will now always convert if the ruler converts, instead of only on conversion to Catholicism/Nestorianism
Mourning event 24504 will no longer cause bastard children
Restored old Crusade announcement for all characters who can't participate offensively, so they won't be caught off-guard.
Plots now won't be leaked to anyone who is backing any plot that isn't yours - instead they need to not be backing your plot
Plots leaking no longer depends on the plot backers of your liege instead of your own
Only one realm lord will discover any plot at a time, instead of everyone eligible to discover it
Added checks to prevent plots with many backers/high plot power from affecting plots with much fewer backers/less plot power. Successful kill plots may now be rarer.
Changed traits that affect child drowning chance in event 7805 to match survival chance, as well as the incapable drowning plot
Event 7835 now calls on_action event 11 for consequences of plot discovery, in line with all other similar events
MTTH for plot leaders to see opportunities no longer depends on other character's backed plots to have high plot power, instead of their own plots
Fixed Assassination quest checks in all plot events, potentially making this quest a lot more difficult to complete...
Plot backers can now only see opportunities to kill decadent characters if they also use decadence
Added 3 missing plot_power checks in event 7801
Plot backers are no twice as likely as the plot leader to see an opportunity to poison a plot target's wine, matching other plot opportunities
Disabled straggler duel events in 'Courtier takes over regency'-event chain
Regents will now also lower crown authority if the crown law title is not the de jure liege title of their primary title
The Catholic/Fraticelli Pope and Ecumenical Patriach now disapprove of all non-Christian councillors, not just Muslims and pagans (event 39240/39260)
Several events properly check for the overall religion head, instead of possibly checking for antipopes
Reworked event (39271) in which the Pope demands a ruler replace a bishop. Now a new bishop is created instantly and subsequent messy events have been disabled.
Events 39701 and 39702 are no longer MTTH, but called on_character_convert_religion instead
Event 39705 (Restore the Pope in Rome) is announced as a major event once more, just like event 39706 (Restore the Ecumenical Patriarchy)
Vassals no longer always refuse to attend their liege's Bema festival because they dislike themselves
Fixed event option triggers for vassal invitation to Sadeh festival
Used event targets to display same character in all relevant event options in various events
Fixed wrong event call in incest rumour event (69010)
Fixed weight modifiers for siege events (used to be MTTH), so better commanders are now more likely to get good siege events, etc.
Added province 1713 (c_arezzo) to the Tuscan Raiders siege event
Titles with elective succession, but without a holder can no longer be voted on
Grand tournaments will now also be cancelled if war breaks out after the tournament has already started
Event chain starting with event 3095 now actually uses the lord spiritual instead of the steward
Event 3145 will now only target women younger than the woman receiving the event
Event 3220 will now only cancel the ambition to reject pride
Event 3610 will now only cancel the ambition to reject cruelty
Event 3520 can no longer cause bastard children
The zealous option in event 3525 now has the correct text
Restored missing character flag in first option in event 3540
Fixed various event tooltips in Brazen Bull event chain (events 3600 through 3604)
Switched job_spymaster and job_marshal in event options of event 3650, matching localisation
Lovers event 64105 now also breaks the love relationship before adding a rivalry
Many opinion modifiers are now applied correctly
Several opinions are now checked correctly
Event 65057 will now only fire in January, as the localisation suggests it should
Event 65092 is now delayed by 2 days, to match localisation
Fixed localisation key EVTDESC65125
Event 65031 is now aware of The Reaper's Due
Event 78020 now always checks for presence of other children at court
Corrected Muslim tooltip in event 94153
Civil war events no longer spawn characters to lead troops, since they can't actually lead troops
Fixed broken Altaic modifier on event 55001
Norse and Norman rulers can now adopt local French, Occitan and Breton culture after 1150, at which point in time Norman culture stops forming
Fixed council eligibility logic for events 77790 and 77760
Event 100180 now only confronts friends who are a heresy to ROOT, rather than any random heresy
Fixed many wrong opinion modifiers
Added missing disease checks to event 100410
Fixed event 100412
Fixed scope for event call 100427 in event 100427
Fixed various issues in event chains starting at events 100510 and 100530
Corrected several capitals for kingdoms and duchies that were outside their de jure borders
Fixed wrong religion moral authority checks in various diplomatic requests from the Pope






Event 100540 can now fire, since the required opinion modifier is now set properly in various other events
Ward events 78010 and 78015 can now fire
Powerful siege events 62011 through 62014 can now actually fire
Event 38226 now finally works, 8 years after release



=== For modders ===

= General =

Added 'show_scope_change = no' to clean up tooltips
Simplified and optimised script where possible, using all script features added in various patches
Adjusted whitespacing to make script easier to read
Stripped away useless `hidden_tooltip`-clauses
Changed references to Zeus to Conclave (has_dlc = "")
Changed most 'tier'-triggers to 'real_tier' equivalents
Consistently applied 'owner'-scope in province scope, 'holder_scope' in title scope
Uses of 'prisoner'-command changed into 'imprison', leaving 'prisoner' as a trigger only
'modifier'-clauses renamed to 'mult_modifier'
'mult_modifier'-clauses with 'factor = 0' moved into 'trigger'-clauses, to avoid inverted logic
Used numerical operators wherever possible
Removed contents of 'save_conversion' - obsolete since both vanilla and CleanSlate are no longer compatible with saves that necessacitated these files
'resolve_severely_injured_effect = yes' is now used with consistent weights and delays
Replaced all 'trait = incapable' checks with 'is_incapable = yes/no'
All notifications events now only fire for players
Removed useless logic flow (AND, OR, NOT. etc.)
Replaced all uses of 'hidden_tooltip' with 'hidden_effect' and 'hidden_trigger'
'age = 16' changed to 'is_adult = yes/no'
Commented out unused event targets, restored others as originally intended
Removed no longer used 'is_tribal_type_title' check
Much more use of religion_openly_<pagan_religion>_or_reformed_trigger
Fixed numerous inconsistencies in various events
Patched up many slightly inconsistent triggers between any_ and random_ scopes
Removed lots of flag setting and checking, replaced by clear_delayed_event



= Buildings =

Files re-organised



= Casus Belli =

Added documentation on scopes
Replaced many ROOTs and FROMs with 'attacker' and 'defender'
Refactored common parts of script into scripted effects/triggers
Adjusted tooltip scopes: religious_cb_succ_tip, religious_cb_succ_muslim_tip



= Localisation =

Deleted all commented out strings
Sorted localisation into many categories, making it much easier to find what you're looking for
Fixed many text colouring inconsistencies
Fixed many messy tooltips for various triggers and effects, adding/removing newlines, periods, colouring many more character names, etc.
Added missing tooltips for various triggers, effects and scope changes
Added continents localisation for continents-trigger
Added missing _short localisation for various ambitions, factions and plots, used in some trigger-tooltips
Standardised common event responses (OK, Excellent, I see, etc.)



= Customizable localisation =

Added many uses of `use_first_valid = yes`
Fixed various triggers to work properly, mostly in warrior lodges (`is_vassal_of = FROM` in ROOT scope, instead of FROM scope)



= Cultures/religions =

Sorted into files, per group
Re-organised all elements to be much more consistent
Changed graphical culture on Orthodox type to easterngfx, Miaphysite to africangfx, and Nestorian to persiangfx
Pagan reformation flags are set in religion scope, instead of globally



= Laws =

Massive rewrite of all triggers to be much easier to read and modify
Separated gender succession laws into separate file
Switched order of title grants and title revocation council laws, to be consistent with the rest of the game
Refactored opinion modifiers from vassals/courtiers into scripted effects
Added logging to many laws to make it easier to find issues



= Governments =

Rewrite of all trigger to be easier to read, added a few comments
Used `allow`-trigger in addition to `potential`-trigger for a few governments



= Nicknames =

Alphabetised nicknames, added comments on various uses of nicknames



= on_actions =

Added missing on_actions for various hardcoded diplomatic interactions
Added missing scope documentation for many on_actions, corrected outdated scope documentation



= Event/opinion modifiers =

Changed many months durations into years, making them easier to read



= Trade routes =

Added comments with province names



= Traits =

Re-organised into various different files
Ensured all traits only have one insult per category (male, female, child), since only the last one listed is ever used



= Scripted triggers/effects =

Reworked safe (secret) religion checks to be functional and easy to use
tiered_prestige/piety effects now consider all spouses
Improved sibling in-law detection
Added several add/remove_trait_(silently)_<trait>_effect
Standardised increase/decrease_prosperity_variable_effect, now display province name, effects now used in province scope

Removed the following scripted triggers/effects:
- randomize_ABC_desc_flag_effect
- clr_ABC_desc_flag_effect
- remove_secret_religion_trait_effect
- add_trait_for_prevs_secret_religion_society_effect
- cousin_of_root_trigger
- sibling_of_root_trigger
- sibling_child_of_root_trigger
- parent_sibling_of_root_trigger
- grandchild_of_root_trigger
- has_secret_religion_trait_trigger
- true_religion_<religion>_trigger
- is_secret_religious_society_member_trigger
- is_openly_of_prevs_secret_religion_trigger
- is_openly_of_roots_secret_religion_trigger
- shares_prevs_secret_religion_trigger
- shares_true_religion_group_with_prev_trigger
- is_openly_of_prevs_true_religion_group
- same_true_religion_as_from_trigger
- same_true_religion_as_root_trigger
- FROMs_religion_is_playable_trigger
- ROOTs_religion_is_playable_trigger
- ROOTs_secret_religion_is_playable_trigger
- add_secret_religion_trait_trigger_is_religion_or_old_religion_flag_clear_flag_after_effect_is_run_this_name_is_a_tribute_to_m_effect
- add_religion_char_flag_effect
- clr_religion_char_flag_effect
- event_target_old_religion_from_flag_effect

Added scripted triggers:
- has_sympathy_for_true_religion_of_from_trigger
- is_catholic_branch
- is_orthodox_branch
- is_miaphysite_branch
- is_nestorian_branch
- is_sunni_branch
- is_ibadi_branch
- is_shiite_branch
- religion_secretly_<pagan_religion>_or_reformed_trigger
- has_secret_dharmic_religion_trigger
- has_safe_religion
- has_safe_secret_religion

Reworked 'abdicate_holy_order_if_religion_changes_effect', in conjuction with 'setup_holy_order_religion_scopes' (new, called on_startup) and 'immediate'-clause in event SoA.4200. Update these when adding new religions and/or holy orders. 'abdicate_holy_order_if_religion_changes_effect' is now only called when a holy order leader changes religion, rather than all over the place

Rubbish 'old religion'-system is gone, saving several thousand lines of script. Instead, in events that may lead to a character converting, while keeping their old religion secretly, save the current religion before conversion in a persistent event target, named 'old_religion)'. See event 39700 (religious_events.txt), events SoA.4021, SoA.4024, SoA.4031 and SoA.4032 (soa_heresy_events.txt) as well as event MNM.3949 (mnm_secret_religious_societies_events.txt)



= Succession voting =

Significantly simplified candidate selection criteria
Removed many useless checks in voting criteria
Split into files per elective succession voting ruleset



= Societies =

Separated into various files, by society type
Warrior lodges now have associated religions set, which can be used to convert character religion



= Decisions =

Ensured all decisions have only one ai_target_filter



= Interface files =

Fixed up all ugly/inconsistent formatting, making these files easier to read



= Great Works (and upgrades) =

Upgrades sorted into various files



= Message types =

Added missing message types:
- ASK_TO_DECLARE_WAR_INTERACTION_DECLINE
- ASK_TO_EMBARGO_INTERACTION_DECLINE



= Decisions =

Deleted duplicate decision 'stable_attribute_improvement_self_decision' - 'stable_attribute_improvement_decision' contains all the necessary functionality
Made triggers to form/vassalize holy orders much more consistent
Various 'create kingdom' decisions are much more consistent in triggers and effects
Various holy order decisions are much more consistent
Added missing remove_province_modifier effects to 'secret_religions_personally_adopt_secret_religion'
Merged all seven devil worshipper recruit decisions into one, added required customizable localisation



= Council voting =

Added council voting localisation for all vanilla interactions



= Events =

Moved misplaced end of event chain to married_life_events.txt
Moved most of guardian_events into childhood_personality_trait_events, because event chains shouldn't jump back and forth between two files
Merged events for arriving at Crusade/Jihad/GHW
Merged all Crusade/Jihad/GHW announcement events
Changed all 'capable_only' pre-triggers to 'only_capable, for consistency



= Landed titles =

Separated landed titles per de jure empire, as well as religious heads, holy orders, mercenary bands, special titles, etc.



= Dynasties =

Fixed duplicate dynasties:
- 1059971 -> 1059977
- 1061019 -> 1061028
- 105946 -> 105948
- 1062442 -> 1062626
- 1062594 -> 1062625

Fixed duplicate animal dynasty IDs
 
Last edited:
  • 5Love
  • 3Like
Reactions:
Nice to see how much stuff you guys fixed
 
  • 1
Reactions:
Thank you all so much for your patience! After 4 months of work, we are ready to release an alpha version. You can find it here. Since this thread was mostly a development announcement, @Whizzer will be posting a new thread soon for the actual project that will be kept up-to-date with current development and releases.

In case you missed the earlier link, you can download the project attached to this post or at our GitHub here: [download]
 

Attachments

  • master_changelog.txt
    24,9 KB · Views: 0
  • CleanSlate.zip
    14,9 MB · Views: 0
  • 13Like
  • 4Love
  • 2
Reactions:
Hi guys, with CK3 being released, will CleanSlate still be developed to completion?

If so, is there an estimate when you guys hope to complete your project on Cleanslate and CK2 plus?
 
Hi guys, with CK3 being released, will CleanSlate still be developed to completion?

If so, is there an estimate when you guys hope to complete your project on Cleanslate and CK2 plus?
Pretty sure that CK3 was a major factor in them doing this - now Paradox have finished changing things it's more practical to fix it
 
Hi guys, with CK3 being released, will CleanSlate still be developed to completion?

If so, is there an estimate when you guys hope to complete your project on Cleanslate and CK2 plus?

A while ago, I was hoping to be done with CleanSlate around CK3's release and Plus before the end of the year. At this point, I'm not sure we can get either done this year. Rest assured, however, that we're still working on it and will most definitely finish it.

Pretty sure that CK3 was a major factor in them doing this - now Paradox have finished changing things it's more practical to fix it

Absolutely. We even considered giving CK3 the CleanSlate treatment right from the get go, but decided against it due to time sink it would doubtlessly end up being.
 
Absolutely. We even considered giving CK3 the CleanSlate treatment right from the get go, but decided against it due to time sink it would doubtlessly end up being.
Hate the idea of modding a new game... the amount of mods I've seen that end up being covered by an update/dlc
 
Question: did you guys goof, or is the changelog backwards for "Dissatisfied vassals are now more likely to remain vassals, instead of less likely, after a succession of a ruler who was over vassal limit ". I would assume that Dissatisfied vassals would be more likely to leave.
 
Question: did you guys goof, or is the changelog backwards for "Dissatisfied vassals are now more likely to remain vassals, instead of less likely, after a succession of a ruler who was over vassal limit ". I would assume that Dissatisfied vassals would be more likely to leave.

You are right. I looked up the event in question (63100, vassal_request_events.txt) and the new changelog entry reads as follows:

Dissatisfied vassals are now more likely to go independent, instead of less likely, for not liking their new liege, after a succession of a ruler who was over vassal limit

The culprits for the vanilla bug are in the following snippet:

Code:
option = {
    name = EVTOPTA63100 # Become independent

    trigger = {
        liege = { independent = yes }
    }

    ai_chance = {
        factor = 50

        modifier = {
            factor = 0.2
            NOT = {
                opinion = { who = liege value = 0 }
            }
        }
        modifier = {
            factor = 0.2
            NOT = {
                opinion = { who = liege value = 25 }
            }
        }
    }
    set_defacto_liege = THIS
}

That means vassals who don't like their new liege are a lot less likely to choose this option, instead of more likely.
 
Firstly, you guys are awesome. Secondly, have you finished the localization part yet?

Localisation is worked on when we find issues with it. Perhaps we'll give it a thorough examination later on, but for now it's low priority. Anything in particular you are hoping for us to take care of?
 
Localisation is worked on when we find issues with it. Perhaps we'll give it a thorough examination later on, but for now it's low priority. Anything in particular you are hoping for us to take care of?
Nah, it's just that I saw you guys've already organized them into separate files (well, at least for WoL stuff); just curious if it's useable, that all. Oh, and while I'm here, I think 09_events_way_of_life.csv is missing EVTOPTREFUSE_WOL100 (the one that adds the modifier about refusing seduction).
 
Nah, it's just that I saw you guys've already organized them into separate files (well, at least for WoL stuff); just curious if it's useable, that all. Oh, and while I'm here, I think 09_events_way_of_life.csv is missing EVTOPTREFUSE_WOL100 (the one that adds the modifier about refusing seduction).

CleanSlate is very usable already, but likely not save compatible with the first public release. It may be possible some localisation entries are currently not in the correct file. Paradox made such mess that it took many hours to sort all entries and I found several keys in the wrong files while working on the events files I've cleaned up so far. They'll end up where they should be eventually, safe for those two localisation keys that really are missing from vanilla files.
 
  • 3Like
Reactions:
This looks pretty cool - one thing I'd like to know is whether fixing issues such as script elements flat out not working within the scope of the project
(By way of an example, the bug which killed my own interest in modding this game a while back was that you could make a building give building cost reduction, but doing so didn't actually affect the cost of buildings anywhere - not sure if this was fixed since, but it was an issue at the time).