Anonymous
×
Create a new article
Write your page title here:
We currently have 629 articles on SpellForce Wiki - Rohens encyclopedia. Type your article name above or click on one of the titles below and start writing!



SpellForce Wiki - Rohens encyclopedia

Hokan's Dream Game
The events of this game are not part of the canon story and timeline of the SpellForce universe.


Demons of the Past was the first game in the SpellForce franchise graced with Achievements.

Now the thing is that Demons of the Past is sort of a buggy fest even after all this years since its release... and so are its Achievements.

In this article I'm not going to teach you how to get ALL the Achievements, not the ones that most of the time work as intended anyway, but hopefully I can share how I did managed to get them all, including the broken ones.

This is not a guide on how to play the game nor how to get ALL Achievements, simply how I managed to get them all. Don't be surprised if YOU get some of them on different locations.


Ok. First things, first...

  1. It's highly recomended that you play the game with the SF2 DOTP Community Patch 1.4
  2. You should also install the mod Respec by AngelTrump.
    If nothing else, it will be of great help later to get those count-dependent achievements. These achievements may seem like they are not working at times, but that's because sometimes the scripts don't count the clicks properly, so instead of the necessary amount of clicks you may need to surpass that number for the achievement to trigger.
  3. To fix some achievements, at some point you'll be guided to edit some scripts on a text editor. I recommend Notepad++
  4. The Elemental Magic » Earth Rank 2 spell Eruption is your best friend in this game. At least one member of your party should have it... if possible, your Avatrar too.
  5. Most achievements will work as intended, others are plain broken for good and there's a few we can fix with a simple script edit.
  6. On the Difficult or Very Difficult level's requirement, the game only detect your level on the moment when trigger the achievement, so for some of these achievements, you can play them on Normal (or Easy), Make a Save just before triggering the achievement, change settings for a higher Difficulty to obtain the achievement and then go back to your current setting of Difficulty.
  7. NOTE: When the option appears, give 100 gold to the Suspicious Figure to buy the Mace of the Guardian from him.
  8. I'm going to separate the achievement's list below by map and into 3 categories:
    • Normal: These can be obtained with no problem
    • Count-Dependent: These require count click to obtain, like the number of spell casting.
    • Broken: These are the buggy ones or just plain broken. Some can be fixed with a script edit, others not so much...
  9. There are a total of 55 achievements.
    Most achievements are handled within the script files (and worked for me).
    If they don't trigger for you, then either something is missing or some other bug is doing its thing.

Now, let's go into the achievements' list. I'll try to keep things simple with the Icon, Name and description as it is on Steam and GoG. Below, it's my own commentary with a tip to help on the right direction.

Normal

These can be obtained with no major problem.
If they don't trigger for you, then either something is missing or some other bug is afoot.

Westguard


Save allSave all 01/55Save all the villagers and farmers on the map.To obtain this achievement you need to complete all the side quests related to saving villagers and farmers around the Westguard
Faster than DarcFaster than Darc 02/55Catch Darc before he can run around even once.You can find him near your Shaikan Headquarters, during the quest Such a Good Boy
You won't come backYou won't come back 03/55Kill the Lich without him spawning back once on Difficult or Very Difficult level.To obtain this achievement, destroy everything in the undead base before fighting the Lich.

After the whole base is razed to the ground, you can kill the Lich to earn the achievement.

First StepsFirst Steps 04/55Complete Westguard.Self-Explanatory.

The Stepping Stones


Difficulty courtsDifficulty courts 05/55Sneak through the city of Zerbo second times with the Mace of the Guardian on Very Difficult level.This achievement is done in Zerbo's Island when sneaking through the city and should be done before attempting the Berserker thief achievement.

After obtaining the mace, complete the main story quest, teleport back to the beginning, equip it and enter the city again. (Don't unequip the mace until you get the achievement)
To earn this achievement, you need to cross the city again without being caught by the guards.

(*IMPORTANT*: Save very often)
You will know when you are caught because the guards will yell, turn hostile and run to attack you. At this point you have to reload to a previous save because the achievement is lost.

Berserker thiefBerserker thief 06/55Kill all city guards in the city of Zerbo after the main quest. (Mace of the Guardian is needed!)This achievement is obtained in the city of Zerbo and should be done after earning the Difficulty courts achievement.
If the achievement is attempted after obtaining the Difficulty courts achievement, just make sure you have the mace equipped, run to any guard to make them all hostile and slaughter them all! (Be careful with the commander, he's tough)
The achievement is awarded when all the enemies in the city are dead.
Dwarf gushDwarf gush 07/55All of the dwarves must survive in dungeon of Niethalf on Difficult or Very Difficult level.This achievement is obtained in Niethalf's Island where the dwarves are. You get it when you reach the end of the trial with all the dwarves alive.
Not difficult at all...
Minor HeroMinor Hero 08/55Reach level 10 with the Avatar.Self-Explanatory.
Stepping UpStepping Up 09/55Complete Stepping Stones.Self-Explanatory.

Realm of the Gods


I can do it alone!I can do it alone! 10/55Destroy the ballistas, the evil spirits and the portal without any help.This achievement is granted at the starting area. Don't interact with any of the three NPCs offering their help on the fight, just focus on clearing the area (demon portal, trebuchets and spirits)

The achievement is awarded when the demon portal, all trebuchets and spirits are gone.

Behind the rabbitBehind the rabbit 11/55Kill every monster in the arena.Kill the Large Hornet, the Wildfang, the Red Warlock Spider, and the Beast Servant.

Once they are dead, a Killer Cat will spawn on the Northern area. Kill it, and the achievement is yours.

Don't feed the trollsDon't feed the trolls 12/55Yes you do!When possible, speak with Togo. Then go to the kitchen south from the dinner room and disarm 3 traps.

Achievement Granted!

Walking among usWalking among us 13/55Complete Realm of the Gods.Self-Explanatory.

The Citadel


Silly walkSilly walk 15/55Change your mind three times.When speaking with the four Pact Leaders, pick the "diplomatic" option with 3 of them, including Dracon Shur Tal'in and you'll earn the achievement.
Tour to the pastTour to the past 16/55Complete The Citadel.Self-Explanatory.
Tough oneTough one 17/55Complete the 'The Citadel' map on Very Difficult level.Remember what I said at the beginning on point 6?

Anyway, there are some reports that this achievement sometimes only triggers when visiting back the Citadel, not when completing all main quests in the map.
Probably another random bug...

Depths of Kul'Rath


Lost ReconLost Recon 18/55Find the lost orc soldiers.Kill the wolf pack, led by the Great Hunting Wolf, Northwest from the Steppes' Journey Stone near a table and weapons racks.
Spider-HunterSpider-Hunter 19/55Kill all the huge spiders on the mounds.Kill all the Spiders on the hills around the Steppes' Journey Stone.

Be careful with the huge level 25 one, she will burst out tiny level 30 brats once killed.

Duel-MasterDuel-Master 20/55Win the duel against the Shaikan boss at the first attempt.Defeat Yasha Ashir without losing once...
FlyFly 21/55Complete Depths of Kul'rath.Self-Explanatory.

Remains of Steelcoast


Major HeroMajor Hero 22/55Reach level 20 with the Avatar.Self-Explanatory.
Team-playTeam-play 23/55Kick the seal with all the fire golems.To make a fire golem kick the seal, kill it when the seal is next to it.

I suggest you take notes for this achievement to keep track on the golems who already kicked the seal.
It's a very easy achievement to obtain but it requires some patience and bug tolerance! (sometimes the seal isn't moved correctly or it disappears - visual bug)
The achievement is awarded when all the fire golems kicked the seal at least once (you don't even need to complete the quest to achieve it)

DisinfectionDisinfection 24/55Hunt all the escaped monsters.Don't forget the lonely Wyrm, over the North wall, only accessible with Jorbal.
MindhackerMindhacker 25/55Break all the mind walls of Sariel in 10 minutes on Difficult or Very Difficult level.You have 10 minutes to defeat all the three enemies that will spawn:
  1. A ground unit
  2. A flying unit
  3. Sariel

The achievement is awarded when you defeat Sariel.

Footsteps in dustFootsteps in dust 26/55Complete Remains of Steelcoast.Self-Explanatory.

Shadow Realm


Shadow ArmyShadow Army 27/55Destroy the Demon base only with Shadows.I kept my party behind at the Shadows base (at the beginning) and sieged through the demon base with every kind of shadow units.

The achievement is awarded when you destroy all the demon buildings & units using shadow units only (southeastern side of the map).

On the flyOn the fly 28/55Kill the beast with the seal without trapping it on the bridge.This can be a tricky one because the Golem don't always spawn in the same place, before speaking with the Shadow Warrior to summon it, bring your assassins' army and heroes to the gate of the City of the Shadows.
Walking in the shadowWalking in the shadow 29/55Complete Remains of Steelcoast.Self-Explanatory.

Icewastes of Shalibar


This a good map filled with many respawning enemies that grant you a lot of gold killing them...
So, equip with best weapons, wear your hunting gear and let's get some sweet gold...

With a bit of grinding, soon enough you should earn enough to win the two gold related achievements: Bill Gates and Donald Duck (this one I still think they actually meant Scrooge McDuck since he's the rich greedy duck and Donald is always broke...)

Bill GatesBill Gates 30/55Get 20.000 gold from rewards.Self-Explanatory. See hint above, keep killing those wolves before going near the Giant Wolf.
Donald DuckDonald Duck 31/55Get 50.000 gold from rewards.Self-Explanatory. See hint above, keep killing those wolves before going near the Giant Wolf.
Steal the KeySteal the Key 32/55Get the puzzle key without killing the Lich on Difficult or Very Difficult level.Destroy the undead base without killing the Lich, then loot the puzzle key from the chest that will spawn at the northernmost part of the base. You might have to find a way to lure him from the area where the chest will spawn or be really fast clicking on the chest before the presence of enemies prevent the looting.
Animal ProtectionAnimal Protection 33/55Get the "parrot" alive.Easiest Achievement in this game!

Buy the Dead Fish from the Merchant at the Norcaine camp, and feed it to the penguin on the Northwestern Island.
Most times the achievement is granted upon feeding the little guy, but sometimes it requires you to deliver the "parrot" to Captain Halbeard.

PathfinderPathfinder 34/55Walk through the maze without harming yourself.Starting with the camera in default position, cross the maze in the following order:
  1. East
  2. Southwest
  3. North
  4. Southwest
  5. Southwest
  6. South
  7. Northeast
  8. East

The achievement is obtained when you loot the chest in the middle of the maze withouth receiving any damage.
Suggestion: While attempting this, Save Often! And if possible, also keep your party away from harm, sometimes if they get damaged, it also affects the achievement....

Frozen stepsFrozen steps 35/55Complete Icewastes of Shalibar.Self-Explanatory.

Plains of Argan


Back to the Future IVBack to the Future IV 36/55Complete the Twiddle quest chain.Twiddle's quest chain:

Starts in: Realm of the Gods - Interact with the Blue Crystal to talk with Twiddle and obtain the first quest: The Portals of the Future. Or Was it the Future of the Portals?
Ends in: Plains of Argan by solving the quest: I Said Open Sesame!

First strike still deadlyFirst strike still deadly 37/55Destroy the southeastern Nameless base within 20 minutes on Difficult or Very Difficult level.As soon as the game starts, you have 20 minutes to destroy the Nameless base located to the north of your Pact base (starting area).

Hint: Eruption is your friend here. At least one member of your party should have it.

Green dayGreen day 38/55Find the mysterious green relic.OK, I know what I said before about the easiest achievement in the game, but this one got to win the the cake... er... cabbage.

You just have to go to the West side of the Shaikan Camp and look for a Chest with the Cabbage. Grab it and enjoy the achievement.

Relics of the GodsRelics of the Gods 40/55Collect Armory of the Eo.Read all about it on the page: Armory of the Eo
Epic HeroEpic Hero 41/55Reach level 30 with the Avatar.Self-Explanatory.
Crystal MountainCrystal Mountain 42/55Collect every power crystal and power every tower before attacking Zazhut.The required Crystals drop from Nameless groups scattered across the map. The towers will be marked, it's hard to miss. There are 20+ crystals, only 15 towers, you just need to get close to each tower during the quest to power it.

Count-Dependent

I could try to explain how the game deals with this kind of achievements, but Steam user artydent did it better than I could ever do:

Some of those achievements have occasionally been reported as broken. In principle they all work though, but not always as expected. Here's what you should be aware of when trying to get them:

  • Spells are counted only in Campaign Mode, not in Free Game or any other modes.
  • Casting with different avatars is NOT cumulative for the achievement. And progress is lost if you keep playing from an earlier savefile.
  • Sometimes, casting the right spell simply doesn't count for the achievement. (See technical details below for an explanation.) In particular, if you cast multiple Shaikan spells in quick succession, usually just one will count for the True Blood achievement.
    Unfortunately, there is no way to see whether a spell just counted or not.
  • The description of If it bleeds, we can kill him is a bit misleading. It's also just about how often the avatar is casting the spell.
  • For each of those achievements, both the basic version and the mastered version of the spell work. (Even for Seven sins the basic spell works. The description is misleading.)
  • If the spell requires a target and the avatar is too far away, the spell counter is repeatedly increased (about every 5-6 seconds) while the avatar moves towards the target. (See technical details below for an explanation.)
    This can be exploited to farm those achievements relatively quickly: With a very long way to the spell target (or by repeatedly switching between two targets in opposite directions) it's possible to get the achievement without actually casting the spell, which eliminates any waiting time for recharging the spell or the mana.




For anyone interested, here are the technical details:

All achievement detection is script-based. There is an achievement script (which is only used for the campaign) that deals (among other things) with the spell counting for the achievements.
The script attempts to detect when the player is casting an achievement-relevant spell, and upon successful detection an associated counter is increased. Those counters belong to the avatar and are regularly saved/loaded when you save/load your game, that's why progress for such an achievement can't be split between different games.

Now to the more technical part of how the script attempts to detect spell casting.
For each of those achievements, the script defines an event handler that (when enabled) keeps checking whether the avatar is currently in the process of casting one of the relevant spells. However, the event handler has a built-in delay between those checks (about 2-3 seconds for me, but that might also depend on the computer). Maybe this is done to not put the script engine under too much stress, or maybe just as a measure to avoid multiple detections for a single casting. Anyway, the side effect is that an unfortunately timed spell - even though the casting itself takes 1-2 seconds - might happen right inbetween two checks and is therefore not counted towards the achievement. There is still a good chance that a (randomly timed) spell is detected though. (But of course there is the possibility that a too regular spell casting - e.g. when farming for such an achievement - might accidentally fall right into the detection gap every single time, so better keep some randomness in the timing.)

There is more to it. After the mentioned event handler detects a spell and responds to it, it automatically becomes disabled. Now it would be bad if it stayed disabled, because no further spell could be detected, so in addition to increasing the spell counter the handler also re-enables a second event handler. That one checks whether the first handler is disabled and then re-enables it and becomes disabled itself. (I am not 100% sure why it is done this way, considering that in some other places the game actually uses event handlers that can act repeatedly without disabling. Those aren't used often though, in fact most repeat events in the game are done with this disabling and re-enabling. There might be some technical reason for this.) This second event handler also has a built-in delay between its checks (slightly longer than the first), which means that after an achievement-relevant spell is detected, there is a longer delay (combination of the delays of the two handlers, about 5-6 seconds for me) until another spell for that achievement can be detected. (There is an exception for the first detection on any map, but let's not get too technical here.) That delay is mainly an issue for the True Blood achievement when someone casts multiple spells in quick succession (because a single event handler is used for all the associated spells). All the other achievements only have a single associated spell anyway, so the recharge time usually prevents to cast it in quick succession. (But maybe with a lot of equipment that reduces recharge times, this can become an issue for other achievements, too.)

Now to the exploit. When a spell targets something further away and there is a movement path to it, then the game apparently considers the avatar to be already casting while moving towards the target. Which means that the first event handler quickly triggers and increases the spell counter, gets disabled but re-enabled after a delay, triggers again after a delay and so on. Due to the combined delay of both event handlers, spell detection (and thus counter increase) happens every 5-6 seconds.

Steam user SqbanyPL also has the following to add on this subject:

Push the button 177013 times so as to get some dopamine

There are eight achievements which need not only grinding but also developing your avatar into different specializations. These are:

  • True Dragon - Cast 200 shaikan spells
  • Fire walk with me - Cast 40 Fireballs with the avatar
  • Handsome - Charm 50 enemies with the avatar
  • Fight fire with fire - Conjure 66 demons with the avatar
  • Can't touch this - Get invulnerable 75 times with the avatar
  • Cry baby - Cast Battle Cry 50 times with the avatar
  • If it bleeds, we can kill him - Hit enemies with Slash 50 times
  • Seven sins - Cast Salvo (Master) 40 times

Exact mechanic of these is described in another guide (I am not the author). I will only suggest a way of obtaining skills required for these achievements. It is possible to get above achievements without modifications through replaying the game and developing your avatar differently but it would take a lot of time even if playing on easy.

Please, use below modifications only for obtaining achievements. They grant your avatar a lot of experience points so natural progression will be disturbed.
Changes will be applied in map Remains of Steelcoast because of merchant who sells there weapons which enable usage of skills Slash and Salvo and because at this point your avatar surely can gain a few more levels.

(1) Open game folder - "SpellForce 2 - Demons of the Past"
Go to: \SpellForce 2 - Demons of the Past\addon3\map\Campaign\P707_Steel_Shore\script
(2) Open file "Rewards.lua"
(3) Find these lines:

	Reward = {
	SSSR_MQ_01			= { XP = 0,	Gold = 0 },
		SSSR_MQ_01_1		= { XP = 1500,	Gold = 0 },
		SSSR_MQ_01_2		= { XP = 3100,	Gold = 0 },

(4) Now change it to:

	Reward = {
	SSSR_MQ_01			= { XP = 0,	Gold = 0 },
		SSSR_MQ_01_1		= { XP = 400000,	Gold = 0 },
		SSSR_MQ_01_2		= { XP = 3100,	Gold = 0 },

Note: Do not change the gold reward, it crashes the game. Anyway, you will find infinite source of gold in Icewastes of Shalibar.

(5) Load a save before entering Remains of Steelcoast for the first time. Choose one where your avatar will have enough undistributed skill points so as to get to every skill required for achievements.

(6) At Remains of Steelcoast go to lava pool in the middle of the map. After a cutscene you will get enough experience points for 30 level. Make a save before distributing skill points. Now you can start grinding, The Citadel is a good place for this as it spawns enemies infinitely.

Tips for grinding:

  • Check merchants and your inventory. You might find accessories reducing skill cooldown.
  • True Dragon might be obtained with Shaikan skills which you gain as you progress in story (Thunder of the Shaikan, Blood of the Shaikan, Time of the Shaikan) so it is possible to not spend a single skill point in a Shaikan skill tree.
  • If it is possible for your character, pick at the same time these skills which have long cooldown and cannot be exploited (how, check the other guide of not my autorship) - Invulnerability and Battle cry.

I got most of this achievements in the Remains of Steelcoast (Did you know we can cast spells/shoot arrows while mounted on Jorbal?) but I also grinded a bit in the Citadel for the melee ones so I'm going to place where I got them below.
But you can try to get them somewehere else where you can use the required abilities.
And now that's also where the mod Respec by AngelTrump can be useful. Instead of replaying the game just to build the proper Avatar to tackle each kind of this achievements, you make a Save somewhere in the late game but not too close to end, reason why the Remains of Steelcoast is a good place, and each time you need to rebuild your Avatar to chase another achievement, fire up the Respec mod and just pick another set of skills for the job ahead.

And in case you want to cheat on the casting ones, you can use LogSender:NoManaUsage(1). Remember that on Demons of the Past to open the console you press Ctrl+K.

Plains of Argan


True DragonTrue Dragon 39/55Cast 200 shaikan spells.This achievement can be obtained with the Shaikan skills you gain as you progress in the Campaign, so it is possible to get the achievement without spending any skill points.

You can also get it with any build of your Avatar. Simply keep using any of those Shaikan skills until the achievement triggers.

Remains of Steelcoast


HandsomeHandsome 47/55Charm 50 enemies with the Avatar.Magic → World Magic → Mental Magic → Domination Rank 1: Charm
Fire walk with meFire walk with me 48/55Cast 40 Fireballs with the Avatar.Magic → World Magic → Elemental Magic → Fire Magic Rank 1: FireBall
Cry babyCry baby 49/55Cast Battle Cry 50 times with the Avatar.Combat → Heavy Combat → Heavy Weapons Rank 2: Battle Cry
Seven sinsSeven sins 50/55Cast Salvo (Master) 40 times.Combat → Light Combat → Ranged Combat → Recurve Bows Rank 3: Salvo (Master)

You need a Recurve Bow. A lvl 19 bow can be bought from the elven merchant in a camp in the south of the Remains of Steelcoast. Achievement is quickly taken in the same place on fire golems.

The Citadel


Fight fire with fireFight fire with fire 51/55Conjure 66 demons with the Avatar.Magic → Divine Magic → Black Magic → Demonology Rank 1: Demonic Scourge
Can't touch thisCan't touch this 52/55Get invulnerable 75 times with the Avatar.Magic → Divine Magic → White Magic → Protection Rank 2: Invulnerable
If it bleeds, we can kill himIf it bleeds, we can kill him 53/55Hit enemies with Slash 50 times.Combat → Light Combat → Light Weapons → Dual Wield Blade Rank 2: Slash

You only need at least one dual blade, two are not necessary.

Broken

These are the buggy ones or just plain broken. Some can be fixed with a simple script edit, others not so much...

The Citadel


Thou shalt not passThou shalt not pass 14/55Close every gate after opening them.This achievement is broken. Below is how Steam user artydent managed to fix it:

For this achievement it's not 100% clear what the exact intent had been. Here's a simple mod (you only need a basic text editor) to trigger this achievement in a way that at least fits the description without making it too trivial. Technically, this is a bit of cheating though, so don't do it if that makes you uncomfortable.

IMPORTANT: The modification will only have an effect on games where the Citadel map was never entered yet. So you'll have to reload a save from before that and replay the map (or at least parts of it until you get the achievement).

Step 1: Find the steam library (the one you use for SF2-DotP) on your hard drive and find the "SpellForce 2 - Demons of the Past" folder in it. Enter the sub folder "addon3/map/Campaign/P704_The_Citadel/script/". All modifications will be done here.

Step 2: Open the file "Achievements.lua" in a text editor. Find the following place in the file

	OnOneTimeEvent
	{
		EventName = ">>> achi: gates closed <<<",
		Conditions = 
		{
			SetUpdateInterval	{Steps = 10},
			--- ???
			MapFlagIsTrue {Name = "mf_P704_xxx"},
		},
		Actions =
		{
			AvatarFlagSetTrue {Name = "af_Achievement_P704_Closed"},
		},
	},

and replace this part by

	OnOneTimeEvent
	{
		Name = "Event_Achi_All_Gates_Open",
		Conditions = 
		{
			SetUpdateInterval	{Steps = 20},
			GateIsOpen	{Tag = "Gate2"},
			GateIsOpen	{Tag = "Gate4"},
			GateIsOpen	{Tag = "Gate5"},
			GateIsOpen	{Tag = "Gate6"},
		},
		Actions =
		{
			MapFlagSetTrue	{Name = "mf_P704_Gates_Opened"},
		},
	},

	OnOneTimeEvent
	{
		EventName = ">>> achi: gates closed <<<",
		Conditions = 
		{
			SetUpdateInterval	{Steps = 20},
			MapFlagIsTrue	{Name = "mf_P704_Gates_Opened"},
			GateIsClosed	{Tag = "Gate2"},
			GateIsClosed	{Tag = "Gate4"},
			GateIsClosed	{Tag = "Gate5"},
			GateIsClosed	{Tag = "Gate6"},
		},
		Actions =
		{
			AvatarFlagSetTrue	{Name = "af_Achievement_P704_Closed"},
		},
	},

Done! Enter the Citadel map (remember: load a savegame from before entering it for the first time), open all the gates you can, close all the gates you can, and get the achievement.

Hints to get the achievement: There are only four gates that you can open and also close. All four must be open at some point, later all four must be closed. If you don't know where to find the levers, you could just start the quests for all four factions, each one has an "open gate" quest for one of these gates.

Additional remark: Given the name of the achievement I assume that the original intent might have been more complex, involving cutting off attack routes for the factions. To implement this (without breaking things) would have required significantly more changes though (adding some lever handling, modifying attack routes accordingly, etc.). I didn't consider it worthwhile to attempt this, especially because the scripts for this map are already quite complex and a lot of things on this map are unfinished or buggy anyway.

Plains of Argan


The last four(4) achievements on the Plains of Argan (and on the game) are broken!
Again, below is how Steam user artydent managed to fix them:

Fix (mod) for the end-of-game achievements

The last march Complete Forest of Argan
Knowledge is power Complete Demons of the Past on Easy or Normal level
Power leads knowledge Complete Demons of the Past on Difficult level
Master Investigator Complete Demons of the Past on Very Difficult level

Here's a simple mod (you only need a basic text editor) to trigger those achievements the way they were intended. Technically, this is a bit of cheating though, so don't do it if that makes you uncomfortable.

IMPORTANT: The modification will only have an effect on games where the final map wasn't entered yet. So you'll have to reload a save from before and replay the final map.

Step 1: Find the steam library (the one you use for SF2-DotP) on your hard drive and find the "SpellForce 2 - Demons of the Past" folder in it. Enter the sub folder "addon3/map/Campaign/P710_West_Westguard/script/". All modifications will be done here.

Step 2: Create a new file "Achievements.lua" (or name it however you want) in this folder. Open the file in a text editor and copy the following into it.

	-- Fix to trigger the end of game achievements properly
State
{
	StateName = "INIT",

	OnOneTimeEvent
	{
		EventName = ">>> achievement: map completed <<<",
		Conditions = 
		{
			QuestIsSolved	{Player = "default", Quest = "ADDON3_MAP09_LUREZAZHUT"},
		},
		Actions =
		{
			AvatarFlagSetTrue	{Player = "default", Name = "af_Achievement_P710_Completed"},
		},
	},	

	OnOneTimeEvent
	{
		EventName = ">>> achievement: game completed on EASY or NORMAL <<<",
		Conditions = 
		{
			QuestIsSolved	{Player = "default", Quest = "ADDON3_MAP09_LUREZAZHUT"},
			OR {
				GameDifficulty	{Value = 1},
				GameDifficulty	{Value = 2},
			},
		},
		Actions =
		{
			AvatarFlagSetTrue	{Player = "default", Name = "af_Achievement_DotP_Completed"},
		},
	},	

	OnOneTimeEvent
	{
		EventName = ">>> achievement: game completed on DIFFICULT <<<",
		Conditions = 
		{
			QuestIsSolved	{Player = "default", Quest = "ADDON3_MAP09_LUREZAZHUT"},
			GameDifficulty	{Value = 3},
		},
		Actions =
		{
			AvatarFlagSetTrue	{Player = "default", Name = "af_Achievement_DotP_Completed_Difficult"},
		},
	},	

	OnOneTimeEvent
	{
		EventName = ">>> achievement: game completed on VERY DIFFICULT <<<",
		Conditions = 
		{
			QuestIsSolved	{Player = "default", Quest = "ADDON3_MAP09_LUREZAZHUT"},
			GameDifficulty	{Value = 4},
		},
		Actions =
		{
			AvatarFlagSetTrue	{Player = "default", Name = "af_Achievement_DotP_Completed_VeryDifficult"},
		},
	},	
};

This is the code that will actually check the proper conditions and set the flags that will then trigger the achievements as intended.

Step 3: Open the file "_P710_West_Westguard_ScriptList.lua" in a text editor and add the name of your newly created file to the list, i.e., add the line

	"Achievements.lua",

somewhere within the scope of those curly brackets. That's necessary to make the game aware of your new file.

Step 4: Open the file "MQ_Addon3_Map09_LureZazhut.lua" in a text editor. Find the following place in the file

	OnOneTimeEvent
	{
		Conditions = 
		{
			MapTimerIsElapsed {Name = "mt_P710_EndVideoTimer", Seconds = 2},
		},
		Actions = 
		{
			MapTimerStop	{Name = "mt_P710_EndVideoTimer"},
			PlayerGameEnds	{},
		},
	},

and change the number of seconds to 5 (or even higher if you want). This will give the script enough time after the final cutscene to trigger the achievements before the game abruptly ends.

Step 5 (optional): In the same file find the line

	CutscenePlayBinkVideo {File = "addon3/video/outro.bik"},

(which should be in the event above the one you edited in the step before). After that line simply add the line

	FigureVanish {Tag = "ZazhutLure"},

This step isn't strictly necessary. It simply removes Zazhut from the map after the final cutscene (in which he was defeated). Apparently, the developers didn't bother to do that but instead just abruptly ended the game. With the additional seconds from the previous step though, it is weird (and potentially deadly) if Zazhut is still fighting you at that point.

Done! Replay the final map (remember: load a savegame from before entering the map for the first time) and enjoy getting the achievements.

Btw, there is no need to replay the map on each difficulty. You can simply change the difficulty shortly before the end. (I considered being stricter and requiring a full play-through of this map without changing difficulty inbetween, but all the other difficulty-dependent achievements also allow this "cheat".)

I used the scripts as artydent wrote and since this game is so buggy, I have no problem in cheat it a bit to get the achievements...
So I played the game on normal, made a save right when Zazhut was weakened enough to lead him to the shrine, and changed the difficulty to replay the end and get every achievement.

The last marchThe last march 43/55Complete Forest of Argan.Self-Explanatory.
Knowledge is powerKnowledge is power 44/55Complete Demons of the Past on Easy or Normal level.Self-Explanatory.
Power leads knowledgePower leads knowledge 45/55Complete Demons of the Past on Difficult level.Self-Explanatory.
Master InvestigatorMaster Investigator 46/55Complete Demons of the Past on Very Difficult level.Self-Explanatory.

The Hidden Achievements


These are hidden/secret achievements on the vanilla version and it is impossible to get them without changing files because a proper code line is not implemented.
Unfortunately, none of the script files contained anything related that would indicate what the original intent might have been.

Although, Steam user CUE had a theory about their original intent:

About the secret achievements: "Urban Law" and "Kubi Rule"

I've been looking at the game thoroughly, and of the 55 existing achievements, only 53 have any event that triggers them. The ones that are missing are the 2 that are supposed to be secret. They are so secret that they do not exist, only their identifier: "ach_dotp_urban_law" and "ach_dotp_kubi_rule".

There are actually 56 achievement tokens. The other is "af_Achievement_P705_Completed", which should come out when completing the island numbered internally as 705, but there is no such island, it goes directly from 704 (The Citadel) to 706 (Zarachs People). Like the 2 secret achievements, there is only the token, which is not associated with any event.


"Urban Law" may have been intended to be obtained by winning Survival mode, as in the final 2 waves we fought against developers ("The developers law" is the definition of achievement).

"Kubi Rule" may have been intended to be obtained by winning Domination mode. It seems obvious, since the objective of this mode is to dominate everyone ("Kubi rule them all"). I don't really know what that "Kubi" means, although there is a "Kubisforce" as a name of one of the developers, and it may be the name of one of them.

Nothing as been confirmed about these achievements real meaning or where we should get them, so some users made some changes into the scripts to get them.
Steam user SqbanyPL goes as far as to sugest we do one mission on the first map in order to win them... but by the end of the game, I was so tired of playing it that on my script edit, I went to the fast route and made it so that I only had to endure the first cutscenes.

Here is what I did:

  1. !!!IMPORTANT!!!
    If you have any mod installed like the SF2 DOTP Community Patch 1.4 or any other, be sure to completely remove them from the game.
    In fact, if you're a Steam player, run the Verify Files option after removing any mod from the game before attempting the following steps.
    Or better yet, completely uninstal the game and do A CLEAN INSTALL WITHOUT ANY MODS!!
  2. Go to: \SpellForce 2 - Demons of the Past\addon3\map\Campaign\P701_Westguard\script
  3. Open file cs_01_Start.lua on Notepad++
  4. ... and find these lines:
    	State
    {
    	StateName = "CutsceneFINISH",
    	OnCutsceneFigureDespawnEvent	
    	{
    		Conditions =
    		{
    			EntityTimerIsElapsed {Name = "et_CStimer", Seconds = 1},
    		},
    		
    		Actions =
    		{
    			EntityTimerStop	{Name = "et_CStimer"},			
    			CameraTrackClear {},
    			CameraStop {},
    			CutsceneEnd	{},	
    			CutsceneFigureRenderAll {},	
    			CutsceneFigureWeaponsShow {Tag = "pl_HumanAvatar"},
    			CutsceneFigureWeaponsShow {Tag = "HalicosCS1"},
    			CutsceneFigureWeaponsShow {Tag = "Ayro"},
    			CutsceneFigureWeaponsShow {Tag = "Murnos"},
    			CutsceneFigureWeaponsShow {Tag = "Craig"},
    			FadeInEffectStart{},
    			MapFlagSetTrue {Name = "mf_P701_Start_CS01_End"},
    				FigureVanish	{Tag = "Noradim"},
    				FigureVanish	{Tag = "Shaperconqueress"},
    				FigureVanish	{Tag = "SoulCarrier"},
    				FigureVanish	{Tag = "Kelar"},
    				FigureVanish	{Tag = "HalicosCS1"},
    				FigureVanish	{Tag = "Ayro"},
    				FigureVanish	{Tag = "Murnos"},
    				FigureVanish	{Tag = "Craig"},
    			FigureTeleport	{Tag = "pl_HumanAvatar", X = 400, Y = 297},
    			FigureTeleport	{Tag = "pl_HumanAvatar", X = 400, Y = 297},
    		},	
    		GotoState = "CutsceneEnd",
    	},	
    };
    
  5. Now, at the bottom of the Actions, add these lines:
    			AvatarFlagSetTrue	{Player = "default", Name = "ach_dotp_kubi_rule"},
    			AvatarFlagSetTrue	{Player = "default", Name = "ach_dotp_urban_law"},
    
  6. It will look like this:
    	State
    {
    	StateName = "CutsceneFINISH",
    	OnCutsceneFigureDespawnEvent	
    	{
    		Conditions =
    		{
    			EntityTimerIsElapsed {Name = "et_CStimer", Seconds = 1},
    		},
    		
    		Actions =
    		{
    			EntityTimerStop	{Name = "et_CStimer"},			
    			CameraTrackClear {},
    			CameraStop {},
    			CutsceneEnd	{},	
    			CutsceneFigureRenderAll {},	
    			CutsceneFigureWeaponsShow {Tag = "pl_HumanAvatar"},
    			CutsceneFigureWeaponsShow {Tag = "HalicosCS1"},
    			CutsceneFigureWeaponsShow {Tag = "Ayro"},
    			CutsceneFigureWeaponsShow {Tag = "Murnos"},
    			CutsceneFigureWeaponsShow {Tag = "Craig"},
    			FadeInEffectStart{},
    			MapFlagSetTrue {Name = "mf_P701_Start_CS01_End"},
    				FigureVanish	{Tag = "Noradim"},
    				FigureVanish	{Tag = "Shaperconqueress"},
    				FigureVanish	{Tag = "SoulCarrier"},
    				FigureVanish	{Tag = "Kelar"},
    				FigureVanish	{Tag = "HalicosCS1"},
    				FigureVanish	{Tag = "Ayro"},
    				FigureVanish	{Tag = "Murnos"},
    				FigureVanish	{Tag = "Craig"},
    			FigureTeleport	{Tag = "pl_HumanAvatar", X = 400, Y = 297},
    			FigureTeleport	{Tag = "pl_HumanAvatar", X = 400, Y = 297},
    			AvatarFlagSetTrue	{Player = "default", Name = "ach_dotp_kubi_rule"},
    			AvatarFlagSetTrue	{Player = "default", Name = "ach_dotp_urban_law"},
    		},	
    		GotoState = "CutsceneEnd",
    	},	
    };
    
  7. Start the game, begin the Westguard map and watch the first custscene. When it's over, you should have won both achievements.
Urban LawUrban Law 54/55The developers lawHidden/Secret, so secret that not even the devs know what it is for.
Kubi RuleKubi Rule 55/55Kubi rule them allHidden/Secret, so secret that not even has an icon.