# ModuleScript

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [LuaSourceContainer](https://rapi.sleaze.dev/classes/LuaSourceContainer.md), [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Memory category: Script
- HTML page: https://rapi.sleaze.dev/classes/ModuleScript/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/ModuleScript

A script type that runs once when `require()` is called with it. Returns exactly one value, usually a table of functions, to used by other scripts. Useful for compartmentalizing code.

## Properties

### Confidential

```luau
ModuleScript.Confidential: boolean = false
```

- Tags: Hidden, Not replicated, Not scriptable, Roblox engine security

### Source

```luau
ModuleScript.Source: string = ""
```

- Tags: Capabilities: PluginOrOpenCloud

The code to be executed.

### UnrestrictedRequireAllowed

```luau
ModuleScript.UnrestrictedRequireAllowed: boolean = false
```

- Tags: Hidden, Not scriptable, Roblox engine security

### LinkedSource

```luau
ModuleScript.LinkedSource: string = ""
```

- Tags: Deprecated, Capabilities: LoadUnownedAsset

**Deprecated:** This property is now replaced by [packages](https://create.roblox.com/docs/projects/assets/packages) which has greater functionality.

Used to store a URL that points to an online script source. Binds the online code to the script's [`Script.Source`](https://rapi.sleaze.dev/classes/Script.md).

## Inherited members

- From [LuaSourceContainer](https://rapi.sleaze.dev/classes/LuaSourceContainer.md): `CachedRemoteSource`, `CachedRemoteSourceLoadState`, `HasAssociatedDrafts`, `IsDifferentFromFileSystem`, `SandboxedSource`, `ScriptGuid`, `isPlayerScript`
- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
