There was a topic on this before, but it wasn’t solved: Slow turn in shiftlock?
So, I’d like a slower turn in shiftlock, just like the video in that post. So how can I accomplish this?
Have you tried settings all of the players body parts to massless?
I’m not sure what you mean, can you explain?
I agree with @beneathwintersky, try putting this as a local script in starter character scripts:
local player = game.Players.LocalPlayer
game.Players.PlayerAdded:Connect(function(players)
players.CharacterAdded:Connect(function(character)
local char = player.Character
for i,v in ipairs(char:GetChildren()) do
if v:IsA("Part") or v:IsA("MeshPart") or v:IsA("BasePart") then
v:GetPropertyChangedSignal("Massless")
if v.Massless = true or false then
v.Massless = false
end
end
end)
end)
Nope, doesn’t seem to do anything
I edited it, see if it works now
For some reason, I get an error on the “=” on the line of v:GetPropertyChangedSignal("Massless") = false
I edited it one last time, see if it works now
Sorry, still doesn’t work. If you don’t want to help anymore that’s alright, thanks anyway.
Yeah sorry man, I don’t think I’ve got anything else.
A concept that I came up with for this would utilize a deprecated instance (GyroForce) (If there is a currently related version of GyroForce, you could use that instead)
The concept of this is to change the Humanoid’s AutoRotate property to false. Create a GyroForce in the HumanoidRootPart and set the MaxForce to somewhere around Vector3.new(0,400000,0) (Only Y is above 0). Now, set the GyroForce CFrame to the camera’s CFrame every time it updates.
Theoretically, this should work, if not, just let me know.
Bro I’m a beginner I have no clue how to do that, sorry
Make the character point towards the camera then use the :Lerp function of CFrame to create the slow turning effect. Or fork the PlayerScripts created by Roblox when you start the game and replace the instant turn from the Shift-Lock and make it a :Lerp.
As I said earlier i’m a beginner, i’m still working on learning about lerps and all of that. I have no idea how to do this
Here is a cheap way of making it work: (Add this in a server script inside of StarterCharacterScripts)
local character = script:FindFirstAncestorWhichIsA("Model")
local A1 = Instance.new("Weld")
A1.Parent = character
A1.Part0 = character:WaitForChild("HumanoidRootPart")
local INSTANCE = Instance.new("Part")
A1.Part1 = INSTANCE
INSTANCE.CanCollide = false
INSTANCE.Transparency = 1
INSTANCE.Anchored = false
INSTANCE.Size = Vector3.new(20, 20, 20)
INSTANCE.CanTouch = false
INSTANCE.CanQuery = false
INSTANCE.CFrame = character:WaitForChild("HumanoidRootPart").CFrame
INSTANCE.Parent = character
Ik it’s been a long time since this post was created, but I was actually looking for a solution to fix the player from turning slow in shiftlock/first person.
I had made a script in my game that ragdolled the player, and after getting up, the player would turn slower than usual. So I checked the code, and what I did to make the player ragdoll was changing the HumanoidRootPart name to a different one, maybe “HumanoidRootPart2”, so the RootPart will automatically be set to the Torso. After the player getting up, the player was turning slower. Yes I did revert the rootpart name, but looks like the Humanoid still considered that the rootpart was the Torso by looking at its RootPart property. To change this, I had to parent the actual HumanoidRootPart to another object not being the character, maybe the Humanoid, and then reparenting it to the Character.
Basically, by setting the Humanoid.RootPart property to the Torso, you will get a slower turn, and you can accomplish that by changing the actual HumanoidRootPart name and reverting it.
you can just disable the ability to turn on shift lock then make your own shiftlock script and lerp the humanoid root part’s orientation to the camera (with autorotate diabled ofcourse)