(SOLVED) How does Roblox Evade do their Character Controller?

Evade :roblox_light:

is a Roblox game where you run away from AI pathfinding images called Nextbots. You are equipped with the ability to bhop/bunnyhop or repeatedly jump to gain extra speed in order to escape the nextbots.

ANY HELP IS APPRECIATED.

(this is my first topic it might be sloppy)
(pls inform me if i’m doing anything wrong)

My question about Evade’s Character Controller.

I have been searching around a little bit about evade and character controllers. My question is what method Evade used to make their character controller. I’d like to figure out a way so I don’t need to reprogram everything, and I want something similar to Evade.

(I recommend playing legacy evade or watching pre-overhaul evade gameplay to get a feel of what i’m going for.)

Do they use humanoids?

Edit: Yes, they do. Check Update #3

Humanoids have convenient events such as

Humanoid.HealthChanged,
Humanoid.Died
Humanoid.StateChanged
Humanoid.Jumping

They also have FloorMaterial and MoveDirection. However, if Evade somehow doesn’t use humanoids, then I’d like to also make my system without humanoids, as they can cause a bunch of glitches.

Simpler Collision

In evade, collision is handled with presumably, these red cylinders seen in their nextbots.


No matter what y-orientation a wall is, your character is always the same distance away from it, which is why I think evade uses a Cylinder for the player’s character, but I would like to know if they even use humanoids.

Secure System

I’d also like to protect my character controller system as Evade seems to be very secure unlike other unfortunate games like Nico’s Nextbots :roblox_light:, who had their systems leaked.

In summary,

How could I make a custom character controller that doesn’t glitch out? I’d like something similar to evade, but I’ll code in the velocity evade just uses Quake’s physics (tutorial on youtube). I’d also want this system to be more hard-coded but simple. I don’t really want to use roblox’s built in character controller and floor detector or their physics character because i want full control over the system.

Other pictures

Pictures


from Evade Wiki and Kaebi on youtube

Thank you again for your time.

:orange_circle: UPDATE # 1:

Update #1

I came across a post from an actual Evade developer. Evade NPCs DO use humanoids (Rebels & Nextbots). The dev is in Evade’s Development team as a Main Developer.

I’d expect them to use humanoids in characters too if they used it in the NPCs as its sensible to reuse character controller systems. However, I’d still appreciate help on how Evade built their characters.

  • Does the hitbox contain the humanoid or the rig?

  • If the humanoid is in the rig, then how could I translate Humanoid:Move into the hitbox’s velocity?

  • How would I go about “Disabling the humanoid”? (something ive heard you can do)

:orange_circle: UPDATE # 2:

"Update #2

Made a quick video over a couple features to help understand Evade’s system
youtube video
I’ve added numbers at the top right for easier navigation

  1. Humanoid Water Jumping
  2. Wall Strafing is of the Movement System
  3. probably humanoids
  4. AlignPos Ladders??
  5. Collision Box in Action

The Collision Box is just impossible by using the default humanoid root part
so it definitely has something else welded or cframed
humanoidrootpart

custom torso movement

Also here’s a visualization of one of the console errors.

Edit: This is actually incorrect as it says "not a valid member of Model.

:orange_circle: UPDATE # 3:

"Update #3

Yes. Evade uses humanoids.
I got this by spamming the f, 2, and o keys while the game loads a new map and spawns the players in.

5 Likes

could u by any chance link the post u ran into?

anyway, after a quick 30 minute google search on ‘bunny-boppy(?)’ movement, i’m assuming they’re using a ‘collision hitbox’ to manage player movement. they likely clone this hitbox and apply velocity based on the direction the player’s humanoid is moving. (using a hitbox also makes air strafing much easier to manage) then, they probably set the CFrame of the actual character to match the hitbox. this might also explain the constant shift-lock in third-person mode. i’m sure the implementation is much more complex, but that’s my educated guess.

1 Like

Thanks for your reply.
Here’s the post.

I agree with you, i think quake (the game evade is inspired by) also uses a collision hitbox. It would make a bunch of their systems easier.

In Evade, when you emote that lets you walk around, the camera is unlocked, so i think that the constant shiftlock was just a stylistic choice. Some games like quake don’t let your freely move your camera around in third-person.

I have forgotten about the toolbox models…

I was able to reconstruct a couple pieces to how Evade would look in studio, but there’s only so many resources. Right now, I’m working on seeing how they did security, viewmodels, and weapons.

Their security might just be a bunch of modules just referencing each other from what I’ve seen in the console errors, or maybe script decompiling got patched just in time for Evade.

The viewmodels and weapons are very confusing though. I can’t tell if each tool viewmodel is a different model or if it’s the same sprint viewmodel. Weapons are also an entire custom system using models instead of tools, so if anyone has anything on this topic, please reply.

1 Like

Ok so more info,

It is quite complex.
Basically, modules. Lots and lots of modules.

I’ve found a file… that is probably stolen, which I will only use for education, and I will not circulate it or anything.

Basically, Evade has like, everything stored in modules.

Things are sorted in folder categories and then each item in module scripts. These modules seem to act as their own custom instance. The modules probably have the properties, and the children are the linked assets. Then there is a starter character, which proves the humanoid (:partying_face:)
and custom tool/weapon system.

I am so awfully amazed on the complexity and yet simplicity of it. The developers have followed like every game rule. Organized, using module scripts to basically make your own kind of instance, and local and server work is split for the best efficiency.

The Character Controller

A starter character with a capsule-shaped HumanoidRootpart hitbox, a custom rig, and a humanoid. The movement is a still unsolved as there is only a couple events and a module called “Movement”. It’s unclear if Evade uses anything like LinearVelocity or if they just edit the built-in AssemblyLinearVelocity, but I mean that’s it.

The weapon system is just a model imported into the character and then welded with a motor6d. There are also first person and third person events to control the viewmodel and character model of the weapon.

End of the topic? :star:

Now I don’t have the scripts, but it’s okay. I mean, I’ve got all the information I wanted. I’m probably just going to start making my own system accustom to my own liking. I still appreciate extra info though, thank you.

I guess this is the end of the topic then. Thank you to those who contributed (crossfade and the 4 likes lol)

This was meant for a future project so I don’t expect much activity here anymore. I’ll still leave it open though, as discussion or something

Feel free to ask me any questions. :thought_balloon:

I may take a while, and my answers might not always be accurate to what the devs actually intend for Evade.

4 Likes

Love this deep investigation. This is a great resource.