What solutions have you tried so far? Putting it inside StarterCharacterScripts.
local Player = game:GetService("Players").LocalPlayer
local Character
local Humanoid
local Camera = workspace.CurrentCamera
local RunService = game:GetService("RunService")
-- Configurable Settings
local Dampening = 1000 -- Higher number makes it take longer to reach its destination
local Power = 10000 -- Higher number means more power
local MaxForce = Vector3.new(4000, 4000, 4000) -- Max amount of power that can be applied on each axis
--------------------------------------------------------------------------------------------
function OnCharacterAdded(AddedCharacter)
if AddedCharacter == nil then
repeat wait() until AddedCharacter ~= nil
end
if AddedCharacter.Parent == nil then
repeat wait() until AddedCharacter.Parent ~= nil
end
if AddedCharacter ~= nil and AddedCharacter.Parent ~= nil then
Character = AddedCharacter
Humanoid = Character:WaitForChild("Humanoid")
Camera.CameraType = Enum.CameraType.Scriptable
CreateCameraPositionPart()
RunService:BindToRenderStep("Camera", Enum.RenderPriority.Camera.Value, UpdateCameraPosition)
end
end
game.Workspace.CurrentCamera.FieldOfView = 50
function UpdateCameraPosition()
Character.CameraPositionPart.BodyPosition.Position = Character.Head.Position + Vector3.new(-12, 0, 0)
Camera.CFrame = CFrame.new(Character.CameraPositionPart.Position, Character.CameraPositionPart.Position - Vector3.new(-1,0,0))
end
function CreateCameraPositionPart()
local CameraPositionPart = Instance.new("Part")
CameraPositionPart.CanCollide = false
CameraPositionPart.Transparency = 1
CameraPositionPart.Name = "CameraPositionPart"
CameraPositionPart.Parent = Character
local CameraBodyPosition = Instance.new("BodyPosition")
CameraBodyPosition.D = Dampening
CameraBodyPosition.P = Power
CameraBodyPosition.MaxForce = MaxForce
CameraBodyPosition.Parent = CameraPositionPart
return
end
Player.CharacterAdded:Connect(OnCharacterAdded)
local Player = game:GetService("Players").LocalPlayer
local Character
local Humanoid
local Camera = game.Workspace.CurrentCamera
local RunService = game:GetService("RunService")
-- Ayarlar
local Dampening = 10 -- Yavaşlatma miktarı (daha düşük bir sayı daha yavaşlatır)
local Power = 5000 -- Düğüm hızı (daha yüksek bir sayı daha hızlı olur)
local MaxForce = Vector3.new(4000, 4000, 4000) -- Her eksende uygulanabilecek maksimum güç
--------------------------------------------------------------------------------------------
function OnCharacterAdded(AddedCharacter)
if not AddedCharacter then
AddedCharacter = Player.Character or Player.CharacterAdded:Wait()
end
Character = AddedCharacter
Humanoid = Character:WaitForChild("Humanoid")
Camera.CameraType = Enum.CameraType.Scriptable
CreateCameraPositionPart()
RunService:BindToRenderStep("Camera", Enum.RenderPriority.Camera.Value, UpdateCameraPosition)
end
function UpdateCameraPosition()
local targetPosition = Character.HumanoidRootPart.Position + Vector3.new(-12, 0, 0)
Character.CameraPositionPart.BodyPosition.Position = targetPosition
Camera.CFrame = CFrame.new(targetPosition, targetPosition - Vector3.new(-1, 0, 0))
end
function CreateCameraPositionPart()
local CameraPositionPart = Instance.new("Part")
CameraPositionPart.Size = Vector3.new(1, 1, 1)
CameraPositionPart.Anchored = true
CameraPositionPart.CanCollide = false
CameraPositionPart.Transparency = 1
CameraPositionPart.Name = "CameraPositionPart"
CameraPositionPart.Position = Player.Character.HumanoidRootPart.Position
local CameraBodyPosition = Instance.new("BodyPosition")
CameraBodyPosition.D = Dampening
CameraBodyPosition.P = Power
CameraBodyPosition.MaxForce = MaxForce
CameraBodyPosition.Parent = CameraPositionPart
CameraPositionPart.Parent = Player.Character
return CameraPositionPart
end
if Player.Character then
OnCharacterAdded(Player.Character)
end
Player.CharacterAdded:Connect(OnCharacterAdded)
Thank you!
I did slightly alter it to fit my liking.
local Player = game:GetService("Players").LocalPlayer
local Character
local Humanoid
local Camera = game.Workspace.CurrentCamera
local RunService = game:GetService("RunService")
-- Ayarlar
local Dampening = 1000
local Power = 10000
local MaxForce = Vector3.new(4000, 4000, 4000)
--------------------------------------------------------------------------------------------
function OnCharacterAdded(AddedCharacter)
if not AddedCharacter then
AddedCharacter = Player.Character or Player.CharacterAdded:Wait()
end
game.Workspace.CurrentCamera.FieldOfView = 50
Character = AddedCharacter
Humanoid = Character:WaitForChild("Humanoid")
Camera.CameraType = Enum.CameraType.Scriptable
CreateCameraPositionPart()
RunService:BindToRenderStep("Camera", Enum.RenderPriority.Camera.Value, UpdateCameraPosition)
end
function UpdateCameraPosition()
local targetPosition = Character.Head.Position + Vector3.new(-12, 0, 0)
Character.CameraPositionPart.BodyPosition.Position = targetPosition
Camera.CFrame = CFrame.new(targetPosition, targetPosition - Vector3.new(-1, 0, 0))
end
function CreateCameraPositionPart()
local CameraPositionPart = Instance.new("Part")
CameraPositionPart.Size = Vector3.new(1, 1, 1)
CameraPositionPart.Anchored = true
CameraPositionPart.CanCollide = false
CameraPositionPart.Transparency = 1
CameraPositionPart.Name = "CameraPositionPart"
CameraPositionPart.Position = Player.Character.HumanoidRootPart.Position
local CameraBodyPosition = Instance.new("BodyPosition")
CameraBodyPosition.D = Dampening
CameraBodyPosition.P = Power
CameraBodyPosition.MaxForce = MaxForce
CameraBodyPosition.Parent = CameraPositionPart
CameraPositionPart.Parent = Player.Character
return CameraPositionPart
end
if Player.Character then
OnCharacterAdded(Player.Character)
end
Player.CharacterAdded:Connect(OnCharacterAdded)