Yo! So I’m basically trying to recreate the old Roblox physics(especially the climbing physics) from 2008-2009 but I don’t really have any idea where to start. If anyone could please help me or give me support on what I could possibly do to emulate it I would appreciate it. (English isn’t my mother language btw so sorry if anything sounds a bit wrong)
A few things you’d have to consider are:
- All players have a
nilNetworkOwner. This makes them have quite a bit of latency, but it is realistic. - All of the limbs have collision.
- The physics engine is COMPLETELY different.
So,
- Set the NetworkOwner of all characters to the server, and make sure they stay that way.
- Add a collider in every limb.
- And, for the physics, this is pretty much almost impossible, however you can get away with it using a few hacks. I’m not sure how, though you can compare the old client to the new one.
iirc that used spring physics? its mostly compatible with PGS minus it having more give so part collisions and everything like that should be almost the same
you’d just need to do a few weird things for characters though as modern characters are handled completely differently:
- server-side movement. you send all key presses to the server and it handles them
- completely custom character controller (you need to disable most character states)
- find a way to simulate the “give” old physics had. i think you can repurpose a corner clip reimplementation for that on players.
if you need to do things with cars youll need to do the following:
- replace the hinge joints with constraint + spring and all glue joints with just a very tight spring (will need a decent bit of scriptiong)
I tried using the custom character controller solution but it would never work properly. Is there anyway I could modify the default one or is the only solution a custom character controller?
Did you even try that?
If that doesn’t work for you, every step, set cancollide on all limbs to true and add forces using applyimpulse though it might not work very well.
I tried making a custom character controller using the new physics controller thing but the animations never worked and I don’t know if I could use it either way because I need to be able to use Humanoid:MoveTo() for the green disk later on. ![]()
You can simply implement that logic yourself somewhere. MoveTo is functionally deprecated anyways and does not behave the same as it used to. Move, however, lets you implement your own logic, and if it’s not working, you’ll need to implement custom logic into the controller.
What animations? You mean changing the DesiredAngle of Motor did not work?
Roblox, in 2008, didn’t have any animations anyways.
Yeah because even if I set the HumanoidState on the server it still wouldn’t work correctly.
Ok that’s fair.
Well, it did, by changing the DesiredAngle of the Motor6Ds under Torso. But I’m not sure if you can really call those “animations”, it’s just basic motor rotation
I mean that technically IS animation. By definition animation is the process of creating the illusion of movement.
I can’t seem to get the new Humanoid Physics Controllers to work at all. Odd.
So, yeah. Delete the Humanoid, like I said earlier, and do everything yourself. It can’t be that hard, can it?
Wouldn’t it make more sense to just turn off EvaluateStateMachine on the Humanoid than to delete it entirely?
Yes, you can, but you probably would also need to set it to R15 so that it doesn’t automatically mesh the limbs.
Or create a BlockMesh/SpecialMesh (with MeshType set to Brick) under all limbs, that’s what I do
How will Shirts work? Or did they not even exist back then?
I am pretty sure shirts only existed after Humanoids got bevels
Quick question is it possible to make a character controller for only a specific state or do I have to turn off all other states via EvaluateStateMachine?
You may be able to disable certain states of the humanoid.
Humanoid:SetStateEnabled()
Humanoid:ChangeState()
Look those up in the documentation.
Ok so I tried doing that and added a controller for climbing but this keeps happening.
That’s a good start. How is the controller implemented?