Skip to main content

Boatai

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

Overview​

BoatAI is a periodic-updating component that enables a boat entity to detect other boats with raised sails within a 200-unit radius and dynamically adjust its own sail direction and raise its sail to mimic their movement. It is intended for AI-controlled boats and relies on the hull and mast components of the target and owner entities. The component is started automatically upon construction via StartUpdatingComponent, which triggers OnUpdate each game tick.

Usage example​

local inst = CreateEntity()
inst:AddComponent("boatai")
-- The component begins updating automatically after construction
-- No further manual calls are required

Dependencies & tags​

Components used: hull, mast Tags: None identified.

Properties​

No public properties.

Main functions​

OnUpdate(dt)​

  • Description: Scans the surrounding area for entities within 200 units, identifies those with a non-nil mast component and is_sail_raised = true, and updates the owning boat's sail direction and raises its sail to match.
  • Parameters: dt (number) - time elapsed since the last update (unused in current implementation).
  • Returns: Nothing.
  • Error states:
    • Skips entities that are the boat itself (v == self.inst).
    • Skips entities without a mast component or where is_sail_raised is false.
    • Assumes self.inst.components.hull.mast and mast.components.mast exist and are valid (no nil checks on these chains beyond mast itself).

Events & listeners​

None identified.