Jump to content

Improved Hordes [A21.2]


FilUnderscore

Recommended Posts

2 hours ago, DoctorGreen said:

Quick question, I'm testing mods together and it would be helpful to know how long into game I should be before the first hordes come out, does it follow game day, or player level?   If I don't see any hordes by (x condition), when will I know the mod is working or not?   So far I'm like lvl 3 in current world and have only seen single zombies at a time, wondering if that is normal with mod installed. tia.

Horde spawns are randomly generated on a weekly basis, first horde could be as early as Day 1 9:00 to as late as Day 4. You can view the horde schedule using the command “improvedhordes wandering show” which will show you all the wandering hordes for the week. To test if horde spawns work, you can spawn in a wandering horde using “improvedhordes wandering spawn”. The hordes will be small to start with, as they rely on your gamestage.

Link to comment
Share on other sites

Thanks this is helpful, and its working ftw.  Or I'll get eaten.  As it stands as usually on day 2 i am infected and cant find any antibiotics.  Good times.  Also was killed by giant dire wolf who suddenly appeared on my right as per their custom.  They can smell lvl 1s somehow. 

Link to comment
Share on other sites

  • 4 weeks later...
  • FilUnderscore changed the title to Improved Hordes [A20.6/A20.7]
  • 1 month later...

IMPROVED HORDES 2.0.0-alpha.1 [A21 EXP b317]

 

This is an experimental release of Improved Hordes. If you encounter any bugs/performance issues regarding the mod, report them in the Issues section of the repository with the experimental label.

 

Download: https://github.com/FilUnderscore/ImprovedHordes/releases/download/2.0.0-alpha.1/ImprovedHordes-Experimental.zip

Changelog

  • Major rewrite of Improved Hordes code and functionality.

Added

  • World Roaming Hordes
    • Hordes are now simulated across the world, spawning at random time intervals configured in the hordes file.
      • You can run into hordes now, the world feels more alive as a result.
      • Hordes that spawn and wander from cities can be huge, while hordes that spawn near small POIs and in the wild are much smaller.
      • World Roaming Hordes are also multi-threaded, meaning Horde AI and distance calculations have been largely offloaded from the main game thread.
    • Hordes can now split into smaller hordes or group up into larger hordes, with a new feature called horde density. Horde density allows hordes to scale in size combined with game stage, allowing for both smaller and bigger hordes at even the highest game stages.
    • Hordes are comprised of clusters that may be part of different horde types that may have merged, that follow the same AI as the horde they are in.
    • improvedhordes stats command has been updated to reflect useful information regarding World Roaming Hordes (i.e. Horde Cluster counts / horde densities), as well as information regarding game thread requests being processed.
  • Horde Characteristics
    • Hordes now have a set of characteristics that determine their properties.
      • A walk speed characteristic that determines a horde's day/night walk speed.
      • A sensitivity characteristic that determines a horde's sensitivity to world events.
  • World Event Reporter
    • Tracks and decays heatmap events that occur throughout the world. The decay rate and distance of interest is dependent on world size.
  • World Horde Tracker
    • Tracks the hordes currently spawned in the world and simulates them accordingly.
    • Handles merging hordes and spawning of hordes if players are nearby.
  • Horde Populators
    • The World Roaming Horde system requires hordes to work, so the Horde Populators populate the world every tick depending on if certain conditions are met. Such as, are there any hordes or players nearby?
  • World POI Scanner
    • The POI Scanner scans the world for POIs that will then be grouped into clusters, to determine which clusters are large, densely populated cities/towns and which clusters are singular POIs.
    • Allows for more accurate city horde / screamer spawns.
  • Logging
    • Verbose logging can be enabled using the improvedhordes verbose command to see more detailed logs.

Changed

  • Wandering Hordes
    • Wandering Hordes now make use of the world roaming system with improved AI, which will target locations of interest where heatmap activities occur. You might attract large hordes or multiple smaller ones if you're too loud.
  • Animal hordes
    • Animal hordes can be found in the wild, migrating between biomes at different times of the year. You might catch some passing through a wasteland once in a while to get to a sunny forest. You may also encounter a chase between a wolf pack and a deer.
  • Scout -> Screamer Hordes
    • Spider zombies have been removed from screamer hordes.
    • Screamers spawn in densely populated POI hubs such as cities, and may at times choose to join wandering hordes that form and leave these areas.
    • Screamers are much more sensitive than normal hordes, being able to sense heatmap activities four-times the distance, so watch out for screamers near city bases.
  • Improved AI
    • The AI system has been redeveloped from the ground up to allow for more dynamic horde behaviors. Ever seen a horde of zombies take a stop to sleep? Might not want to disturb them.
    • Hordes have a variety of commands to choose from depending on their current state.
      • Wandering around locations of interest.
      • Sleeping
      • Heading somewhere.
    • Some hordes now store states within their respective command generators, which help with generating future commands depending on their previous/current state.
  • Custom Hordes
    • The layout for the hordes.xml file has been kept roughly the same, however minor breaking changes have been made to streamline modifying the new horde spawning system.
      • Under each horde type, horde groups must now be defined between the <horde></horde> tags.
      • Each horde type allows you to now define other horde types that hordes can merge with. (In this release, custom horde types cannot be defined as they are currently only hardcoded. Stay tuned for updates.)
      • The POI tags feature has been removed since the World POI Scanner has made this feature obsolete.
      • countDecGS and countIncPerGS have been removed, and zombie counts are now determined at thirds of the current GS depending on the entity counts set between the min and max GS (see hordes file for more information).
      • increaseEvery can be used instead of max to increase entity counts every X gamestages (supports floats).
  • The settings.xml file can now be xpath patched for any future add-ons.

Removed

  • Patrol Hordes
    • Patrol Hordes have been superseded by the new Roaming Hordes system, so expect more varied Wandering Hordes.

Known issues

  • Horde respawning of same type/number of entities inconsistent.
  • Some horde entities may not despawn properly when quickly teleporting around.
  • World horde state is not saved. Hordes respawn every time the game is started.
Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

5 hours ago, Dragonchampion said:

Could you please give a "Massive Hordes" version that makes the hordes have a size of 50-100 zombies when you release the A21 version? I want it to feel dangerous, and you confront hordes at your own peril.

Looking into making this an add-on, but expect add-ons to be updated/released around when 2.0.0 goes stable (should be around the same time as A21). The alpha should be ready for this weekend.

Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

  • FilUnderscore changed the title to Improved Hordes [A21 EXP]
10 hours ago, Picklefart said:

Will the console commands work for this still?

 

Help improvedhordes

 

It didn't come up for me on server

As well the command did not work in SP

If by design then apologies 

Sounds like the DLL hasn’t loaded properly. Have you checked that the DLL is placed at Mods/ImprovedHordes/ImprovedHordes.dll and not in say a double folder like Mods/ImprovedHordes/ImprovedHordes/ImprovedHordes.dll?

Link to comment
Share on other sites

Should I be seeing screamers every couple of minutes? I cleaned out the Pass n Gas station with the bunker underneath and put a row of frames/shapes down along the inside of the fence line, went down into the bunker and could hear a screamer up there. I put my bedroll and claim block down and went back up and there were three screamers sniffing around the property. Took care of them and then by the time I got back down to the bunker and put the pot down in the campfire, another screamer shows up. Feels like anything and everything I do is making them spawn and I'm barely doing anything.

 

 

Link to comment
Share on other sites

11 minutes ago, LonesomeRaven31 said:

Should I be seeing screamers every couple of minutes? I cleaned out the Pass n Gas station with the bunker underneath and put a row of frames/shapes down along the inside of the fence line, went down into the bunker and could hear a screamer up there. I put my bedroll and claim block down and went back up and there were three screamers sniffing around the property. Took care of them and then by the time I got back down to the bunker and put the pot down in the campfire, another screamer shows up. Feels like anything and everything I do is making them spawn and I'm barely doing anything.

 

 

If you are near/within a densely populated POI area then there will be screamers patrolling around at all times of the day, this is by design. They shouldn’t reappear for a few days after killing them, until the area is repopulated (and will not be repopulated while you are near).
 

Screamers no longer spawn due to heat map activities, and do not spawn hordes anymore - but rather try to call out to nearby hordes if there are any (i.e. they may call none if there are none nearby). They are however much more sensitive to heatmap activities than normal hordes (up to four times).

 

I am looking into the amount of screamers spawning, but that is also dependent on the size of the town you are in.

 

I welcome feedback on these new features so that I can tweak and balance future updates.

Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

https://prnt.sc/Ko2TST2GDM86
is the path correct? the first time I see that there is a dll file in the mods folder and another folder with xml files in the config folder. You don't need to accidentally transfer 3 xml files from the destination folder so that they lie mods>config>xml files, or mods>config>ImprovedHordes>xml files is this correct?

Edited by yuuarai (see edit history)
Link to comment
Share on other sites

6 minutes ago, yuuarai said:

https://prnt.sc/Ko2TST2GDM86
is the path correct? the first time I see that there is a dll file in the mods folder and another folder with xml files in the config folder. You don't need to accidentally transfer 3 xml files from the destination folder so that they lie mods>config>xml, or mods>config>ImprovedHordes>hml files is this correct?

Yes, the files are already placed in the correct location, you just need to place the mod folder from the zip (containing the DLL/Config folders) in your Mods folder. Also make sure that EAC is disabled so the DLL can load.

Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

35 minutes ago, ZombieMikeG said:

Just an FYI, Norton keeps deleting the DLL on me upon extracting the zip, stating that it has the ws.reputation.1 virus (which seems to be a generic general warning?). 

Yeah the DLL file is safe, source is available on GitHub if you want to compile it yourself/check out what the mod does. Looking at the warning, it's just a precaution due to the mod update just being released and not been downloaded enough times.

Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

8 hours ago, FilUnderscore said:

Sounds like the DLL hasn’t loaded properly. Have you checked that the DLL is placed at Mods/ImprovedHordes/ImprovedHordes.dll and not in say a double folder like Mods/ImprovedHordes/ImprovedHordes/ImprovedHordes.dll?

 

Norton was the issue. All resolved. Thanks.

Link to comment
Share on other sites

6 minutes ago, fnfear said:

Not sure if im the only one having this issue but I get a massive horde one after another and they just keep coming, i kill like 16-32 zombies and suddenly another wave comes 10 seconds later o.o

Yeah this might be related to the alert system that's present in the update. Hordes near you can now hear things like gunshots and go investigate. You might be getting large hordes if you're in a harder biome like the wasteland, and if you are near a city. As for attracting lots of hordes, I haven't ironed out the whole system yet so expect tweaks in further updates. If you kill enough zombies, they should stop coming for some time.

Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

The console keeps spamming this in red tho.

 

 

Spoiler

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.675 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.675 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.724 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.724 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.847 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.848 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.880 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.880 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2899.100 INF Saving 73 of chunks took 202ms
2023-06-18T16:50:08 2899.101 INF Paused Exploration

 

Link to comment
Share on other sites

27 minutes ago, fnfear said:

The console keeps spamming this in red tho.

 

 

  Reveal hidden contents

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.675 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.675 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.724 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.724 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.847 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.848 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2898.880 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): UpdateTask was terminated due to a fault.
2023-06-18T16:50:08 2898.880 ERR [Improved Hordes] [WorldHordeTracker] <Update>b__1(Task): #1 - An exception occurred during UpdateTask: [Improved Hordes] GS must have either a defined max attribute or increaseEvery attribute.
Stacktrace:
  at ImprovedHordes.Data.XML.HordeDefinition+Group+GS.GetCount (System.Int32 gs, System.Int32 minCount, System.Int32 maxCount) [0x0005c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.XML.HordeDefinition+Group+Entity.GetCount (System.Int32 gs) [0x0003c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator.CalculateEntitiesToSpawn () [0x00043] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionEntityGenerator..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Data.XML.HordeDefinition definition) [0x00044] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Data.HordeDefinitionHorde.CreateEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0000c] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest.DetermineEntityGenerator (ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup) [0x0002d] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.Request.HordeClusterSpawnMainThreadRequest..ctor (ImprovedHordes.Core.Abstractions.Logging.ILoggerFactory loggerFactory, ImprovedHordes.Core.Abstractions.World.IEntitySpawner spawner, ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, System.Action`1[T] onSpawnAction, System.Action onSpawned) [0x00055] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.PlayerHordeGroup playerGroup, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData hordeSpawnData, System.Action`1[T] onEntitySpawn, System.Action onSpawned) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.Cluster.HordeCluster.RequestSpawn (ImprovedHordes.Core.World.Horde.WorldHorde horde, ImprovedHordes.Core.World.Horde.Spawn.HordeSpawnData spawnData, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, ImprovedHordes.Core.World.Horde.AI.HordeAIExecutor aiExecutor, System.Action`1[T] onSpawn) [0x00061] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawn (ImprovedHordes.Core.World.Horde.Cluster.HordeCluster cluster, ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHorde.RequestSpawns (ImprovedHordes.Core.World.Horde.Spawn.WorldHordeSpawner spawner, ImprovedHordes.Core.World.Horde.PlayerHordeGroup group, ImprovedHordes.Core.Threading.Request.MainThreadRequestProcessor mainThreadRequestProcessor, ImprovedHordes.Core.Abstractions.World.Random.IWorldRandom worldRandom, System.Action`1[T] onSpawn) [0x00019] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker.UpdateHorde (ImprovedHordes.Core.World.Horde.WorldHorde horde, System.Single dt, System.Collections.Generic.List`1[T] players, System.Collections.Generic.List`1[T] eventReports) [0x00069] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at ImprovedHordes.Core.World.Horde.WorldHordeTracker+<>c__DisplayClass40_0.<UpdateTrackerAsync>b__0 (ImprovedHordes.Core.World.Horde.WorldHorde horde) [0x00001] in <da17dd97e1504fecae1f1f17ac2e4031>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[TSource,TLocal].<ForEachWorker>b__0 (System.Int32 i) [0x00012] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x000cf] in <03bd9b261dff4c2b8b568aca27f561b2>:0
--- End of stack trace from previous location where exception was thrown ---

  at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) [0x001e5] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica`1[TState].ExecuteAction (System.Boolean& yieldedBeforeCompletion) [0x00000] in <03bd9b261dff4c2b8b568aca27f561b2>:0
  at System.Threading.Tasks.TaskReplicator+Replica.Execute () [0x00023] in <03bd9b261dff4c2b8b568aca27f561b2>:0
2023-06-18T16:50:08 2899.100 INF Saving 73 of chunks took 202ms
2023-06-18T16:50:08 2899.101 INF Paused Exploration

 

 

Must be related to this config line in the Config/ImprovedHordes/hordes.xml file,

image.thumb.png.f17118e16098d741329344485c129b7a.png

 

Adding this to the gs tag should fix it temporarily (my bad, forgot about not having a max/increaseEvery tag):

image.thumb.png.b4440b3890428a002babadcc74826b43.png

 

I'll push out an update soon with a more permanent fix.

 

EDIT: Update has been pushed, 2.0.0-alpha.2 should fix this problem.

Edited by FilUnderscore (see edit history)
Link to comment
Share on other sites

  • FilUnderscore changed the title to Improved Hordes [A21.2]

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...