SkyFish: Seeker raycast breaks when fired into the Summer Store spawnable pool prop
tracked
Libby~
Summary: The Summer Store spawnable pool prop breaks raycast-based world gameplay
and halts the world's Udon until the player rejoins. Only this one prop does it.
Steps to reproduce:
- Join world "SkyFish" (world ID: wrld_4358923a-f07f-4556-9826-29d8a6eed5f1).
- Spawn & Pick up a Gun (the harpoon used to fish).
- Spawn the pool prop from the Summer Store (the inflatable pool).
- Aim the Gun at the spawned pool and fire (charge, then release trigger).
- The Seeker (red pill mounted on gun) despawns and the fishing line breaks. SkyFish stops responding, and no further casting works until you leave and rejoin the instance.
Expected: firing at the prop behaves like firing at any other surface
(the dart lands on it, or the ray passes through). No effect on the held
item or on world state.
Actual: the Seeker despawns, the line breaks, and all world game logic is
dead until rejoin.
Frequency: 100%. Only this prop triggers it. Every other surface, prop,
pickup, and avatar in the world is fine.
Technical: the world locates the dart's landing point with a single
Physics.Raycast (QueryTriggerInteraction.Ignore). The ray returns a hit on
this prop's collider, and immediately after, the held item despawns and the
world's Udon goes inert.
Platform: PC + Android (Quest), reproduces on both.
Log In
Fax
Hi Libby~! Thanks for reporting the issue.
Can you please check whether you use
Utilities.IsValid
on the result of the raycast? That should allow you to avoid interacting with items on accident.Libby~
Fax
Thanks Fax. Confirmed we weren't validating the hit, so I've added
Utilities.IsValid(hit.collider)
regardless.The strange part: as far as we can tell this pool prop is purely visual, no collider, you shoot and walk straight through it, yet firing toward it still breaks our synced rig, and only this prop does it. I'm capturing exactly what the raycast reports at the moment it happens and will follow up with specifics. Thanks for the help so far!
Libby~
Fax
Update:
That was it, thank you! The pool prop does have a collider, but it's a runtime-spawned object so
Utilities.IsValid(hit.collider)
returns false for it. Guarding the hit and skipping invalid colliders stops the harpoon landing on it, and the rig no longer breaks. Confirmed in a live build.Minor follow-up on our side: when we skip the invalid hit the dart was falling through to its far fallback point, which dropped it under the terrain. Already tidied up so it lands just in front instead. Appreciate the pointer.
Fax
marked this post as
tracked