• 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.

Rockphed

Uncultured Barbarian
19 Badges
Jan 31, 2017
1.164
121
  • Crusader Kings II
  • Crusader Kings II: Way of Life
  • Crusader Kings II: Holy Fury
  • Shadowrun Returns
  • Surviving Mars: Digital Deluxe Edition
  • Crusader Kings II: Jade Dragon
  • Surviving Mars
  • Crusader Kings II: Monks and Mystics
  • Crusader Kings II: Reapers Due
  • Crusader Kings II: Conclave
  • Crusader Kings II: Horse Lords
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: The Republic
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Charlemagne
I have generally avoided playing in Africa with Holy Fury enabled because of the rain events. Rather than continue hijacking the quick questions thread, I am going to draw the discussion over here. If I get particularly ambitious, I will put together a small mod that (hopefully) will make the rain events more fun and less catastrophic doom. I have quoted the relevant posts in a spoiler below.

Is there a simple way to mod out the Africa rain events? Or at least to remove (or turn the mtth to 100+ years) all the "pay a bunch of gold or see a bunch of people die" events? I would love for there to have been a game rule to turn them off since they are so annoying.


I agree, those are incredibly annoying.

The relevant events are in events\hf_african_flavor_events.txt.

The specific event you're talking about is HF.15121.

The event that triggers it is HF.15120 just above it, which picks from a number of events at random. HF.15121 is only one of the possibilities.

HF.15120 itself is called from HF.15098 immediately above that, which is called from on_bi_yearly_pulse in common\on_actions.txt.

You have a number of options. You could add in a modifier with factor = 0 in HF.15120 for the random chance of triggering HF.15121 to be zero, you could add another option to HF.15121 that the player can select that doesn't kill off people or destroy buildings (optionally in exchange for some cost of your choice), you could go into common\on_actions.txt and transfer HF.15098 from on_bi_yearly_pulse to on_decade_pulse (that would make all the random events from HF.15120 happen less often, not only the landslide flooding), or you could add ai = yes to the trigger for HF.15121 so it never fires for the player but will fire for other rulers.

I'm sure there are many more options you could choose to address this too, so have at it! Hopefully this helps.
Yeah, I occasionally play in Africa... then I get hit by these events and immediately move my entire demesne out because it's just not worth it.

I keep telling myself I want to rebalance these events to be fun instead of awful, but it's a big job because IMO they need to be fully reimagined (not just tweaked)...

You're right, it would be a big job, but I'd like to know if you had any specific ideas to make them fun? It'd give you, me, or someone else a starting point at least.

Off the top of my head:
  • Mouldy artifacts:
    • Cost to repair should be proportional to artifact quality
    • Cost to repair should be capped (and the cap should also be proportional to quality)
    • Some types of artifacts should never become mouldy:
      • Equipped artifacts
      • Unique artifacts (eg. ark of the covenant)
      • Maybe some semi-unique artifacts too?
      • Maybe some types of artifact, if they are active?
      • Maybe some types of artifact, if they are magical or otherwise resistant to deterioration? (eg. emerald tablet)
    • Some recognition of the fact that preserving artifacts is difficult, so you need to actively pay for it somehow.
      • Maybe a great scriptorium which costs money to maintain but occasionally duplicates your books?
      • Maybe this would fit better as an expansion of the existing great library - some way to turn on/off active maintenance, and when it's on you won't lose books and you might actually trigger the event which gives you a book (I've never seen it in a real game)?
      • If active maintenance sounds good, the armory feature in the ??fortress?? could unlock a similar decision for weapons and armor? And the throne room in the palace for crown jewels?
    • Some way for vassals to protect against artifact loss would be good too. (The previous point is very focused on top lieges.)
    • Eventually, once this category is fun, expand it to cover the entire world (because sub-Saharan Africa is hardly the only place in the world where unmaintained artifacts will decay).
  • Building collapse:
    • Gold cost should be capped
    • Gold cost should vary between options
    • Add more event options (and possibly short event chains) based on traits, and ensure the AI chooses appropriately. Eg:
      • Brave/strong/brawny - dive in yourself and carry out a daring rescue (event chain: gain friendship, gain martial, risk of wounds and death)
      • Greedy - use the collapse as an excuse to expropriate land (ie. gain gold).
  • Rains:
    • Holding a rain dance should not be a "pious option" for Muslims/Jews/Christians/etc
    • Add an option to spend the capital's prosperity to subsidise the affected province
    • Gold cost to subsidise a province should be capped (eg. proportional to {number of holding slots} for {tribals & nomads} and {number of holdings} for all non-tribals)
    • Heavy rains could expose ancient ruins (ie. new mini event chain)
    • Mitigate droughts by building cisterns in holdings (these would be a new type of building; the amount of water in the cistern would be tracked using province variables and updated in relevant events).
Basically, look at RD's epidemics (bad! really bad!), hospitals (really expensive!) and seclusion (unique events and event chains!), and try to do something similar for the rains. Of course, RD is an entire DLC, ie. thousands of hours of work, so you probably need to scale back your ambitions somewhat.

I've considered doing something about it in the past, but have never gotten around to it. My broad design ideas are:

- More options for preventative measures so that you can choose between taking your chances and spending money up front to hopefully avoid the worst outcomes (with some maintenance events to keep the preventative measures in place).

- More neutral/mildly negative outcomes so that it doesn't feel like disaster after disaster. It shouldn't generally rise to a level where the ruler personally needs to get involved, and memorable disasters (loss of courtiers/artefacts/etc.) shouldn't be frequent.

- Saner caps on the scaled_wealth; some of the events can be excessively costly.

- Other locations could use their own issues (e.g. unusually severe winters, earthquakes, floods near rivers) so that the "Just move out of Africa to avoid the weather/disaster mechanic!" isn't an option, because "Avoid at all cost!" is generally not good design.

I won't guarantee that I will ever get beyond "this would be nice", but the first step is to see how the rain events actually work. I must admit that I have only interacted with them a couple times (and I got myself out of Africa almost as fast as possible).

As for disaster events that could be used elsewhere, some ideas come to mind:
  • Volcanoes in various places could erupt. This could easily turn into the worst of the rain events, but having event chains (that last multiple years) where a province gets blasted and then slowly rebuilds could be interesting in Iceland and Italy.
  • Yearly floods along major rivers could bring massive crop yields (and prosperity/wealth) or famine and death. If the flood is too high or too low it can cause problems.
  • Winters in high mountains or the far north can drive men mad. But, if they don't get enough snow then the people suffer.

That, however, is likely getting ahead of things. First we would need to make the rain events in Africa fun and balanced. I suspect they included the catastrophic doom in an attempt at balance and not having a right answer, but when the game can randomly take several years worth of building (in time to acquire the gold and in time to build the thing) or my carefully groomed heir with 12 bloodlines and a PCS of 300, then it just becomes frustrating.
 
but when the game can randomly take several years worth of building (in time to acquire the gold and in time to build the thing) or my carefully groomed heir with 12 bloodlines and a PCS of 300, then it just becomes frustrating.

You know, that is possibly also something to look at; I've previously edited the nomad "Save your horse or your spouse" event as below

Original (CleanSlated):
Code:
any_spouse = {
    at_location = ROOT
    is_inaccessible_or_incapable_trigger = no
    ai = yes
}

My edit:
Code:
any_spouse = {
    at_location = ROOT
    is_inaccessible_or_incapable_trigger = no
    ai = yes
    OR = {
        is_maimed_trigger = yes
        is_weak_trigger = yes
        combat_rating < 50
    }
    OR = {
        is_maimed_trigger = yes
        is_strong_trigger = no
        is_ill = yes
    }
}

because some characters should either be invalid selections for some things or should be much less likely to be selected due to preferred_limits.

Unsure how buildings could be sanity checked without checking for individual types (which might be expensive, and which would require subjectively deciding that building type X cannot possibly be damaged by a flood); perhaps that should simply be rare but with some negative "Damaged buildings" modifier lowering e.g. levy size/recovery rate/tax rate that lasts for a good while if you don't elect to repair them.
 
Normally, I'm a solo modder, but I think this is one of the few areas of vanilla CK2 that could benefit from assembling a team to deal with the problem. (For one person, this is a daunting project. However, I think it can be segmented into a large number of independent small projects.)

I'm also of the view that it's better to publish frequent small updates instead of waiting 5 years for one massive-totally-game-changing update. In this context, this means something like: first make Africa playable; then make Africa enjoyable; then expand to new regions.

In other words, I'm up for making this a team effort, with shared github etc, if anyone else is?
 
Normally, I'm a solo modder, but I think this is one of the few areas of vanilla CK2 that could benefit from assembling a team to deal with the problem. (For one person, this is a daunting project. However, I think it can be segmented into a large number of independent small projects.)

I'm also of the view that it's better to publish frequent small updates instead of waiting 5 years for one massive-totally-game-changing update. In this context, this means something like: first make Africa playable; then make Africa enjoyable; then expand to new regions.

In other words, I'm up for making this a team effort, with shared github etc, if anyone else is?
I would love to do that, but I have stretched myself rather thin. I was going to, at least, figure out how the events worked and think up some ways to make them more fun.

Unfortunately, there is this completely undocumented bit of magic going on in the files.
Code:
change_rain_effect = yes
Every time I open the files to start figuring out what they are doing (and if there is a way to have them do something else), I see that and have to wonder what code it is calling up. It doesn't take a list of possible modifiers. It only takes "yes".

On the other hand, defining what would make the events " fun" seems impossible. On the surface, none of the events seem out of place. Taken together, however, they just seem to punish playing in Africa.

The first thing is to replace anywhere where it destroys buildings with a negative modifier. This should be straightforward, I just need to find time to do it.

Then I would like to replace the current single events with chains. I have a vision of a chain leading up to a mudslide or flood where one of the events will have an option to sit below a dam sipping tea because you are that confident in it. If you have high stewardship and/or architect your confidence is rewarded. If you are proud and unlearned you can end up embarrassed (and maybe dead).

Perhaps instead of "rain dance" being an event option it should be a decision. "Pray for rain" if you have a province in drought or drought risk. It would call up an event chain that might result in a weather reroll (or a direct weather change for lucky/effective imploring of the gods).
 
Every time I open the files to start figuring out what they are doing (and if there is a way to have them do something else), I see that and have to wonder what code it is calling up. It doesn't take a list of possible modifiers. It only takes "yes

It's likely a scripted_effect.
 
I would love to do that, but I have stretched myself rather thin. I was going to, at least, figure out how the events worked and think up some ways to make them more fun.

Unfortunately, there is this completely undocumented bit of magic going on in the files.
Code:
change_rain_effect = yes
Every time I open the files to start figuring out what they are doing (and if there is a way to have them do something else), I see that and have to wonder what code it is calling up. It doesn't take a list of possible modifiers. It only takes "yes".

It's a scripted effect. In this case, it's located at ...\common\scripted_effects\00_scripted_effects.txt (line 28121).

On the other hand, defining what would make the events " fun" seems impossible. On the surface, none of the events seem out of place. Taken together, however, they just seem to punish playing in Africa.

The first thing is to replace anywhere where it destroys buildings with a negative modifier. This should be straightforward, I just need to find time to do it.

Then I would like to replace the current single events with chains. I have a vision of a chain leading up to a mudslide or flood where one of the events will have an option to sit below a dam sipping tea because you are that confident in it. If you have high stewardship and/or architect your confidence is rewarded. If you are proud and unlearned you can end up embarrassed (and maybe dead).

Perhaps instead of "rain dance" being an event option it should be a decision. "Pray for rain" if you have a province in drought or drought risk. It would call up an event chain that might result in a weather reroll (or a direct weather change for lucky/effective imploring of the gods).
Nice ideas :)

For the dam, this is something that would benefit greatly from an event chain.
(1) Hidden event to decide dam quality 1-5 - random, weighted by realm stewardship and province prosperity;
(2) Event to inspect the dam - do it yourself or send your steward, correctness of report depends on stewardship/architect trait;
(3) Result of inspection received - choose last-minute repairs (increase dam quality by 1), evacuation, daring tea party under the dam, cruel disaster party above the dam, etc;
(4) Outcome: choose random rain amount of 3-5, dam fails if dam quality < rain amount, assign traits/consequences accordingly.

You could probably simplify the "divine intervention" by having only one path, with different localisation depending on religion. (Eg: "Pray for rain" for organised religions except reformed african, "rain dance" for africans and unreformed pagan.)
 
So, I started looking at this again. I have decided to, if nothing else, replace some or all of the rain events. I think I can do that by adding a zzz_hf_african_flavor_events.txt with just the events I want to replace in it. I'll have to test when I get the events modified.

Right now I am just going through the events to decide what to change. The first thing I noticed was that all the rain events require the target to be an adult. This isn't "some of the events are gated by adulthood". This is the event that hands out all the other events. Behold the stupid.
Code:
	only_playable = yes
	has_dlc = "Holy Fury"
	min_age = 16
	only_capable = yes
	prisoner = no
I'm not sure what the right thing to do is here. Obviously a child ruler isn't going to get to choose the choices in these events. Should I change it to send events to your regent, or just leave it? Or should the events happen, but the child ruler gets different options?

Looking further, I am going to go through all the events to see how much of them can be salvaged.

Event HF.15110 pops up if you have rain in a province. It is a chance to add some modifiers to your provinces.
The first modifier, focused_traders, lasts for 4 years costs 1.5 scaled wealth between 20 and 700 for non-tribals. For tribals it only costs .2 wealth between 10 and 25 and 50 prestige. It provides 10% increased taxes on cities, temples, and castles and 100% increased taxes on tribes along with .05 economy tech points and 5% faster build time. Totally not worth the price. I'm not sure if .4 scaled wealth would be worth the price (since I'm not sure how that modifier actually interacts with all the ways a holding's income can get boosted). This needs to be rebalanced. I think swapping the wealth scaling rates between tribals and others is the right way to go. Also, I am going to drop the maximum for non-tribals to 100.

Next we have improved_irrigation, a modifier with half as much income bonus (but a 15% land morale bonus). The choice to add it only appears if a non-capital province does not have the bonus and the owner has mostly light rain (and not mostly heavy rain, but I think those are mutually exclusive). It costs some prestige for tribals and .1 scaled wealth between 5 and 10. For non-tribals it costs 2x scaled wealth between 25 and 750! This lasts 5 years instead of 4, but otherwise is about half as good, so this also needs rebalancing. I think I am going to change it to .1 wealth for non-tribals between 10 and 50 and .75 wealth for tribals between 5 and 10.

The third option is a lake water watch. You get culture tech points and reduced revolt risk (both useful if harder to price) for 5 years. Tribals pay some prestige while others pay 1x scaled wealth between 15 and 650. I'm not sure I have ever had a character with 650 annual income except a merchant republic who was paying most of it out in family dues. I'm going to change it to .1 scaled wealth between 15 and 75.

Option 4 is a road watch, but you only get it if you have a completely land-locked province. It does the same as the other, so I am going to adjust the prices the same.

Option 5 is storing surplus grain. You get to add a hidden modifier for 10 years (that I think helps if you have a drought within that time). It costs the low-low price of some prestige if you are tribal or 1x wealth between 10 and 550 if you are not. I'll have to come back to this when I find what having stored the grain gives you, but I think it should be its own event where you get to choose between selling the extra grain for gold, distributing it to the people (for reduced revolt risk), storing some of it by selling some of it, or storing all of it. Storing some will give the same 10 year modifier as currently without cost while storing all of it will give a modifier for 50 years. I wonder if I could change it so that it was a stacking modifier (like the combat experience modifier) so it could keep track of how much food you have saved up in your provinces.

Option 6 is to nothing. I am totally fine with having this.
The other thing is that any or all of these options could have increased prosperity, but none did. I'm not sure if they should.


Event HF.15111 is a chance to spend money to help a drought ridden county. You can't get it if your capital is in full drought.
The first option is to feed your capital. This costs more prestige based on the number of count level titles in the realm (for tribals). For others it costs 1x wealth between 25 and 500. It does not seem to use previously created stockpiles for some reason. This puts a modifier on your capital county that it is being fed for 4 years. The modifier increases land morale and reduces revolt risk.

The second option is to feed a random drought or drought risk province. It has the same cost as the first option and has the same effect.

The third option adds a modifier that reduces revolt risk and increases piety. It also reduces vassal opinion by 5 and increases church opinion by 10 (which I think works out to increasing church vassal opinion by 5 total). It looks like you can also move along the track from cynical to zealous from this option.

The fourth option is to do nothing.
Honestly, I don't think this is a good event. The choices should be "import/distribute food at personal expense", "distribute food from stores" (if you have them), "Sell food from stores" (if you have them), or do nothing. Perhaps doing nothing increases revolt risk or lowers taxes. Perhaps it comes with a cost in piety or prestige. Selling the stored food should move toward greedy. The first two options can reduce revolt risk and increase charity or piety.

Next time I'll look at the worst events: mudslide, flooded library, flooded armory, a slow fever spawner, and an extreme weight-loss routine. Okay, that last one might not be so bad.
 
  • 1Like
Reactions:
So, I just realized something else it does wrong: There is almost no AI logic for how to choose on these events. I'll have to add that.

Event HF.15121: the stupid landslide.
So, this event picks out a province (prefering ones with mountain terrain). Then it picks a holding with at least 1 building. Then it picks a holding owner with at least 3 courtiers in his or her court. Then it picks 3 courtiers in the court, preferring rivals who are not prisoners or rulers, then preferring rivals who are not prisoners or rulers (but do not have to be at the court!), then people who are at the court who aren't prisoners or rivals, then just people who are in the province in question. So far, this seems reasonable.

Then we see what the event is going to do with these people. You are offered up to 4 choices:

Choice A: Save all the people. This gains 10 piety at the cost of a random building and 1x scaled wealth between 35 and 350. Leaving aside that 1x scaled wealth being above 35 is pretty hard when this sort of devastation happens fairly regularly, this is an incredibly harsh event.

Choice B: Save some of the people, let your rival die. This kills a rival in a not-actually-murder way (albeit you are still listed as the killer), at the cost of 10 piety (i.e. you lose 10 piety), a random building, and 1x wealth between 15 and 250.

Choice C: Save the building. This nets you 20 prestige for 1x scaled wealth between 25 and 350 and 3 dead courtiers. But the building doesn't get hurt.

Choice D: Do nothing. This loses you 10 prestige and 5 piety, kills 3 random courtiers, and destroys a building.
Ultimately, there isn't a lot to this, but it is incredibly harsh. I think dropping it to .1 scaled wealth (sure, with the above limits, albeit getting 3500 wealth is probably very hard, so it might as well be unlimited at the top) makes things much less evil. Also, only have it kill 1 courtier and wound the other two. Then it is less obvious when somebody chooses the 2nd option (which is one of only 2 places in this file where there is an AI_chance defined; AI is told to mash the button to kill a rival hard enough to start a black-hold). And instead of destroying a building, give a random modifier from the below list for 1 to 5 years:
  • -2 to fort level
  • -25% garrison
  • -25% tax
  • +15% construction time
Honestly, choosing between which bad thing happens probably is bad enough without adding the further injury of losing a bunch of money. I might remove the money cost entirely. This even is also ripe to have a similar event (or a follow on) where something good happens due to the heavy rain.
 
  • 1Like
Reactions:
Now for the drought bad event.

Event HF.15122 "Drought kills people (negative drought)"
This event can start a typhoid/slow fever epidemic. Or it can just kill all the starvation victims (which, I think, all have typhoid fever). Or it can eat some money for a minor bonus.

Interestingly, this event requires Reapers Due to be active in the event that calls it, but does not check if Reapers Due is active in the event itself. I'm not sure if it hurts anything to add it to the event itself.

Looking through the files, the only other place that "spawn_disease" is used is in the devil worshiper events where spawning slow-fever is a possible disaster for trying to summon a demon. That outcome does not require Reapers Due while the outcome that gives cancer does.

So, immediately, this event gives 3 random courtiers of either you or someone who owns a holding in your land slow fever.

Then, it gives you 3 options:

The first is the chance to kill all the people in your realm who have contracted slow fever from this event, gated by if you have at least 10 intrigue. This is probably an okay option to have on this event, except that the "starvation victim" flag never gets cleared. So, it is possible that someone who was the unfortunate victim of this event and survived slow fever will get killed 80 years later when they are in another realm and their liege orders everyone who was a starvation victim killed. I think it is even possible to commit suicide with this option. I suppose some of this depends on how deadly slow fever actually is. Also, this is the second and last time the logic has an AI hint. Again, the AI will kill all the people who even look like they might have slow fever at the drop of a hat if they have at least 10 intrigue.

The second is to summon emergency builders. This nets a decent .1 prestige per month and -10% build time for 5 years at a cost of 3x scaled wealth between 65 and 850. It also releases slow fever on the chosen province.

The third option is to just let the disease happen. Slow fever is spawned in the chosen province.
This event is probably fine, except that it happens way, way too often and the lack of clean-up when people have survived slow-fever in the past. Now, I'm not sure that it will kill someone who has survived slow fever after getting it from this event, but I am fairly confident that it will. Also, I'm pretty sure that -10% built time is not worth 3x income.

To fix the event, I am going to add a bit at the start that removes the starvation_victim flag from anyone who is immune to slow fever. Maybe options that trigger off high values for martial and stewardship? Maybe if you have a high learning (or a court physician with high learning), you can treat the people, stopping the spawn of the epidemic and making the people who are sick faster to heal. Ultimately, either requiring the other negative drought event to have happened first, or protecting places with food stockpiles better (currently, if all your drought counties have food stockpiled it decreases your chance of getting this event by half) will be required to keep this event from being repetitively unfun.

One thing I noticed is that there are only 14 events in the rain events. So, anyone who is working on a mod, just remember that you too can totally mess up playing in a massive part of the map by including less than twenty events that swing between boring and evil!
 
Interestingly, this event requires Reapers Due to be active in the event that calls it, but does not check if Reapers Due is active in the event itself. I'm not sure if it hurts anything to add it to the event itself.
You do sometimes see this, both in the base game and in mods, where the check for DLC only exists at the start of the event chain.

If you're very sure you're never going to reuse the events, I think it's fine. If there's any chance you might reuse the events in another context, probably best to add the dlc check now while you're thinking about it ;-p

This event is probably fine, except that it happens way, way too often and the lack of clean-up when people have survived slow-fever in the past. Now, I'm not sure that it will kill someone who has survived slow fever after getting it from this event, but I am fairly confident that it will. Also, I'm pretty sure that -10% built time is not worth 3x income.
I don't know if it's obvious from the code, but the game gives character flags to people who survived diseases, and I assume this means they won't get it again.

You should probably NOT inflict the disease on anyone with the relevant immunity flag (immune_typhoid?) - I suspect this flag is the only way the game checks for immunity; if you give the disease to an "immune" character then it's possible that their immunity is irrelevant and they might die.

---

Overall, I'm really glad to see that you're working on this - please please please publish it to the workshop when you're done!
 
I don't know if it's obvious from the code, but the game gives character flags to people who survived diseases, and I assume this means they won't get it again.

You should probably NOT inflict the disease on anyone with the relevant immunity flag (immune_typhoid?) - I suspect this flag is the only way the game checks for immunity; if you give the disease to an "immune" character then it's possible that their immunity is irrelevant and they might die.
The event checks "immune_slow_fever" (or the CleanSlate version does, I think the vanilla version checks for a slightly different flag) before giving the disease in the event. The problem is it gives a different flag (starvation_victim) to the people it infects and then kills all the people with that flag in your realm. As far as I can tell, the flag is never removed. I suppose I could test it somehow.

Moving on to the next event
Event HF.15123: The rotting library
In the showcase of bad design, I think this event might take the cake. It is a completely capricious event that does not do anything except either make Africans poor or make Africans illiterate.

It selects a random province, but only so it can tell you that that province is at fault for your book being destroyed. It also randomly selects a book artifact you own for destruction. It prefers books that you currently have equipped. So no, the book that you study every day and keep on your person is not safe from the arbitrary flooding of the library.

It has 2 options. The first allows you to spend 2x scaled wealth between 55 and 750 to save a book from destruction. You also get an opinion boost with your chaplain. Yes, it costs twice as much to save the book as it does to create one in the first place (writing a book costs 1x wealth between 50 and 1000, I just checked).

Option 2 simply destroys the book.
To make this event less evil I could reduce the costs by 90%. Honestly, however, I don't think that that is the right way to go. Instead, event gets 3 options: tell chaplain to do his job and clean up the mess (get a negative opinion from the chaplain, but no other cost); hire some workers to clean up the mess (hiring a debutante costs .20 scaled wealth with no cap, so we will put this at .2 scaled wealth between 10 and 200); or lead some workers to clean up the mess (positive opinion from the chaplain, same cost as just hiring workers, possible movement from slothful toward diligent). Maybe if you have diligent and a 3 or 4 learning or stewardship education you can just go clean it yourself (for free) and find "The Book of Earthy Wisdom", which grants 1 learning, 1 stewardship, and 10% fertility. If you make your chaplain do it, he can get a book.

I think I'll start with just the first 3 options and leave making the book for later. I haven't ever modded in an artifact, so it will be a first.

Event HF.15124 "Flooded Armory (negative heavy rain)"
This is almost identical to the previous event. You interact with your marshal instead of your chaplain, and having a weapon or armor equipped makes it last to get destroyed by this instead of first, but otherwise it is a copy paste of the last event. Right down to having the same comment on the "just let it get destroyed" option.
Fixing this event is pretty much the same as fixing the book one. Make the options be "get a negative opinion from my councillor, but spend no money" to "spend some money to keep your marshal happy", to "spend some money to maybe get an artifact or a stat boost".
 
  • 1Like
Reactions:
Event HF.15125: #People are suffering from the drought. (negative drought)
This event doesn't offer much, but it also isn't evil like the other events. It makes everyone in the province owner's court thinner and makes it a little more likely for the disease start event to trigger. It prefers provinces where there isn't food distribution going on or stored food, but neither blocks it completely.
I don't think I need to change this event. I might change things up so that this event gives a few options for how to respond and some of those options lead to the disease outbreak. Alternatively, I could add an event where heavy rain has made the ground so fertile that everyone is getting fat. Either is beyond the first pass I am making.

Now to look at the rain dance events. Near as I can tell, the rain dance does not have any effect on the weather (which, I suppose makes sense). As such, the biggest issue is whether the costs match up with the benefits. Let's have a look:

Event HF.15103: "Negative news (Attempt a rain dance?)"
This event can put an indefinite duration modifier granting .05 monthly piety and 5% land morale on a province. This comes at a cost of 25 prestige and .1 scaled wealth between 5 and 15 for tribal rulers or 1x scaled wealth between 15 and 550 for anything else.

The modifier is removed if you ever get the "rain dances successful" event (which is HF.15101). If you have only 1 province, it will probably fire the next time the province has light or heavy rain. I haven't looked at the logic to see how likely it is to move from drought risk to rain on any 5-year-pulse.

The modifier partially makes up for the loss of levy size from drought and drought risk modifiers.
Ultimately, the juice isn't worth the squeeze here if you aren't tribal. I think I am going to lower to cost for feudals to .2 wealth between 10 and 30.

Event HF.15102: Positive news (Surprise, things are great - keep it going?)
Compared to 15103, this event puts a worse modifier (only the .05 monthly prestige) on your province, can only happen when you have light rain, and costs more for tribals (though without a prestige cost). It costs the same for everyone else. It also grants 5 piety up front.

It is also only removed by the same event that removes the "pray for rain" modifier.
I think I will set this to the same cost as 15103.

Event HF.15101: Positive news (Rain dances had an effect??)
First off, this event makes good use of multiple descriptions. There are 4 descriptions that depend on which rain dance you were doing and how much rain you got. They don't have any mechanical benefit, but they do help the event be specific enough to flesh out the experience. If there were more events to get, this would even be a good thing. As it is, with a small realm you see this event almost any time you have a rain dance going and have rain.

There are two options. One gives 25 piety, the other gives 50 prestige. Neither has any sort of negative attached (though I think getting some negative opinion with a priest for claiming it was all you might be appropriate.)

Afterward, it gives you a modifier on the chosen province that grants .05 monthly piety, 15% extra land morale and 10% extra levy size for 10 years.
All told, I should probably price out the two events whose modifiers this can remove as if they were just granting this modifier. I'll have to think about it. Not least because the payout is so delayed from the pay-in.
 
I have changed the flooded holding event. I probably need to change localization (and I haven't tested it yet), but now instead of choosing between killing 3 people or losing a building (and paying exorbitant prices for either) you get to choose between 1 courtier dying and 2 possibly becoming injured and getting a pretty lousy modifier to the holding at the cost of possibly getting yourself killed, maimed, or wounded in the bargain. I also gave the chance to gain martial (and intrigue if you are taking the chance to kill a rival). I put the new event code below if anyone wants to see it. I still think your best bet is to sit it out, so I might replace the options with ones where you cannot get killed if you have certain traits (or high enough martial or PCS). I definitely need to add AI logic for the choices.
Code:
# Landslide (negative heavy rain)
character_event = {
	id = HF.15121
	title = EVTTITLE_HF_15121
	desc = EVTDESC_HF_15121
	picture = GFX_evt_dead_body_hf
	border = GFX_event_normal_frame_religion

	is_triggered_only = yes

	immediate = {
		random_demesne_province = {
			limit = {
				has_province_modifier = africa_heavy_rain
				owned_by = PREV
			}

			preferred_limit = { terrain = mountain }

			save_event_target_as = flooded_province

			add_province_modifier = {
				name = africa_heavy_rain_cooldown_1
				years = 3
				hidden = yes
			}

			random_province_holding = {
				limit = { num_of_buildings >= 1 }

				save_event_target_as = flooded_holding

				holder_scope = {
					if = { # if the holder of this holding has a few courtiers around...
						limit = {
							any_courtier = {
								count = 3
								ai = yes
							}
						}

						save_event_target_as = flooded_court_liege
					}
					else = { # Otherwise, find someone in the province that *does* have courtiers...
						event_target:flooded_province = {
							random_province_holding = {
								limit = {
									holder_scope = {
										any_courtier = {
											count = 3
											ai = yes
										}
									}
								}

								holder_scope = {
									save_event_target_as = flooded_court_liege
								}
							}
						}
					}
				}

				# Now, use that character's court to find flood_victims...
				event_target:flooded_court_liege = {
					while = {
						count = 3

						random_courtier = {
							limit = { ai = yes }

							preferred_limit = {
								at_location = event_target:flooded_province
								is_rival = ROOT
								prisoner = no
								is_ruler = no
							}
							preferred_limit = {
								is_rival = ROOT
								prisoner = no
								is_ruler = no
							}
							preferred_limit = {
								at_location = event_target:flooded_province
								prisoner = no
								is_ruler = no
							}
							preferred_limit = {
								at_location = event_target:flooded_province
							}

							set_character_flag = flood_victim
						}
					}
				}
			}
		}
	}

	option = { # Save the people (destroy building)
		name = EVTOPTA_HF_15121

		random_list = {
				90 = { }
				 7 = { add_trait_wounded_effect = yes }
				 2 = { add_maimed_trait_effect = yes }
				 1 = { death = { death_reason = death_accident_drowning } }
			}
		random_list = {
				50 = {}
				50 = { change_martial = 1 }
			}
		piety = 10

		event_target:flooded_holding = {
			show_scope_change = no

			custom_tooltip = {
				text = random_building_is_destroyed_tt
				#destroy_random_building = THIS
				add_holding_modifier = {
					name = flooded_holding
					years = 4
				}
			}
		}
	}

	option = { # Save ... some people (building destroyed and rival dies)
		name = EVTOPTB_HF_15121_rival
		tooltip_info_custom = available_because_rivals_tt

		trigger = {
			event_target:flooded_court_liege = {
				any_courtier = {
					has_character_flag = flood_victim
					is_rival = ROOT
				}
			}
		}

		custom_tooltip = { text = EVTOPTB_HF_15121_TT }

		random_list = {
				90 = { }
				 7 = { add_trait_wounded_effect = yes }
				 2 = { add_maimed_trait_effect = yes }
				 1 = { death = { death_reason = death_accident_drowning } }
			}
		random_list = {
				50 = {}
				50 = { change_martial = 1 }
			}
		random_list = {
				50 = {}
				50 = { change_intrigue = 1 }
			}

		piety = -10
		add_trait_partially_silently_deceitful_effect = yes

		event_target:flooded_holding = {
			show_scope_change = no

			custom_tooltip = {
				text = random_building_is_destroyed_tt
				#destroy_random_building = THIS
				add_holding_modifier = {
					name = flooded_holding
					years = 4
				}
			}
		}

		event_target:flooded_court_liege = {
			show_scope_change = no

			any_courtier = {
				show_scope_change = no

				limit = {
					has_character_flag = flood_victim
					is_rival = ROOT
				}

				death = {
					death_reason = death_accident_drowning
					killer = ROOT
				}
			}
		}

		ai_chance = { factor = 100 }
	}

	option = { # Save the buildings (people die)
		name = EVTOPTB_HF_15121

		random_list = {
				90 = { }
				 7 = { add_trait_wounded_effect = yes }
				 2 = { add_maimed_trait_effect = yes }
				 1 = { death = { death_reason = death_accident_drowning } }
			}
		random_list = {
				50 = {}
				50 = { change_martial = 1 }
			}

		prestige = 20

		event_target:flooded_court_liege = {
			show_scope_change = no

			random_courtier = {
				show_scope_change = no

				limit = { has_character_flag = flood_victim }

				death = {
					death_reason = death_accident_drowning
					killer = ROOT
				}
			}
			any_courtier = {
				show_scope_change = no

				limit = { has_character_flag = flood_victim }
				random_list = {
					70 = { }
					30 = { add_trait_wounded_effect = yes }
					}
				}
		}
	}

	option = {
		name = EVTOPTC_HF_15121 # Tragic!

		piety = -5
		prestige = -10

		event_target:flooded_holding = {
			show_scope_change = no

			custom_tooltip = {
				text = random_building_is_destroyed_tt
				#destroy_random_building = THIS
				add_holding_modifier = {
					name = flooded_holding
					years = 4
				}
			}
		}

		event_target:flooded_court_liege = {
			show_scope_change = no

			random_courtier = {
				show_scope_change = no

				limit = { has_character_flag = flood_victim }

				death = {
					death_reason = death_accident_drowning
					killer = ROOT
				}
			}
			any_courtier = {
				show_scope_change = no

				limit = { has_character_flag = flood_victim }
				random_list = {
					70 = { }
					30 = { add_trait_wounded_effect = yes }
					}
				}
		}

		add_trait_fully_silently_cruel_effect = yes
	}
}
 
I think I have implemented all the changes I listed above. However, when I tried testing it, the events didn't load right. Maybe I was need to declare a dependency on CleanSlate since I used their triggers a couple places. Maybe I have mismatched brackets. More testing is required.

I still need to do all the localization, which will be !!fun!! in so many ways. Otherwise, I am really close to done with an initial version. Which leads to a problem: what would be the best way to publish this?
 
what would be the best way to publish this?
Steam Workshop would probably make it available to the widest possible audience. (Large user base, easily searchable, users don't need any technical understanding.)

It might also be nice to upload a zip file somewhere (for non-Steam users, etc). I personally use github for version control, so it's very easy to upload the zip files there too. Dropbox/OneDrive/etc would also work. And/or you could upload the zip to this thread (preferably the top post, so people can find it without reading the whole thread).
 
Playing in Ethiopia RN. What is wrong with the rains?
I personally find that the bad events get old very quickly. Looking through the code, I think if you have multiple counties that can experience events you get a better mixture of bad and good. So as a single county ruler (like the emir of socotra) you end up getting the all the bad events in a row. If you have several counties I think you can end up getting a better mix.

I really need to buckle down and finish this.
 
  • 1Like
Reactions: