# AudioEmitter

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

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

Emits audio streams into the world.

## Properties

### AngleAttenuation

```luau
AudioEmitter.AngleAttenuation: string = ""
```

- Tags: Roblox engine security, Read capabilities: Audio

Represents how the perceived volume of the emitted sound changes based on the angle between a [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) and the `LookVector` associated with the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md).

### DistanceAttenuation

```luau
AudioEmitter.DistanceAttenuation: string = ""
```

- Tags: Roblox engine security, Read capabilities: Audio

Represents how the perceived volume of the emitted sound changes as the distance between a [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) and the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) increases.

### DistanceAttenuationBounds

```luau
AudioEmitter.DistanceAttenuationBounds: NumberRange = NumberRange.new(4, 10000)
```

- Tags: Capabilities: Audio

The minimum and maximum distance range used by the selected [`DistanceAttenuationMode`](https://rapi.sleaze.dev/classes/AudioEmitter.md) preset.

### DistanceAttenuationMode

```luau
AudioEmitter.DistanceAttenuationMode: Enum.DistanceAttenuationMode = Enum.DistanceAttenuationMode.Custom
```

- Tags: Capabilities: Audio

Determines how the volume of this [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) attenuates over distance.

### PositionInstance

```luau
AudioEmitter.PositionInstance: Instance
```

- Tags: Capabilities: Audio

The [`Instance`](https://rapi.sleaze.dev/classes/Instance.md) whose position and orientation is used as the emitter's position if [`PositionType`](https://rapi.sleaze.dev/classes/AudioEmitter.md) is set to `EmitterPositionType.Instance`.

### PositionType

```luau
AudioEmitter.PositionType: Enum.EmitterPositionType = Enum.EmitterPositionType.Parent
```

- Tags: Capabilities: Audio

Determines how the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) determines its 3D location.

### AudioInteractionGroup

```luau
AudioEmitter.AudioInteractionGroup: string = ""
```

- Tags: Read capabilities: Audio

Controls which `AudioListeners` are capable of hearing this [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md).

### AcousticSimulationEnabled

```luau
AudioEmitter.AcousticSimulationEnabled: boolean = true
```

- Tags: Read capabilities: Audio

Determines whether acoustic simulation should be used for this [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md).

### DiffractionEnabled

```luau
AudioEmitter.DiffractionEnabled: Enum.SimulationMode = Enum.SimulationMode.Default
```

- Tags: Read capabilities: Audio

### OcclusionEnabled

```luau
AudioEmitter.OcclusionEnabled: Enum.SimulationMode = Enum.SimulationMode.Default
```

- Tags: Read capabilities: Audio

### ReverbEnabled

```luau
AudioEmitter.ReverbEnabled: Enum.SimulationMode = Enum.SimulationMode.Default
```

- Tags: Read capabilities: Audio

### SimulationFidelity

```luau
AudioEmitter.SimulationFidelity: Enum.AudioSimulationFidelity = Enum.AudioSimulationFidelity.Automatic
```

- Tags: Deprecated, Read capabilities: Audio
- Use instead: [`AudioEmitter.AcousticSimulationEnabled`](https://rapi.sleaze.dev/classes/AudioEmitter.md)

**Deprecated:**

Controls how detailed the audio simulation should be for this [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md).

## Methods

### GetAngleAttenuation

```luau
AudioEmitter:GetAngleAttenuation(): { [string]: any }
```

- Tags: Custom Lua state, Capabilities: Audio

Gets the angle attenuation curve that the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) is using, or an empty table if it's using the default curve.

Returns: Table mapping angle to volume, as described above.

### GetAudibilityFor

```luau
AudioEmitter:GetAudibilityFor(listener: AudioListener): number
```

- Tags: Capabilities: Audio

Calculates how audible this emitter is for a particular [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md).

Parameters:

- `listener`: The [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) to calculate audibility for.

Returns: A number between `0` and `1` representing the combined volume after distance and angle attenuation.

### GetConnectedWires

```luau
AudioEmitter:GetConnectedWires(pin: string): { Instance }
```

- Tags: Capabilities: Audio

Returns an array of `Wires` that are connected to the specified pin.

Parameters:

- `pin`: An input or output pin on this instance

Returns: An array of `Wires`

### GetDistanceAttenuation

```luau
AudioEmitter:GetDistanceAttenuation(): { [string]: any }
```

- Tags: Custom Lua state, Capabilities: Audio

Gets the distance attenuation curve that the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) is using, or an empty table if it's using the default curve.

Returns: A table mapping distance to volume, as described above.

### GetInputPins

```luau
AudioEmitter:GetInputPins(): { any }
```

- Tags: Capabilities: Audio

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.TargetName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.TargetInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetInteractingListeners

```luau
AudioEmitter:GetInteractingListeners(): { Instance }
```

- Tags: Capabilities: Audio

Lists all `AudioListeners` that are capable of hearing this emitter.

Returns: An array of `AudioListeners`.

### GetOutputPins

```luau
AudioEmitter:GetOutputPins(): { any }
```

- Tags: Capabilities: Audio

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.SourceName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.SourceInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetWorldCFrame

```luau
AudioEmitter:GetWorldCFrame(): CFrame?
```

- Tags: Roblox script security, Capabilities: Audio

### SetAngleAttenuation

```luau
AudioEmitter:SetAngleAttenuation(curve: { [string]: any })
```

- Tags: Custom Lua state, Capabilities: Audio

Sets the angle attenuation curve that the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) should use, or uses a constant curve of volume `1` if none is provided.

Parameters:

- `curve`: A table mapping angle to volume. Keys are numbers between `0` and `180`, values are numbers between `0` and `1`.

### SetDistanceAttenuation

```luau
AudioEmitter:SetDistanceAttenuation(curve: { [string]: any })
```

- Tags: Custom Lua state, Capabilities: Audio

Sets the distance attenuation curve that the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) should use, or uses an inverse rolloff curve if none is provided.

Parameters:

- `curve`: A table mapping distance to volume. Keys are numbers greater than or equal to `0`, values are numbers between `0` and `1`.

## Events

### WiringChanged

```luau
AudioEmitter.WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance)>
```

- Tags: Capabilities: Audio

Fires when another instance is connected to or disconnected from the [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) via a [`Wire`](https://rapi.sleaze.dev/classes/Wire.md).

## Inherited members

- 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`
