Skip to content

feat: share one-time events between an account's characters - #4

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

XxFran10xX merged 2 commits into
TF-Minecraft:mainfrom
XxFran10xX:feat/shared-one-time-events

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).

Adds share_one_time, so a per-character one-time event (such as a duchy title's discovery EXP) is done once per account and its EXP reaches the account's other characters.

What exists today and what is new

Already on main (v4.81.0, what Main runs):

Not on main, added here:

  • Neither scope gives a duchy's EXP to the account's other characters. With data_scope: account only the first character ever gets it; per character (the default), each one gets it only by entering the duchy itself. share_one_time marks the event done for the other characters and runs its shared group (for example the EXP through carryexp), so they don't need to enter it again.

Changes

  • A per-character one_time event with share_one_time: true counts as done for every character of an account once one of them has done it.
  • About two seconds after a character's session starts, it gets each such event another of its account's characters has done, alive or dead, and runs the event's shared action group, for example console_command: rpcharacter admin carryexp %player% 40. Without a shared group the event is only marked done.
  • The run is bound to that character: if it leaves before the group finishes, the mark is undone and shared again at its next session. Logged as Shared <n> one-time events of account <account> with its character <character>.
  • Account-scoped events ignore the option.

Related

Main needs the option added to its duchy events by hand when this ships (share_one_time: true and a shared group with the carryexp line). Dev has it on its 18 sf_title_enter_* events.

Tests

  • mvn verify: 41 tests, 100% line coverage of net.tfminecraft.conditionalevents.character. New sharing cases in CharacterTrackerTest, PlayerDataTest and CEEventScopeTest.
  • Dev (TFMCDev01, 2026-10-17): a call-type test event with share_one_time was run on character A (default group). On switching to B, B got it marked and its shared group ran (carryexp 70); after B's death, new character C got it too. Dev's 18 duchy events loaded with the new keys without errors.

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
A per-character one_time event with share_one_time: true counts as done for
every character of an account once one of them has done it. Shortly after a
session starts, the character gets each such event another character has done
and runs its shared action group, for example to carry the event's Player EXP.
If the character leaves before that run ends, the flag is undone and shared
again at its next session.

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