So far i made it so that you can attack with a button1down function but I cant make it so the projectile that is spawned faces the same way as the player without changing the orientation.
player = game.Players.LocalPlayer
repeat wait() until player.Character ~= nil
local hum = player.Character.HumanoidRootPart
local mouse = player:GetMouse()
local tweenservice = game:GetService("TweenService")
local function attack()
local direction = hum.CFrame.lookVector * 60
local part = game.ReplicatedStorage.Water:Clone()
part.Parent = workspace
part.CanCollide = false
part.Velocity = direction
part.CFrame = CFrame.new(0,0,0)
part.Orientation = Vector3.new(-90,0,0)
part.Position = hum.Position + Vector3.new(0,-.5,0)
local bf = Instance.new("BodyForce")
bf.Force = Vector3.new(0, workspace.Gravity * part:GetMass() * 1, 0)
bf.Parent = part
wait(0.7)
part:Destroy()
end
mouse.Button1Down:Connect(attack)
I did manage to change the orientation but when I do that the projectile doesn't shoot from the player. Any suggestions?

5 comments
Yea I've already used this method, what ends up happening is that part faces the same direction but the orientation changes so the projectile looks akward.
Make it so the orientation doesn't change?
Im not sure how to make the orientation stay the same, they way i did it it made the part face only one direction while the player faced another way.
Ok it worked! I dont know why it didnt work the last time but now it does, the only problem is once i move the part immediately shifts its orientation.
If it worked Accept the answer