Dev » Lua API » building
← Back to all classes

building

Definitions & Systems 6 Hooks

building

Buildings in Stranded III are defined in def.building.* or embedded in entity definition tables under the building = { ... } key. They provide hooks to validate site placement, handle construction progress, and finalize building completion.

Overview

Hooks & Events (6)

Hook Signature Returns Summary
building:canBuild(x, y, z) string|boolean Validates whether building site can be placed at coordinates.
building:isAvailable(player) boolean Checks if building recipe is unlocked and visible in construction menu.
building:onCancel(siteEntity) void Triggered when building site is cancelled or dismantled.
building:onFinish(siteEntity, finishedEntity) void Triggered when building construction finishes.
building:onProgress(siteEntity, progress) void Triggered as construction progress increases.
building:onStart(x, y, z) boolean Triggered when construction site marker is placed.

Detailed Reference

# canBuild HOOK
building:canBuild(x, y, z)
Validates whether building site can be placed at coordinates.
Parameters
ParameterTypeDefaultDescription
xnumber

X position.

ynumber

Y position.

znumber

Z position.

Returns
string|boolean

Return an error message string or false to disallow construction.

Description

Called during placement preview. Can return an error string to display in the HUD when placement is invalid.

building = {
    canBuild = function(x, y, z)
        if y < 0 then return "Cannot build underwater!" end
        return true
    end
}
# isAvailable HOOK
building:isAvailable(player)
Checks if building recipe is unlocked and visible in construction menu.
Parameters
ParameterTypeDefaultDescription
playerentity

The player checking recipes.

Returns
boolean

True if building option should appear in construction menu.

Description

Controls recipe visibility in the building craft UI.

# onCancel HOOK
building:onCancel(siteEntity)
Triggered when building site is cancelled or dismantled.
Parameters
ParameterTypeDefaultDescription
siteEntityentity

Cancelled site entity.

Returns
None (void)
Description

Called when the player dismantles an unfinished building site.

# onFinish HOOK
building:onFinish(siteEntity, finishedEntity)
Triggered when building construction finishes.
Parameters
ParameterTypeDefaultDescription
siteEntityentity

Completed site entity.

finishedEntityentity

Finished building entity.

Returns
None (void)
Description

Called when the building is completed and replaces the site marker.

# onProgress HOOK
building:onProgress(siteEntity, progress)
Triggered as construction progress increases.
Parameters
ParameterTypeDefaultDescription
siteEntityentity

Construction site entity.

progressnumber

Progress percentage (0.0 to 1.0).

Returns
None (void)
Description

Called as materials are added to the site.

# onStart HOOK
building:onStart(x, y, z)
Triggered when construction site marker is placed.
Parameters
ParameterTypeDefaultDescription
xnumber

X position.

ynumber

Y position.

znumber

Z position.

Returns
boolean

Return true to cancel site creation.

Description

Called when the player begins constructing the site.