Skip to content

feat: share exploration discoveries between an account's characters - #4

Merged
XxFran10xX merged 2 commits into
TF-Minecraft:mainfrom
XxFran10xX:feat/shared-exploration
Oct 18, 2026
Merged

XxFran10xX merged 2 commits into
TF-Minecraft:mainfrom
XxFran10xX:feat/shared-exploration

Conversation

@XxFran10xX

@XxFran10xX XxFran10xX commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Coordinated move, 2026-10-18. RPCharacters #129, Codex #4 and ConditionalEvents #4 ship together on TFMCMain01 in a planned stop after the 06:10 restart (fran). Please don't stage or deploy any of their releases on Main or Tutorial before then. ConditionalEvents #4's build check fails only because a fork PR can't read DEPS_TOKEN; the same commit (754b7ac) built green with it in CI, 41/41 tests (https://github.com/TF-Minecraft/ConditionalEvents/actions/runs/39101500750).

Exploration belongs to the account: a character gets the Codex discoveries its other characters made, with their Player EXP, while research stays per character.

What exists today and what is new

Already on main (v2.13.0, what Main runs):

Not on main, added here:

  • Nothing copies another character's entries into the played character's journal, and no Player EXP moves between characters, so a new character has to find everything again to earn it. This PR copies the shared entries (all but research) when a character starts playing and pays their EXP through RPCharacters' carryexp.
  • The "Use common sense" line on entries known only out of character is new.

Changes

  • About two seconds after a character's session starts, its journal gets every discovery the account's other characters (alive or dead) and its old account journal hold, except entries kept per character. Copies keep their first date. This covers switching, a new character after a death, and accounts whose characters explored apart before the change (each gets the union).
  • New shared_discoveries section in config.yml, added to existing files on startup:
    • keep_per_character: categories or category:discovery entries that are not shared. Default: research and the research achievements (5_research, 10_research, 25_research, all_research, full_codex), so a new character still earns research EXP by researching.
    • rewards: from/to rewrites. A copied discovery runs only reward lines starting with a from, rewritten to to. Default: mmocore admin exp give %player% main N → rpcharacter admin carryexp %player% N, so a capped class keeps the EXP. Messages, titles and sounds are skipped; one sharedDiscoveries message replaces them. Completed categories pay their all_discoveries lines the same way.
  • The journal is saved before rewards run, so a crash can lose a reward but never pay it twice. Logged as Shared <n> Codex discoveries of account <account> with its character <character>.
  • Entries known only out of character get a common-sense line, knownOutOfCharacterOnlyAdvice: "Use common sense: play as not knowing this until they learn it in character." (empty hides it). New message keys are added to existing messages.yml.

Related

Tests

  • mvn verify: 45 tests, 100% line coverage of net.tfminecraft.codex.character. New SharedExplorationTest, and sharing cases in CharacterJournalsTest (delay, dead characters, old account journal, research kept, offline/switched/quit players, failed save).
  • Dev (TFMCDev01, 2026-10-17): character A received B's Solmyrian Gate and Logarothar but not B's Bronze research; B received A's four entries but not Ignitium; after B's death, new character C received all six exploration entries and neither research. EXP was carried (C: 260 + 70, 100 into level 2 at the Warrior cap, 230 waiting). In /codex, C's Ignitium entry showed "Corra Stonemere knows this only out of character." and the common-sense line. On startup Codex added the config section and message keys to Dev's existing files.

Not released yet; nothing on Main or Tutorial until the coordinated move.

🤖 Generated with Claude Code

XxFran10xX and others added 2 commits October 17, 2026 21:31
Shortly after a character's session starts, its journal gets the discoveries
the account's other characters (alive or dead) and its journal from before
characters made, except entries kept per character (research and the research
achievements by default). A copied discovery runs only its reward lines that
carry over, rewritten by shared_discoveries.rewards: Player EXP goes through
RPCharacters' carryexp, so a capped class keeps it for later. One summary
message replaces the per-discovery messages. Entries known only out of
character get a common-sense line (knownOutOfCharacterOnlyAdvice).

Existing config.yml and messages.yml files gain the new section and keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant