Leveling system issue - Skills do not have an effect

I am trying to make players’ speed/jump height change depending on your skills. But it appears to have no effect no matter what numbers I change it to. Keep in mind I am using darkrp so that MIGHT be overriding the changing of the players’ ‘stats’. However, I used to have a skill system that worked upon players’ each spawn, and this appears to do the same thing but doesn’t work.

The new skill system that DOESN’T affect the players’ speed/jump (works for hp and armor)


function Player:ST_SetSkills()

		timer.Simple( 0.1,
		function()
			self:SetHealth(self:Health() + self.ST_Skills[3].Value * 10)
			self:SetRunSpeed(PlayerRunSpeed + self.ST_Skills[2].Value * 200)
			self:SetJumpPower(PlayerJumpHeight + self.ST_Skills[1].Value * 200)
			self:SetArmor(self:Armor() + self.ST_Skills[4].Value * 10)
		end)

end


The OLD system that worked but is not currently compatible with the new system



-- Start Spawn Functions
function EXPSetVarsOnSpawn(pl)
        if pl:GetNWInt("Skill_HP", 0) >= 1 then
                        pl:SetMaxHealth(100 + MaxHpGain*self.ST_Skills[3].Value * 10))
                        pl:SetHealth(pl:GetMaxHealth())
        end
        if pl:GetNWInt("Skill_ARMOR", 0) >= 1 then
                        pl:SetArmor(0 + MaxArmorGain*pl:GetNWInt("Skill_ARMOR"))
                        pl.MaxArmor = (100 + MaxArmorGain*pl:GetNWInt("Skill_ARMOR"))
                else
                        pl.MaxArmor = 100
                end
                if pl:GetNWInt("Skill_REGEN", 0) >= 1 then
                        pl.RegTime = (RegTimeVar*pl:GetNWInt("Skill_REGEN"))
                else
                        pl.RegTime = 0
                end
                if pl:GetNWInt("Skill_ARMREGEN", 0) >= 1 then
                        pl.RegArmTime = (RegArmTimeVar*pl:GetNWInt("Skill_ARMREGEN"))
                else
                        pl.RegArmTime = 0
                end
                if pl:GetNWInt("Skill_JUMP", 0) >= 1 then
                        pl:SetJumpPower(160 + JumpPowerVar*pl:GetNWInt("Skill_JUMP"))
                end
                if pl:GetNWInt("Skill_RESISTANCE", 0) >= 1 then
                         pl.Resistance = (1 - ResistanceVar*pl:GetNWInt("Skill_RESIST"))
                else
                         pl.Resistance = 1
                end

                if pl:GetNWInt("Skill_SPEED", 0) >= 1 then
                         pl.Resistance = (1 - ResistanceVar*pl:GetNWInt("Skill_SPEED"))
                        pl:SetWalkSpeed(150 + pl:GetNWInt("Skill_SPEED") * 5 )
                         pl:SetRunSpeed(250 + pl:GetNWInt("Skill_SPEED") * 5 )
                end
end
hook.Add( "PlayerLoadout", "Set Vars On Spawn", EXPSetVarsOnSpawn )
-- End Spawn Functions


If someone can point out another way how to do it and make it work, or point out any solutions/fixes that would be great. Thank you for reading and hopefully thank you in advanced.