By making an in-game bargain with an lower plane power, you can gain access to the Dark Host pseudo prc. In return for a significant stat boost (but random as to whether physical or mental stats are boosted) and forced alignment change towards evil, the player loses some control over the pc due to the influence of the being they host. The idea is similar in concept to the story of one community member's adventure (I won't say who since it would kind of spoil if for players of that person's adventure), at least I can say I had the idea independently.
This is an entirely optional bargain, it is not necessary to complete anything in the game, it is not given anywhere the player must go, and the player is warned in-game of the unpredictable nature of the bargain. Lance Botelle has a poll up now on predestination versus free will. Is your pc's answer to the lines below predestined, or free will?
PC: So I become just an empty shell for something. Somehow, that does not sound appealing.
Lower plane power: You do not become an empty shell. You... share, though of course you are strong enough to remain in control.
PC: Of course. Somehow I doubt you are entirely telling the truth.
Lower plane power: How much is truth and how much is lies is for you to decide...
Here are some examples of the loss of control: one quest has the player try to convince some local ruffians to take care of something so the player doesn't. A normal player can use appraise, bluff, or taunt. The Dark Host forces the player to use intimidate, as the being they host overrides the pc and speaks through the character. Another quest sees the Dark Host forcing the player into a fight they'd most likely avoid otherwise. It's not all bad consequences, a murder investigation the player is asked to undertake is instantly solved because the Dark Host "sees" the evil of the murderer, allowing the pc to instantly identify them.
There are currently around 20-25 planned spots for the Dark Host to influence things, eight are implemented so far. Players will generally be given the Dark Host option late in the game, so they probably won't see them all. Exactly how many a player sees will depend on whether they get the physical Dark Host, or the mental one, as the respective beings have different approaches to their evilness. The physical one is more of an intimidating brute personality, while the mental one is more of a conniving knowledge dealer. The Dark Host dialog options are unique, so if a non Dark Host player can use intimidation during conversation, the Dark Host intimidation the player must choose has a different line. The Dark Host dialog lines are umm, appropriate to what happened to the pc. People may not like their lines, but they did make the choice that allowed it. I had complaints about how you could do and say evil things in Path of Evil (yes, I know, I warned people of that in the campaign description, I still had complaints), and Dark Host is worse
I'm torn about giving the player an opportunity to cure themselves of this state. One possibility, the player tries, but the cure automatically fails (predestination!), and the player is stuck with it.
A Neverwinter Nights 2 Blog for the module/campaign "Bedine"; And also the "Crimmor" and "Path of Evil" campaigns.
Saturday, December 17, 2011
Sunday, December 11, 2011
Loadscreens for Crimmor
In Path of Evil, I used GIMP to add a painted effect to area screenshots. For Crimmor, I wanted a more personal feeling. I elected to use unedited screenshots, generally from viewing angles the character would have. I added area name to them since the character is a local to the city and would know the name of the area, assuming there is a unique name.
For the text, in GIMP, add a text box. The font I picked is called killigraphy, a freely downloadable font. You can get it from http://www.dafont.com/killigraphy.font among other places. You can see from the font map the letters have a sharp look, reminding me of a rogues' typical weaponry. A number of letters have a particularly "weaponlike" look, particularly f, j, and t. It doesn't have capital letters. I used 72 point, centered. To give the written text a more 3d effect of still liquid ink (fluid, smooth, changeable, like a good rogue), after typing in your text, select Filter -> Decor -> Bevel from the GIMP menu. I used default bevel settings.
For the curious, the Auric Commorancy is a the name of the city's temple to Waukeen. I used a thesaurus to come up with some interesting sounding words, auric means pertaining to gold (Bond fans might remember the villain Auric Goldfinger), and commorancy is a dwelling or residence. So it's just a fancy name for "Gold House", fitting for a temple to Waukeen. Most named buildings have their named taken from the Dragon magazine article on Crimmor, written by Ed Greenwood (creator of the Forgotten Realms setting) himself.
Friday, December 2, 2011
Obsidian's next game is South Park?
CNN is reporting on their website that there is going to be a South Park RPG, and it's being developed by Obsidian. That's... unexpected.
I guess I should have seen the parallel between The Nameless One and Kenny. :)
I guess I should have seen the parallel between The Nameless One and Kenny. :)
Saturday, November 12, 2011
More games with SLS
Since SLS lets you control lights, I've built up several script systems and a trigger based around lighting that uses SLS functionality. First, I've added the ability to turn lights on/off by doing appropriate damage to the light source. Normally this is fire for on, and ice for off, but "cold lights" would just be a matter of a quick script edit. You can also turn lights on/off via a number of non-damaging spells. Gust of Wind or Darkness etc will turn off a torch for instance. Magical lights are not able to be turned off via gust of wind, but can be dispelled. A variable on the light records the level of the creature that enchanted the light, and the dispel line of spells are very straightforward to implement. And of course some light sources can simply be used to turn them on/off.
So what? Well this is where my trigger comes in. I have a trigger for the lightsphere of a lightsource. The trigger reduces the hide skill of pc's that enter (not npc's as the ai can't deal with that, a sneaky npc doesn't stick to shadows), and restores it on exiting the trigger. But the trigger is also aware of the status of the light, if the light is off, the pc gets no bonus entering the trigger. The scripts that allow turning on and off lights also are aware of the trigger assigned to them, and adjust the hide skill accordingly, so for instance if the player is in the trigger when the light goes on, the hide bonus is immediately removed. This is demonstrated in this trigger awareness video .
Finally, the trigger looks for a local variable named guards_lights on anything that enters, and keeps track of if a guard can use the light source (a variable on the light source). Npc's with the guards_lights variable will move to a light source and turn the light back on if it's off and they can use it. Your average castle guard can light a torch, but not turn on a magical light.
In this youtube video you can see the guarded light function in action. link The pc hits the torch with an ice arrow at the very beginning of the video. You can see the guard enter the trigger (marked by the mushrooms for the demo). As he enters the trigger he notices the light is out, has a speakstring that plays "darn light!", moves to the lightsource, plays a use animation (it should loop until the light turns on but doesn't in this demo video), the light comes back on, and he then continues on his patrol path.
So what? Well this is where my trigger comes in. I have a trigger for the lightsphere of a lightsource. The trigger reduces the hide skill of pc's that enter (not npc's as the ai can't deal with that, a sneaky npc doesn't stick to shadows), and restores it on exiting the trigger. But the trigger is also aware of the status of the light, if the light is off, the pc gets no bonus entering the trigger. The scripts that allow turning on and off lights also are aware of the trigger assigned to them, and adjust the hide skill accordingly, so for instance if the player is in the trigger when the light goes on, the hide bonus is immediately removed. This is demonstrated in this trigger awareness video .
Finally, the trigger looks for a local variable named guards_lights on anything that enters, and keeps track of if a guard can use the light source (a variable on the light source). Npc's with the guards_lights variable will move to a light source and turn the light back on if it's off and they can use it. Your average castle guard can light a torch, but not turn on a magical light.
In this youtube video you can see the guarded light function in action. link The pc hits the torch with an ice arrow at the very beginning of the video. You can see the guard enter the trigger (marked by the mushrooms for the demo). As he enters the trigger he notices the light is out, has a speakstring that plays "darn light!", moves to the lightsource, plays a use animation (it should loop until the light turns on but doesn't in this demo video), the light comes back on, and he then continues on his patrol path.
Tuesday, November 1, 2011
Fixing the SLS, light tag bug
Problem: The SLS lighting system relies on the tags of lights. However, saving and reloading the game causes lights to lose their tags, breaking SLS.
Solution: change of the SLS' ginc_sls2 script to reset the tag of the nearest light object when the action to handle placeable lights is called. Solution a bit below.
potential issue: assumes the nearest light object is the one to be used. This is normally the case, but you may want to make a copy of the scripts and use the altered script where you know the closest light will be the right one, such as for usable placeables like torches.
in ginc_sls2, line 352 is:
string sLightTag = GetLocalString(oFitting,"lightTag");
comment that out and replace it with
//work around tag bug. kamal
object oLight = GetNearestObject(OBJECT_TYPE_LIGHT, oFitting, 1);
string sLightTag = GetLocalString(oFitting,"lightTag");
SetTag(oLight, sLightTag);
This will change the script that controls turning the light on and off, so that it resets the light's tag automatically when the light is used, and then proceeds normally through the script. It does assume the light you want to turn on is the nearest light, but I believe that will be the case in almost all cases.
As an added bonus: If you make this change to ginc_sls2, and save ginc_sls2 to your override folder, it should fix the problem in every single player module that uses the SLS, thanks to the priority of the override (PWs can ignore the override folder).
Solution: change of the SLS' ginc_sls2 script to reset the tag of the nearest light object when the action to handle placeable lights is called. Solution a bit below.
potential issue: assumes the nearest light object is the one to be used. This is normally the case, but you may want to make a copy of the scripts and use the altered script where you know the closest light will be the right one, such as for usable placeables like torches.
in ginc_sls2, line 352 is:
string sLightTag = GetLocalString(oFitting,"lightTag");
comment that out and replace it with
//work around tag bug. kamal
object oLight = GetNearestObject(OBJECT_TYPE_LIGHT, oFitting, 1);
string sLightTag = GetLocalString(oFitting,"lightTag");
SetTag(oLight, sLightTag);
This will change the script that controls turning the light on and off, so that it resets the light's tag automatically when the light is used, and then proceeds normally through the script. It does assume the light you want to turn on is the nearest light, but I believe that will be the case in almost all cases.
As an added bonus: If you make this change to ginc_sls2, and save ginc_sls2 to your override folder, it should fix the problem in every single player module that uses the SLS, thanks to the priority of the override (PWs can ignore the override folder).
Thursday, October 27, 2011
Testing the main path

Thanks to my test module, I've got the main paths players can proceed through the module fairly well tested. I've succeeded in two paths. There's the test area in the first screenshot.
Still rebuilding things though. Like getting the pickpocket code working again. Rebuilding script systems is a tough slog.
Saturday, October 1, 2011
:\ Some rebuilding required
Somehow my campaign folder got messed up, and the messed up copy was uploaded to my offsite backup before I'd realized. I had to resort to an old archive backup. This has meant spending time recreating campaign level things. It's both annoying and time consuming. While most of my stuff was module level, some key scripts, my journals and many creatures and items were campaign level assets.
Yes, the streetlights in two of these screenshots are not turned on when they should be. Silly bug where lights lose their tag on save/reload, and I'm using SLS, which uses tags. I've already rewritten the portion of SLS that handles that to just use nearest light object. Just don't have screenshots showing that.
I'd like to post some shots of people speaking in Cant, but it's hard to find any that are not spoilerish.
Yes, the streetlights in two of these screenshots are not turned on when they should be. Silly bug where lights lose their tag on save/reload, and I'm using SLS, which uses tags. I've already rewritten the portion of SLS that handles that to just use nearest light object. Just don't have screenshots showing that.I'd like to post some shots of people speaking in Cant, but it's hard to find any that are not spoilerish.
Subscribe to:
Posts (Atom)




