[Release] Platformer character controller

Do you guys think this can still work, I also wonder if this can work on R6?

I will use this for my 2.5D game

Please tell me how im to small brain to know how to…

this didn’t work for me :frowning: still don’t see crouchidle and crouch run

can you tell me which controls the wall jump part?
tried to do it
and got a few errors


local function reflect(v, normal)
	return -2*v:Dot(normal)*normal + v;
end

function moveSet:wallJump()
	local hrpCF = self.hrp.CFrame;
	local ray = Ray.new(hrpCF * CFrame.new(0, self.hrp.Size.y/2, 0).p, 4*hrpCF.lookVector);
	local hit, pos, normal, material = game.Workspace:FindPartOnRay(ray, self.character);

	if not (self.isWallJumpActive and self._canWallJump and self:inAir() and hit and (not self._lastWall or self._lastWall:Dot(normal) < 0)) then
		return false;
	end

	self._isWallJumping = true;
	self._canWallJump = false;
	self._lastWall = normal;
	self._totalWallJumpCount = self._totalWallJumpCount + 1;

	self._jumpCount = 0;
	self:jump(false);

	local move = self.humanoid.MoveDirection;
	move = (move:Dot(move) > 0 and move:Dot(normal) < 0) and move or hrpCF.lookVector;
	self.humanControl:setMode(Enum.HumanoidControlType.Locked, reflect(move, normal));

	local count = self._totalWallJumpCount;
	delay(0.2, function()
		if (self._totalWallJumpCount == count) then
			self._isWallJumping = false;
			self._canWallJump = true;
			self.humanControl:setMode(Enum.HumanoidControlType.Default);
		end
	end)

	return true;
end

self._isWallJumping = false;
self._canWallJump = true;
self._lastWall = nil;
self._totalWallJumpCount = 0;

self.isWallJumpActive = true;

function moveSet:wallJump()
	local hrpCF = self.hrp.CFrame;
	local ray = Ray.new(hrpCF * CFrame.new(0, self.hrp.Size.y/2, 0).p, 4*hrpCF.lookVector);
	local hit, pos, normal, material = game.Workspace:FindPartOnRay(ray, self.character);

	if not (self.isWallJumpActive and self._canWallJump and self:inAir() and hit and (not self._lastWall or self._lastWall:Dot(normal) < 0)) then
		return false;
	end

I think the code misses documentation

You can show me Script pls if you want

Has anyone else experienced issues with high jump and long jump on Mac? Any of the moves that use Ctrl don’t seem to function for me.
ezgif.com-gif-maker (17)
As seen here, I was able to crouch, and if I jumped before pressing crouch, then held both Ctrl and Spacebar, I was able to high jump. Same thing happens with the long jump.

2 Likes

Speed Runners : If you execute a pixel perfect jump you can achieve a long jump ladder climb which boosts the climbing speed dramatically saving 5 seconds.

2 Likes

No, unless you configure the system then yes (if u can do it) .

maybe try changing the hip height on the avatar

I know this is older but if someone is available. Everything works If I transfer to a baseplate but if I transfer to one of my games nothing works, not even the footstep particles or tilt, only 1 error appears - I get this error. Any help is appreciated.

ReplicatedStorage.CustomMovement.PhysBall:67: attempt to index nil with 'WaitForChild' - Client - PhysBall:67

It says it can’t find a child of one script, are you sure you copied over everything exactly?

Yes I copied everything a few times to be sure but with same result. I also copied everything to a baseplate and seems to work fine. I assume that potentially another script counteracts the functionality of this maybe, or maybe has something to do with world settings.

This is very nice, i’m using it in my game… however out of nowhere it mysteriously stopped working, i tried re-importing it to my game but it just doesn’t work, i tried importing it to another game and it started working, and i was like… whaaat…? it started after i finished building a hotel, so i decided to delete the hotel just to see if it would work again, but it still doesn’t work, i looked at the developer Console and there was

ReplicatedStorage.CustomMovement.PhysBall:67: attempt to index nil with ‘WaitForChild’
Stack Begin
Script ‘ReplicatedStorage.CustomMovement.PhysBall’, Line 67 - function new
Script ‘ReplicatedStorage.CustomMovement.MoveSet’, Line 88 - function new
Script ‘Workspace.DevMaximun.MainControl’, Line 5
Stack End

I literally don’t know what’s going on, by the looks of it, it just doesn’t work in this game/place, is anyone having the same problem?

Are you sure you didn’t delete the chasis in serverstorage? Works fine for me

Nope, haven’t deleted it, i’m kind of sad that it doesn’t work, since its one of the coolest features in my game

oh my god guys i’m so sorry for bringing up this post again… i’m so sorry, i found out that Streaming Enabled will glitch the platformer controller…

2 Likes

I have this weird bug that happens in Studio but not in-game. In Studio, if I crouch without pressing WASD, I cannot move. This bug doesn’t happen when I try it in a published game.

Also, I had an issue with the high jump. Turns out, my character’s humanoid would have UseJumpPower set to false by default. I fixed this by creating a StarterHumanoid in StarterPlayer and set its UseJumpPower to true.

I switched the crouch button from left control to C and now it works in Studio. I guess pressing left control is doing something in Studio that causes it to ignore movement input?