sm.world

The world api handles the creation and destruction of worlds.

A world contains the terrain and simulates the physics environment in which other game objects can exist.

Constants

Name Type Description
ids Predefined special world ids
voxelFilter table The filter type list.

ids

Predefined special world ids

{
    anyWorld,
    noWorld,
}

voxelFilter

Value type: table

Filters are used to specify what materials a terrain modification sphere can destroy.

The filters are:

  • material0 – Allows destruction of material 0 in the voxel material set.
  • material1 – Allows destruction of material 1 in the voxel material set.
  • material2 – Allows destruction of material 2 in the voxel material set.
  • material3 – Allows destruction of material 3 in the voxel material set.
  • material4 – Allows destruction of material 4 in the voxel material set.
  • material5 – Allows destruction of material 5 in the voxel material set.
  • material6 – Allows destruction of material 6 in the voxel material set.
  • material7 – Allows destruction of material 7 in the voxel material set.
  • all – Allows destruction of all materials in the voxel material set.
{
    none      = 0,
    material0 = 1,
    material1 = 2,
    material2 = 4,
    material3 = 8,
    material4 = 16,
    material5 = 32,
    material6 = 64,
    material7 = 128,
    all       = 255,
}

Server + Client

getCurrentWorld

sm.world.getCurrentWorld(  )

Get the world that the scripted object is in.

Returns:

Type Description
World The world

getDirtySpheres

sm.world.getDirtySpheres( position, radius )

Returns an array of tables representing spheres where something has changed in the world.

The optional position and radius parameters will construct a sphere, and use it as a filter to only show results that intersect that sphere.

Parameters:

Name Type Description
position (optional) Vec3 The world position of the sphere. (Optional)
radius (optional) number The radius of the sphere. (Optional)

Returns:

Type Description
table The table of tables. { {center=Vec3, radius=number}, ..}

Server-only

createWorld

sm.world.createWorld( filename, classname, terrainParams, seed )

Creates a new world object.

Parameters:

Name Type Description
filename string The world script filename.
classname string The world script class name.
terrainParams (optional) any The world's terrain parameters. (Optional)
seed (optional) integer The world's seed. Defaults to 0 (Optional)

Returns:

Type Description
World The created world object.

getLegacyCreativeWorld

sm.world.getLegacyCreativeWorld(  )

Gets a previously saved creative world

Returns:

Type Description
World The world (id 0) if it exists in the database or nil

loadWorld

sm.world.loadWorld( world )

Loads a previously created world.

Parameters:

Name Type Description
world World The world that should be loaded.

Returns:

Type Description
boolean Return true if the world was loaded.