Skip to content

Palvolve-Fork feature overview - #3

Open
NoahBohdi wants to merge 3 commits into
DooDesch-Mods:mainfrom
NoahBohdi:fix/greet-buffer-hardening
Open

Palvolve-Fork feature overview#3
NoahBohdi wants to merge 3 commits into
DooDesch-Mods:mainfrom
NoahBohdi:fix/greet-buffer-hardening

Conversation

@NoahBohdi

@NoahBohdi NoahBohdi commented Aug 5, 2026

Copy link
Copy Markdown

What the fork adds beyond upstream, briefly:

  • Auto-evolve - a pal whose free pair's requirements are all met evolves on its own, no prompt (any pair in the tree can be marked free; a cooldown paces repeats).
  • Base-camp auto-evolve - camp workers do the same, on free unconditioned pairs only.
  • Evolve protection - an evolving pal cannot die mid-sequence: a bounded invulnerability-and-heal window carries it through the swap, so evolving in combat is survivable by design.
  • Withdraw-to-cancel - recalling a pal mid-transformation aborts the evolution with a full refund, and snoozes auto-evolve for that pal until its next level-up.
  • Primed Pals - wild pals at low HP can evolve in front of you (deterministic per-individual roll, a catchable telegraph; capturing cancels it), with optional global gates over weather/time/state (conditions/anyOf).
  • Wild-world coherence - under-leveled wild spawns of evolution-target species devolve to the stage their level allows (or get level-floored), gender-faithful to the tree's demands, NPC companions covered; the egg filter extends to cross-species adaptation edges so evolved forms stay earned.
  • Condition vocabulary - either/or groups (anyOf), at-most HP (hpBelow:N), counted party demands (inParty:Id:n), per-pair explicit materials, per-pair free.
  • More surfaces - evolution info on the Paldex pages, toasts and a "what's this?" flavor beat, settings pages for Mod Options Framework and DarnMenu, DarnToasts progress panels.
  • Saddle-tech sync - gear unlock levels follow the tree's evolution floors via a generated PalSchema override.
  • Tree-author tooling - a merge script that re-applies the fork-only pair fields (free, anyOf, materials, ...) over a palvolve.doodesch.de export, with a diff report - trees authored in your configurator round-trip cleanly.
  • Assorted hardening - including the crash-forensics breadcrumb technique this PR's diagnosis came from.

Happy to split anything that looks upstream-worthy into its own clean PR like this one.

…ver inheritance

The 1.3.10 reconnect fix buffers every greet for 30s so onEnterWorld can
consume a re-greet that arrives before the client re-baselines. Two leaks
in that shape let a buffered greet outlive its purpose and settle REMOTE
against the NEXT world - a vanilla host included, at which point the first
evolve press sends the carrier RPC to a server that reads it as a plain
otomo selection:

1. On a LISTEN HOST the client-side pong hook also observes the host's own
   outgoing greet to a joining guest (no for-us filter on that branch). It
   was buffered in ST.LOCAL where settleRemote never consumes it, so it
   survived the full 30s across a quit-to-menu + join.
2. A greet that failed to settle (arriving in ST.REMOTE) was buffered with
   the same 30s lifetime, though its one legitimate consumer - the
   imminent onEnterWorld re-baseline - arrives within milliseconds.

Changes: drop greets observed while holding world authority (devMode logs
the drop); settle FIRST and clear the buffer on consume (settleRemote now
reports consumption); buffer only unsettled greets, with an 8s TTL for the
REMOTE-origin copy (8 not 3: the interval spans the client's own spawn-in
and region-streaming hitches, and a too-tight TTL re-breaks the laggy-
server case the 1.3.10 fix exists for, while anything under the ~10s
server-hop floor costs nothing). IDLE-origin buffers keep the 30s window
unchanged.

Found while porting 1.4.0 into the permitted Palvolve-Fork build; the
restructure survived three adversarial review rounds there.
@NoahBohdi NoahBohdi changed the title fix(servercheck): harden the reconnect greet buffer against cross-server inheritance Reconnect greet-buffer fix + Palvolve-Fork feature overview Aug 5, 2026
@NoahBohdi NoahBohdi changed the title Reconnect greet-buffer fix + Palvolve-Fork feature overview Palvolve-Fork feature overview Aug 5, 2026
NoahBohdi and others added 2 commits August 5, 2026 09:22
Review-only. This is the fork's complete current payload (28 scripts,
PalSchema data half, generator tools, fork changelog as
CHANGELOG-FORK.md) copied onto upstream main in upstream's own layout,
so the Files-changed view renders every fork change file-by-file.

Not intended to merge as-is: the fork ships as its own mod
(Palvolve-Fork) and this translation deliberately leaves upstream's
Info.json, README, CHANGELOG, probes.lua and dll untouched (the fork
runs upstream's own 1.5.0 native companion, hence no binary diff).
Anything worth adopting gets cut into its own clean rebased PR, like
the greet-buffer fix.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…is config.lua version bump was the conflict)
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