Skip to main content

Lavaarena Floorgrate

Based on game build 714014 | Last updated: 2026-03-05

Overview

lavaarena_floorgrate is a static environmental prefab that serves as a decorative floor tile within the Lava Arena event. It displays an animated lava effect using a separate non-networked child entity and coordinates periodic ember spawn effects. The component uses a networked scalar (_lavaspeed) to synchronize lava animation speed across clients, and it only simulates physics and logic on the master world (server), while clients handle visual updates.

Usage example

This prefab is instantiated internally by the game during Lava Arena world generation and is not intended for manual instantiation by modders. However, a typical usage pattern in mod code would be:

local inst = SpawnPrefab("lavaarena_floorgrate")
inst.Transform:SetPos(x, y, z)
-- No further action needed: animation and ember effects are handled automatically

Dependencies & tags

Components used: None (uses only built-in ECS components: transform, animstate, soundemitter, network; no custom component calls). Tags: Adds NOCLICK; does not modify or check other tags.

Properties

No public properties — the component relies solely on internal state (_lavaspeed is a networked variable, not a direct property).

Main functions

CreateLavaEntity()

  • Description: Constructs a non-networked child entity that renders the background lava animation. It is parented to the main floorgrate entity on non-dedicated clients.
  • Parameters: None.
  • Returns: inst (Entity) — the lava animation entity.
  • Error states: None.

SpawnEmber(inst)

  • Description: Spawns a short-lived ember FX at the location of the floorgrate, used for ambient visual effects.
  • Parameters: inst (Entity) — the floorgrate instance.
  • Returns: Nothing.
  • Error states: None.

OnLavaSpeedDirty(inst)

  • Description: Updates the animation speed multiplier of the lava child entity to reflect the current lava flow speed.
  • Parameters: inst (Entity) — the floorgrate instance.
  • Returns: Nothing.
  • Error states: Does nothing if inst.lava is nil (e.g., on dedicated servers or before lava entity creation).

Events & listeners

  • Listens to: lavaspeeddirty — updates the lava animation speed on non-master clients when the _lavaspeed value changes.
  • Pushes: lavaspeeddirty — fired via net_tinybyte when _lavaspeed is set on the master (triggered on value change, not manually in source).