• 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.
Our start date is 1257 and I've changed the values in defines like this:
Code:
NDefines.NCharacter.EARLY_PORTRAIT_AND_UNIT_BEFORE_YEAR = 1453
NDefines.NCharacter.LATE_PORTRAIT_AND_UNIT_AFTER_YEAR = 1200

I think that should be enough to use both sprite layers but still there are only early sprites for both saxongfx/frankishgfx and westerngfx. So no, changing the years didn't help me to use both of them.
 
common/death
You define the code, whether it is violent or not which means if there is no set sound then a random violent one will be chosen, the description, if it can have no killer and then a sound list, if a murder then whether the murder is unknown (make two copies of it one unknown one not like vanilla does), whether it is an execution or not which means it will be used when you execute someone (if you do make it an execution you then need to go into common/execution_methods and add it there with a trigger and weighting as well). The vanilla file also tells you to add any new death reasons into the appropriate scripted triggers which I would also advise doing.

I feel like I'm close, but something isn't tying together correctly. I just want to confirm, so in the fields that say things like long_desc = "DEATH_SACRIFICED", am I replacing that DEATH_SACRIFICED field with my own entry, or is that a hardcoded entry I'm not allowed to touch? I think I'm supposed to leave it alone. Right now the game is saying "Was sacrificed to the gods by unknown." What am I missing here? Right now I have:

Localisation:
death_sacrificed_lilith = Sacrificed by Lilith for failing his birth trial. x

00_scripted_triggers:
death_sacrificed_trigger = {
OR = {
death_reason = death_sacrificed
death_reason = death_sacrificed_norse
death_reason = death_sacrificed_ancestors
death_reason = death_sacrificed_lilith # Failed his birth trial and was sacrificed to Lilith.
}​
}

lilith_deaths.txt
death_sacrificed_lilith = {
long_desc = "DEATH_SACRIFICED"​
}

lilith_birth_events.txt:
FROM = { death = { death_reason = death_sacrificed_lilith } }
 
Last edited:
I feel like I'm close, but something isn't tying together correctly. I just want to confirm, so in the fields that say things like long_desc = "DEATH_SACRIFICED", am I replacing that DEATH_SACRIFICED field with my own entry, or is that a hardcoded entry I'm not allowed to touch? I think I'm supposed to leave it alone. Right now the game is saying "Was sacrificed to the gods by unknown." What am I missing here? Right now I have:

Localisation:
death_sacrificed_lilith = Sacrificed by Lilith for failing his birth trial. x

00_scripted_triggers:
death_sacrificed_trigger = {
OR = {
death_reason = death_sacrificed
death_reason = death_sacrificed_norse
death_reason = death_sacrificed_ancestors
death_reason = death_sacrificed_lilith # Failed his birth trial and was sacrificed to Lilith.
}​
}

lilith_deaths.txt
death_sacrificed_lilith = {
long_desc = "DEATH_SACRIFICED"​
}

lilith_birth_events.txt:
FROM = { death = { death_reason = death_sacrificed_lilith } }
You need to give it your own long desc as that is what displays when you hover over the skull, the coded entry is not something localised
 
  • 1
Reactions:
Does anyone have an idea on what could be causing every feudal realm to go nomad in 2.5.2? It is due to looking at someone else's code, so I don't know what could had been changed and the Validator's government errors don't seem related.
 
Hey guys, how I should write this trigger? I didn't found any useful trigger :c

Code:
AND = {
   culture = someculture
   province with someculture is in de jure k_somekingdom
   }

It will be good?
Code:
is_located_in = k_ireland
 
Last edited:
Basically, what you knew before about localisation (descending order of importance in ASCII) is now reversed. Use aa_ instead of zz_. (Confirmed in my mod)
For what it's worth, remember that numbers come before capital letters in ASCII. This isn't a problem in overriding vanilla localization files, but could be for other mods.
 
Can anyone see anything wrong with this code:
Code:
decisions = {

    form_normandy = {
        is_high_prio = yes
        potential = {
            OR = {
                culture_group = north_germanic
                culture = norman
            }
            NOT = { has_global_flag = normandy_created }
            d_normandy = {
                has_holder = no
            }
        }
        allow = {
            has_landed_title = c_arques
            OR = {
                has_landed_title = c_evreux
                has_landed_title = c_avranches
                has_landed_title = c_mortain
                has_landed_title = c_bayeux
                has_landed_title = c_coustance
                has_landed_title = c_vexin
                has_landed_title = c_eu
            }
        }
        effect = {
            hidden_tooltip = {
                narrative_event = { id = norman.1 }
               
                any_playable_ruler = {
                    limit = {
                        tier = COUNT
                        liege = {
                            has_landed_title = d_neustrian_march
                        }
                    }
                    add_trait = bastard #just to check if the event decision is working, will remove later
                    set_defacto_liege = k_france
                }
            }
            set_global_flag = normandy_created
            primary_title = {
                d_normandy = {
                    activate_title = { title = THIS status = yes }
                    grant_title = ROOT
                    copy_title_laws = PREV
                    make_primary_title = yes
                    set_defacto_liege = k_france
                }
            }
        }
           
        revoke_allowed = {
            always = no
        }
        ai_will_do = {
            factor = 1
        }
    }
}

The events it triggers being:
Code:
narrative_event = {
    id = norman.1
   
    is_triggered_only = yes
    hide_window = yes
   
   
    immediate = {   
        d_neustrian_march = {
            holder_scope = {
                character_event = { id = norman.2 }
            }
            destroy_landed_title = THIS
        }
        activate_title = { title = d_neustrian_march status = no }
    }

    option = {
        name = OK
    }
}
character_event = {
    id = norman.2
   
    is_triggered_only = yes
    hide_window = yes
   
   
    immediate = {
        ROOT = {
            set_defacto_liege = k_france
        }
    }

    option = {
        name = OK
    }
}

At the moment c_anjou is becoming independent, as well as c_tourraine, the bastard trait is also not being added, which tells me that something is wrong with my scoping (i think). (I replaced d_anjou with d_neustrian_march, for a more historical Neustria.)
 
@Sevgart:
Code:
AND = {
   culture = x
   location = { #province where current scoped character is located
      culture = x
      de_jure_liege_or_above = k_y
   }
}

@ogarrr :
I think the problem is that you're setting the de facto liege before destroying the title. Save the holder as an event target, and set de facto liege after destroying and deactivating the title.
 
  • 2
Reactions:
Hey guys, how I should write this trigger? I didn't found any useful trigger :c

Code:
AND = {
   culture = someculture
   province with someculture is in de jure k_somekingdom
   }

It will be good?
Code:
is_located_in = k_ireland

I think you can simply use kingdom = k_ireland (although I always forget wether that will check if it's in ireland de jure or de facto).
 
I think you can simply use kingdom = k_ireland (although I always forget wether that will check if it's in ireland de jure or de facto).

Edit: ninja'd

Edit 2: Is there a way to force a character portrait to show in a character event without being FROM, FROMFROM, FROMFROMFROM, etc? I'm writing an event chain about a couple of characters, protagonist and antagonist, with protagonist being the player, and I want to send events only to the player while showing antagonist's face, without actually pinging to antagonist each other event. Is that possible?
 
@ogarrr :
I think the problem is that you're setting the de facto liege before destroying the title. Save the holder as an event target, and set de facto liege after destroying and deactivating the title.
So add a title or character flag, presumably?

I think you're right, tried it out without destroying the title and the bastard trait was added (so my scopes were correct) What I'll probably do is set the defacto liege of all d_neustrian_march's vassals and then destroy the title on a delay, perhaps with a narrative event stating that is now a redundant title (as happened historically).
 
Last edited:
I think you can simply use kingdom = k_ireland (although I always forget wether that will check if it's in ireland de jure or de facto).

Actually, it needs to be kingdom = { title = k_ireland }, since kingdom is a scope. I believe it's de jure.
 
@richvh @ngppgn @DC123456789
I think I don't get it guys. Im dumb, sorry :CC

Here is whole trigger for my province event:
Code:
trigger = {
     year = 900
     NOT = { year = 1150 }
       OR = {
         AND = {
           culture = irish
           culture = scottish
           culture = pictish
           culture = welsh
           owner = {
             OR = {
               culture = norse
               culture = norsegael
             }
           }
         }
         AND = {
           culture = norse
           DE JURE IRELAND
         }
       }
   }
 
@richvh @ngppgn @DC123456789
I think I don't get it guys. Im dumb, sorry :CC

Here is whole trigger for my province event:
Code:
trigger = {
     year = 900
     NOT = { year = 1150 }
       OR = {
         AND = {
           culture = irish
           culture = scottish
           culture = pictish
           culture = welsh
           owner = {
             OR = {
               culture = norse
               culture = norsegael
             }
           }
         }
         AND = {
           culture = norse
           DE JURE IRELAND
         }
       }
   }

Try this:

Code:
trigger = {
     year = 900
     NOT = { year = 1150 }
       OR = {
         AND = {
           culture = irish
           culture = scottish
           culture = pictish
           culture = welsh
           owner = {
             OR = {
               culture = norse
               culture = norsegael
             }
           }
         }
         AND = {
           culture = norse
           kingdom = {
             title = k_ireland
           }
         }
       }
   }
 
Code:
AND = {
   culture = x
   culture = y
}
will always evaluate to FALSE. I think you need to remove that first AND wrapper.
 
Is there anything specific to do when modding sound files? I added a death reason (that works correctly, shows the right text etc) and added a

Code:
sound_list = {
        male = {
            "testsound"
        }
       female = {
           "testsound"
       }
    }

Then I added that sound into the sound.sfx file and linked a .wav-file, but the game still plays the generic death sound.