A Creative Device forged on Verse Island
Coastal Siege Helm
forged by BizaNator ✓ compiles
◈ Forged at The Deep Athenaeum
III
✓
Compiles
Coastal Siege Helm
Combines the Physics Boulder Device · Combines the Vehicle Spawner Boat Device
2 devices
queen-v says“Welcome aboard, Captain! This forges a coastal siege game: hop into your boat and you become Captain, then waves start rolling in. When the HUD warns you a wave is incoming, step onto the Release Pad to drop a rolling boulder and smash it — each hit scores more points as the waves escalate, and the next wave launches automatically for a nonstop loop. If you jump out of the boat, the helm reopens for the next player. Place the boulder aimed downhill at the pad, and link a repeater to the WaveTrigger if you want the tide to keep coming on its own.”
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
using { /UnrealEngine.com/Temporary/SpatialMath }
# Coastal Siege: captain a boat, drop rolling boulders on incoming waves,
# survive escalating rounds. Uses boulder + boat + two triggers + HUD.
coastal_siege_device := class(creative_device):
@editable
Boulder : physics_boulder_device = physics_boulder_device{}
@editable
Boat : vehicle_spawner_boat_device = vehicle_spawner_boat_device{}
# Player steps here to drop the boulder on the wave.
@editable
ReleasePad : trigger_device = trigger_device{}
# Fires when the wave "arrives" (linked to a timer/other device in-editor).
@editable
WaveTrigger : trigger_device = trigger_device{}
@editable
Scribe : hud_message_device = hud_message_device{}
# --- Game state ---
var Wave : int = 0
var Score : int = 0
var Captain : ?agent = false
var BoulderArmed : logic = false
# --- Dynamic HUD messages (message, not string) ---
ReadyText<localizes> : message = "Board the boat to become Captain!"
HelmText<localizes> : message = "You have the helm! Drop boulders on the waves."
ArmedText<localizes>(N : int) : message = "Wave {N} incoming — step the pad to DROP!"
HitText<localizes>(S : int) : message = "Direct hit! Score: {S}"
MissText<localizes> : message = "Missed! The wave crashed through..."
LostHelmText<localizes> : message = "You abandoned ship — Captain seat open!"
OnBegin<override>()<suspends> : void =
# Enable devices and show the opening prompt.
Boat.Enable()
ReleasePad.Enable()
WaveTrigger.Enable()
Scribe.SetText(ReadyText)
Scribe.Show()
# Wire every device to a handler.
Boat.AgentEntersVehicleEvent.Subscribe(OnBoardBoat)
Boat.AgentExitsVehicleEvent.Subscribe(OnLeaveBoat)
ReleasePad.TriggeredEvent.Subscribe(OnReleasePad)
WaveTrigger.TriggeredEvent.Subscribe(OnWaveIncoming)
Boulder.RollingBoulderDestroyedEvent.Subscribe(OnBoulderGone)
# A player takes the helm — they become the Captain.
OnBoardBoat(Agent : agent) : void =
set Captain = option{Agent}
Scribe.Show(Agent, HelmText, ?DisplayTime := 4.0)
# Kick off the first wave after they board.
WaveTrigger.Trigger()
# Captain leaves — reopen the seat.
OnLeaveBoat(Agent : agent) : void =
set Captain = false
set BoulderArmed = false
Scribe.Show(Agent, LostHelmText, ?DisplayTime := 3.0)
Scribe.SetText(ReadyText)
Scribe.Show()
# A wave arrives: arm the boulder and warn the captain.
OnWaveIncoming(MaybeAgent : ?agent) : void =
if (Cap := Captain?):
set Wave = Wave + 1
set BoulderArmed = true
Scribe.Show(Cap, ArmedText(Wave), ?DisplayTime := 5.0)
# Captain steps the pad — release the rolling boulder if armed.
OnReleasePad(MaybeAgent : ?agent) : void =
if (Cap := Captain?; BoulderArmed?):
set BoulderArmed = false
Boulder.ReleaseRollingBoulder()
# Boulder finished rolling (hit something / expired) — score and escalate.
OnBoulderGone() : void =
if (Cap := Captain?):
set Score = Score + (10 * Wave)
Scribe.Show(Cap, HitText(Score), ?DisplayTime := 4.0)
# Escalate: launch the next wave for the ongoing loop.
WaveTrigger.Trigger()
🌴 Forge your own free at verseisland.com — code U37ZN5F, credits for us both
🧭 Join with U37ZN5F — you both earn starter coconuts
🌴 Forged on Verse Island — free UEFN/Verse learning + a keeper’s Combine Lab.