Skip to main content

BounceBuilder

Sub-builder for bounce configuration. Opened via BehaviorBuilder:Bounce. Call :Done() to return to the root BehaviorBuilder.

CAUTION

Pierce and bounce are mutually exclusive per hit. Bounce is only evaluated if pierce did not occur.

Functions

Filter

BounceBuilder:Filter(callback(
contextBulletContext,
resultRaycastResult,
velocityVector3
) → boolean) → BounceBuilder

Bounce gate. Return true to bounce.

Signature: (context: BulletContext, result: RaycastResult, velocity: Vector3) -> boolean

Default: nil (no bouncing)

Max

BounceBuilder:Max(valuenumber) → BounceBuilder

Lifetime bounce limit.

Default: 5

SpeedThreshold

BounceBuilder:SpeedThreshold(valuenumber) → BounceBuilder

Minimum speed (studs/s) required to attempt a bounce.

Default: 20

Restitution

BounceBuilder:Restitution(valuenumber) → BounceBuilder

Base energy retention per bounce. Must be in [0, 1].

Default: 0.7

MaterialRestitution

BounceBuilder:MaterialRestitution(value{[Enum.Material]number}) → BounceBuilder

Per-material restitution multipliers, combined with the base Restitution.

Default: {}

NormalPerturbation

BounceBuilder:NormalPerturbation(valuenumber) → BounceBuilder

Random surface-normal noise for rough surfaces. 0 = clean reflection.

Default: 0

ResetPierceOnBounce

BounceBuilder:ResetPierceOnBounce(valueboolean) → BounceBuilder

If true, pierce state resets after each confirmed bounce.

Default: false

Done

BounceBuilder:Done() → BehaviorBuilder

Returns the root BehaviorBuilder.

Show raw api
{
    "functions": [
        {
            "name": "Filter",
            "desc": "Bounce gate. Return `true` to bounce.\n\nSignature: `(context: BulletContext, result: RaycastResult, velocity: Vector3) -> boolean`\n\nDefault: `nil` (no bouncing)",
            "params": [
                {
                    "name": "callback",
                    "desc": "",
                    "lua_type": "(context: BulletContext, result: RaycastResult, velocity: Vector3) -> boolean"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 316,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "Max",
            "desc": "Lifetime bounce limit.\n\nDefault: `5`",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 326,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "SpeedThreshold",
            "desc": "Minimum speed (studs/s) required to attempt a bounce.\n\nDefault: `20`",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 336,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "Restitution",
            "desc": "Base energy retention per bounce. Must be in `[0, 1]`.\n\nDefault: `0.7`",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 346,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "MaterialRestitution",
            "desc": "Per-material restitution multipliers, combined with the base `Restitution`.\n\nDefault: `{}`",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "{ [Enum.Material]: number }"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 356,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "NormalPerturbation",
            "desc": "Random surface-normal noise for rough surfaces. `0` = clean reflection.\n\nDefault: `0`",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 366,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "ResetPierceOnBounce",
            "desc": "If `true`, pierce state resets after each confirmed bounce.\n\nDefault: `false`",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BounceBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 376,
                "path": "docs/SubBuilders.lua"
            }
        },
        {
            "name": "Done",
            "desc": "Returns the root [BehaviorBuilder].",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "BehaviorBuilder"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 382,
                "path": "docs/SubBuilders.lua"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "BounceBuilder",
    "desc": "Sub-builder for bounce configuration. Opened via [BehaviorBuilder:Bounce].\nCall `:Done()` to return to the root [BehaviorBuilder].\n\n:::caution\nPierce and bounce are mutually exclusive per hit. Bounce is only evaluated\nif pierce did not occur.\n:::",
    "source": {
        "line": 304,
        "path": "docs/SubBuilders.lua"
    }
}