# Data Table

**Universal Build System** utilizes a single data table to store all the information regarding the building objects. This section will go over each piece of information and how you will use them to create the perfect building system customized to your liking. The example data table **DT\_HISM** has over 40 examples for you to reference.

<figure><img src="https://1839238237-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWjU7bSayXkXSDn5yzIdC%2Fuploads%2F1Vv9O92ztu4q01jqO2W5%2Fimage.png?alt=media&#x26;token=f40f6a3a-91a1-47dc-8aae-05144fe3a308" alt=""><figcaption></figcaption></figure>

**Handle**: This is a self reference, so it should use the data table and row of itself.\
**Name**: The name of the building object.\
**Static Mesh**: The static mesh to be used for this building object.\
**Icon**: The icon to be used for this building object.\
**Collision Offset**: Location offset of the collision test.\
**Collision Scale**: Scale of the collision test.\
**Arrow**: Arrow settings shown further down.\
**Good Material**: The material to be used when the building object can be placed.\
**Bad Material**: The material to be used when the building object cannot be placed.\
**Building Type**: String to associate with sockets and support system.\
**Building Sub Type**: String to associate with collision ignore settings.\
**Support Types**: Array of Building Type strings that are considered support for this building object.\
**Objects from Support**: Affects performance! Number of objects allowed from a support type.\
**Snaps to Socket Locations?**: Whether this object can snap to sockets located +/- X, Y, and Z.\
**Snaps to Socket Rotations?**: Whether this object can snap to sockets that have been rotated on X, Y, and Z.\
**Ignore Types**: Array of Building Types to ignore for collision tests.\
**Ignore Sub Types**: Array of Building Sub Types to ignore for collision tests.\
**Ignore Buildings**: Array of Data Table Row Handles referencing specific building objects to ignore for collision tests.\
**Ignore Same Location?**: Should collision tests ignore other building objects in the same location?\
**Sockets**: Sockets settings explained on separate page.\
**Can Be Damaged?**: Can this building object be damaged?\
**Max Health**: The amount of health this building object starts with.\
**Components**: Components settings explained on separate page.\
**Placed on Landscape?**: Can this building object be placed directly on the landscape?\
**Min Height**: The lowest the height can be adjusted.\
**Max Height**: The highest the height can be adjusted.\
**Can Rotate?**: Is this building object allowed to rotate?\
**Orient to Normal**: Should this building object orient its rotation to the normal of where it is about to be placed?\
**Rotation Amount**: When rotating this building object, the number of degrees per rotation.\
**Snapped Rotations**: When placing this building object in a socket, this array determines possible rotations.\
**Start Cull Distance**: Distance in which culling begins.\
**End Cull Distance**: Distance in which culling ends.\
**Interactions**: Interactions settings explained on separate page.\
**Info**: Map of String to Data Table Row Handle to associate custom information with this building object.

<figure><img src="https://1839238237-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWjU7bSayXkXSDn5yzIdC%2Fuploads%2Fg88KovRAXgLODfqS6GZV%2Fimage.png?alt=media&#x26;token=1b6b54b6-ef9d-4f2b-989d-ff0d777bdb87" alt=""><figcaption></figcaption></figure>

**Show Arrow?**: Do you want this building object to have an arrow?\
**Transform**: The transform offset relative to the building object.\
**Color**: The color of the arrow.\
**Size**: The relative size of the arrow.\
**Length**: The total length of the arrow including the head.\
**Screen Size**: The size on screen to limit the arrow.\
**Screen Size Scaled?**: Do you want to limit the screen size of the arrow?\
**Treat as ASprite?**: If true, don't show the arrow when EngineShowFlags.BillboardSprites is disabled.\
**Use in Editor Scaling?**: Do you want to use in-editor arrow scaling?

The arrow settings allow you to show your players an arrow during placement so that they can determine which way the building object is facing.
