Hi everyone,
I’m working on a Blueprint-only project and learning network replication. I’m updating a Launch Pad Blueprint I published to the Unreal Engine Marketplace/Fab, and I want it to work correctly in multiplayer.
The pad launches a player when they step on it. One of the modes lets the player launch toward a specific target actor (hard-referenced). After launching, I start a timer (using Set Timer by Event) to call an OnLanded
event after a short delay. This event resets certain player values.
The problem is:
I need to know which character was launched when the timer expires so I can correctly reset them in OnLanded
. But since Set Timer by Event
doesn’t support passing parameters, I’m unsure how to track which player the timer is for when it fires.
I considered storing the character in a variable before starting the timer, but this breaks in multiplayer or when multiple players use the pad in a short time — the variable gets overwritten. I’ve also looked into using a Map of handles or keys to characters, but in Blueprints I can’t tell which timer just fired when OnLanded
is called.
My questions:
- Is there any clean way in Blueprints to know which player the timer was meant for when it fires?
- Should I be using a unique timer-per-player approach with a custom dispatcher or a spawned helper actor instead?
- What’s the best multiplayer-safe way to track data across a delayed timer call in pure Blueprints?
Any help or best practices would be super appreciated. Thank you!