Tree of Savior Forum

FPS Optimizations

After a few hours messing around with many, many settings trying to improve FPS and diminish stuttering I decided to compile a few changes I think makes a decent difference in FPS to help others.

There are a lot of options which you cannot change directly in the game in the file user.xml, located at C:/Program Files (x86)/Steam/steamapps/common/TreeOfSavior/release/user.xml

Open it in notepad and use wordwrap (Format -> Word Wrap). Also try these changes one by one, saving and opening tree of savior because some of them may cause weird errors, and you should revert if so. Some interesting options are:

Resolution mode: if set to “0”, will make the game in true full screen. Which adds quite a bit of FPS, but you won’t be able to alt-tab out of it :frowning:

DrawActorPersent: the number of characters draw in the screen at any given time. Includes NPCs as well as other players. It helps a lot with crowded places such as Klaipedia. I set mine to 20, which helps a little with FPS but doesn’t makes many chars disappear. I actually don’t think my computer can handle the original amount which is 99! But the biggest issue doesn’t seems to be character rendering, but receiving network packets of what other players are doing, which this setting does not fix.

DrawMonsterPersent: the same thing but for monster. Needs to be higher than DrawActorPersent since you usually wanna see more monsters. Limiting it also helps in huge respawn areas that can lag you for seconds. I’ve changed this to 30, but haven’t tested it fully on areas with many enemies.

BitPerPixel: basically the color depth of each pixel. More bits means a bigger color palette, but at the cost at of lower FPS. Several people commented that changing this value to 16 makes it faster without any noticeable difference. This setting may not work on Hi-Definition monitors (myself included), which usually can only be set to 32 or 64. Lower resolution monitors may support 8, 16, 24 and 32.

UseFastLoading=“1” may make maps load faster? It seems to but I’m not entirely sure does anything.

Also changing your resolution width and height to something lower than your native resolution works well. But do mantain the proportion between height and width, or else things will be weird.

If available, also set VSync to Adaptative for you GPU set to on, which results in less stutter. There’s no such options in game, but you may be able to force it on your GPU control panel. For nvidia cards, this can be found opening the Control Panel -> Manage 3D settings -> Program Settings tab -> add or select tos client (in the same folder as user.xml above) -> set vertival sync to Adaptive. Also since you’re already there turn every other setting to off, and select prefer maximum perfomance in power management mode (to make sure ToS will use your discrete graphics card instead of the onboard one)

Regarding the spam issues… The game uses TCP connections and seems to do a poor job optimizing how packets are received and processed. This results in global chat actually stuttering the screen. There are 2 fixes at the moment right now (which aren’t simply hide the chat which does nothing), one which disables all chat using a windows firewall rule (which is installed by defatult on all computers and could be considered less of an exploit), and the other by installing a third party software which selectively blocks incoming spam messages. The latter being quite doubtful regarding the rules of service from ToS. Both solutions can be read at https://www.reddit.com/r/treeofsavior/comments/4czl9l/bot_spam_message_blocker/

Issues:
If you set it to full screen mode you cant alt tab. No way around it as far as I know.

If your mouse cursor disappears if you set it to true fullscreen mode, go to (Windows 10) display settings -> advanced -> advanced sizing -> set a custom scaling level and put something less than 150 (149 works for example). This may happen on high resolution screens. (Im using a retina macnook pro which is 2880 x 1800). This issue is related to not having a higher DPI sprite for the cursor which then disappears.

Stuff that seems to make no difference in FPS whatsoever (to me):
adding flag -dx11 to run in steam (since it seems to already run as dx11 if available)
changing texture, bloom, FXAA, etc

Results and Hardware:
Im running on a 2014 MacBook Pro with discrete graphics, which has 16GB RAM, a GT 750M and a quad core i7 at 2.2Ghz on Windows 10.

Before those changes I was getting 20-30 FPS in dungeons and 5-15 FPS in Klaipedia. After them, I get 45-60 FPS in dungeons and 20-60 FPS in Klaipedia.

Stuttering is still quite visible, which seems to be caused by loading new characters/monsters on the screen, but the duration of the stutter has been lessened. Before I could “freeze” for whole seconds, and now its a lot minor (still annoying as hell, but doesn’t affects gameplay that much). Using something to block global chat partially fixes a lot of the constant stuttering.

The most simple way to verify stuttering is to simply walk/jump around in a map.

Conclusoion:
While these changes do make the game a whole lot better to play, it’s clear ToS needs to further optmize how new elements are rendered on the screen in order to completely avoid stuttering.

It would be awesome if @STAFF_Ethan or another member could clarify what some options in user.xml are for, since many seems to be related to FPS. And also some other tips on maximing ToS performance in general?

18 Likes

I’m sorry sir, but all your efforts, including trying and typing so much, seem wasted.

The ultimate solution to stop the game stuttering is,

block the megaphoning gold sellers

You sir need a slap on the back for a good job really, ( have one from me ) ^^

I tired to set the bit to 64 but it changed it self to 32 bit xD but i did change the Resolution to what my screen is and as i could see northing worng here luckly i made a backup of the orginal file xD…

i will update this post if i found somthing new :slight_smile:

2 Likes

I dont think so, because i was able do double my FPS in game even if stuttering is actually fixed later :).

But alas, I don’t think megaphoning is what causes/main reason for stuttering. This comes from 2 observations:
1 - Stuttering is longer, more often and you have higher FPS drops in player crowded maps such as Klaipedia, which has little to do with global chat
2 - You can actually “predict” when mobs are gonna respawn because an instant before they do there’s a huge FPS spike/freeze, specially in maps where 30+ mobs respawn at the same point in your screen.

So while megaphoning could be one of the reasons, I think that player/mob rendering/movement into your viewport is one of the biggest issues currently.

1 Like

It’s not just about game stuttering, lots of people are having LOW FPS problems. This doesnt seem to be related with gold sellers spamming around. It’s just bad optimization.

And thanks for the compilation dude

Hey look at my fps i got it fixed :smiley:

You are right about the 16bit and it even helped on my fps even though the grafik is the same wtf xD

Well all i did was setting my Nvidia card to run the game on high and changed the Bit to 16 that is all i changed xD

1 Like

You can fix it by going to your User under the Tos folder, and change the bit to 16 and change both
UseFXAA"0"
VSync=“0”

Hope this help and set the game to run on fullscreen not pure full screen just fullscreen from ingame :slight_smile:

i hope this helps abit

@STAFF_Ethan fix your game please -_-

1 Like

setting your Resolution mode: if set to “0”, will make the game in true full screen. Which adds quite a bit of FPS, but you won’t be able to alt-tab out of it

false. it’s already full screen and setting it to 0 means u dont want any display to happen and thus it will Fail to create a 3D image…

1 is Fullscreen and 2 is windowed

0 true fullscreen
1 windowed fullscreen
2 windowed

nope that’s false. 0 is nothing it’s no display. since fullscreen and windowed is the only options in this game… alot of games allow to trap out of a game even if its fullscreen. Try to put it to 0 yourself. doesnt work.

1 Like

THIS !
Thank you OP, I would have loved to use that during iCBT2.

Setting it to 0 in current build makes the game launch in some weird mode that does not allow alt-tabbing (although you can still click through the game and accidentally launch something on your desktop).

The “fullscreen” option we can select in game is not, in fact a proper fullscreen (i.e. it’s not exclusive) - it just disables the window bar and stretches the game a bit. I’m guessing it’s what you get for using an old engine stuffed full with deprecated libs and walking on crutches. Hopefully there will be a fix/update to that at some point.

I do set it to 0 and as myself and several others have stated, it does works and you can’t alt tab out of it. Maybe it doens’t works in all systems? For example BitPerPixel doesn’t work on my computer, but other people have stated to work for them. Im guessing some of these options are not present in game because it may not work for every setup.

thanks bro, the bitperpixel gave me a boost on fps… from 40’s to 180’s. I don’t see any difference on graphics. Noiicee…

Yeah it is kinda weird really that the game looks normal with lower Pixels xD lol xD

Hm, I think I actually take an FPS hit every time a different character pops in with the Draw value less than how many people there are.

And even with true fullscreen and 16 bits, I still drop to 6fps at the goddess statue in town.

I can get 50-60fps in the field if nothing’s happening, at least! I think I’ll have to accept that I’ll get at most 30fps in actual combat, though…

Wow do you use Nvidia? you might change it to high and not what it is in there i am around 50 or so in towns or more and mostly around 70-120 outside :confused: after i changed anything on the game xD

Ty, this works great for me.

Thanks for the info, I don’t usually have any frame-rate issues but it’d be nice to crank up some settings to make the game even better.

The spamming shoutbox has been mitigated so far, but the drop from 60 to 40-45 when they get really revved up is jarring. I wish my frames got higher than 60 (even if my monitor refresh rate is only 60), having frames in the bank would be nice cause a drop from 90 to 70 wouldn’t even be noticed (pretty sure that isn’t even how any of that works…).:stuck_out_tongue: