Disable Updated Roblox Controls inside of Roblox Studio Beta Features
I’m pretty sure you can get a little more performance by packing the radians as degrees and storing them as 16 bit integers as opposed to 32 bit floats, saves 2 bytes
Bug: When I sit down, this black box appears (idk if it’s your mouth or something)
Another bug: You can’t interact with things while in first person:
Yup that’s your mouth. Dynamic faces are problematic ! Hopefully this can be fixed soon.
Another bug: When you stand up from a seat this happens
Hi, it’s been awhile and I’m surprised that this resource has not been updated for a while so do you have plans to continue updating and maintaining this resource? Multiple Roblox updates has affected this resource and there’s glitches and bugs like lag and new bugs that has been started to arise.
Please fix this, thank you @Maximum_ADHD for making this.
Hi. This is happening to me too. I applied this solution but I still not know if it is working at all. Maybe this helps you?
Changes this lines on the client;
for name, factors in pairs(self.RotationFactors) do
local data = motors and motors[name]
-- Si no hay datos para el motor, continuar
if not data or not data.Motor then
continue
end
local motor = data.Motor
local origin = data.Origin
-- Asegurarse de que el motor y el origen existen antes de continuar
if not motor or not motor:IsA("Motor6D") then
continue
end
if origin then
local part0 = motor.Part0
local setPart0 = origin.Parent
if part0 and part0 ~= setPart0 then
local newOrigin = part0:FindFirstChild(origin.Name)
if newOrigin and newOrigin:IsA("Attachment") then
origin = newOrigin
data.Origin = newOrigin
end
end
origin = origin.CFrame
elseif data.C0 then
origin = data.C0
else
continue
end
local pitch = pitchState.Current or 0
local yaw = yawState.Current or 0
if rotator.SnapFirstPerson and name == "Head" then
if FpsCamera:IsInFirstPerson() then
pitch = pitchState.Goal
yaw = yawState.Goal
end
end
local fPitch = pitch * factors.Pitch
local fYaw = yaw * factors.Yaw
-- HACK: Make the arms rotate with a tool.
if name:sub(-4) == " Arm" or name:sub(-8) == "UpperArm" then
local tool = character:FindFirstChildOfClass("Tool")
if tool and not CollectionService:HasTag(tool, "NoArmRotation") then
if name:sub(1, 5) == "Right" and rootPart:GetRootPart() ~= rootPart then
fPitch = pitch * 1.3
fYaw = yaw * 1.3
else
fYaw = yaw * .8
end
end
end
local dirty = false
if fPitch ~= pitchState.Value then
pitchState.Value = fPitch
dirty = true
end
if fYaw ~= yawState.Value then
yawState.Value = fYaw
dirty = true
end
if dirty then
local rot = origin - origin.Position
local cf = CFrame.Angles(0, fPitch, 0)
* CFrame.Angles(fYaw, 0, 0)
motor.C0 = origin * rot:Inverse() * cf * rot
end
end
There not a real good way to fix the lag. What I did is remove the SetLookAngle event to replicalte it on the server.
Where can I find the sword in the video? It’s not the same as the official sword from roblox in the toolbox.
its the one from roblox battle iirc
Hey, know how i can make the footsteps any quieter?
can you please link the model?
Roblox Battle has been uncopylocked for some time, heres the link:
ROBLOX Battle [OPEN] - Roblox
Question, will this be on Wally? That would be great
Been wondering this, too.
I also have this problem, can someone help me about this? I’m not sure why this is happening…
this resource is almost half a decade old at this point, but there’s a glaring bug where ur camera clips through if you get too close to a wall
Leaving this here incase anyone wants a system similar to this, but with just a better view of the arm in first person mode. That was my use case.
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local camera = workspace.CurrentCamera
local function updateTransparency()
for _, part in pairs(character:GetChildren()) do
if part:IsA("BasePart") and (part.Name == "LeftLowerArm" or part.Name == "RightLowerArm")
or part.Name == "LeftUpperArm" or part.Name == "RightUpperArm" then
part.LocalTransparencyModifier = part.Transparency
end
end
end
local oldC0Left = nil
local oldC0Right = nil
local oldC0Waist = nil
local function updateTorsoAndArmsPosition()
-- Check if the camera is in first-person view
local isFirstPerson = (camera.CFrame.Position - camera.Focus.Position).Magnitude < 1
local leftShoulder = character:FindFirstChild("LeftUpperArm"):FindFirstChild("LeftShoulder")
local rightShoulder = character:FindFirstChild("RightUpperArm"):FindFirstChild("RightShoulder")
local torso = character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso")
local waistJoint = torso:WaitForChild("Waist")
if isFirstPerson then
if oldC0Waist == nil then
oldC0Waist = waistJoint.C0
oldC0Left = leftShoulder.C0
oldC0Right = rightShoulder.C0
end
local screenWidth = camera.ViewportSize.X
local offsetAmount = screenWidth / 1000 -- Adjust this divisor to control the horizontal offset
-- Calculate vertical rotation (pitch) only for the torso
local cameraPitch = camera.CFrame:ToEulerAnglesYXZ()
local torsoPitchRotation = CFrame.Angles(cameraPitch, 0, 0)
-- Adjust torso position and rotation based on camera pitch
waistJoint.C0 = CFrame.new(0, 0, 0) * torsoPitchRotation
-- Offset the arms horizontally, pivoted slightly outward for visibility
local outwardPivotAngle = math.rad(15)
-- Left Shoulder
leftShoulder.C0 = CFrame.new(-offsetAmount, -math.abs(cameraPitch), -1.5 * cameraPitch) * CFrame.Angles(0, outwardPivotAngle, 0)
-- Right Shoulder
rightShoulder.C0 = CFrame.new(offsetAmount, -math.abs(cameraPitch), -1.5 * cameraPitch) * CFrame.Angles(0, -outwardPivotAngle, 0)
else
if oldC0Left and oldC0Right then
--print'reset'
waistJoint.C0 = oldC0Waist;
leftShoulder.C0 = oldC0Left
rightShoulder.C0 = oldC0Right
oldC0Waist = nil
oldC0Left = nil
oldC0Right = nil
end
end
end
RunService.RenderStepped:Connect(updateTransparency)
RunService.RenderStepped:Connect(updateTorsoAndArmsPosition)
feel free to use in your own projects :^)