0

# How do i properly make my spear aim?

im basically making gae bolg (a spear weapon that u throw) from fate and i have a little problem the spear goes to the direction of the mouse but idrk how to make it properly aimable

heres the video (medal clip)

https://medal.tv/games/roblox-studio/clips/AicE2aNe26JmO/d1337ohMSeCh?invite=cr-MSxGb24sNjU0MzQwMDEs

heres the part of the script where i have the aiming system basically

    GEvent.OnServerEvent:Connect(function(Player,mouseaim)

local Character = Player.Character
local Humanoid = Character.Humanoid
local Root = Character.HumanoidRootPart

local GaeBolgThrown = game.ReplicatedStorage.Objects.GaeBolgThrown:Clone()
GaeBolgThrown.CFrame = Tool.Handle.CFrame * CFrame.new(0,0,0)
GaeBolgThrown.Orientation = GaeBolgThrown.Orientation + Vector3.new(0,0,0)
GaeBolgThrown.Parent = workspace

local RootPos, MousePos = Root.Position, mouseaim
Root.CFrame = CFrame.new(RootPos, Vector3.new(MousePos.X, RootPos.Y, MousePos.Z))

local BV2 = Instance.new("BodyVelocity",GaeBolgThrown)
BV2.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
BV2.Velocity = CFrame.new(Character.HumanoidRootPart.Position,mouseaim).LookVector*400

end)



0

I don't know what the mouseaim is, but when sending the mouseaim to the server, I recommend using Camera:ViewportPointToRay since it accurately gets its position in the workspace by making a unit Ray, and it ignores the GuiInset at the top of the screen.

-- Client

local depth = 0 -- optional; 0 by default
local length = 1 -- optional; 1 by by default

local unitRay = Camera:ViewportPointToRay(Mouse.X, Mouse.Y, depth) -- converting the mouse position to a ray by using its X and Y axis, and the depth variable

GEvent:FireServer(unitRay.Direction * length) -- sending unitRay's direction or lookVector to the server

-- Server

GEvent.OnServerEvent:Connect(function(Player,mouseaim)

local Character = Player.Character
local Humanoid = Character.Humanoid
local Root = Character.HumanoidRootPart

local GaeBolgThrown = game.ReplicatedStorage.Objects.GaeBolgThrown:Clone()
GaeBolgThrown.CFrame = Tool.Handle.CFrame * CFrame.new(0,0,0)
GaeBolgThrown.Orientation = GaeBolgThrown.Orientation + Vector3.new(0,0,0)
GaeBolgThrown.Parent = workspace

Root.CFrame = CFrame.new(Root.Position, mouseaim)

local BV2 = Instance.new("BodyVelocity",GaeBolgThrown)
BV2.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
BV2.Velocity = CFrame.new(Character.HumanoidRootPart.Position,mouseaim).LookVector*400

end)


If there is still a problem with the mouse aim, I recommend editing the depth and/or length variable from the client.