Quick links: [Forum] [Download] [Signatures] [Clues] [Skills] [Combat] [RuneScape Prices]

# RuneScape Guides

## Experience formula

Here is the formula in equation form where L is the level you're calculating for (thanks LordElric):

The original program has been written in Python by Slowbyte. JavaScript version written by Sir T Bone. It should be easy to change this program to output the levels differently for use in other programming languages, etc. The formula is not guaranteed to be accurate.You can view the source code in JavaScript, Python, MS Excel, PHP.and Visual Basic.

You need to be able to run JavaScript to see the output of this program. The formula doesn't mean much above level 100, because level 99 is the highest level allowed inRuneScape.

### JavaScript version

The following code is used above to generate the experience table:

`<SCRIPT LANGUAGE="JavaScript"><!--document.close();document.open();document.writeln('Begin JavaScript output:');document.writeln('<PRE>');points = 0;output = 0;minlevel = 2; // first level to displaymaxlevel = 200; // last level to displayfor (lvl = 1; lvl <= maxlevel; lvl++){  points += Math.floor(lvl + 300 * Math.pow(2, lvl / 7.));  if (lvl >= minlevel)    document.writeln('Level ' + (lvl) + ' - ' + output + ' xp');  output = Math.floor(points / 4);}document.writeln('</PRE>');document.close();// --></SCRIPT>`

### Python version

This is the very original code by Slowbyte:

`points = 0for level in range(1,100):diff = int(level + 300 * math.pow(2, float(level)/7) )points += diffstr = "Level %d = %d" % (level + 1, points / 4)print str`

### MS Excel formula

MS Excel version by Mugol:

`Cell A1: 1Cell B1 formula: =ROUND.DOWN(A1+300*POWER(2;A1/7);0)/4Cell A2: 2Cell B2 formula: =B1+ROUND.DOWN(A2+300*POWER(2;A2/7);0)/4Fill the rest of the first column with numbers 3, 4, ...Copy B2 field formula down.`

### PHP version

PHP version by Gazza (aka Jargon on RS)

`<?phpfunction experience(\$L) {  \$a=0;  for(\$x=1; \$x<\$L; \$x++) {    \$a += floor(\$x+300*pow(2, (\$x/7)));  }  return floor(\$a/4);}for(\$L=1;\$L<100;\$L++) {  echo 'Level '.\$L.': '.experience(\$L).'<br />';}?>`

### Visual Basic version

`Public Function experience(ByVal lvl As Integer)  Dim a As Long  Dim x As Integer  For x = 1 To lvl    a = a + Int(x + 300 * (2 ^ (x / 7)))  Next x  experience = roundDown(a / 4)End Function`

Source: RSDemon Online,RSDemon Community

Copyright (C) 2003-2007 Mirek Wojtowicz a.k.a. Avador a.k.a. Mugol
[RSDemon Online]   [RSDemon Community]    [Mirek's home]

Runescape™ is a trademark of Jagex Software (C) 2000-2007 Andrew Gower and Jagex, Ltd.