Skip to content

Devlog — Ricky — Week 41, 2026

  • [2026-10-07 19:56] - CT-003 water hazard (CL 119232): standing on a Water-tagged floor that is not Frozen returns the player to the last dry spot. ARephraseCharacter samples its floor on a 0.1 s timer (a floor change raises no event while walking). Frozen water (Status.Frozen, including Dirty & Frozen) is walkable and is not a dry spot, so standing on ice keeps the shore as the return point; thawing under the player returns on the next sample. Water tag set on MAIN PUZZLE - CENTRAL WATER CHANNEL in Lvl_Overworld (external actor file).
  • Lead feedback: the instant TeleportTo looked glitchy. Now a climb-style carry: movement disabled plus a refcounted input lock, an eased move to the dry spot raised by WaterReturnDropHeight (100 cm) over WaterReturnDuration (0.6 s), then MOVE_Falling and input back so the player drops onto the ground. Dry spots whose raised capsule is blocked are skipped. Both knobs are EditAnywhere on the character.
  • Known, not fixed: DryHistory is not cleared after a return, so walking straight back in can return to an older sample closer to the shore than the first return spot. A one-line history reset was written, then reverted before review; follow-up if it bothers anyone.
  • Test: Rephrased.CT003.Character.WaterHazardFollowsFreeze covers IsHazardousWater only (Normal, Frozen, thawed, Dirty & Frozen, untagged, no rune state). Not run. The carry and drop were checked by hand in PIE.
  • Review: first pass gave four advisory INFO notes (P5 timer, P3 pawn reads puzzle state, P2 history not saved, P9 no visible cue); second pass after the carry change gave no notes. Approved.
  • Debug tip for Lvl_Overworld: its level blueprint teleports the player to (-9842, -7039, -1898) at BeginPlay, so PlayFromHere and a StartPIE transform are overridden. To test at the channel, F8 eject in PIE, select the character and set Location in Details; the Water rune is at about (-57150, 12370, 120) on the west shore. No Freeze rune is placed in the loaded Overworld; drag BP_RuneWord_Freeze in and do not save the level.