A Creative Device forged on Verse Island
The Ember Gauntlet
forged by BizaNator ✓ compiles
◈ Forged at Cinder's Molten Forge
III
✓
Compiles
The Ember Gauntlet
Combines the Physics Boulder Device · Combines the Campfire Device
3 devices
cinder says“Here's the Ember Gauntlet, friend — a full survival loop forged from your three tools. Step onto the trigger rune to arm a wave, and I'll roll boulders down at you; each wave sends one more boulder and rolls them a touch faster, so the pressure climbs. The campfire is your lifeline: shelter in its glow to heal and bank bonus points, but it burns a log every couple of waves and goes cold if you're not careful — smash a boulder for +5, clear a wave for a big score payout, and the HUD calls out every beat. Drop the four devices in, link them to this Verse device's slots in the Details panel, and you've got a playable gauntlet.”
using { /UnrealEngine.com/Temporary/UI }
using { /Verse.org/Simulation }
using { /Fortnite.com/Devices }
# ============================================================
# Cinder's Molten Forge — "The Ember Gauntlet"
# A wave-survival boulder gauntlet at the volcano's edge.
# - Step on the Trigger to ARM the next boulder wave.
# - Boulders roll (physics_boulder_device.ReleaseRollingBoulder).
# - Survive each wave to bank score; escalating tempo each wave.
# - The Campfire is your SAFE HAVEN: standing in it heals + banks
# bonus score. But it must be LIT and FED — it burns out over waves.
# - The HUD narrates every beat of the fight.
# ============================================================
ember_gauntlet_device := class(creative_device):
# --- Equipped devices --------------------------------------------------
@editable
Boulder : physics_boulder_device = physics_boulder_device{} # the rolling menace
@editable
Haven : campfire_device = campfire_device{} # the safe / heal zone
@editable
HUD : hud_message_device = hud_message_device{} # narration
# --- Mastered device we borrow to ARM waves ----------------------------
@editable
ArmTrigger : trigger_device = trigger_device{} # step here to start a wave
# --- Game state --------------------------------------------------------
var Wave : int = 0 # current wave number
var Score : int = 0 # banked survival points
var Running : logic = false # is a wave currently rolling?
var HavenFuel : int = 3 # wood remaining in the campfire
var PlayersInHaven : int = 0 # how many agents stand in the fire's glow
# Localizable text helper — turns a plain string into a HUD message.
Msg<localizes>(Value : string) : message = "{Value}"
OnBegin<override>()<suspends>:void=
HUD.SetDisplayTime(4.0)
# Light the haven at the start so healing works.
for (P : GetPlayspace().GetPlayers()):
Haven.Light(P)
# Feed the fire its starting logs.
for (I := 0..HavenFuel - 1):
Haven.AddWood()
# --- Wire up the haven (heal zone) --------------------------------
Haven.AgentEntersEffectAreaEvent.Subscribe(OnEnterHaven)
Haven.AgentExitsEffectAreaEvent.Subscribe(OnExitHaven)
Haven.AgentPulsedEvent.Subscribe(OnHavenPulse)
Haven.ExtinguishedEvent.Subscribe(OnHavenExtinguished)
# --- Wire up the boulder outcomes ---------------------------------
Boulder.RollingBoulderDestroyedEvent.Subscribe(OnBoulderDestroyed)
# --- Wire up the arming trigger -----------------------------------
ArmTrigger.TriggeredEvent.Subscribe(OnArm)
HUD.Show(Msg("THE EMBER GAUNTLET — step on the rune to arm a wave."))
# Player steps on the arm trigger -> start the next wave (only if idle).
OnArm(MaybeAgent : ?agent) : void =
if (not Running?):
spawn { RunWave() }
# One full escalating wave: warn, roll boulders, bank score, burn fuel.
RunWave()<suspends>:void=
set Running = true
set Wave += 1
# Tempo escalates: more boulders each wave, shorter gaps between them.
BoulderCount := 1 + Wave
RestBetween := WaveRest()
HUD.Show(Msg("WAVE {Wave} INCOMING! Get to the fire or run!"))
Sleep(2.5)
for (I := 0..BoulderCount - 1):
# Dislodge a rolling boulder down the ramp.
Boulder.ReleaseRollingBoulder()
HUD.Show(Msg("Boulder {I + 1} of {BoulderCount} — DODGE!"))
Sleep(RestBetween)
# Survivors bank points scaled to wave difficulty.
Reward := 10 * Wave
set Score += Reward
HUD.Show(Msg("Wave {Wave} cleared! +{Reward} — Score: {Score}"))
# Every second wave the fire loses a log.
if (Mod[Wave, 2] = 0):
BurnFuel()
Sleep(1.0)
set Running = false
HUD.Show(Msg("Rune re-armed. Fuel: {HavenFuel}. Step on it for Wave {Wave + 1}."))
# Rest time between boulders shrinks as waves climb (floored so it stays fair).
WaveRest() : float =
WaveF : float = 1.0 * Wave
Base := 2.2 - (WaveF * 0.15)
if (Base < 0.7):
0.7
else:
Base
# Burn one log of fuel; announce when the haven goes cold.
BurnFuel() : void =
if (HavenFuel > 0):
set HavenFuel -= 1
if (HavenFuel <= 0):
HUD.Show(Msg("The haven has gone COLD — no more healing! Survive on grit."))
else:
HUD.Show(Msg("The fire dims... {HavenFuel} log(s) left."))
# An agent steps into the fire's glow.
OnEnterHaven(Agent : agent) : void =
set PlayersInHaven += 1
if (HavenFuel > 0):
HUD.Show(Msg("Safe in the ember-glow. Heal up!"), ?DisplayTime := 2.0)
else:
HUD.Show(Msg("The pit is cold — no shelter here."), ?DisplayTime := 2.0)
# An agent leaves the fire's glow.
OnExitHaven(Agent : agent) : void =
if (PlayersInHaven > 0):
set PlayersInHaven -= 1
# A campfire pulse healed an agent — reward brave sheltering with a point.
OnHavenPulse(Agent : agent) : void =
if (HavenFuel > 0):
set Score += 1
# The fire went out — relight it while fuel remains.
OnHavenExtinguished(Agent : agent) : void =
if (HavenFuel > 0):
for (P : GetPlayspace().GetPlayers()):
Haven.Light(P)
# A rolling boulder was destroyed — small skill bonus.
OnBoulderDestroyed() : void =
set Score += 5
HUD.Show(Msg("Boulder shattered! +5 — Score: {Score}"), ?DisplayTime := 2.0)
🌴 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.