manabar doesnt work

my mana doesnt regenerate and i dont know if my health regenerates because i haven’t made anything to make you lose health yet.

here is my script:

var lefthand : Transform;
var righthand : Transform;
var spell : GameObject;
var spell1 : GameObject;
var spell2 : GameObject;
var spell3 : GameObject;
var spell4 : GameObject;
var spell5 : GameObject;
var spell6 : GameObject;
var spell7 : GameObject;
var spell8 : GameObject;
var spell9 : GameObject;
var spell10 : GameObject;
var spell4u = 0;
var spell5u = 0;
var spell6u = 0;
var spell7u = 0;
var spell8u = 0;
var spell9u = 0;
var spell10u = 0;
var health = 100;
var mana = 100;
var dummy = 0;
var minusmana = 0;
var exp = 0;
var level = 0;
var maxHealth =100;
var maxmana =100;


function Start () {
spell = spell1;
Invoke("recharge", 0.1);
minusmana = 10;
}

function recharge () {
mana += 0.5;
health += 0.1;
Invoke("recharge", 0.1);
}

function manadown () {
mana -= minusmana;
}

function Update () {

maxHealth = level * 10 +100;
maxmana = level * 10 + 100;

if(Input.GetKeyDown("l")){
level += 1;
}
Debug.Log(level);


if(exp >= 100){
exp = 0;
level += 1;
}

if (mana >= maxHealth){
mana =  maxHealth;
}

if (health >= maxHealth){
health =  maxHealth;
}

if(Input.GetButtonDown("Fire1")){
if(mana >= minusmana){
Instantiate(spell, lefthand.position, lefthand.rotation);
Invoke("manadown",0);
}
}

if(Input.GetButtonDown("Fire2")){
if(mana >= minusmana){
Instantiate(spell, righthand.position, righthand.rotation);
Invoke("manadown",0);
}
}

if(Input.GetKeyDown("1")){
spell = spell1;
minusmana = 8;
}

if(Input.GetKeyDown("2")){
spell = spell2;
minusmana = 8;
}

if(Input.GetKeyDown("3")){
spell = spell3;
minusmana = 40;
}

if(Input.GetKeyDown("4")){
if(spell4u == 1);
spell = spell4;
minusmana = 10;
}

if(Input.GetKeyDown("5")){
if(spell5u == 1);
spell = spell5;
minusmana = 10;
}

if(Input.GetKeyDown("6")){
if(spell6u == 1);
spell = spell6;
minusmana = 10;
}

if(Input.GetKeyDown("7")){
if(spell7u == 1);
spell = spell7;
minusmana = 10;
}

if(Input.GetKeyDown("8")){
if(spell8u == 1);
spell = spell8;
minusmana = 10;
}

if(Input.GetKeyDown("9")){
if(spell9u == 1);
spell = spell9;
minusmana = 10;
}

if(Input.GetKeyDown("0")){
if(spell10u == 1);
spell = spell10;
minusmana = 10;
}
}

function OnGUI () {
GUI.color = Color.red;
  GUI.HorizontalScrollbar (Rect (Screen.width * 0.1, Screen.height * 0.85, maxHealth, 10), dummy, health, 0, maxHealth);
  GUI.color = Color.blue;
  GUI.HorizontalScrollbar (Rect (Screen.width * 0.1, Screen.height * 0.9, maxmana, 10), dummy, mana, 0, maxmana);
GUI.color = Color.yellow;
  GUI.HorizontalScrollbar (Rect (Screen.width * 0.1, Screen.height * 0.95, 180, 10), dummy, exp, 0, maxHealth);
}

From the looks of it, mana and health are implicitly set as integers. You can’t do stuff like + 0.1 with integers since they will round down to nearest integer.

Try changing your variables from

var health = 100;
var mana = 100;

to

var health : float = 100;
var mana : float = 100;

Also, you seem to have a typo. Can you spot it?

if (mana >= maxHealth) {
    mana = maxHealth;
}

I don’t understand why you have if-tests that doesn’t do anything. Are they placeholders for future code?

if (spell4u == 1);