CRAZY CARS JUMP OBBY
.png)
METRICS: 7.5K+ UNIQUE PLAYS 150K+ MINUTES PLAYED
A 12-level vehicle deathrun map built in UEFN with Verse. Designed to reward precision driving and creative stunts, the game features progressively harder jumps, unlockable cosmetics / bonus levels, persistent best-time tracking across sessions, and custom audio.
Island Code: 8002-3555-0330​
GAME MECHANICS

RUN COMPLETION
When completing a run, the instigating player's completed run time is displayed for all players to see. The player is then teleported back to the lobby in front of the board with the saved times. This is to provide players with a sense of reward by letting everyone know they beat the game, and teleporting them to the saved times board may incentivize the player to try and beat their previous time.
This is achieved by sending the agent that collects the final level coin to the teleporter_device when CollectedEvent occurs for the collectible_object_device. Printing the player's time to the hud_message_device itself is rather simple using Verse and would look something like TimerHud.SetText(StringToMessage("{PlayerTime}")).
Then >> TimerHud.Show()
​
This timing logic comes from one of my prototype projects which can be viewed below

PLAYER RESPAWN / RESTART
If a player exits their vehicle, it explodes, or they stay in the vehicle as it freefalls below the course, they will be forced out and reset on the level they were just on and in a new vehicle. In addition, there are two inputs the player can press to either return to the lobby, or restart the course from the beginning where the timer and player's score will reset to 0.
This was created by using verse to check when AgentExitsVehicle for each vehicle and using an async function to apply a slight delay with Sleep() to Destroy() the vehicle to which it will be auto respawned. This delay allows time for the vehicle to be despawned and respawned which prevents the AssignDriver function from failing and leaving the player without a vehicle. Once the Sleep() delay is over, AssignDriver(Agent) is called. Teleporting the player to the lobby and restarting the run each use their own input_trigger_device. When a player presses the shown input to return to the lobby, PressedEvent is sent with the Agent to the lobby teleporter_device in Teleport(Agent). For restarting the run it is a rather similar approach, the player is force exited from the vehicle when pressing the input and placed in their vehicle on the first level. The timer for that specific player is then restarted (PlayerTimer.Restart(Agent).