Rigidbody and Time.deltaTime

void FixedUpdate () {

	ApplyFrictionExp();
	
	if(Controller != null && Controller.isKinematic == false) {
		Controller.velocity = Velocity * Time.deltaTime;
	}
	
	if(Velocity.x == 0 && Velocity.y == 0)
	{
		Controller.isKinematic = true;	
	}
	else
	{
		Controller.isKinematic = false;	
	}
}

This is the code im using, might not be the best but…
My problem is for one, the velocity is massively slow since adding this, another problem is even after upping the amount that im adding the the Velocity varaible it still seems innacurate when switching graphic settings?

protected void ApplyJumpLogic() {
	if(CurrentJumps > 0)
	{
		if(Input.GetKeyDown(KeyCode.Space))
		{
			CurrentJumps--;
			Velocity.y = Jump;
		}
	}
}

Jump Code ^

protected void ApplyMovementLogic() {
	if(Input.GetKey(KeyCode.RightArrow))
		{
			Velocity.x += Speed;
			AttackDirection = Direction.Right;
			HorizontalAttackDirection = HorizontalDirection.Right;
				
		}
		else if(Input.GetKey(KeyCode.LeftArrow))
		{
			Velocity.x -= Speed;	
			AttackDirection = Direction.Left;
			HorizontalAttackDirection = HorizontalDirection.Left;	
		
		}
		else if(Input.GetKey(KeyCode.UpArrow))
		{
			AttackDirection = Direction.Up;
				
		}
		else if(Input.GetKey(KeyCode.DownArrow))
		{
			AttackDirection = Direction.Down;
				
		}
}

Movement Code ^

protected void ApplyGravity() {
	Velocity.y -= Gravity;	
}

Gravity Code ^

protected void ApplyFrictionExp() {
	if(Velocity.x >= 0.1 || Velocity.x <= -0.1)
	{
		Velocity.x *= FrictionExp;
	}
	else
	{
		Velocity.x = 0;	
	}
	
	Velocity.y = Mathf.Clamp(Velocity.y, -MaxFallSpeed, Velocity.y);
}

Friction Code ^

I’m not sure why you feel the need to multiply rigidbody.Velocity by Time.deltaTime. This is pretty much guaranteed to have strange results, because it will make your objects move faster when the framerate is low, and slower when the framerate is high! In this case, you should only be multiplying the value by Time.deltaTime in two cases:

1: When trying to model a velocity in terms of distance moved-

transform.Translate(velocity * Time.deltaTime);

2: When trying to model acelleration-

velocity += acelleration * Time.deltaTime;

In your case, you are doing neither- you are directly setting the velocity, and this causes your problem.

What are you trying to do? Hard to diagnose a problem that hasn’t been described.

Time.deltaTime is generally useful for values you want to change over time. It looks like you’re setting approximately the same velocity on every frame.

    void FixedUpdate()
    {
        //increase x by 5 units per second
        x += 5f * Time.deltaTime;

        //this does NOT increase y by 5 units per second
        //instead, it just sets y to a very small value
        //notice the key difference between "+=" and "+" operators
        y = 5f * Time.deltaTime;
    }

Depending on what exactly you’re trying to do, you may instead want to translate your object manually, or try calling AddForce() on your rigidbody.