SpellForce 2 - Anniversary Edition

SpellForce 2 - Anniversary Edition

(Servono più voti)
Adding money, experience and skill points with integer modifying
Da ZipperZbieracz
Cheats in SF2 allow you to add money, resources or disable fog of war, but only in the main story mode. In Free Game, they're unavailable. And also there is no cheat to add ability points.

This tutorial explains how to add money/cash, experience and assignable ability points using any integer changing tool, here I used ArtMoney, but you can use other, for example CheatEngine. This works in Shadow Wars, Dragon Storm and Free Play modes. Probably works in other Spellforce 2 games, but I can't confirm as I don't have them.
   
Premio
Aggiungi ai preferiti
Preferito
Rimuovi dai preferiti
Prerequisites
  • Save the game before doing anything with the files, if you are in a Free Game mode i recommend doing a manual backup of the save (in the spellforce2/save/coop or save/addon/coop folders [coop=free game] [addon1/coop=dragon storm free game]
  • Any program that allows to modify integer values when the game is running. The most popular is CheatEngine, but I couldn't get it to work so I used ArtMoney. The process should be similar in any program. Edit: ArtMoney is reportedly infected with trojans and whatnot, so you might consider using something different to what I used.
  • A Hero/Champion loaded on a map. You can't leave the map when searching for a value, filtering a value and before modding the integer values, because the address of the value will change and you will have to start again.

Also sorry for the images, they do not load when clicked with LMB. They do work when opened in a new window.
Setting up the program
Launch your integer–modifying program and Spellforce 2. It should detect the "Spellforce 2" process.


What we will do in the program will be searching for specific = integer values and filtering the results to find the exact address that we are looking for (cash, experience or assignable skill points).


To change cash, experience or skill points, you need to have a hero loaded on a map. Next sections describe how to do that. Do not load a save, leave the map or go to main menu during searching and filtering values before you change them and they are applied by the game, because you will have to start again as the addresses for the integers will change.


In the triple dots section next to Type, select Integer and Integer 2 bytes and Integer 4 bytes options. That's what we will use. Rest of settings is default so don't change them.
Adding money/cash
Money is easy to add with regular console commands in the story mode, but console commands do not work in the free game mode, so here integer modifying comes in very handy.

You will need:
  • Some starting cash
  • A merchant you can trade with
  • An item or two that you can sell and buy back from the merchant

Our Hero (Avatar) has 79 gold, so that's the number we will SEARCH for in the program. Remember, we search for Integer values and for = (exact) value.




It gave us almost 600000 results, the value we are looking for is somewhere there, so we will need to filter the results.

We filter the results by changing the amount of money in-game, either by selling or buying something. We will sell one item and the cash goes up to 132.


Now we go back to the program and press FILTER. Again, we go by type = integer, and the value is the new amount of cash, 132. Press OK and it will filter the previous results by the new amount of cash.


The number went down to 65. That's much better, but we need more accuracy to know which is the exact one we are looking for.


So to filter the results further, we will change the actual amount of money in-game by selling or buying something from the merchant.

We end up with 53 cash, so we will filter once again for the integer value of 53 in the program.
We now have three results, two of them are the integers that represent money. I will filter the results once more to filter out one of the results.


We now have the two integer values which represent for the amount of money your hero has in his pocket. We will move these two values by pressing them and moving them to the right side with the red button (the green button moves all values from the left side to the right side).

On the right side we will be able to modify the values to our desired number. We see that they are both showing 185, which is the actual amount of money that my Hero has in his pocket. I will change the cash he has to 456789 by changing the value in both of these addresses (double LMB click and change the number). I will also save the value by pressing LMB on something else (for example on the address) so the "typing" window closes and saves the new value.


Now I go alt-tab back into the game and I see the newly printed money in my pocket that I can spend on the best equipment that is buyable in the shop.
Adding experience/levels
I hope you learned how to use the program changing something so easy as cash. Changing experience is a bit more tricky, because you will need an experience "source" to gain experience between checking/changing the integer values.

Prerequisites:
  • Preferably some starting experience, the higher the number, the better.
  • Some experience "source" that you can easily access and is in front of you (a main storyline NPC, sidequest NPC before finishing a sidequest, a mob that when killed gives XP or something like that). You will need it to filter the first result when searching for your XP amount in the integers.

I will show you how to change your experience amount, and as a result, quickly level up to a much higher level or straight to level 30 (maximum). Level 31 is not achievable even with this method, it just puts your XP number 1 point below the threshold for level 31.

Important to note, you will not lose the assignable skill points by jumping straight to level 30, you will get all the 29 points for your main hero and 23 for your followers by reaching level 30 and 24 respectively.

I will show you how to boost yourself to level 30 based on the beginning of Shadow Wars, in Free Game you can do the same in Rushwater Downs (there are lvl1 mobs that always give 50XP when killed).

After killing the first wolf, your Hero will get 45 XP. I pause the game to make sure my Hero doesn't kill the second wolf and search for that 45 integer value integer in the program.


Program found over 1,5 million matching results, that's because low values are very common. If I had more experience (=bigger number), it would result in much fewer results and it would require only one filtering after the first search. After the initial search I will gain the XP from the XP source I already had in front of me, in this case it's killing the second wolf.


Now I have 90 XP and that's the integer value I will filter by.


Now I have 45 results, very close. But I need to find one integer value. In cash it was two addresses, with experience and skill points it's one address I need to find. So I will shuffle some items in my inventory and move my hero a bit to get rid of some results that is not the experience I am looking for. After shuffling the inventory and moving my hero, I will once again filter by the amount of experience I have, which is still 90 XP as I have not gained any after killing the second wolf.


That got me down to 4 addresses, so I will do it again.



Further equipment shuffling and moving the hero around doesn't get me below 2 results, so I need another experience source to filter the results to ONE address (that's why starting this process with a bigger XP number is better – only one XP gain and a following filter would be enough). It gets done after resurrecting and teleporting Lya. After doing that I have 160 XP and that's the number by which I will filter those remaining addresses to find the only one we are interested in.


Program found the address responsible for the XP amount I have, so I move it to the right side with the red arrow and it indeed shows 160 (XP). Now you can change the number to whatever you want. Here, I changed the value to 1000, which in-game got me a 1000/270 experience on level 2.




To actually level up and skip some levels, it's necessary to get some experience "naturally", by moving the story forward, doing a sidequest or killing something that gives experience. You can save your game now, your experience will not get lost if you save and reload the game or leave the map and warp to another island. By gaining any amount of experience it will get added to that 1000 I typed down and I will get the level that this number of experience is granting, in this case that's level 4 (so I skipped level 3 and jumped straight to level 4 from level 2). Killing that spider gives some experience and I leveled up. That is also represented in the program, as the value is not showing 1000, but the new value of 1142.


To jump straight to the maximum (30) level, you need at least 270000 experience. You can change your experience number to that value and again, gain some experience "naturally". Here, moving this lever adds some experience and my Hero jumped straight to level 30 and gained 29 skill points in total.


As I said, modifying the XP number to get to lvl 31 is impossible, because the game prevents the Hero from leveling to lvl 31 by pushing the XP number below 430000000 to 429999999. So 270000 is all you need.

I don't have exact level and XP tables, but here are some levels and their experience amounts:

1000 XP = lvl 4
15000 XP = lvl 11
250000 XP = lvl 29
270000 XP = lvl 30
Adding assignable skill points
The most important thing that is doable with integer modification: adding assignable skill points. Cash is relatively easy to get and it's just a speed-up to get done with the story, similarly with experience. But because the maximum level is 30, your main Hero can get only a maximum of 29 assignable skill points that you can spend on the skill trees. Your minor heroes, followers, can reach level 24 so they get only 23 points for their skill tree. Also, assigning a skill point in the skill tree gives you a flat maximum HP and Mana stats, so having more points makes your hero much more resilient than it normally could.

Prerequisites:

  • A Hero that already has at least 3-4 assignable skill points stored up – this will be necessary for filtering. It's very easy to achieve if you artificially pump your hero to level 30 with the program. But Beware! If you pump your level to 30 before you unclick "automatic points assignment" for your followers OR you don't have all 5 followers already, they will auto-assign all their points immediately (or when you will get a new follower). So If you want to add skill points to your followers, be careful with increasing your level.
  • You can pump up the assignable skill points not nly for your main Hero, but also for every one of your followers (max lvl 24), but they're more tricky to get as some of the points they usually assign themselves



Here, I start with a Hero that has 9 assignable skill points. So that's the first value that I search for: integer, value 9.


The resulting number of matching results is very big, over 2 million, because a low number is a common occuring one. So i need to filter the results a couple of times. First I will shuffle my inventory, change my equipment and move my Hero a bit. I will also spend one skill point in on something in the tree. That leaves me with 8 assignable skill points and that's the value by which I will filter the results.



We see 603 matching results. That's quite good, but we need to go down to one address. So I will shuffle my inventory again (including followers), move around my heroes and spend another point. That leaves me with 7 assignable points, that's the value by which I will filter the results.



Only 15 addresses are left, but I need to find the one. I could shuffle my inventory in infinity without spending more points, but that might not yield good results. Instead, when I have a lot of assignable skill points left (for example after pumping my Hero to lvl 30 with an integer change), it's faster to just spend one skill point and filter again by the remaining number of assignable skill points. So I go down all the way to 5 skill points left and the program finally finds the one address we are looking for.



We see that the value shown is correct, as my Hero that I am interested in indeed has 5 assignable skill points. To fill the entire skill tree in Shadow Wars, i will add 85 that number (not change to 85, but in this case add 85 to 5). Because I have 5 unassigned skill points (and only level 10, meaning I will still get 20 more points from levels), that means filling the entire skill tree without having any leftover points requires adding to the points I already have 85 more. So I change the number to 5+85, which is 90. Replacing the number 5 [which is the points that you have from leveling up] with number 85 will mean my Hero at lvl 30 will be short of 20 points from filling the whole skill tree. Next chapter explains why in this case it's 85. [Ignore the 12365 value, that's the experience my Hero has].


Now I go back to the game, click on something to refresh the skill tree and I see that I have an absurd number of 90 assignable skill points. Nice. Every one of these, when assigned, will give you additional flat HP and Mana.

Skill point trees in Shadow Wars and Dragon Storm
You can add how many assignable skill points you want – whether that's less than the maximum assignable or more. I don't like adding too many points though, because that leaves the golden cross on the top-right corner visible all the time (and it's impossible to make it disappear when the entire skill tree is full). So here is a short tutorial for the maximum points that can be assigned to skill trees and how many points you need add to fill the entire skill tree without having any skill points left, so the cross in top-right doesn't appear. Rules are the same for story mode and free game, but take care whether you're playing Shadow Wars or Dragon Storm, because Dragon Storm has an additional Shaikan tree.

Combat skill tree has a maximum of 57 skill points you can spend on it.
Magic skill tree has a maximum of 57 skill points you can spend on it.
[only Dragon Storm] Shaikan skill tree has a maximum of 21 skill points you can spend on it.

Shadow Wars has a total of 114 assignable skill points in all of it's skill trees.
Dragon Storm has a total of 135 assignable skill points in all of it's skill trees.

Main Hero (Avatar) always gains 29 points from leveling up until it hits level 30 (no skill point on level 1)

Followers always gain 23 points from leveling up until the main Hero hits level 30 (no skill point on level 1)

Shadow Wars
Hero (Avatar)
Followers
Maximum assignable skill points
114
114
Skill points gained by leveling up
29
23
Unassigned skill points
(Skill points to add in the program)
85
91

Dragon Storm
Hero (Avatar)
Followers
Maximum assignable skill points
135
135
Skill points gained by leveling up
29
23
Unassigned skill points
(Skill points to add in the program)
106
112

So in Shadow Wars, if you want to fill the entire skill tree for your Main Hero (Avatar), to how many assignable skill points you have already left [that you have from leveling up], you need to add additional 85 points. If you for example had 25 points remaining [that you have from leveling up] and you would replace that number in the program to 85, you would be 25 points short of filling the entire skill tree.

In Shadow Wars, If you want to fill the entire skill tree for your followers, to their remaining assignable skill points [that you have from leveling up] you need to add 91 more.


In Dragon Storm, if you want to fill the entire skill tree for your Main Hero (Avatar), to how many assignable skill points you have already left [that you have from leveling up], you need to add additional 106 points.

In Dragon Storm, If you want to fill the entire skill tree for your followers, to their remaining assignable skill points [that you have from leveling up] you need to add 112 more.

Of course, if you want to fill less than 100% of the skill tree, you can add less skill points to your Hero or Followers.

That's how a Hero with all assigned skills looks like, here in Shadow Wars (114 points in total – 29 from leveling up and additional 85 from modifying the integer values). In Dragon Storm that would be 135 assigned points in total.
Insane HP and Mana! But that's flat stats, it will not make your heroes immortal, they will be just able to survive for much longer and fire more spells almost without any worry about mana.
Conclusions
Well, I hope this tutorial thoroughly explained to you how to modify in-game numbers with any integer modifying program, specifically cash, experience and assignable skill points. I hope you will have fun with your game. It might be possible to do much more with that tool, including item manipulation and adding OP items, but I have no idea whether it is even possible.
7 commenti
XHNK 25 feb 2023, ore 0:35 
DO NOT USE ARTMONEY from ANY site. There has been several accounts of trojans located in the files. Try and use Cheat Engine instead.
ZipperZbieracz  [autore] 7 dic 2022, ore 7:41 
You've tried everything then, but it's still not finding the value. I can't find a possible reason why, so for now the best what I can advise is to try ArtMoney for the skill points. Before making this tutorial I tried replicating the process in CheatEngine, but the bloatware, MS Defender and difficult UI successfully discouraged me from doing so.
DreadHedgehog 7 dic 2022, ore 7:05 
I've tried searching for all value types (so it takes into account all integers, floats, even text strings and other stuff during search). Still came up empty. And no, I'm not reloading anything :D I'm standing in one place and just do a very simple value search->value change (usually by spending the points)->value search loop.
ZipperZbieracz  [autore] 7 dic 2022, ore 6:59 
That's strange. Especially if money/exp works, skill points should too. What is most likely happening is it's not finding the value at all during the search, so the following filters lead to wrong trails and dead ends. Maybe it looks in wrong "integer X bytes", where X is the integer byte length? In the method above in ArtMoney I set it up to search for 2 and 4, but with such setting it finds integer 8 byte values as well. Maybe try ticking more "X length" integers in the search.

Other than that, for me values can go random only when I'm either looking at some wrong integer, or always when I reload the map or load another one (then values, including money, exp etc. get assigned to different integers so the old ones start showing something else)
DreadHedgehog 7 dic 2022, ore 5:58 
I did XP and it worked fine.
I'm doing SP with 28 skill points. I start to filter them down, and sometimes I manage to get it down to 1-2 results after few steps, but those adressess don't work and suddenly change to wild random numbers. More often then not, after 3-4 filters I get 0 results.
I'm using CheatEngine by the way. Always worked for me splendidly in Spellforce games. I even used the same method for skill points (and res, money, xp) few years back and it worked, I don't know why it's suddenly not working now.
ZipperZbieracz  [autore] 6 dic 2022, ore 15:01 
What is your "starting" amount of points? If you are able to do money with the above methods, skill points are no different, except you have to work on smaller numbers => filter more times. Or asking alternatively, on which step you end up not finding the skill points in ArtMoney?
DreadHedgehog 6 dic 2022, ore 12:11 
Skill points part doesn't work for some reason. No matter what I do, I can't find them