You can find it in db/(pre or re)/homunculus_db.txt
// Structure of Database:
// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)
Where gn = min.bonus and gx = max.bonus
gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK
When homuncul take a new level, server calculate random stat.bonus:
growth_max_hp = rnd_value(min->HP, max->HP);
growth_max_sp = rnd_value(min->SP, max->SP);
growth_str = rnd_value(min->str, max->str);
growth_agi = rnd_value(min->agi, max->agi);
growth_vit = rnd_value(min->vit, max->vit);
growth_dex = rnd_value(min->dex, max->dex);
growth_int = rnd_value(min->int_,max->int_);
growth_luk = rnd_value(min->luk, max->luk);
exemple for 1>2 lvl:
6001,6009,Lif,537,60000,0,1,7,0,700,150 base homuncul HP at 1 lvl,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,800,2400,220,480,10,30,10,30,20,40,30,50,20,50,10,30 current HP + rand(min.bonus ~ max.bonus)
150 + rand (60 ~ 100)