Class
Explosion
Applies force to BaseParts within the explosion's
Explosion.BlastRadius. Breaks JointInstances and
WeldConstraints between parts and kills
Humanoid characters not protected by a ForceField.
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.
Properties 8#
BlastPressurefloat | Used to determine the amount of force applied to
BaseParts caught in the Explosion.BlastRadius.ReadSafe |
BlastRadiusfloat | 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.ReadSafe |
DestroyJointRadiusPercentfloat | 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.ReadSafe |
ExplosionTypeExplosionType | This property determines how the Explosion will interact with
Terrain. Used to set if explosions will cause damage to the
terrain or not.ReadSafe |
LocalTransparencyModifierfloat | A multiplier for the transparency of the Explosion visual effect
that is only visible to the local client.ReadSafeHiddenNotReplicated |
PositionVector3 | This property is the position of the center of the Explosion. It
is defined in world-space and not influenced by the Explosion
parent.ReadSafe |
TimeScalefloat | Value between 0 and 1 that controls the speed of the particle effect.ReadSafe |
Visibleboolean | This property determines whether or not the visual effect of an
Explosion is shown or not.ReadSafe |
BlastPressure: float#
ReadSafe
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.
BlastRadius: float#
ReadSafe
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.
DestroyJointRadiusPercent: float#
ReadSafe
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.
ExplosionType: ExplosionType#
ReadSafe
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.
LocalTransparencyModifier: float#
HiddenNotReplicatedReadSafe
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.
Position: Vector3#
ReadSafe
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.
TimeScale: float#
ReadSafe
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.
Visible: boolean#
ReadSafe
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.
Events 1#
| 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. |
Hit(part: BasePart, distance: float)#
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.
| Name | Type | Default | Description |
|---|---|---|---|
part | BasePart | The BasePart hit by the Explosion. | |
distance | float | The distance of the hit from Explosion.Position. |
Inherited members#
Inherited from Instance 58
Properties (10)
Archivable, archivable, Capabilities, IsInSandbox, Name, Parent, PredictionMode, RobloxLocked, Sandboxed, UniqueId
Methods (39)
AddTag, children, ClearAllChildren, Clone, clone, Destroy, destroy, FindFirstAncestor, FindFirstAncestorOfClass, FindFirstAncestorWhichIsA, FindFirstChild, findFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, FindFirstDescendant, GetActor, GetAttribute, GetAttributeChangedSignal, GetAttributes, GetChildren, getChildren, GetDebugId, GetDescendants, GetFullName, GetStyled, GetStyledPropertyChangedSignal, GetTags, HasTag, IsAncestorOf, IsDescendantOf, isDescendantOf, IsPropertyModified, QueryDescendants, Remove, remove, RemoveTag, ResetPropertyToDefault, SetAttribute, WaitForChild