14 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

AudioPlayer

Inherits from: Instance → Object

AudioPlayer is used to play audio assets. It provides a single Output pin which can be connected to other pins via Wires.

Inherits from: Instance

Memory category: Internal

Code samples: View on Creator Hub (audio-wiring---device-output).

Properties

NameType / ReturnsDescription
AudioPlayer.AssetContentIdThe asset to be loaded into the AudioPlayer.
AudioPlayer.AssetIdstringThe asset to be loaded into the AudioPlayer.
AudioPlayer.AudioContentContentThe audio content to be loaded into the AudioPlayer.
AudioPlayer.AutoLoadbooleanControls whether Asset loads automatically once assigned.
AudioPlayer.AutoPlaybooleanDenotes whether this AudioPlayer starts playing as soon as it spawns in for the first time.
AudioPlayer.IsPlayingbooleanDenotes whether this AudioPlayer is currently playing or planning to play.
AudioPlayer.IsReadybooleanDenotes whether this AudioPlayer is loaded, buffered, and ready to play.
AudioPlayer.LoopingbooleanControls whether this AudioPlayer loops.
AudioPlayer.LoopRegionNumberRangeA range, in seconds, denoting a desired loop start and loop end within the PlaybackRegion of this AudioPlayer.
AudioPlayer.PlaybackRegionNumberRangeRange in seconds denoting a desired start time (minimum) and stop time (maximum) within the TimeLength.
AudioPlayer.PlaybackSpeeddoubleControls how quickly the asset will be played, which controls its pitch.
AudioPlayer.TimeLengthdoubleDenotes the length of the loaded asset.
AudioPlayer.TimePositiondoubleTracks the current position of the playhead within the asset.
AudioPlayer.VolumefloatControls how loudly the asset will be played.

Inherited from Instance

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring

AudioPlayer.Asset

The asset to be loaded into the AudioPlayer. If AutoLoad is true, the asset loads immediately once this property is assigned. When loading is complete, IsReady becomes true.

FieldValue
typeContentId
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryAsset
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.AssetId

Deprecated. This property is deprecated; use Asset instead.

The asset to be loaded into the AudioPlayer. If AutoLoad is true, the asset loads immediately once this property is assigned. When loading is complete, IsReady becomes true.

FieldValue
typestring
tags["Hidden","NotReplicated","Deprecated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryAsset
serialization{"can_load":true,"can_save":false}
capabilities["Audio"]

AudioPlayer.AudioContent

The audio content to be loaded into the AudioPlayer. If AutoLoad is true, the asset loads immediately once this property is assigned. When loading is complete, IsReady becomes true.

FieldValue
typeContent
tags["Hidden"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryAsset
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.AutoLoad

Controls whether Asset loads automatically once assigned. If false, the asset will load upon the first attempt to play.

FieldValue
typeboolean
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryAsset
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.AutoPlay

Denotes whether this AudioPlayer starts playing as soon as it enters the DataModel for the first time. This only applies to AudioPlayers that are created or deserialized locally, and does not apply to AudioPlayers generated via replication. This property is primarily used at edit time in Studio to have an AudioPlayer begin when entering a play session.

FieldValue
typeboolean
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryPlayback
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.IsPlaying

Denotes whether this AudioPlayer is currently playing or planning to play. This property is read-only, but replicates. To play and stop an AudioPlayer at runtime, use the Play() and Stop() methods.

FieldValue
typeboolean
security{"read":"None","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryPlayback
serialization{"can_load":false,"can_save":false}
capabilities["Audio"]

AudioPlayer.IsReady

Denotes whether this AudioPlayer is loaded, buffered, and ready to play. Although uncommon, AudioPlayers may have their assets unloaded at runtime if there is extreme memory pressure, in which case IsReady will become false.

FieldValue
typeboolean
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryAsset
serialization{"can_load":false,"can_save":true}
capabilities["Audio"]

AudioPlayer.Looping

Controls whether this AudioPlayer loops when exceeding the end of its TimeLength, LoopRegion, or PlaybackRegion.

FieldValue
typeboolean
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryPlayback
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.LoopRegion

A range, in seconds, denoting a desired loop start and loop end within the PlaybackRegion of this AudioPlayer.

If the LoopRegion minimum is greater than the PlaybackRegion minimum, the loop starts from the LoopRegion minimum.

If the LoopRegion minimum is less than the PlaybackRegion minimum, the loop starts from the PlaybackRegion minimum.

If the LoopRegion maximum is greater than the PlaybackRegion maximum, the loop ends at the PlaybackRegion maximum.

If the LoopRegion maximum is less than the PlaybackRegion maximum, the loop ends at exactly the LoopRegion maximum.

If the LoopRegion minimum equals the LoopRegion maximum, the AudioPlayer uses the PlaybackRegion property instead.

FieldValue
typeNumberRange
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryRegions
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.PlaybackRegion

Range in seconds denoting a desired start time (minimum) and stop time (maximum) within the TimeLength.

If the PlaybackRegion minimum is greater than 0, the sound begins playing from the PlaybackRegion minimum time.

If the PlaybackRegion minimum is less than 0, the sound begins playing from 0.

If the PlaybackRegion maximum is greater than the TimeLength, the sound stops at TimeLength.

If the PlaybackRegion maximum is less than the TimeLength, the sound stops at exactly the PlaybackRegion maximum.

If the PlaybackRegion minimum equals the PlaybackRegion maximum, the sound plays in its entirety.

FieldValue
typeNumberRange
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryRegions
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.PlaybackSpeed

Multiplier controlling how quickly the asset will be played, directly controlling its perceived pitch. Ranges from 0 to 20.

FieldValue
typedouble
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryPlayback
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.TimeLength

Denotes the length of the loaded Asset in seconds.

FieldValue
typedouble
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryAsset
serialization{"can_load":false,"can_save":true}
capabilities["Audio"]

AudioPlayer.TimePosition

Tracks and controls the current position of the playhead within the Asset, in seconds.

FieldValue
typedouble
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryPlayback
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

AudioPlayer.Volume

Volume level which is multiplied onto the output audio stream, controlling how loudly the asset will be played. Ranges from 0 to 10.

FieldValue
typefloat
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":true,"can_save":true}
capabilities["Audio"]

Methods

NameType / ReturnsDescription
AudioPlayer:CancelbooleanAttempts to cancel a pre-planned future Play or Stop command.
AudioPlayer:GetConnectedWiresListReturns an array of Wires that are connected to the specified pin.
AudioPlayer:GetInputPinsArrayGets the list of pins that Wire can use in Wire.TargetName to connect to this instance via its Wire.TargetInstance property.
AudioPlayer:GetOutputPinsArrayGets the list of pins that Wire can use in Wire.SourceName to connect to this instance via its Wire.SourceInstance property.
AudioPlayer:GetWaveformAsyncArrayReturns a sampling of the waveform data for the loaded Asset.
AudioPlayer:Playint64?Plays the AudioPlayer from wherever its TimePosition is.
AudioPlayer:Stopint64?Stops the AudioPlayer wherever its TimePosition is.

Inherited from Instance

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
Instance:Destroy()Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children.
Instance:destroy()
Instance:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns an array containing all descendants of the instance that match the selector string.
Instance:Remove()Sets the object's Parent to nil, and does the same for all its descendants.
Instance:remove()
Instance:RemoveTag()Removes a tag from the instance.
Instance:ResetPropertyToDefault()Resets a property to its default value.
Instance:SetAttribute()Sets the attribute with the given name to the given value.
Instance:WaitForChildInstanceReturns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

Inherited from Object

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

AudioPlayer:Cancel

Attempts to cancel a Play() or Stop() command that was scheduled to occur at a future time. When Play() or Stop() is called with an atTime argument, the action is scheduled against GetMixerTime() and the call returns a unique actionId. Passing that actionId to this method prevents the scheduled action from taking effect.

Returns true if the pending action was found and successfully cancelled. Returns false if the action has already occurred, was never scheduled, or the supplied actionId does not correspond to a pending action.

Parameters

NameTypeDefaultDescription
actionIdint64?The unique-ID of a pre-planned Play or Stop command.

Returns

TypeDescription
booleanWhether the cancellation was successful. Returns false if the action has already occurred, or otherwise does not exist.
FieldValue
securityNone
thread safetyUnsafe
capabilities["Audio"]

AudioPlayer:GetConnectedWires

Returns an array of Wires that are connected to the specified pin. AudioPlayer has one "Output" pin.

Parameters

NameTypeDefaultDescription
pinstringAn input or output pin on this instance

Returns

TypeDescription
ListAn array of Wires
FieldValue
securityNone
thread safetyUnsafe
capabilities["Audio"]

AudioPlayer:GetInputPins

Gets the list of pins that Wire can use in Wire.TargetName to connect to this instance via its Wire.TargetInstance property.

For AudioPlayer, there are none.

Returns

TypeDescription
ArrayAn array of strings representing valid pin names.
FieldValue
securityNone
thread safetyUnsafe
capabilities["Audio"]

AudioPlayer:GetOutputPins

Gets the list of pins that Wire can use in Wire.SourceName to connect to this instance via its Wire.SourceInstance property.

For AudioPlayer, this is Output only.

Returns

TypeDescription
ArrayAn array of strings representing valid pin names.
FieldValue
securityNone
thread safetyUnsafe
capabilities["Audio"]

AudioPlayer:GetWaveformAsync

Returns a sampling of the waveform data for the loaded Asset, allowing you to check the volume of an asset over its full duration without playing it. Unlike AudioAnalyzer, which measures volume levels of a live audio stream in real time, this method analyzes the asset ahead of time, making it suitable for waverform visualization or logic that needs audio content before playback begins.

Parameters

NameTypeDefaultDescription
timeRangeNumberRangeThe start and end time (in seconds) of the segment to read.
samplesintThe number of samples to return for the specified range.

Returns

TypeDescription
ArrayA table of samples numbers ranging between -1 and 1 representing the sampled waveform, or an empty table if a waveform could not be read.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Audio"]

AudioPlayer:Play

Plays the AudioPlayer from wherever its TimePosition is. Replicates from server to client. When atTime is provided, the action is scheduled against GetMixerTime() for sample-accurate, framerate-independent timing — useful for rhythm games or any scenario where audio changes must align precisely with a beat.

Parameters

NameTypeDefaultDescription
atTimedouble?A specific time, based on GetMixerTime, that this AudioPlayer should begin playing at.

Returns

TypeDescription
int64?If atTime was provided, a unique ID, which can be passed to Cancel().
FieldValue
securityNone
thread safetyUnsafe
capabilities["Audio"]

AudioPlayer:Stop

Stops the AudioPlayer wherever its TimePosition is. Replicates from server to client. When atTime is provided, the action is scheduled against GetMixerTime() for sample-accurate, framerate-independent timing, enabling precise beat-synchronized stops or track transitions.

Parameters

NameTypeDefaultDescription
atTimedouble?A specific time, based on GetMixerTime, that this AudioPlayer should stop playing at.

Returns

TypeDescription
int64?If atTime was provided, a unique ID, which can be passed to Cancel().
FieldValue
securityNone
thread safetyUnsafe
capabilities["Audio"]

Events

NameType / ReturnsDescription
AudioPlayer.EndedFires when the AudioPlayer has completed playback and stopped.
AudioPlayer.LoopedFires when the AudioPlayer loops.
AudioPlayer.WiringChangedFires when another instance is connected to or disconnected from the AudioPlayer via a Wire.

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.

AudioPlayer.Ended

Fires after the AudioPlayer has completed playback and stopped. Note this event will not fire for audio with Looping set to true since it continues playing upon reaching its end. This event will also not fire when the audio is stopped before playback has completed; for this, use AudioPlayer:GetPropertyChangedSignal() on the IsPlaying property.

This event is often used to destroy an AudioPlayer when it has completed playback.

FieldValue
securityNone
capabilities["Audio"]

AudioPlayer.Looped

Event that fires after the AudioPlayer loops. This happens when the audio reaches the end of its content (or the end of the LoopRegion if it is active) and Looping is true.

This event does not fire if the audio is looped manually by changing its TimePosition.

FieldValue
securityNone
capabilities["Audio"]

AudioPlayer.WiringChanged

Event that fires after a Wire becomes connected or disconnected, and that Wire is now or was previously connected to a pin on the AudioPlayer and to some other wirable instance.

Parameters

NameTypeDefaultDescription
connectedbooleanWhether the instance got connected or disconnected.
pinstringThe pin on the AudioPlayer that the Wire targets.
wireWireThe Wire between the AudioPlayer and the other instance.
instanceInstanceThe other instance that is or was connected through the Wire.
FieldValue
securityNone
capabilities["Audio"]