Skip to main content

Boatdrag

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

Overview

Boatdrag is a lightweight component that manages hydrodynamic drag and velocity constraints for watercraft entities (e.g., boats). It stores scalar multipliers that affect how quickly a boat accelerates, decelerates, or responds to external forces like sails or manual pushing. This component does not perform movement directly but provides data consumed by locomotion or physics systems (e.g., via velocity or custom boat controllers).

Usage example

local inst = CreateEntity()
inst:AddComponent("boatdrag")

-- Configure drag characteristics
inst.components.boatdrag.drag = 0.95
inst.components.boatdrag.max_velocity_mod = 1.2
inst.components.boatdrag.forcedampening = 0.1

-- Retrieve debug string for debugging UI or logs
print(inst.components.boatdrag:GetDebugString())

Dependencies & tags

Components used: None identified
Tags: None identified

Properties

PropertyTypeDefault ValueDescription
dragnumber0Coefficient of drag (typically 0–1), applied to reduce velocity over time.
max_velocity_modnumber1Scalar multiplier applied to the maximum allowed velocity of the boat.
forcedampeningnumber0Additional damping force applied to counteract sudden directional changes.
sailforcemodifiernumber1Multiplier applied to force generated by sails (not used internally in this component but stored for external use).

Main functions

GetDebugString()

  • Description: Returns a formatted string containing current drag parameters for debugging purposes.
  • Parameters: None.
  • Returns: string — e.g., "drag:0.950000, max_velocity_mod:1.200000, forcedampening:0.100000".
  • Error states: None.

Events & listeners

Not applicable.