i bloody hope so, i’ve been waiting far too long for this
I think I got it figured out, although still need to clamp the movement velocity and adjust other things. Had to add a custom hitbox which sucks and makes friction act really strange. God I hope they figure out what they want to do with controller because it’s pretty painful to use to its full extent.
So does this mean that server physics be less choppy
how do you get access to the LuaCharacterController?
FFlagLuaCharacterControllerBetaFeature
great ty! ive been waiting for the ability to customize the character controller for a long time. im currently trying to make an implementation that mimics vanilla behavior but im uncertain about some things due to the documentations being incorrect/outdated
Yes, when I jump and rotate in the air, it’s not like the vanilla ones.
I’d really love to see a “TurnRigidityEnabled” added, basically making the turning act more like the default character controller as for example when turning on slippery surfaces you overshoot the facing direction, the amount you overshoot also changing based on how slippery the surface is.
This is especially annoying if you want to make a precise controller which needs the physics potential of the ControllerManager.
I’m able to replicate a similar issue with an AlignOrientation parented to the HRP of a humanoid NPC that’s constantly looking at their target. For some reason, either the NPC will fling itself/fling the player or begin wobbling around. The only solution tot his is to set BalanceRigidity to enabled but it will still fling you or itself whenever you run into it.
Additionally, I also encounter that the server forcefully steals NetworkOwnership from the player’s character whenever the NPC touches them and I believe that may be related to this issue
The only part that has mass and collisions is the HRP. Turning off AlignOrientation appears to fix the issue. I will attempt to make the NPC look at targets on the client which may fix the physics-related issues but I have a feeling it will cause nothing but more issues in the future.
Relevant code, ignore how this horrible loop is structured; it’s essential for other things not to break or desync (This is a sophisitcated A* pathfinding unit)
local dt = RunService.Heartbeat:Wait()
while dt do
if ded or not script.Enabled then break end
local align = boss.HumanoidRootPart:FindFirstChild("ThisIsYourFault") or Instance.new("AlignOrientation")
align.Name = "ThisIsYourFault"
align.Enabled = true
align.Attachment0 = boss.HumanoidRootPart.RootAttachment
align.RigidityEnabled = true
align.Parent = boss.HumanoidRootPart
---
if currentTarget and currentTarget.root and currentTarget.root:FindFirstChild("RootAttachment") then
align.Enabled = (currentTarget ~= nil and .currentTarget ~= "nil" and behaviour == "hostile")
local distance = (currentTarget.root.Position - rootPart.Position).Magnitude
align.Attachment1 = currentTarget.root.RootAttachment
align.Attachment1.WorldCFrame = CFrame.new(
boss.HumanoidRootPart.Position,
Vector3.new(currentTarget.root.Position.X,boss.HumanoidRootPart.Position.Y,currentTarget.root.Position.Z)
)
else
align.Enabled = false
end
dt = RunService.Heartbeat:Wait()
end
actual tragedy. we’re nearing 1 year on this property being added but never going live!
Engine changes are never a guarantee to be seen by the public.
I think what hurts the most is that it’s in the docs and it’s writeable, but doesn’t seem to actually connect to anything
Will there be an option to change how fast the controller aligns to the floor sensor? I can’t seem to change the speed currently and just collides with the ground when walking up slopes quickly.