Surface and Orbit Authority

Modular Encounters Tuning Initiative

The purpose of this initiative is to recommend a set of configuration settings to the Space Master that will create a player experience that we want regarding encounters and improve the health of the game server.

Action Plan
  1. Research - Read the available documentation and other resources to understand the capabilities of the mod and configuration options.
  2. Define a profile that defines a set of design goals and possible configuration settings.
  3. Get consensus from members and players on design goals.
  4. Test new settings in local world.
  5. Make final recommendation.
Initiative Status

*04/24 - Finished initial research. There are still open questions about how the mods work but I think we have enough information to start making some changes. I completed the design goals for a scaled back profile. The feedback has been positive so far. I still need to complete the configurations for planet based encounters and find out if there are many encounters that use the other types. Once that is done I will continue testing in my local world to try to determine if the settings will give us the intended behavior.

Looking for Trouble Configuration Profile
This configuration profile defines a set of design goals and configuration options for the Modular Encounter Spawner Mod. I wanted to greatly reduce the frequency of encounters and the number of NPC grids to reduce server load but make them available to players who wish to go out and find them.

Design Goals
  • Players will experience infrequent NPC encounters but they have to go looking for trouble in order to maintain contact.
  • Stationary NPC encounters will spawn more often than cargo encounters that move.
  • Players will need to travel a decent distance in order to spawn a stationary encounter. The exact distance depends on whether the encounter is in space or planet side. As a rule the distance should be 2x the average distance to an ore deposit.
  • Cargo encounters will spawn far away and never get close to a player that is not traveling. Cargo encounters will be much less frequent but last somewhat longer and travel further. Cargo encounters should never get close enough to a player grid to trigger aggro unless the player approaches the convoy. As a rule, the closest approach should be 2x the maximum aggro distance.
  • A player should never see more than one active encounter at a time.
  • A player should expect to see 0-1 encounters in a regular play session (1:3 hrs on average).
Configuration - Random Encounters

These settings govern the stationary space encounters. They trigger when a player has been moving and stay in place until the player goes out of range.

Setting Default New Note
PlayerSpawnCooldown 300 1200 Moving this from a default of 5 min to 20 min. This means that if somone was out looking for an encounter they would basically get only one.
PlayerTravelDistance 15000 80000 In space 40km is about how far any resource is. This distance is not too far but you have to work at it in order to find one.
MaxShipsPerArea 10 3 This value probably wont come into play as much since the travel distance and cool down are so high.
AreaSize 25000 25000 Not changed.
MinSpawnDistanceFromPlayer 8000 4000 Once the travel distance is reached, the encounter should spawn close to the player but not too close to trigger aggro.
MaxSpawnDistanceFromPlayer 12000 10000 Not changed.
MinDistanceFromOtherEntities 3000 6000 This needed to be bumped down as it was causing a condition where no encounters spawned.
DespawnDistanceFromPlayer 1000 1000 Confused by this value. Is it if you get within 1000 it will not despawn?
CleanupDistanceTrigger 50000 20000 The idea here is that if you are going out hunting for an encounter, you cant go back to base to get your fighting ship. There will be some time to get back into the battle but just enough.
CleanupTimerTrigger 1800 300 Down from 30 minutes to 5 minutes.
Configuration - Space Cargo Ships

These settings govern all of the moving ‘cargo’ space encounters. These include lunar encounters. They trigger on a timer at random distance from the player. They move to a second random point in space at a steady random speed.

Setting Default New Note
FirstSpawnTime 300 300 Not changed. The very first cargo ship can spawn after a player has been logged in for 5 min.
MinSpawnTime 780 3600 The next encounter cannot trigger for at least another hour.
MaxSpawnTime 1020 14400 and up to 4 hours.
MaxShipsPerArea 15 2 There is a question about this setting but I am taking 'Ships' to mean 'Encounters'. The other settings should make this moot.
AreaSize 15000 25000 Bumping this up slightly. The other settings should make this setting moot.
MinPathDistanceFromPlayer 2000 5000 This should be far enough to easily avoid but close enough to engage if desired. Updated to allow spawning.
MinPathDistance 10000 20000 Doubled the distance a ship(s) might travel.
MaxPathDistance 15000 20000 Doubled the distance a ship(s) might travel. Updated.
DespawnDistanceFromPlayer 1000 1000 Not changed.
CleanupDistanceTrigger 50000 60000 Bumped this up a bit. These will stay around a bit longer. This should let most of these encounters complete their intended path assuming the player is not moving much when it triggers. These are very rare and potentially very valuable. This should give a player time to prepare a strike. Based on the other settings, a player should expect at least one of these in a play session but not be guaranteed more.
CleanupTimerTrigger 1800 600 Down from 30 minutes to 10 minutes. Generally these will spawn closer to a base. This time should be adequate to get to a base and back in case it spawns while away from a base.
Configuration - Planetary Installations

Planetary installations spawn on a planet surface when players are moving near the planet. They remain as long as the player is near enough to the encounter location. These encounters should spawn only when a player is specifically looking for them and be quickly removed unless the player maintains constant contact.

Setting Default New Note
PlayerSpawnCooldown 300 7200 Changed to 2 hours. If a player is hunting these encounters and fails on the first attempt they still have a chance at a second in the play session.
PlayerDistanceSpawnTrigger 6000 2000 This did not work the I originally expected. Updated
MaxShipsPerArea 10 2 The other settings should make this moot but it is a fail safe.
AreaSize 15000 50000 This prevents new encounters from spawning if 2 players are working in the same area.
PlayerMaximumDistanceFromSurface 6000 6000 Not changed. Defines the boundry of planet encounters. Could have an impact on space to planet travel.
MinimumSpawnDistanceFromPlayers 3000 3000 These should spawn far enough away so that accidental aggro is unlikely. A player needs to go out of the way to hunt these.
MaximumSpawnDistanceFromPlayers 6000 10000
MinimumSpawnDistanceFromOtherGrids 2500 5000 This prevents a type of griefing whereby one player attempts to drop an encounter on another's base. This should always be outside of aggro range.
CleanupUseDistance true true Not Changed
CleanupUseTimer true true Not Changed
CleanupDistanceTrigger 50000 7000 The timer starts when this distance is exceeded.
CleanupTimerTrigger 1800 900 Reduced timer from 30 minutes down to 15 minutes. This should be enough time to die, respawn, reequip, and trave back to the encounter. Assume the encounter is on average 30km from base.
AggressiveTerrainCheck true false Even with very flat terrain nothing was spawning until I changed this one. I suppose we could end up with floating bases.
Configuration - Planetary Cargo Ships

These encounters are all of the moving convoys on a planet. They spawn on a timer, have a start and end point. These encounters should be very rare but last long enough for a player to properly engage if they desire. They should not get close enough to trigger aggro unless the player engages them.

Setting Default New Note
FirstSpawnTime 300 300 The first encounter will spawn no earlier than five minutes after a player joins.
MinSpawnTime 780 7200 While a player can expect to see one shortly after they join, these should be very rare.
MaxSpawnTime 1020 14400 2-4 hours
MaxShipsPerArea 1 1 Not Changed
AreaSize 20000 20000 Not Changed
PlayerSurfaceAltitude 6000 6000 Not Changed
MinPathDistanceFromPlayer 3000 5000 This is the closest approach from current location of the target player. This should be far enough away to avoid accidental aggro.
MaxPathDistanceFromPlayer 5000 10000 This should be close enough to allow the player to engage from their base.
MinSpawnFromGrids 1200 5000 This avoids a spawn on top of a player's grids who may not be online.
MinPathDistance 10000 20000 This defines how long the convoy will travel. This should provide a player plenty of time to get equiped and engage.
MaxPathDistance 15000 40000
DespawnDistanceFromPlayer 1000 1000 Not Changed - I am not clear on this setting. "This setting allows you to specify the minimum distance players must be from the encounter before despawn is triggered."
CleanupUseDistance true true Not Changed
CleanupUseTimer true true Not Changed
CleanupDistanceTrigger 50000 7000 The timer starts when this distance is exceeded.
CleanupTimerTrigger 1800 1800 Not changed. These encounters should be much more rare and even more valuable. Players should have enough time to make several attempts to engage the targes. The spawn timer is the main setting that should limit these.

Resources For Reference
Steam Workshop MES
Admin Guide
MEC FAQ
MEC Discord

Notes:

Relevant Configuration Settings

NPC Spawning Mechanics
NPC spawning is centered on a player position. Each player position will be considered a trigger point.
General Settings

  • Triggers - Triggers could be changed to happen much less frequently. This could have an indirect effect on server load depending on how long each triggered process takes.
  • UseMaxNpcGrids - This setting allows you to specify whether or not a global limit on NPC grids in the world should be used. Value can be replaced with true or false.
  • MaxGlobalNpcGrids - If UseMaxNpcGrids is set to true, then this setting specifies how many NPCs are allow to exist in the world at once. Value can be replaced with any integer (Eg: 5, 10, 42, etc) This setting would have a direct impact on how the NPC encounters work.

Common Settings - Each type of encounter has these settings.

  • MaxSpawnGroupFrequency
  • MaxShipsPerArea|AreaSize
  • DespawnDistanceFromPlayer

Space Cargo Ships
Mechanics - The space cargo ship encounter triggers on the player position. It determines a starting point, and ending point and a velocity.

  • MinSpawnTime|MaxSpawnTime
  • MinPathDistanceFromPlayer

Random Encounters
Mechanics - This appears to be space based only. They appear when a player is traveling in space. These settings seem to govern the stationary installations. This needs confirmation.

  • PlayerSpawnCooldown
  • PlayerTravelDistance
  • MinSpawnDistanceFromPlayer|MaxSpawnDistanceFromPlayer
  • DespawnDistanceFromPlayer

Planetary Cargo Ships

  • MinSpawnTime|MaxSpawnTime
  • MaxPathDistanceFromPlayer|MinPathDistanceFromPlayer
  • MinSpawnFromGrids

Planetary Installations

  • PlayerDistanceSpawnTrigger
  • MinimumSpawnDistanceFromPlayers|MaximumSpawnDistanceFromPlayers
  • MinimumSpawnDistanceFromOtherGrids

NPC Cleanup Mechanics
NPC Cleanup is centered on the NPC grid. It is not clear how the program determines what is an NPC grid when some part of the blocks are owned by a player.

  • CleanupTimerTrigger - This setting allows you to specify the time limit (in seconds) before a grid is removed if
  • CleanupDistanceTrigger - CleanupUseTimer is set to true. Value can be set to any integer number higher than 0
    This setting allows you to specify the time limit (in seconds) before a grid is removed if CleanupUseTimer is set to true. Value can be set to any integer number higher than 0
Discord Questions:

if im not mistaken cant you as server admin setup safezone that you can stop NPC spawning in? – wont stop spawning per se - but they wont spawn if the path intersects the zone

cargo ships will spawn around players on a timer (both space and planet), while random encounters (and also planetary installations) only spawn as players explore.

Thanks David for doing this!

Some thoughts:

There are a lot of config settings that don’t list a default. It might be worth starting a local world with the mod, and using the admin chat commands to read the values and see what they’re set to. Or coming up with a list of them to ask Derspiny to query our server. (eg. /MES.Settings.General.MaxGlobalNpcGrids.Value)

I think step 1 should be finding out what that max is, and setting it to a lower value. Based on how many NPCs people have reported seeing nearby at a given time, it sounds like this is quite a bit too high for our server’s CPU/RAM.

Other interesting looking options:

  • /MES.Settings.*.MaxShipsPerArea.Value
  • /MES.Settings.*.AreaSize.Value
  • For * in:
    • SpaceCargoShips
    • RandomEncounters
    • BossEncounters
    • PlanetaryCargoShips
    • PlanetaryInstallations

What I really need right now is a very general description of how the mod works in general or maybe even how the encounters concept works in general. Some of these settings are hard to understand with no context.

I have completed a survey of all of the settings available in the spawner mod. I think I have an idea of what dials are available. I am also working on how to define the player experience. This is one possible profile.

Looking for Trouble

  • Players will experience infrequent NPC encounters but they have to go looking for trouble in order to maintain contact.
  • Stationary NPC encounters will spawn more often than cargo encounters that move.
  • Players will need to travel a decent distance in order to spawn a stationary encounter. The exact distance depends on whether the encounter is in space or planet side. As a rule the distance should be 2x the average distance to an ore deposit.
  • Cargo encounters will spawn far away and never get close to a player that is not traveling. Cargo encounters will be much less frequent but last somewhat longer and travel further. Cargo encounters should never get close enough to a player grid to trigger aggro unless the player approaches the convoy. As a rule, the closest approach should be 2x the maximum aggro distance.
  • A player should never see more than one active encounter at a time.
  • A player should expect to see 0-1 encounters in a regular play session (1:3 hrs on average).
Config-RandomEncounters.xml

These settings govern the stationary space encounters. They trigger when a player has been moving and stay in place until the player goes out of range.

Setting Default New Note
PlayerSpawnCooldown 300 1200 Moving this from a default of 5 min to 20 min. This means that if somone was out looking for an encounter they would basically get only one.
PlayerTravelDistance 15000 80000 In space 40km is about how far any resource is. This distance is not too far but you have to work at it in order to find one.
MaxShipsPerArea 10 3 This value probably wont come into play as much since the travel distance and cool down are so high.
AreaSize 25000 25000 Not changed.
MinSpawnDistanceFromPlayer 8000 8000 Not changed.
MaxSpawnDistanceFromPlayer 12000 12000 Not changed.
MinDistanceFromOtherEntities 3000 12000 Matched distance from player.
DespawnDistanceFromPlayer 1000 1000 Confused by this value. Is it if you get within 1000 it will not despawn?
CleanupDistanceTrigger 50000 10000 The idea here is that if you are going out hunting for an encounter, you cant go back to base to get your fighting ship. There will be some time to get back into the battle but just enough.
CleanupTimerTrigger 1800 300 Down from 30 minutes to 5 minutes.
Cofig-SpaceCargoShips.xml

These settings govern all of the moving ‘cargo’ space encounters. They trigger on a timer at random distance from the player. They move to a second random point in space at a steady random speed.

MinPathDistance1000020000Doubled the distance a ship(s) might travel.
Setting Default New Note
FirstSpawnTime 300 300 Not changed. The very first cargo ship can spawn after a player has been logged in for 5 min.
MinSpawnTime 780 3600 The next encounter cannot trigger for at least another hour.
MaxSpawnTime 1020 14400 and up to 4 hours.
MaxShipsPerArea 15 2 There is a question about this setting but I am taking 'Ships' to mean 'Encounters'. The other settings should make this moot.
AreaSize 15000 25000 Bumping this up slightly. The other settings should make this setting moot.
MinPathDistanceFromPlayer 2000 10000 This should be far enough to easily avoid but close enough to engage if desired.
MaxPathDistance 15000 40000 Doubled the distance a ship(s) might travel.
DespawnDistanceFromPlayer 1000 1000 Not changed.
CleanupDistanceTrigger 50000 60000 Bumped this up a bit. These will stay around a bit longer. This should let most of these encounters complete their intended path assuming the player is not moving much when it triggers. These are very rare and potentially very valuable. This should give a player time to prepare a strike. Based on the other settings, a player should expect at least one of these in a play session but not be guaranteed more.
CleanupTimerTrigger 1800 600 Down from 30 minutes to 10 minutes. Generally these will spawn closer to a base. This time should be adequate to get to a base and back in case it spawns while away from a base.

That profile sounds pretty much ideal to be honest!

Having the option to explore, encounter and fight is important, but within the limitations of not being swarmed with insurmountable odds, and not grinding the server to a halt.

I like the idea! I have questions about some of the settings.

CleanupDistanceTrigger 10km
CleanupTimerTrigger 5 minutes
PlayerTravelDistance 80km

Doesn’t this mean that if you travel 80km to find an encounter, and have to go back to base for any reason (80km) by the time you’re 10km from the encounter, on the way back to base, the cleanup could trigger and remove the encounter? Especially if the 160km round-trip to base takes longer than 5 min.

Are these settings you would apply to all the NPC types? Cargo ships are generally non-agro, could we allow them closer?

40km seems like a long way, on planet at least. I’d be unlikely to see an NPC with these settings. Even my farthest away ore patch is only 25km. After reducing MaxShipsPerArea so much, maybe we can be less conservative with the distance?

I’d also still be really curious to see what MES.Settings.General.MaxGlobalNpcGrids.Value is set to, and whether we should lower it.

The settings listed here are only for “Random Encounters” which is stationary space encounters. I am still working on values for the other three main types. (Space Stationary, Space Cargo, Planet Stationary, Planet Cargo)

For stationary encounters, I wanted them to appear when you go looking for them but not appear when you are going about general business. I also want them to spawn far enough that you can ignore them but close enough that you can engage them.

Distances on the planet and in space are indeed different. These would need to be tuned accordingly. The intent was to spawn a stationary encounter after about 2-3 minutes of travel. I will need help to figure out what those specific values should be for planet side encounters.

The idea is that when you go hunting, you go well equipped. When it comes to cleaning up NPC encounters, I wanted just enough time to be able to die, spawn, grab a second ship and get back in range before the timer expired but maybe not enough time to realize you have no ammo and make the round trip to base and back. Those are the design goals anyway.

The two cleanup triggers work together. If you exceed the distance, the timer kicks in. The encounter is removed at the end of the counter unless contact is resumed.

The setting for UseMaxNpcGrids is defaulted to false in my local world. The MaxGlobalNpcGrids setting is 50. I would advocate using this setting as a last resort and on a temporary basis when the server is tanking. It won’t clean up grids to get them down to 50. It does put a hard stop on any new grids spawning when the limit is reached. I don’t know if it stops the primary encounter ships from spawning defense drones. My guess is not. I will ask that.

I think it may be prudent to implement this emergency measure now and even during initial testing of the new settings. We could use it to determine how much of an impact the NPC grids are having on the server load by dropping it down to say 1 or 5.

Ah, ok, I missed that. I didn’t realize “Random Encounters” was the stationary space type. That makes sense I guess, looking through the types in the guide. I guess the only non-stationary ones are the “cargo ships” then? Though I guess they’re not all cargo ships, necessarily? LIke the LTV that I see flying by from time to time is probably from the planetary cargo ships spawner, but it certainly looks like a warship to me. :slight_smile:

I really like the idea you’ve described in “Looking for Trouble”! I’ll try to do a test at lunch to tell you roughly how long it takes to go 25km round-trip on the planet (since I have a marker that far away, the old base) by jetpack, and hopefully that can help define distances on planets. Since “Random Encounters” is the space one (I didn’t realize that) I’ll leave the distances up to you vacuum dwellers. :wink:

I realized I didn’t spell it out and that I had the same confusion at first glance. I added some text to the top and also added the second set of configurations for Space Cargo.

Yes the cargo encounters are any ships that move from point A to B. They often do not look like cargo ships. They often have scary names and scary intent. There are other types as well besides these four. I still need to determine if the mods we have loaded implement any of these other types and if so what to do about them and how to limit them.

I think I will consolidate my findings into a wiki style page on the original post to keep things as clean as possible.

I updated the original post to make it cleaner.

*04/24 - Finished initial research. There are still open questions about how the mods work but I think we have enough information to start making some changes. I completed the design goals for a scaled back profile. The feedback has been positive so far. I still need to complete the configurations for planet based encounters and find out if there are many encounters that use the other types. Once that is done I will continue testing in my local world to try to determine if the settings will give us the intended behavior.

Here are the two planetary encounter types for your consideration. I now need to work out how lunar encounters work. It seems there is a setting on the planetary encounters that would prevent these from spawning where there is no atmosphere.

Configuration - Planetary Installations
Planetary installations spawn on a planet surface when players are moving near the planet. They remain as long as the player is near enough to the encounter location. These encounters should spawn only when a player is specifically looking for them and be quickly removed unless the player maintains constant contact.

Setting Default New Note
PlayerSpawnCooldown 300 7200 Changed to 2 hours. If a player is hunting these encounters and fails on the first attempt they still have a chance at a second in the play session.
PlayerDistanceSpawnTrigger 6000 10000 This should be tuned to something like 2x the average distance to an ore deposit. (need help)
MaxShipsPerArea 10 2 The other settings should make this moot but it is a fail safe.
AreaSize 15000 50000 This prevents new encounters from spawning if 2 players are working in the same area.
PlayerMaximumDistanceFromSurface 6000 6000 Not changed. Defines the boundry of planet encounters. Could have an impact on space to planet travel.
MinimumSpawnDistanceFromPlayers 3000 3000 These should spawn far enough away so that accidental aggro is unlikely. A player needs to go out of the way to hunt these. Setting back to defaults.
MaximumSpawnDistanceFromPlayers 6000 6000
MinimumSpawnDistanceFromOtherGrids 2500 8000 This prevents a type of griefing whereby one player attempts to drop an encounter on another's base. This should always be outside of aggro range.
CleanupUseDistance true true Not Changed
CleanupUseTimer true true Not Changed
CleanupDistanceTrigger 50000 7000 The timer starts when this distance is exceeded.
CleanupTimerTrigger 1800 900 Reduced timer from 30 minutes down to 15 minutes. This should be enough time to die, respawn, reequip, and trave back to the encounter. Assume the encounter is on average 30km from base.

Configuration - Planetary Cargo Ships
These encounters are all of the moving convoys. They spawn on a timer, have a start and end point. These encounters should be very rare but last long enough for a player to properly engage if they desire. They should not get close enough to trigger aggro unless the player engages them.

Setting Default New Note
FirstSpawnTime 300 300 The first encounter will spawn no earlier than five minutes after a player joins.
MinSpawnTime 780 7200 While a player can expect to see one shortly after they join, these should be very rare.
MaxSpawnTime 1020 14400 2-4 hours
MaxShipsPerArea 1 1 Not Changed
AreaSize 20000 20000 Not Changed
PlayerSurfaceAltitude 6000 6000 Not Changed
MinPathDistanceFromPlayer 3000 5000 This is the closest approach from current location of the target player. This should be far enough away to avoid accidental aggro.
MaxPathDistanceFromPlayer 5000 10000 This should be close enough to allow the player to engage from their base.
MinSpawnFromGrids 1200 5000 This avoids a spawn on top of a player's grids who may not be online.
MinPathDistance 10000 20000 This defines how long the convoy will travel. This should provide a player plenty of time to get equiped and engage.
MaxPathDistance 15000 40000
DespawnDistanceFromPlayer 1000 1000 Not Changed - I am not clear on this setting. "This setting allows you to specify the minimum distance players must be from the encounter before despawn is triggered."
CleanupUseDistance true true Not Changed
CleanupUseTimer true true Not Changed
CleanupDistanceTrigger 50000 50000 The timer starts when this distance is exceeded. Switching this back to default. It was cleaning up before they could even get started.
CleanupTimerTrigger 1800 1800 Not changed. These encounters should be much more rare and even more valuable. Players should have enough time to make several attempts to engage the targes. The spawn timer is the main setting that should limit these.

Looks great to me!

I think this means that if it’s reached the end of it’s path and is “ready” to despawn, a player being within 1km will prevent that from happening.

Yep. The double neg was throwing me. If I want it to go away then I must get at least this far away. If I want it to stay around then I must get at least this close.

On to testing.

I started my testing on the planet.

  • The frequency of the triggers could probably be scaled back some but I don’t think this will have a significant positive impact on server health. I am inclined to leave them as they are for now. There is a performance hit even in single player when the installation is added. So reducing the number of times / minute it decides to spawn in NPC assets should have an impact.
  • The planetary cargo encounter spawned right away and lasted a very long time as expected. This one was going very slowly so it seemed to go on forever with the new settings. It actually was going up and ended up going too high long before it traveled too far.
  • One unexpected outcome of the stationary settings is that it is possible for it to spawn outside of ‘visual’ range depending on much power the NPC antennas are given. Is this a feature or a bug? Does having the possibility of a ‘hidden’ base spawn make things more or less fun? It seems the average detectable range is about 20km so it is never actually hidden. It just might spawn too far from you in the opposite direction of your travel for you to notice it or run into it.
  • MaximumSpawnDistanceFromPlayers may be too high. As long as the distance player must travel is high enough then encounter should spawn within closer range.
  • The distance to travel setting might be too high. Based on testing, it seems the way this distance is calculated would prevent us from making this value too high. It seems to measure the linear distance between the current location and the last time the measure was taken. It does not seem to total distance over a period of time or take the distance from current position to the initial player position. The upshoot is that in order for a player to go find a stationary encounter they will need to be traveling very fast.
  • Another factor on planets is terrain. Stations need a flat spot. I haven’t considered any of the many many terrain related settings. I am getting the indicator about no suitable terrain quite a bit. Changed the AggressiveTerrainCheck to false.
  • No space encounters are spawning. I had to dial back the changes quite a bit.

Summary: I don’t think I can consider the testing final. I ended up putting several of the values back near defaults just to get anything to spawn. At least a few encounters created NPC assets with no signal which makes it hard to troubleshoot. Also it is hard for me to predict how all of these changes will ultimately perform in a multi-player environment.

I really like your approach. Setting specific goals means that we can evaluate the settings on an ongoing basis to see if we’re accomplishing them, as well as revisiting the intentions as needed. I think you’ve picked good goals, as well: it’s a nice balance between infinite legos forever and having an extrinsic source of risk to keep things interesting.

Doesn’t this mean that if you travel 80km to find an encounter, and have to go back to base for any reason (80km) by the time you’re 10km from the encounter, on the way back to base, the cleanup could trigger and remove the encounter? Especially if the 160km round-trip to base takes longer than 5 min.

The distances involved are gross, not net, travel. If you pace back and forth for a metre 80,000 times, you’ll still trigger a spawn based on having travelled 80,000 metres, despite being no more than a metre from your spawn point. You can see this in action under the current settings.

In practice, this means that spawns will happen closer - often much closer - than 80 km from the start of a session. All that fractal wandering around your own base, building structures and managing cargo, adds up quickly.

Edit: I’m somewhat concerned that the changes to minimum approach distance will all but eliminate “unplanned” encounters. While NPC interruptions can be hugely problematic, it’d be hard for me to argue that “an NPC ship pancaked my crawler” made for a bad story, and I honestly enjoyed coming up with a way to recover and move on. (@SurprisingEdge may feel differently - NPCs picked off an entire base around him, leaving very little to recover from.)

I’m okay if that’s the intent, but it’s something I might be tempted to revisit later.

We talked very briefly about how to codify some of these settings without getting too specific or detailed. I am wondering if these design goals would be a good compromise.

I had to edit my own understanding on this several times today during my testing. I am still not totally clear but it seems that the distance is calculated and evaluated every time the stationary encounter logic is triggered which is something like 2 minutes. At the end of the 2 minute interval it determines the distance from location that it recorded on the last trigger. If the distance between those two points is not greater than the minimum, then the player will not qualify for the encounter. This means that if the time interval is too short or the minimum distance too long the encounter never qualifies. I believe both of those are settings that can be modified.

I am not totally sure how to benchmark this especially on the ground. If one is traveling by foot at 10m/s should you expect to run up on a base? Can you avoid spawning a station in space by just going slow enough?

I personally agree with you that there is a nice element in tracking the trajectory and speed of an incoming ship to gauge whether or not it will get close enough to spot you. For me it’s about the experience. The setbacks are part of the story.

Currently the “Looking for Trouble” profile does indeed intend to avoid unplanned encounters of the cargo variety. They should never get close enough to aggro. The spawning mechanics for this type are a bit more straight forward. It would be possible to configure these so that they happen very rarely and when they do most of the time they will miss but every once in a while they will get very close.

Is it just me, or has NPC spawning been lower lately even without any changes to the settings?

It could just be me, because I think with my new base location being down on a lake, NPCs spawn a certain minimum height from the surrounding terrain, so they always pass so far overhead I tend to ignore them. I also haven’t been traveling far from base, so I haven’t triggered the spawning of installations or anything.
I did a 50km (each way) trip last night, to deliver a UCU of ingots to a friend that joined, and that did end up spawning a couple installations, so it is still working.

It’s not just you.

I have a hypothesis about this, though - I think we’ve mapped out the local sphere (broadly defined as the surface around various bases and the populated area of near-Erf space) well enough that we’re undertaking far fewer long trips than we were three weeks ago.

I know this is true for me personally, at least. When I log in and work on my current project - which takes me all of 300m from my starting point at most - then I don’t see many spawns in a session. Sessions where I have to fly for ore I suddenly see three or four spawns in quick succession (including a few, uh, unplanned encounters).

Ok, so, spoke too soon.

For multiple hours yesterday and today server sim cpu has been up around 130%, as high as 160%, leading to seriously bad playability. I think more people have been traveling longer distances, leading to more spawns, some very long lived. Earlier today I saw 7 NPC ships around Port Sol. 3 were in a fleet, and there were 4 others. This was with 3-4 people logged in.

I think we need to do something, anything, about it sooner rather than later, or we risk very few people actually wanting to play, because of the lag. When I login and see 130% server sim cpu, I know I reconsider doing much in game, because of the risk of crashing ships, and the tediousness of even moving about welding stuff.

@David, what remains to be done with your testing before we can use it? Is there somewhere you can put whatever interim files you have, so someone else (like me) could pick up the work?

I have had several ideas about this in the last few weeks. I think it makes sense to figure out how much the NPC spawns are affecting the sim speed. We could temp dial down the station and cargo spawns to almost zero by just setting the allowed instance of each type to 1. Then run it for a 2-3 weeks and see if it helps.

Some of the spawn groups that include 4-5 ships could be excluded. The massive stations could be excluded.