My first thought is, if you're going to 40, go to 50 - there are a few places in the code where the MAX_STAT x 4 = 100, and it will be an easier fix if you just have to change the "2" to a "4". :)
Secondly, there are tables in const.c that convert the stats to values, and this is what really matters. If you just double (assuming you're using 50 as a max) the stat side and spread the values out, there won't be much change. You'll just have 'finer grained' stats. If, however, you continue the tables beyond 25 and increase the values proportionately, then you'll have some balance problems. Big ones. And they'll get worse as the levels rise. You'll have to come up with a way for the mobs to fight back and have a chance, and you'll have to tweak the stat values to get the classes equal again at the high levels. So, I think the reason behind the change has to be carefully considered to you get the effect you want. A related problem is, "How soon do the players max their stats?". This often becomes an issue when the max levels are increased - players will still max all their by level 20, and have 180 levels left with no advancement. Trouble is, if you just slow down the stat increase (like, only give Trains on even levels) you'll have Warriors without the STR to kill the Drow, while your Mages will be flipping them off with burning hands. Again, balance. HTH, Sandi

