Anonymous
×
Create a new article
Write your page title here:
We currently have 632 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
Revision as of 21:08, 13 March 2023 by 0z2y (talk | contribs)


🚧Page Under Construction

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 have to surpass that number for the achievement to trigger.
  3. 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.
  4. 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.
  5. 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...
  6. 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
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, equip it, complete the main story quest, teleport back to the beginning 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.

NOTE: When the option appears, give 100 gold to the Suspicious Figure to buy the Mace of the Guardian from him.
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 4?

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


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 4?

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...

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.

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

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.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.

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.