# API

## Part

### What is a Part <a href="#what-is-a-part" id="what-is-a-part"></a>

The Part object is a physical object. When it is in the [`Workspace`](https://developer.roblox.com/en-us/api-reference/class/Workspace), it will move and interact with other Parts. It can have bonds formed with other Parts, so that the two Parts stay in the same relative position.

Parts are the basic building blocks of any Roblox place. Commonly known as **bricks**, you’ll see these the most often of any other objects as almost every place is built out of these. It is possible to stretch a Part to very large sizes and use them for baseplates, or make them very small and use them to create cool looking [`Tool`](https://developer.roblox.com/en-us/api-reference/class/Tool).

### How can I edit a Part <a href="#how-can-i-edit-a-part" id="how-can-i-edit-a-part"></a>

The Part object can be edited using the various studio tools. It is available via either the insert menu, or the *Object Insert menu*. It can also be created using the function:

```
Instance.new("Part")
```

### How do I create different shaped Parts <a href="#how-do-i-create-different-shaped-parts" id="how-do-i-create-different-shaped-parts"></a>

Using the Mesh objects, such as [`SpecialMesh`](https://developer.roblox.com/en-us/api-reference/class/SpecialMesh), [`BlockMesh`](https://developer.roblox.com/en-us/api-reference/class/BlockMesh), or [`CylinderMesh`](https://developer.roblox.com/en-us/api-reference/class/CylinderMesh) objects you can change the shape of them. Using the [`Decal`](https://developer.roblox.com/en-us/api-reference/class/Decal) or [`Texture`](https://developer.roblox.com/en-us/api-reference/class/Texture) objects, you can place pictures on top of the bricks.

### Changing Parts using scripts <a href="#changing-parts-using-scripts" id="changing-parts-using-scripts"></a>

There are many scripting opportunities using the Part object. Many of the other scripting objects, such as [`BodyForce`](https://developer.roblox.com/en-us/api-reference/class/BodyForce) objects operate inside of a Part or other physics based objects. Editing the Part’s properties through a script can result in a lot of fun opportunities.

Reference: <https://developer.roblox.com/en-us/api-reference/class/Part>

## Model&#x20;

Models are container objects, meaning they hold objects and group objects together. They are best used to hold collections of [`BasePart`](https://developer.roblox.com/en-us/api-reference/class/BasePart)s and have a number of functions that extend their functionality.

At their most basic level, Models allow developers to group selections of [`BasePart`](https://developer.roblox.com/en-us/api-reference/class/BasePart)s together. This is particularly useful when building environments in Roblox Studio as it means the grouped parts can be moved and rotated together. When not storing collections of [`BasePart`](https://developer.roblox.com/en-us/api-reference/class/BasePart)s it is recommended that developers use the [`Folder`](https://developer.roblox.com/en-us/api-reference/class/Folder) object, as they will not benefit from the additional functionality Models provide.

To access some of the extended functionality Models provide, the [`Model.PrimaryPart`](https://developer.roblox.com/en-us/api-reference/property/Model/PrimaryPart) property needs to be set. This property points to the [`BasePart`](https://developer.roblox.com/en-us/api-reference/class/BasePart) within the Model that is to be used when moving or otherwise manipulating the model.

Models have a wide range of applications, including being used for Roblox Player Characters. They also have a number of unique behaviors that are important to keep in mind when using them:

* When a [`Humanoid`](https://developer.roblox.com/en-us/api-reference/class/Humanoid) and a [`Part`](https://developer.roblox.com/en-us/api-reference/class/Part) named “Head” are parented under a model, a name-tag GUI will appear with the name of the model.
* If a [`Part`](https://developer.roblox.com/en-us/api-reference/class/Part)’s position on the Y axis hits the [`Workspace.FallenPartsDestroyHeight`](https://developer.roblox.com/en-us/api-reference/property/Workspace/FallenPartsDestroyHeight) value, and it was the last object inside of a Model, the Model will be destroyed as well.

Reference <https://developer.roblox.com/en-us/api-reference/class/Model>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.computerscience.io/roblox-studio/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
