Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
Explosion
Inherits from: Instance → Object
An Explosion applies force to BaseParts within the explosion's BlastRadius. This force breaks JointInstances and WeldConstraints between parts and kills Humanoid characters not protected by a ForceField. Constraints will not be broken by an explosion.
If an Explosion is parented anywhere in the data model while the experience is running, it immediately sets off and, within a few seconds, it becomes unparented. It is not destroyed with Instance:Destroy() in this case, so connections do not get disconnected and the parent is not locked. As with all instances, keeping a strong reference an Explosion will prevent it from being garbage collected.
Note that an Explosion must be a descendant of Workspace for the explosion visuals to play and the physical/damaging effects to have an impact.
Explosion Effects
Humanoids are killed by explosions, as the explosion breaks the character Model neck joint. Parenting a ForceField to a model will protect all of its children from the explosion kill effect.
If you do not want joints between BaseParts to be broken, or you want to implement your own formula for damaging Humanoids, it's recommended that you set DestroyJointRadiusPercent to 0 and use the Hit event to handle the result of the explosion.
Explosions can also be configured to damage Terrain, creating craters, as configured through the ExplosionType property.
Note that the effect of an explosion is not disrupted by obstacles, meaning that parts/terrain shielded behind other parts/terrain will still be affected.
Inherits from: Instance
Memory category: Instances
Code samples: View on Creator Hub (Explosion-Instantiation).
Properties
| Name | Type / Returns | Description |
|---|---|---|
| Explosion.BlastPressure | float | Used to determine the amount of force applied to BaseParts caught in the Explosion.BlastRadius. |
| Explosion.BlastRadius | float | This property determines the radius of the Explosion, in studs. This radius determines the area of effect of the explosion, not the size of the explosion's visuals. |
| Explosion.DestroyJointRadiusPercent | float | Used to set the proportion of the Explosion.BlastRadius, between 0 and 1, within which all joints will be destroyed. Anything outside of this range will only have the Explosion force applied to it. |
| Explosion.ExplosionType | ExplosionType | This property determines how the Explosion will interact with Terrain. Used to set if explosions will cause damage to the terrain or not. |
| Explosion.LocalTransparencyModifier | float | A multiplier for the transparency of the Explosion visual effect that is only visible to the local client. |
| Explosion.Position | Vector3 | This property is the position of the center of the Explosion. It is defined in world-space and not influenced by the Explosion parent. |
| Explosion.TimeScale | float | Value between 0 and 1 that controls the speed of the particle effect. |
| Explosion.Visible | boolean | This property determines whether or not the visual effect of an Explosion is shown or not. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.Archivable | boolean | Determines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published. |
| Instance.archivable | boolean | |
| Instance.Capabilities | SecurityCapabilities | The set of capabilities allowed to be used for scripts inside this container. |
| Instance.IsInSandbox | boolean | Indicates whether the instance is inside a sandboxed container. |
| Instance.Name | string | A non-unique identifier of the Instance. |
| Instance.Parent | Instance | Determines the hierarchical parent of the Instance. |
| Instance.PredictionMode | PredictionMode | Reflects the client-side prediction mode applied to the instance under server-authoritative physics. |
| Instance.RobloxLocked | boolean | A deprecated property that used to protect CoreGui objects. |
| Instance.Sandboxed | boolean | When enabled, the instance can only access abilities in its Capabilities list. |
| Instance.UniqueId | UniqueId | A unique identifier for the instance. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.ClassName | string | A read-only string representing the class this Object belongs to. |
| Object.className | string |
Explosion.BlastPressure
Used to determine the amount of force applied to BaseParts caught in the Explosion.BlastRadius.
Currently this level of force applied does not vary based on distance from Explosion.Position. Unanchored BaseParts will accelerate equally away from the origin regardless of distance provided they are within the blast radius.
The blast pressure determines the acceleration of parts due to an explosion. It does not determine the degree to which joints are broken. When Explosion.DestroyJointRadiusPercent is equal to 1 all joints between parts in the Explosion.BlastRadius will be destroyed provided BlastPressure is greater than 0.
The BlastPressure also does not determine the amount of damage given to Terrain. Provided BlastPressure is greater than 0 and Explosion.ExplosionType isn't set to Enum.ExplosionType.NoCraters the size of the crater created is determined exclusively by the Explosion.BlastRadius.
Setting BlastPressure to 0 eliminates the effect of the explosion and is useful when developers want to program their own custom behavior for explosions using the Explosion.Hit event.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Custom-Explosion).
Explosion.BlastRadius
This property determines the radius of the Explosion, in studs. This property accepts any value between 0 and 100.
This radius determines the area of effect of the Explosion, not the size of the Explosion's visuals. The size of the Explosion's visual effect is the same regardless of BlastRadius (even if BlastRadius is 0).
BaseParts within the BlastRadius will be affected by the explosion. Meaning, if Explosion.BlastPressure is greater than 0, force will be applied to parts. The degree to which joints are broken within the BlastRadius depends on Explosion.DestroyJointRadiusPercent. Explosion.Hit will fire for any every BasePart within the radius.
BaseParts are considered within Explosion.BlastRadius even if they are only partially in range.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Explosion-Instantiation).
Explosion.DestroyJointRadiusPercent
Used to set the proportion of the Explosion.BlastRadius, between 0 and 1, within which all joints will be destroyed. Anything outside of this range will only have the Explosion force applied to it.
For example, if Explosion.BlastRadius is set to 100 and DestroyJointRadiusPercent is set to 0.5, any joints within a radius of 50 studs would be broken. Any joints between the ranges of 50 and 100 studs wouldn't be destroyed, but the Explosion force would still be applied to the BaseParts.
This property allows developers to make Explosions 'non-lethal' to Humanoids by setting DestroyJointRadiusPercent to 0. This means the neck joint will not be broken when characters come into contact with the Explosion.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Explosion-DestroyJointRadiusPercent, Custom-Explosion).
Explosion.ExplosionType
This property determines how the Explosion will interact with Terrain. It is an Enum.ExplosionType value and can be set to one of three options.
- NoCraters - Explosions will not damage Terrain
- Craters - Explosions will create craters in Terrain
- CratersAndDebris - Redundant, behaves the same as Craters
If ExplosionType is set to create craters in Terrain, the radius of the crater will be roughly equal to the Explosion.BlastRadius. Craters are created in all Terrain materials other than water. The size of the crater is not influenced by the material, although some materials create rougher edges than others.
| Field | Value |
|---|---|
| type | ExplosionType |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Explosion-ExplosionType).
Explosion.LocalTransparencyModifier
A client-local multiplier for the transparency of the Explosion visual effect. It does not replicate from client to server and is useful when the explosion visual should appear differently for a specific client.
A value of 0, the default, has no effect on the explosion's appearance, while a value of 1 makes the visual effect completely invisible to the local client. Values are clamped between 0 and 1.
This property does not alter the explosion's physical or damaging effects. To hide the visual effect for all clients while retaining force and damage, set Visible to false instead.
| Field | Value |
|---|---|
| type | float |
| tags | ["Hidden","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Explosion.Position
This property is the position of the center of the Explosion. It is defined in world-space and not influenced by the Explosion parent.
BaseParts will be influenced by the Explosion if they are within Explosion.BlastRadius studs of the explosion's position.
The effect of an explosion is instantaneous. This means that although the position of an explosion can be changed after it has been set it cannot affect two different areas. Once an explosion has been 'detonated', shortly after parenting it to a descendant of the Workspace, it will not do so again. In some cases the visual effect of the explosion will move but it will have no effect.
For this reason a new Explosion should be created if the developer wants an explosion to appear at a different position.
| Field | Value |
|---|---|
| type | Vector3 |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Explosion-Instantiation).
Explosion.TimeScale
A value between 0 and 1 that controls the speed of the particle effect. At 1 it runs at normal speed, at 0.5 it runs at half speed, and at 0 it freezes time.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Explosion.Visible
This property determines whether or not the visual effect of an Explosion is shown or not.
When Visible is set to false, the explosion will still affect BaseParts in its Explosion.BlastRadius, the only difference is it will not be seen.
One use for this property would be for a developer to make their own custom explosion effects using a ParticleEmitter, while retaining the default Explosion functionality.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Explosion-Visible).
Events
| Name | Type / Returns | Description |
|---|---|---|
| Explosion.Hit | Fires when the Explosion hits a BasePart within its Explosion.BlastRadius. Returns the part hit along with the distance of the part from Explosion.Position. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.AncestryChanged | Fires when the Instance.Parent property of this object or one of its ancestors is changed. | |
| Instance.AttributeChanged | Fires whenever an attribute is changed on the Instance. | |
| Instance.ChildAdded | Fires after an object is parented to this Instance. | |
| Instance.childAdded | ||
| Instance.ChildRemoved | Fires after a child is removed from this Instance. | |
| Instance.DescendantAdded | Fires after a descendant is added to the Instance. | |
| Instance.DescendantRemoving | Fires immediately before a descendant of the Instance is removed. | |
| Instance.Destroying | Fires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy(). | |
| Instance.StyledPropertiesChanged | Fires whenever any style property is changed on the instance, including when a property is set to nil. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.Changed | Fires immediately after a property of the object changes, with some limitations. |
Explosion.Hit
Fires when the Explosion hits a BasePart within its Explosion.BlastRadius. Returns the part hit along with the distance of the part from Explosion.Position.
Note that the effect of an Explosion is not disrupted by obstacles, this means parts shielded behind other parts will still be hit, even if the BasePart they are shielded behind is anchored.
This event will also fire when Explosion.BlastPressure is equal to zero. This means developers can program their own custom behavior for explosions by eliminating the explosion's influence on BaseParts and Terrain.
Note that this event will fire for every BasePart hit. This means it can fire multiple times for the same player character (as the character Model is made up of multiple parts). For this reason when dealing custom damage using the Explosion.Hit event it's recommended to implement a check to see if the character has already been hit by the Explosion.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| part | BasePart | The BasePart hit by the Explosion. | |
| distance | float | The distance of the hit from Explosion.Position. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Custom-Explosion).
Methods
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance:AddTag | () | Applies a tag to the instance. |
| Instance:children | Instances | Returns an array of the object's children. |
| Instance:ClearAllChildren | () | This method destroys all of an instance's children. |
| Instance:Clone | Instance | Create a copy of an instance and all its descendants, ignoring instances that are not Archivable. |
| Instance:clone | Instance | |
| 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:FindFirstAncestor | Instance? | Returns the first ancestor of the Instance whose Instance.Name is equal to the given name. |
| Instance:FindFirstAncestorOfClass | Instance? | Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className. |
| Instance:FindFirstAncestorWhichIsA | Instance? | Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstChild | Instance? | Returns the first child of the Instance found with the given name. |
| Instance:findFirstChild | Instance | |
| Instance:FindFirstChildOfClass | Instance? | Returns the first child of the Instance whose ClassName is equal to the given class name. |
| Instance:FindFirstChildWhichIsA | Instance? | Returns the first child of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstDescendant | Instance? | Returns the first descendant found with the given Instance.Name. |
| Instance:GetActor | Actor? | Returns the Actor associated with the Instance, if any. |
| Instance:GetAttribute | Variant | Returns the value which has been assigned to the given attribute name. |
| Instance:GetAttributeChangedSignal | RBXScriptSignal | Returns an event that fires when the given attribute changes. |
| Instance:GetAttributes | Dictionary | Returns a dictionary of the instance's attributes. |
| Instance:GetChildren | Instances | Returns an array containing all of the instance's children. |
| Instance:getChildren | Instances | |
| Instance:GetDebugId | string | Returns a coded string of the debug ID used internally by Roblox. |
| Instance:GetDescendants | Instances | Returns an array containing all of the descendants of the instance. |
| Instance:GetFullName | string | Returns a string describing the instance's ancestry. |
| Instance:GetStyled | Variant | Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified. |
| Instance:GetStyledPropertyChangedSignal | RBXScriptSignal | Returns an event that fires when the given style property changes on the instance. |
| Instance:GetTags | Array | Gets an array of all tags applied to the instance. |
| Instance:HasTag | boolean | Check whether the instance has a given tag. |
| Instance:IsAncestorOf | boolean | Returns true if an Instance is an ancestor of the given descendant. |
| Instance:IsDescendantOf | boolean | Returns true if an Instance is a descendant of the given ancestor. |
| Instance:isDescendantOf | boolean | |
| Instance:IsPropertyModified | boolean | Returns true if the value stored in the specified property is not equal to the code-instantiated default. |
| Instance:QueryDescendants | Instances | Returns 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:WaitForChild | Instance | Returns 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
| Name | Type / Returns | Description |
|---|---|---|
| Object:GetPropertyChangedSignal | RBXScriptSignal | Get an event that fires when a given property of the object changes. |
| Object:IsA | boolean | Returns true if an object's class matches or inherits from a given class. |
| Object:isA | boolean |