This might sound really simple. To extend the part just increase the size & set the position, and to enable beams beam.Enabled = true.
This is what I’m trying to do:
Each hitbox has 2 attachments used for the beam.
This is the result:
*The small hitbox’s position is sideways & a little bit backwards from the blade.
The big hitbox isn’t in a weird position anymore (Idk why I didnt change something to cause it). The small hitbox was moving extremely in front of or behind the katana before the screen recording but it isnt doing that anymore either (Idk about this too).
I playtested & closed/opened studio a few times and now the small hitbox is in a random position to the top left.
This the katana. I tried turning on & off the beams in the script but the beam didnt show so I made the beams always on & it still didnt show on both server, attacker’s client, & other player’s client. UltHitbox is the smaller beam box, KatanaOrbs is for something else.
both of the hitbox’s weld’s C0 positions are the same and they’re both connected ot the handle
This is the ult ServerScript:
ultRemote.OnServerEvent:Connect(function(plr)
if plr.Character == char then
char:SetAttribute("Invincible", true)
char.LawUltHighlight.Enabled = true
local hitbox = char.Sheath.VFX.UltHitbox
local bigBeam = char.Sheath.VFX.BigBeam
-- cover katana with room
for i,v in pairs(hitbox.Attachment1:GetChildren()) do
v.Enabled = true
end
for i = 1, 6 do
hitbox.Size += Vector3.new(0,0,1)
hitbox.Position -= Vector3.new(0,0,-1)
task.wait()
end
task.wait(0.1)
local amogus
local hitOpponents = {}
-- extend blade hitbox
task.spawn(function()
local hitbox = char.Sheath.VFX.UltHitbox
local params = OverlapParams.new()
params.FilterDescendantsInstances = {char:GetChildren()}
params.FilterType = Enum.RaycastFilterType.Exclude
repeat
task.wait()
local box = workspace:GetPartBoundsInBox(hitbox.CFrame, hitbox.Size, params)
for i,v in pairs(box) do
if v.Name == "Hitbox" then
params:AddToFilter(v)
v.Parent:SetAttribute("Attacked", true)
v.Parent:SetAttribute("Invincible", true)
ultRemote:FireClient(players:GetPlayerFromCharacter(v.Parent), 1)
-- freeze char
v.Humanoid.WalkSpeed = 0
v.Humanoid.JumpHeight = 0
v.Humanoid.AutoRotate = false
local liv = Instance.new("LinearVelocity")
liv.Name = "RoomTeleportLiv"
liv.MaxForce = math.huge
liv.VectorVelocity = Vector3.new(0,0,0)
liv.Attachment0 = v.HummanoidRootpart:FindFirstChild("Attachment")
liv.Parent = v.HumanoidRootPart
v.Parent.HumanoidRootPart.CFrame = CFrame.new(v.Parent.HumanoidRootPartCFrame, char.HumanoidRootPart)
table.insert(hitOpponents, players:GetPlayerFromCharacter(v.Parent))
end
end
until amogus == "sus"
end)
-- extend blade
for i = 1, 15 do
hitbox.Size += Vector3.new(0,0,2)
hitbox.Weld.C0 += Vector3.new(0,0,1)
task.wait()
end
task.wait(0.5)
amogus = "sus"
-- damage/yeet
for i,v in pairs(hitOpponents) do
ultRemote:FireClient(v, 2)
v.Parent.Humanoid:TakeDamage(25)
end
-- big beam vfx
for i = 1, 15 do
bigBeam.Size += Vector3.new(0,0,2)
bigBeam.Weld.C0 += Vector3.new(0,0,1)
task.wait()
end
task.wait(0.5)
ultRemote:FireClient(plr, 3)
hitbox.Size = Vector3.new(3,3,0.001)
hitbox.Weld.C0 = CFrame.new(0,0,0.65) * CFrame.Angles(0, math.rad(-90), 0)
bigBeam.Size = Vector3.new(6.5,6.5, 0.001)
bigBeam.Weld.C0 = CFrame.new(0,0,0.65) * CFrame.Angles(0, math.rad(-90), 0)
char.LawUltHighlight.Enabled = false
char:SetAttribute("Invincible", false)
end
end)

