[SOLVED] I have tried many different code options for sprinting,crouching, and gravity but none are working

Here is the code, please help me in any way you can.

var FirstPersonMovement = pc.createScript('firstPersonMovement');

//FPM code 

FirstPersonMovement.attributes.add('camera', {
    type: 'entity',
    description: 'Optional, assign a camera entity, otherwise one is created'
});

FirstPersonMovement.attributes.add('power', {
    type: 'number',
    default: 2500,
    description: 'Adjusts the speed of player movement'
});

FirstPersonMovement.attributes.add('powerRun', {
    type: 'number',
    default: 4000,
    description: 'Adjusts the speed of player running'
});

FirstPersonMovement.attributes.add('powerCrouching', {
    type: 'number',
    default: 1000,
    description: 'Adjusts the speed of player movement when crouching'
});


FirstPersonMovement.attributes.add('lookSpeed', {
    type: 'number',
    default: 0.25,
    description: 'Adjusts the sensitivity of looking'
});

// initialize code called once per entity
FirstPersonMovement.prototype.initialize = function() {
    this.force = new pc.Vec3();
    this.eulers = new pc.Vec3();
    
    var app = this.app;
    
    // Listen for mouse move events
    app.mouse.on("mousemove", this._onMouseMove, this);

    // when the mouse is clicked hide the cursor
    app.mouse.on("mousedown", function () {
        app.mouse.enablePointerLock();
    }, this);            

    // Check for required components
    if (!this.entity.collision) {
        console.error("First Person Movement script needs to have a 'collision' component");
    }

    if (!this.entity.rigidbody || this.entity.rigidbody.type !== pc.BODYTYPE_DYNAMIC) {
        console.error("First Person Movement script needs to have a DYNAMIC 'rigidbody' component");
    }

    if (this.app.keyboard.on(pc.KEY_SPACE)) {
        this.entity.rigidbody.BODYTYPE_DYNAMIC.applyImpulse(0, 100, 0);
    }

    if (this.app.keyboard.off(pc.KEY_SPACE)) { 
        this.entity.rigidbody.BODYTYPE_DYNAMIC.applyImpulse(0, -75, 0);

    }

    his.playerHeightCrouching = this.playerCollisionLower.collision.height;

};

// update code called every frame
FirstPersonMovement.prototype.update = function(dt) {
    // If a camera isn't assigned from the Editor, create one
    if (!this.camera) {
        this._createCamera();
    }
    
    var force = this.force;
    var app = this.app;

    // Get camera directions to determine movement directions
    var forward = this.camera.forward;
    var right = this.camera.right;
       

    // movement
    var x = 0;
    var z = 0;

    // Use W-A-S-D keys to move player
    // Check for key presses
    if (app.keyboard.isPressed(pc.KEY_A) || app.keyboard.isPressed(pc.KEY_Q)) {
        x -= right.x;
        z -= right.z;
    }

    if (app.keyboard.isPressed(pc.KEY_D)) {
        x += right.x;
        z += right.z;
    }

    if (app.keyboard.isPressed(pc.KEY_W)) {
        x += forward.x;
        z += forward.z;
    }

    if (app.keyboard.isPressed(pc.KEY_S)) {
        x -= forward.x;
        z -= forward.z;
    }

    if (app.keyboard.on(pc.KEY_SHIFT)) {
        
        x += forward.x;
        z += forward.z;

        power = powerRun;

        playerRunning = true;

       
  
    }
    
    if (app.keyboard.off(pc.KEY_SHIFT)) {
        
        

     playerRunning = false;


    }

    if (app.keyboard.on(pc.KEY_C)) {
        this.playerCrouching = true;
    }

    if (app.keyboard.off(pc.KEY_C)) {
        this.playerCrouching = false;

    }

    // use direction from keypresses to apply a force to the character
    if (x !== 0 || z !== 0) {
        force.set(x, 0, z).normalize().scale(this.power);
        this.entity.rigidbody.applyForce(force);
    }

    // update camera angle from mouse events
    this.camera.setLocalEulerAngles(this.eulers.y, this.eulers.x, 0);
};

FirstPersonMovement.prototype._onMouseMove = function (e) {
    // If pointer is disabled
    // If the left mouse button is down update the camera from mouse movement
    if (pc.Mouse.isPointerLocked() || e.buttons[0]) {
        this.eulers.x -= this.lookSpeed * e.dx;
        this.eulers.y -= this.lookSpeed * e.dy;
    }            
};

FirstPersonMovement.prototype._createCamera = function () {
    // If user hasn't assigned a camera, create a new one
    this.camera = new pc.Entity();
    this.camera.setName("First Person Camera");
    this.camera.addComponent("camera");
    this.entity.addChild(this.camera);
    this.camera.translateLocal(0, 0.5, 0);
};

// initialize code called once per entity
FirstPersonMovement.prototype.initialize = function() {
    this.timer = 0;
}   

I know there is a lot of code, but I am desperate.

That is very simple, all you have to do is set your height to 1 go down to collision, and set your height to the height desired. Then for gravity, go to setting (in the top left corner) and go to gravity, click the middle section, and type -100. For crouching put if

(app.keyboard.isPressed(pc.KEY_C)) {
this.entity.collision.height = 1;
}
else {
this.entity.collision.height = 2;
}

Dude, we can’t use the C key because I have that set to crouching. I thought you knew this.

Oh wait nvm didnt read past C

Anymore Questions?

But i found that you can use on and off instead of ispressed.
I also fixed jump and am working on sprint.

What ever you feel is best is what you should use.