# sm.terrainHarvestable.calculateInitialHash

Calculates the initial hash of a kinematic. The initial hash identifies the kinematic by its initial world position, uuid and world id.

**Kind:** Function

**Environments:** Terrain

## Terrain

``` { .lua .api-signature }
sm.terrainHarvestable.calculateInitialHash( uuid, world, position, rotation )
```

[Open the full Terrain reference](../Terrain-Script-Environment/Static-Functions/sm.terrainHarvestable.md#calculateinitialhash)

This hash will be unsalted. Usually kinematics created from script rather than from cell loading have their hashes salted with random numbers.

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `uuid` | [Uuid](../Terrain-Script-Environment/Userdata/Uuid.md) | The kinematic uuid. |
| `world` | [World](../Terrain-Script-Environment/Userdata/World.md) | The world the kinematic is in. |
| `position` | [Vec3](../Terrain-Script-Environment/Userdata/Vec3.md) | The initial position of the kinematic in world space. |
| `rotation` | [Quat](../Terrain-Script-Environment/Userdata/Quat.md) | The initial rotation of the kinematic. |

**Returns:**

| Type | Description |
| --- | --- |
| number | The calculated unsalted initial hash. |
