Skip to content

Conversation

@cmorley191
Copy link
Contributor

@cmorley191 cmorley191 commented Dec 17, 2025

About the PR

Added new epistemics admin logs. I intend to use them to analyze generally how players are generating research points, and how players are interacting with glimmer, anomalies, and xenoarch.

We should start collecting data ASAP. Grafana visualizations or one-off analyses based on these logs will come later.

To be clear: these are logs that appear in the `adminlogs` menu, or the admin_log database table. They are "LogSeverity.Low", so they do not spam/appear in the chat window. Most admins won't know they're there

Why / Balance

Xenoarch is busted. The recent glimmer scaling PR has combined poorly with other scalings, and discord users are reporting that xenoarcheologists are finishing the research tree very early in the shift, due to nodes producing insane amounts of research points.

It'd be awesome if we start collecting data now, so that we will have solid before & after statistics on whatever balance changes we make in the near future.

Technical details

There are 11 new types of log messages being generated. In total, I estimate ~20,000 more logs per round to be generated. The current average (as discussed on discord) is probably about ~150,000 per round, so this is a fairly significant increase!

However, I think these are okay to add for now, and we can look at slimming down our logs over the next couple months. A month or two of 15% more logs shouldn't break the bank on server disk storage. (we're currently storing the past year of rounds)

Examples of the 11 new logs:

New Research category

  1. Points report: (1 log every 60s, ~120 logs per round)

current points in R&D server (10255/n10255, ResearchAndDevelopmentServer): 4592

  1. Passive research point generation: (1 log every 1s, ~7200 logs per round)

R&D server (10255/n10255, ResearchAndDevelopmentServer) collected 236 points from 3 sources over 1 seconds: 179 points from glimmer prober (7922/n7922, GlimmerProber), 30 points from anomaly vessel (8732/n8732, MachineAnomalyVessel), 27 points from anomaly vessel (8733/n8733, MachineAnomalyVessel),

New ArtifactDetails category

(originally had these in the existing ArtifactNode but I'd like to keep them separate in case we want to revert this PR & purge these logs)

  1. Each node's details logged when artifact spawns: (~100 logs per round)

artifact (74112/n74112, ComplexXenoArtifact) spawned with node effect (XAN-801) (74118/n74118, XenoArtifactFloraSpawn) with depth 1; effect status Hidden; 3 triggers: xenoarch-trigger-tip-examine,xenoarch-trigger-tip-wrenching,xenoarch-trigger-tip-heat

  1. Depth 1+ node revealed - all predecessors unlocked: (~80 logs per round)

artifact (74112/n74112, ComplexXenoArtifact) node effect (XAN-801) (74118/n74118, XenoArtifactFloraSpawn) revealed

  1. Node unlocked: (~50 logs per round)

artifact (74112/n74112, ComplexXenoArtifact) node effect (XAN-801) (74118/n74118, XenoArtifactFloraSpawn) unlocked

  1. Node extracted: (~50 logs per round)

analysis console (4615/n4615, ComputerAnalysisConsole) extracted 40383 points and 20 glimmer from node effect (XAN-801) (74118/n74118, XenoArtifactFloraSpawn). Details: base 4000; predecessors 2; durability 4/4; subtotal 15038; glimmerMultiplier 2.685448

New Glimmer category

(a lot of things change glimmer. I just picked out some of the most "important" ones; we can group the rest into an "Other" category on Grafana, for now.)

  1. Node extracted: (again. ~50 logs per round)

analysis console (4615/n4615, ComputerAnalysisConsole) produced 20 glimmer from extracting node effect (XAN-801) (74118/n74118, XenoArtifactFloraSpawn)

  1. Person mindbroken: (~5 logs per round)

Urist McHands (142431/n142431, MobHuman, localhost@JoeGenero) drained 52 glimmer through mindbreaking

  1. Passive drain: (1 log per 12 seconds, ~120 logs per round)

system drained 1 glimmer passively

  1. Points report: (1 log per 60 seconds, ~120 logs per round)

current glimmer: 446

  1. Passive generators/drains:
  • the glimmer prober is 1 log per 1-10 seconds, depending on the current glimmer level. ~4000 logs per round
  • all other sources are 1 log per 10 seconds. ~720 logs per source per round.
  • in total, I'd expect ~8000 logs per round.

anomaly (137686/n137686, AnomalyFlora) produced 1 glimmer passively

Media

Requirements

  • I have tested all added content and changes.
  • I have added media to this PR or it does not require an ingame showcase.

Breaking changes

Changelog

@cmorley191 cmorley191 requested a review from a team as a code owner December 17, 2025 06:52
@github-actions github-actions bot added size/M 64-255 lines S: Needs Review Awaiting review from a Maintainer Changes: C# Changes any cs files labels Dec 17, 2025
@cmorley191 cmorley191 added the No Direction Review Needed A review from the Direction team is unnecessary for this PR. label Dec 17, 2025
Comment on lines 45 to 50
_adminLogger.Add(
LogType.ArtifactNode,
LogImpact.Low,
// note: effect type is already logged by ToPrettyString(node)
$"{ToPrettyString(ent.Owner)} spawned with node {ToPrettyString(node)} with depth {node.Comp.Depth}; effect status {effectStatusString}; {triggerStr.ToString()}"
);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one seems like it would get really noisy. It would spit out an admin log for each node when an artifact spawns, right?

Copy link
Contributor Author

@cmorley191 cmorley191 Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's correct. There are 10-16 nodes in each artifact. It'll shoot off 10-16 logs back to back whenever an artifact spawns.

I guess I'm not totally sure how many artifacts get generated in a round. I imagined 6 would be an average number, but maybe it's more like 10 with how many salvage wrecks there are? Surely not more than 20 or 30? (30 artifacts would be only 400 logs per round)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Y'know let me move these to their own log_type. Then, worst case scenario if they do blow up more than we want they'll be really easy to clear out from the database. (step 1: revert this PR, step 2: DELETE FROM admin_log WHERE log_type=425 or whatever)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a lot more may get generated, though not necessarily utilized. There are multiple that spawn on red rock at round start and possibly on salv wrecks as well.

Copy link
Contributor Author

@cmorley191 cmorley191 Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would never expect more than 100 artifacts in a round, would we? Even 100 artifacts would only be 1600 logs per round, which pales in comparison to the main logs in this PR. (passive glimmer generation and passive research generation are ~8000 per round each)

Copy link
Contributor Author

@cmorley191 cmorley191 Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could add some intelligent filtering on "only log the artifacts that are actually used", but I think that might be premature.

My goal with this particular "what triggers does a node have" log is so we can reconstruct the full trees. Seeing what nodes researchers didn't unlock can be just as useful as seeing which ones they did -- I'd like to try to analyze the actual/perceived difficulty of trigger types by using these logs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: C# Changes any cs files No Direction Review Needed A review from the Direction team is unnecessary for this PR. S: Needs Review Awaiting review from a Maintainer size/M 64-255 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants