• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Dbugg error Query: Update 'players' ... ... .... "Out of range value for column 'experience' at row 1

Joriku

Working in the mines, need something?
Joined
Jul 16, 2016
Messages
1,107
Solutions
15
Reaction score
393
Location
Sweden
YouTube
Joriku
Why may couse this to happen at death?
571991c073e74fed87dcf0d975f40d2f.png


Spawned right back where I we're hunting..
781dff31155e223c1fdcf98dd9a0049e.png


Dbugg msg in client if helpful.
fe41d94a2ba028da43b19cc1243bc3db.png

cb618b5d71c1812477fcb4807345fc06.png


Last row on dbugg,
Experience value underflow.
 
Last edited:
Out of range value
This means that value You are trying to insert into 'experience' is out of your variable type range, actually it is bigger than bigint so I would recommend You to change experience multipliers to lower, implement reborn system or something like that.
 
This means that value You are trying to insert into 'experience' is out of your variable type range, actually it is bigger than bigint so I would recommend You to change experience multipliers to lower, implement reborn system or something like that.
Iam doing a high exp server where you exp on players.
Anyway to change it?
Here's the config.
experienceStages = true
experienceByKillingPlayers = "yes"
rateExperienceFromPlayers = 50
rateExp = 5
rateSkill = 22
rateLoot = 2.5
rateMagic = 8
rateSpawn = 1

Exp stages,
<?xml version="1.0" encoding="UTF-8"?>
<stages>
<world id="0" multiplier="1">
<stage minlevel="1" maxlevel="40000" multiplier="300000" />
<stage minlevel="40001" maxlevel="50000" multiplier="200000" />
<stage minlevel="50001" maxlevel="80000" multiplier="190000" />
<stage minlevel="80001" maxlevel="120000" multiplier="100000" />
<stage minlevel="120001" maxlevel="160000" multiplier="50000" />
<stage minlevel="160001" maxlevel="100000" multiplier="40000" />
<stage minlevel="100001" maxlevel="200000" multiplier="30000" />
<stage minlevel="200001" multiplier="1" />
</world>
</stages>
 
Limit is lying on database side, unsinged bigint is largest (2^64 - 1) integer type available. You should either rework experience (scale it down) or introduce something like reborn system.
 
Limit is lying on database side, unsinged bigint is largest (2^64 - 1) integer type available. You should either rework experience (scale it down) or introduce something like reborn system.
Actually the positive value limit is probably (2^63 - 1) because TFS programmers forgot to make experience save as unsigned bigint so it saves as signed(since TFS use uint64_t it wouldn't overflow for unsigned bigint right?), there's also the same problem with manaspent value but it is even bigger as it gets saved as unsigned int(2^32 - 1) while the value is declared as uint64_t.
You can try these queries in mysql:
Code:
ALTER TABLE `players` CHANGE `manaspent` `manaspent` bigint(20) unsigned NOT NULL DEFAULT '0'
ALTER TABLE `players` CHANGE `experience` `experience` bigint(20) unsigned NOT NULL DEFAULT '0'
 
Actually the positive value limit is probably (2^63 - 1) because TFS programmers forgot to make experience save as unsigned bigint so it saves as signed(since TFS use uint64_t it wouldn't overflow for unsigned bigint right?), there's also the same problem with manaspent value but it is even bigger as it gets saved as unsigned int(2^32 - 1) while the value is declared as uint64_t.
You can try these queries in mysql:
Code:
ALTER TABLE `players` CHANGE `manaspent` `manaspent` bigint(20) unsigned NOT NULL DEFAULT '0'
ALTER TABLE `players` CHANGE `experience` `experience` bigint(20) unsigned NOT NULL DEFAULT '0'
Sadly, Experience is not working..

Nevermind. Just doing one a time solved it..
Iam too fast tying out for help instead of just checking the error lol..

It sadly did not work by updating that. Gyazo (https://gyazo.com/d43440556f94a47f5dc08ef0f76be031)
I did die tho, lost blessings and spawned at temple but still dbugging. (getting no error in console.)
467631e816efdc76a3295a5662a98df2.png


changed this
using OTServBr-Global
if this helps.

Btw, how do you screen the console?
file is called TFS but cannot do.
screen -x tfs / screen -x ./tfs
screen -r tfs / screen -r ./tfs
 
Last edited:
Btw, how do you screen the console?
file is called TFS but cannot do.
screen -x tfs / screen -x ./tfs
screen -r tfs / screen -r ./tfs

When you are inside folder with tfs:
screen ./tfs
When you are not inside folder, first argument is path to tfs. Use screen -r PID to load screen, and screen -ls to view list of PIDs
 
You have too high experience rate, you are breaking the limits of the engine/game.

Decrease the experience rate. I suggest somewhere between 1-100x exp rate.
If you want super high levels, instead of using super high experience multiplier, decrease the experience required per level.
(Like MasterCores, 200 xp = level 8, instead of 4200 xp).

The server will also run significantly better and lag less if there is less math computation needed, so you can get the same effect you have now in a more effective and better way.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<stages>
<world id="0" multiplier="1">
<stage minlevel="1" maxlevel="40000" multiplier="30" />
<stage minlevel="40001" maxlevel="50000" multiplier="20" />
<stage minlevel="50001" maxlevel="80000" multiplier="19" />
<stage minlevel="80001" maxlevel="120000" multiplier="10" />
<stage minlevel="120001" maxlevel="160000" multiplier="5" />
<stage minlevel="160001" maxlevel="100000" multiplier="4" />
<stage minlevel="100001" maxlevel="200000" multiplier="3" />
<stage minlevel="200001" multiplier="1" />
</world>
</stages>

And reduce experience table / 10 000

To gain the same progression as your current stages.
 
Last edited:
You have too high experience rate, you are breaking the limits of the engine/game.

Decrease the experience rate. I suggest somewhere between 1-100x exp rate.
If you want super high levels, instead of using super high experience multiplier, decrease the experience required per level.
(Like MasterCores, 200 xp = level 8, instead of 4200 xp).

The server will also run significantly better and lag less if there is less math computation needed, so you can get the same effect you have now in a more effective and better way.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<stages>
<world id="0" multiplier="1">
<stage minlevel="1" maxlevel="40000" multiplier="30" />
<stage minlevel="40001" maxlevel="50000" multiplier="20" />
<stage minlevel="50001" maxlevel="80000" multiplier="19" />
<stage minlevel="80001" maxlevel="120000" multiplier="10" />
<stage minlevel="120001" maxlevel="160000" multiplier="5" />
<stage minlevel="160001" maxlevel="100000" multiplier="4" />
<stage minlevel="100001" maxlevel="200000" multiplier="3" />
<stage minlevel="200001" multiplier="1" />
</world>
</stages>

And reduce experience table / 10 000

To gain the same progression as your current stages.
Thank you, going to test it as soon as I got the acc maker work.
 
You have too high experience rate, you are breaking the limits of the engine/game.

Decrease the experience rate. I suggest somewhere between 1-100x exp rate.
If you want super high levels, instead of using super high experience multiplier, decrease the experience required per level.
(Like MasterCores, 200 xp = level 8, instead of 4200 xp).

The server will also run significantly better and lag less if there is less math computation needed, so you can get the same effect you have now in a more effective and better way.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<stages>
<world id="0" multiplier="1">
<stage minlevel="1" maxlevel="40000" multiplier="30" />
<stage minlevel="40001" maxlevel="50000" multiplier="20" />
<stage minlevel="50001" maxlevel="80000" multiplier="19" />
<stage minlevel="80001" maxlevel="120000" multiplier="10" />
<stage minlevel="120001" maxlevel="160000" multiplier="5" />
<stage minlevel="160001" maxlevel="100000" multiplier="4" />
<stage minlevel="100001" maxlevel="200000" multiplier="3" />
<stage minlevel="200001" multiplier="1" />
</world>
</stages>

And reduce experience table / 10 000

To gain the same progression as your current stages.
Sadly, did not work..
d02b443d2871133bdd0791d992efae36.png
 
Because those players accumulated their experience points before the experience table was reduced, you need to do a query that reduces their experience by 10 000 as well to align with the new experience table values.

SQL:
UPDATE `players` SET `experience` = `experience` / 10000;
 
Because those players accumulated their experience points before the experience table was reduced, you need to do a query that reduces their experience by 10 000 as well to align with the new experience table values.

SQL:
UPDATE `players` SET `experience` = `experience` / 10000;
got sort of the same..
9ef2e6f65994dcae2424b9581d62b7c2.png

95d3a1cc15d785d7355dbe0a4b984580.png
 
Back
Top