Alright, digging into the code again!
First, in the rayya’s children mod we have the manifest.json
which has the following:
"mixintos" : {
"stonehearth:data:gm_index" : "rayyas_children:data:gm_index",
},
gm is the game master, and it looks like we are taking the Rayya’s Children game master and adding it to the default Stonehearth game master. The only encounter defined by the RC mod is the traders, to it appears that RC should see the same encounters as Ascendency.
Looking now at the Stonehearth game master, we have 4 types of “campaigns”: trader, goblin war, game events, and ambient threats. Trader and goblin war are self-explanatory, game events is simply the repeating daily report, so ambient threats is what we are interested in.
The ambient threats campaign first waits for day 2, then spawns 2 new arcs: generate_daily_threat
, and wait_for_middle_worth
. Generate daily threat then calls randomize_daily_threat
every 24 hours.
randomize_daily_threat.json:
{
"type" : "encounter",
"encounter_type" : "random_out_edge",
"in_edge" : "randomize_daily_threat",
"random_out_edge_info" : {
"out_edges" : {
"nighttime_undead" : {
"weight" : 12
},
"goblin_thief_camp" : {
"weight" : 4
},
"none" : {
"weight" : "4 - difficulty"
}
}
}
}
So, it would appear that nighttime_undead
is 3 times as likely to occur as a goblin_thief_camp
, and there is also the chance that nothing occurs.
nighttime_undead.json
waits until night, then spawns undead_raid
.
undead_raid.json:
{
"type": "encounter",
"encounter_type": "create_mission",
"rarity": "common",
"in_edge": "undead_raid",
"out_edge": "wait_for_dawn",
"create_mission_info": {
"spawn_range": {
"min": 50,
"max": 160
},
"mission": {
"npc_player_id": "undead",
"ctx_entity_registration_path": "undead_raid.raiders",
"role": "pillage",
"offset": {
"x": 0,
"y": 0,
"z": 0
},
"pillage_radius": {
"min": 0,
"max": 50
},
"sighted_bulletin": {
"title": "i18n(stonehearth:data.gm.campaigns.ambient_threats.undead_raid.mission.sighted_bulletin.title)"
},
"members": {
"zombies": {
"from_population": {
"role": "zombie",
"location": {
"x": 0,
"z": 0
},
"min": 0,
"max": 1,
"range": 20,
"scale_with_run": {
"encounter_cap": 1
}
},
"equipment": {
"weapon": [
"stonehearth:weapons:jagged_cleaver"
]
},
"attributes": {
"max_health": "50 + 20 * difficulty",
"muscle": "20 + 13 * difficulty"
},
"loot_drops": {
"items": [
{
"uri": "",
"weight": 10
},
{
"uri": "stonehearth:refined:thread",
"weight": 5
},
{
"uri": "stonehearth:refined:cloth_bolt",
"weight": 5
},
{
"uri": "stonehearth:refined:leather_bolt",
"weight": 5
},
{
"uri": "stonehearth:refined:tin_ingot",
"weight": 5
},
{
"uri": "stonehearth:refined:iron_ingot",
"weight": 5
},
{
"uri": "stonehearth:refined:gold_ingot",
"weight": 5
},
{
"uri": "stonehearth:refined:silver_ingot",
"weight": 5
},
{
"uri": "stonehearth:refined:steel_ingot",
"weight": 5
},
{
"uri": "stonehearth:refined:bronze_ingot",
"weight": 5
}
]
}
},
"skeletons": {
"from_population": {
"role": "skeleton",
"location": {
"x": 3,
"z": 3
},
"min": 1,
"max": 2,
"range": 20,
"scale_with_run": {
"encounter_cap": 1
}
},
"equipment": {
"weapon": [
"stonehearth:weapons:stone_maul",
"stonehearth:weapons:iron_mace"
]
},
"attributes": {
"max_health": "50 + 20 * difficulty",
"muscle": "20 + 13 * difficulty"
},
"loot_drops": {
"items": [
{
"uri": "",
"weight": 10
},
{
"uri": "stonehearth:resources:iron:ore",
"weight": 5
},
{
"uri": "stonehearth:resources:copper:ore",
"weight": 5
},
{
"uri": "stonehearth:resources:gold:ore",
"weight": 5
},
{
"uri": "stonehearth:resources:silver:ore",
"weight": 5
},
{
"uri": "stonehearth:resources:tin:ore",
"weight": 5
}
]
}
}
}
}
}
}
It looks like they spawn 50 to 160 blocks away, and have pillage_radius
of 0 50. So it might be possible that they are spawning and you don’t see them, but you should still received the notice that undead have been sighted.
Do you have debug tools installed in your game? You could take a look at the campaign browser to see what it shows, or upload your save where this is happening and I can take a look myself…