When It fires the part goes way above the mouse position. like this: https://i.gyazo.com/72dda5e96fed58841365f4e803810587.gif
However it works perfectly in Studio Testing. The Remote Event fires when a key down (Create) and key up (Fire).
Mouse is Mouse.Hit
My discord: Prismous#1646
local DiscCharging
local events1= Instance.new("RemoteEvent")
events1.Name = "DestructoDiscEvent"
events1.Parent = game.ReplicatedStorage.RemoteEvents.Skills
events1.OnServerEvent:connect(function(plr,Statis,Mouse)
Player = plr
local FormMultiplier = plr.Gamestuff.Characters.Folder.FormMultiplier.Value
local Damage = SaiyanModule.damage(plr, 15,FormMultiplier)
print(Damage)
if Statis == "Create" then
local Disc= Instance.new("Part",plr.Character)
Disc.Name = "Disc"
Disc.BrickColor = BrickColor.new("Cool yellow")
Disc.Material = "Neon"
Disc.TopSurface = "Smooth"
Disc.BottomSurface = "Smooth"
Disc.FormFactor = "Custom"
Disc.Size = Vector3.new(0.2, 3.12, 7.44)
Disc.Transparency = 0.2
Disc.Anchored = false
Disc.CanCollide = false
Disc.CFrame = plr.Character.LeftUpperArm.CFrame * CFrame.new(0, 0, 0)--* CFrame.new(0,-4, 0)* CFrame.Angles(0, 0, -math.rad(90)) --* CFrame.new(0, 0, 0)
local CylinderMesh = Instance.new("SpecialMesh")
CylinderMesh.Name = "CylinderMesh"
CylinderMesh.MeshType = "Cylinder"
CylinderMesh.Parent = Disc
CylinderMesh.Scale = Vector3.new(0.2, 1.1, 1.1)
local Weld = Instance.new("Weld")
Weld.Parent = Disc
Weld.Part0 = Disc
Weld.Part1 = plr.Character.LeftHand
Weld.C0 = CFrame.new(1, 0, 0) * CFrame.Angles(0, 0, -math.rad(90))
DiscCharging = true
Rotate = true
plr.Character.HumanoidRootPart.Anchored = true
plr.Character.RotatePlayer.Disabled = false
biggerdisc(plr,CylinderMesh,Mouse)
elseif Statis == "Fire" then
local Weld = Player.Character. Disc.Weld
local CylinderMesh = Player.Character. Disc.CylinderMesh
local Disc = Player.Character. Disc
Weld:Destroy()
plr.Character.RotatePlayer.Disabled = true
plr.Character.HumanoidRootPart.Anchored = false
DiscCharging = false
wait(0.001)
local bv = Instance.new("BodyVelocity")
bv.velocity = CFrame.new(Disc.Position, Mouse.p).lookVector*80
bv.maxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Parent = CylinderMesh.Parent
game:GetService("Debris"):AddItem(CylinderMesh.Parent, 4)
local debounce = false
CylinderMesh.Parent.Touched:connect(function(hit)
if debounce == true then return end
debounce = true
if hit.Parent:FindFirstChild("Humanoid") and hit.Parent:FindFirstChild("NPC") == nil and hit.Parent.Name ~= plr.Name then
hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - Damage
DamageTakerGUI(plr,hit,Damage)
end
wait(1)
debounce = false
end)
end
end)
function biggerdisc(Player,Cylinder,Mouse)
while DiscCharging and Cylinder.Scale.Y <= 2 and wait() do
for i = 1,5 do
Cylinder.Scale = Cylinder.Scale + Vector3.new(0,.005,0)
wait()
end
wait()
end
end

1 comment
You could add negative velocity on the y axis as a temporary fix