Run it
Copy the script and paste it into your executor.
.PlaceId ~=
().ProjectileAuraConfig = ().ProjectileAuraConfig {}
Config = ().ProjectileAuraConfig
Config.TargetMode = Config.TargetMode
Config.IHATEYOUSOMUCH = Config.IHATEYOUSOMUCH {
Enabled = ,
Betty = ,
Warhead =
}
Config.Theseshouldntbetargettedimo = Config.Theseshouldntbetargettedimo {
Enabled = ,
Punishment = ,
Bloodhorn =
}
().ProjectileAuraLoaded
().ProjectileAuraLoaded =
Workspace = :()
RunService = :()
Players = :()
LocalPlayer = Players.LocalPlayer
NPCFolders = Workspace:()
EnemyFolder = NPCFolders:()
ProjectileFolder = Workspace:()
block
timerRemaining =
UNFREEZE_TIMER =
isActive =
frozen = {}
trackedProjectiles = {}
(Enemy)
Config.Theseshouldntbetargettedimo.Enabled
Config.Theseshouldntbetargettedimo[Enemy.Name]
()
Character = LocalPlayer.Character
Character
Character:()
()
ValidEnemies = {}
_, Enemy (EnemyFolder:())
(Enemy)
Humanoid = Enemy:()
RootPart = Enemy:()
Humanoid Humanoid.Health > RootPart
.(ValidEnemies, Enemy)
ValidEnemies
()
Config.IHATEYOUSOMUCH.Enabled
_, Enemy (EnemyFolder:())
Config.IHATEYOUSOMUCH[Enemy.Name]
Humanoid = Enemy:()
Humanoid Humanoid.Health >
Enemy
ValidEnemies = ()
#ValidEnemies <=
CharacterRoot = ()
Config.TargetMode == CharacterRoot
ClosestEnemy =
ClosestDistance = .huge
_, Enemy (ValidEnemies)
RootPart = Enemy:()
RootPart
Distance = (CharacterRoot.Position - RootPart.Position).Magnitude
Distance < ClosestDistance
ClosestDistance = Distance
ClosestEnemy = Enemy
ClosestEnemy
Config.TargetMode == CharacterRoot
FarthestEnemy =
FarthestDistance = -.huge
_, Enemy (ValidEnemies)
RootPart = Enemy:()
RootPart
Distance = (CharacterRoot.Position - RootPart.Position).Magnitude
Distance > FarthestDistance
FarthestDistance = Distance
FarthestEnemy = Enemy
FarthestEnemy
Config.TargetMode ==
WeakestEnemy =
LowestHealth = .huge
_, Enemy (ValidEnemies)
Humanoid = Enemy:()
Humanoid Humanoid.Health < LowestHealth
LowestHealth = Humanoid.Health
WeakestEnemy = Enemy
WeakestEnemy
Config.TargetMode ==
StrongestEnemy =
HighestHealth = -.huge
_, Enemy (ValidEnemies)
Humanoid = Enemy:()
Humanoid Humanoid.Health > HighestHealth
HighestHealth = Humanoid.Health
StrongestEnemy = Enemy
StrongestEnemy
Config.TargetMode ==
ValidEnemies[.(, #ValidEnemies)]
ValidEnemies[]
()
block block.Parent block
block = .()
block.Name =
block.Anchored =
block.CanCollide =
block.CanTouch =
block.CanQuery =
block.Transparency =
block.Size = .(, , )
block.CFrame = .(, -, )
block.Parent = Workspace
block
(index)
perLayer =
layer = .((index - ) / perLayer)
pos = (index - ) % perLayer
angle = (pos / perLayer) * .pi *
horizontalRadius =
x = .(angle) * horizontalRadius
z = .(angle) * horizontalRadius
y = layer *
.(x, y, z)
()
block block.Parent
_, v (ProjectileFolder:())
v:() (v.Name == v.Name == v.Name == )
v.CFrame = block.CFrame
v.AssemblyLinearVelocity = .zero
v.AssemblyAngularVelocity = .zero
()
block block.Parent
enemies = {}
_, npc (EnemyFolder:())
root = npc:()
hum = npc:()
root hum hum.Health > (npc)
.(enemies, npc)
i, npc (enemies)
root = npc:()
root
frozen[npc]
frozen[npc] = root.CFrame
root.CFrame = block.CFrame * .((i))
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
()
block block.Parent
_, npc (EnemyFolder:())
(npc)
root = npc:()
hum = npc:()
root hum hum.Health >
distToBlock = (root.Position - block.Position).Magnitude
distToBlock <
direction = (root.Position - block.Position).Unit
root.CFrame = .(block.Position + direction * ) * .(.(), root.CFrame.RightVector, root.CFrame.UpVector)
()
npc, originalCFrame (frozen)
npc npc.Parent
root = npc:()
root
root.CFrame = originalCFrame
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
.(frozen)
()
()
timerRemaining = UNFREEZE_TIMER
isActive =
(Projectile)
Projectile.CanCollide =
Projectile.CanTouch =
Projectile.Massless =
Projectile.Transparency =
Projectile.AssemblyLinearVelocity = .zero
Projectile.AssemblyAngularVelocity = .zero
(Projectile, TargetRoot)
Projectile.CFrame = TargetRoot.CFrame
Projectile.AssemblyLinearVelocity = .zero
Projectile.AssemblyAngularVelocity = .zero
(Projectile)
Projectile.Name ==
Projectile.Name ==
Projectile.Name ==
(Projectile)
Projectile.Name ==
Projectile.Name ==
Projectile.Name ==
(Projectile)
(Projectile) (Projectile)
(obj)
obj:()
obj.Size = .(, , )
obj:()
_, d (obj:())
d:()
d.Size = .(, , )
_, v (ProjectileFolder:())
v:()
(v)
()
(v)
(v)
(v)
(v)
trackedProjectiles[v] =
ProjectileFolder.ChildAdded:((child)
child:()
(child)
()
(child)
(child)
(child)
(child)
.()
trackedProjectiles[child] =
)
RunService.Heartbeat:((dt)
isActive
timerRemaining -= dt
()
()
()
timerRemaining <=
()
isActive =
timerRemaining =
TargetEnemy = ()
TargetEnemy
TargetRoot = TargetEnemy:()
TargetRoot
obj (trackedProjectiles)
obj obj.Parent
trackedProjectiles[obj] =
obj:()
(obj, TargetRoot)
)
.AncestryChanged:((_, parent)
parent ==
()
block block.Parent block:()
.(trackedProjectiles)
)
A free open source mod for volleyball battler who deals good dps and easily replaces the basketball battler and yes this also supports basketball battler because why not?
The Battle Bricks