Choose Your Language

Friday, 30 October 2009

New Feats

It has been a slow week for me this week. I am still fiddling with Windows 7 to get it to work how I like and feel. Most of the programs and utilities I normally use when working with the module are now installed and (mostly) work, and I am now back in a position to something similar to when I worked on Windows XP. Here is a screenshot with the Toolset open in Windows 7:

The time I have been working on the module has involved me with editing 2da files and a Tlk table to enable some new feats that will work with Better The Demon. I finally got the process to work (enabling skill bonuses) by applying the bonus to a player skin in a similar fashion to what I have done with other game benefits such as potential attribute adjustments. The feat I added this week also works with "successive" values, meaning the feat can be "upgraded" if certain criteria are met. In this case, I have worked in a feat that gets added subject to how often the PC "accidentally" kills neutral PCs and apologizes for the act as part of the "Real Life" system. They may start as someone who is "Accident Prone", but can eventually end up being labelled a "Homicidal Maniac" and be made an outcast from normal society. (At which point the "Sorry" feat is also removed. Check out this earlier post about the "Sorry" feat.)

While this feat was designed primarily as a means to help encourage a player to take care about who they kill and prevent breaking the game, I also considered it an exercise to help prepare me to work in any other epithet/background feats that might be worth considering. Time will tell how much I will use this facility.

I also managed to do some more work towards the Ambient Life system, with respect to buildings and their residents. This is nearing an end now and I hope to be concentrating on the quests again next week. That's the plan anyway. ;)

Saturday, 24 October 2009

Ambient Life

Every now and then when working on the module, something amusing happens that is worth telling (or so I think). In this case, it was when I was working on some new ambient life code that made the NPCs behave with a little more "intelligence" than I had used before.

This coding has come about because I have given my NPCs a degree of autonomy and "real life" responses where possible. For example, if a PC tries to pick a lock or do some damage when there are witnesses nearby, they will be prevented from doing so. This code appears to work fine, but led to me to realising that in such circumstances a player playing a thief (or any PC) may reasonably suggest to themselves that they may try coming back later (at night say) when there were no witnesses around. This, in turn, led me to considering the night and day time positions of NPCs and so I wrote some code to handle this potential situation.

The funny thing that happened was that during my testing, every NPC (except the head clergyman at the church) ended up going to the local tavern, even if they were not supposed to. Everyone turned up, from the church adept to the guards that should have been on duty! As I say, only the head clergyman did not go, although he should have gone to bed, but did not and remained at the church altar. He must have been praying for all those wayward souls down the pub! ;)

Anyway, it made me chuckle for a short while before I finally resolved the problem. Once again, this new code did raise other issues that I had not foreseen. Unfortunately, I cannot mention them as they are spoilers. Suffice to say, having the NPCs move somewhere else broke some of the logic and so I had to add more code to sort that out too. However, once I have finished this section, the module will behave in yet another way that I hope will add extra depth for the player. I am imagining rogues waiting until nightfall so that they have more chance to do their nefarious tasks than during the daylight hours. Time will tell how well it comes together .... or not! ;)

New Epithet Feats

I have also been investigating the area of new feats: the ones that give skill bonuses (or penalties) when acquired. The type that are acquired through PC actions rather than through class improvement. Adding epithet feats is straight forward enough, but attaching the skill benefits is not as straight forward as it first seemed. At the moment, it looks like I may have to resort to using the PC skin method again, but if anybody knows of any other way of doing this, then please let me know.

Windows 7 (64 bit)

I have also spent some time partitioning my hard drive and adding Windows 7 as a dual boot option. I also tested NWN2 on the new operating system and all appears to be fine. (I played some SoZ with a friend last night with no hitches at all.) I also opened my module in the toolset and all appears well there too. :)

Saturday, 17 October 2009

Dealing With The Details. (The Writer's Plight.)

So, another week goes past and the module advancement counter hardly moves. What's going on you may ask? Well, the answer is that I am working on the module (when my health permits), and I am still making progress. However, with every step I make, I am also making sure it does not break something I have already done ... or ... I am making sure there are no errors in what I have already done. Therefore, while it may appear I am taking some time over this project, the good news is that the degree of testing required in the end, should hopefully be minimal. :) Here is an example of the kind of thing I am talking about:

A Simple Conversation?

While working on a conversation the player will have with an NPC, I had the need to check into a crafting option they might need to make. This led to finding an error in a 2da table where the same item could be crafted with a choice of two spells. This led me to discover I had not updated a second version of a 2da line when a choice of spells was involved. Now fixed! Then, when checking a crafting recipe, I discover extra considerations are required to work with the new stolen item & laundry system I have developed, which in turn, also meant adding the game rule to the in game Campaign Rules system for player's easy access.

Working on this conversation reminded me that I still had to finish one of the large crafting tomes that a player can find and must acquire if they want to craft with the greater essences. So, I spent some time adding more recipes/pages to that tome. (Still requires about another 13 pages.) Getting the layout correct for a Readable Book is important to me. This also reminded me to consider what creatures needed to be available to the player to acquire the distillable creature items to, in turn, gain access to critical recipe components. I had to carefully consider the ecology of when and where such creatures could be encountered. (Work in progress.)

Furthermore, this conversation also had an opening change in description according to the state of play that altered a custom token. So, more checks and token definitions had to be made, as well as the normal journal entries and checks.

That was just the thinking and work process behind one conversation, which I am still writing! Hopefully, this was one of the more complex ones, meaning other conversations won't require as much work. However, I can think of about a dozen that may still require as much work, unless I have a design change.

World Map Encounters

I also spent a little time ironing out the last of the overland map issues dealing with encounters. The system now works as I originally planned with one alteration: I have decided to not have limited encounters, due to discovering another aspect of the original system, which I have now altered to work in a way that complements the original idea. Let me explain ...

After examining the original encounter code and conversations, I discovered there was code already in place that allowed for a morale check for monsters and had them run away from the PCs if the fight was going to be too tough for them. However, due to the way the CR ratings are set on the original encounter, the creatures do not run away as often as I thought they would. So, I decided to amend the setting to one that seemed to me more appropriate for the encounter, which now means there is more chance of the creature avoiding the PCs if they consider the PCs too challenging. Couple this to my overland Party Skill Check system, and it means that while there are "unlimited" encounters, there comes a time when the PCs will simply be able to easily avoid them, or the creatures will choose to ignore the PCs altogether. (Player's who want to have the encounter can obviously still do so if they can catch them.)

The new overland map system works well, but I am now left with the more laborious task of creating the 2da tables that provide the creature encounters and the goodies that can be found. The former will definitely be needed to be done from scratch due to obviously different encounters for my world, but the latter may only require minor alterations due to the material being fairly generic. However, this could all change on closer inspection and when I once again start .... dealing with the details.

Friday, 9 October 2009

Give Me Power!

And by "power", I mean it literally - in the form of electricity. For this week we had two days without electricity due to "essential" repair work in our area. This caused me to do very little work on the module as well as have very little else to do except make a few notes of what needed doing and read a book. For those interested I am reading Robin Hobb's Farseer series: A fantasy novel about an assassin to a king, written in the first person. I recommend it as a good read.

Final Overland Map Work

In the time I was able to work on the module, I finished the overland map code and made an attempt at creating the actual map area. I say 'attempt', as my skills in this area are not good. Furthermore, I worked from an old existing PnP paper map, which as anybody who has played PnP will know, tends to be rather bland in detail compared to a NWN2 SoZ version. Consequently, my own area map does not contain as much detail as I would like to have had due to restrictions of current exisiting campaign design. Hopefully, as the story moves into areas not currently written for the campaign, I will be able to create more interesting overland maps.

All overland maps will now include:

  1. Correct scale maps with movement reflecting actual miles and time travelled.
  2. New overland map GUI to reflect terrain type, time taken and other info.
  3. Discoverable 'goodies' based on best in party skills. (Resources given as items.)
  4. Discoverable 'locations' based on best in party skills.
  5. Limited random encounters so as not to swamp other play. (*)

(*) There will also be an option for players who find a map to ignore overland map travel altogether if they wish to. It will be up to the player if they prefer to use quicker transfer between locations rather than explore a map. A combination of travel types is recommended so the player does not miss out on finding goodies and winning XP for their PCs that overland map exploration can bring.

For those interested, here is a snippet of the old PnP map I worked from with its CRPG conversion images in the toolset.






The Reward Poll

The 'Reward Poll' first polled on this site, continues at the Vault and now has over 1100 votes! (Scroll down the page from the link and it is in the right-hand pane.)

Saturday, 3 October 2009

Close Encounters Of The SoZ Kind

On the back of last week when I worked on map encounter “goodies”, I have continued my work on the overland map by looking at how the encounters work. It was a tangled web of code I had to work through, and by the end of it I was convinced that either I did not use “const” variables enough, or the official way seems to use too many. ;) I often found myself having to work my way back through include files to work out exactly what was going on with each variable. Furthermore, as my own maps had their own unique code for travel, I had to pick my way through those functions that needed to stay, be altered or could be ignored altogether.

In the end, here is a rough outline of what I did, and what others may want to consider doing as well if they want to get overland encounters to work:

1) Bring over a lot of material from the SoZ campaign just to get the template code in place, including: A) Encounter areas. B) Random Encounter Creatures (both overland map ones and normal encounter versions). C) Encounter table 2da files, including the one that awards XP for an encounter “victory”. D) All conversation and script files associated with areas and creatures.

2) Next, I decided how I wanted my own encounters to work. To this end I removed all code that was specific to SoZ “special” encounters to leave just the random generated code to work with. I also reduced the amount of 2da cross-reference required by naming the encounter table as a variable on the terrain trigger rather than use the 2da that lists all tables and then cross-reference that with more code.

3) I then reworked the terrain heartbeat script (the script that checks for encounters) with edited versions of my own functions that are normally called from the ginc_overland include file. In particular, the InitializeEncounter function and others that are called from that, so that they checked the whole party skill set rather than just the leader used at the time. I am still working on slight alterations here, but some calls use the best party PC skill, whereas others will use an average party skill check. I am also considering adding these values to the Travel Info GUI for the player to see their current skill check levels.

It is not probably relevant to post any of the scripts, as my own specific code may only serve to confuse. However, the points I made above are good basic points that could work in general map building.

To remind readers, these maps will be more like “movie maps” in that the player can move across the region at a constant speed (unlike the official map) and time taken will be calculated and fed back in the GUI instead. For the same reason, I have decided not to reflect “night” and “day”, although this could be turned back on if there was much call for it. However, the time only updates when the PC stops moving on the map or moves to another area. Therefore, the night/day shift would (or could) suddenly change from day to night (or vice-versa) if the player did not stop moving for a period of time.

I have added a couple of screenshots (not too exciting) that show the work in progress. The first shot demonstrates that while one PC (the male PC) is doing the leading through the map, that it is the second PC (the female called Threska) who heard the creature for the party. These onscreen text feedbacks are likely to change or be removed before the final version. The second screenshot shows the ogre encounter in place.



There are a couple of other small details that I worked on along the way: a) I reworked the colour of the CR text on creatures, as sometimes I could hardly read them. b) I reworked other areas of lead PC skill checks to party wide skill checks, such as using the best PC intimidate or bluff in encounters where available (if more than one PC had the skill on offer to help save the player from having to remember the highest member).

Having reached this far, I do now realise that to do this specifically for my own campaign, I will need to write some of my own 2da encounter tables and accompanying creatures and conversations. However, it seems a shame not to make use of the many resources already available and intermingle them with some of my own. By the way, making the terrain trigger take the encounter table 2da directly involves one less 2da edit.

While I have not completed my research and coding just yet, I would say that I am 90% there. There are still one or two decisions I am considering, one in particular is whether to allow a player to switch PCs while on the overland map. It is currently disabled and works more as a “movie map” this way as intended. And as all checks are made as if from the party of PCs rather than just the leader, then the ability to change PCs is probably moot. However, if I can enable it without messing up any coding I have done, then I may do so, but I don’t think the feature is necessary more than just included because it can be. UPDATE: This option to switch PCs while on the map will NOT be enabled as it causes one or two other issues. The option to switch between PCs while on the map should never be needed anyway.

If you have any questions about this, or concerns for play, then please do add a comment.

Saturday, 26 September 2009

Goodies For All!

I did some more work with the overland map this week with respect to the “goodies” that can be discovered and random encounters. It was interesting to see the code used in the OC, but I also found it rather complicated and decided to simplify and make it more “party” oriented than the OC system. For instance, in the OC, “goodie” finds are based on the leader’s ability only, whereas my system uses the best skill score in the group to make the checks. Therefore, a well-balanced party with mixed skills has more chance of discovering “goodies” than having to rely on one good leader.

As I have barely started looking at the random encounter code, I don’t have a lot to say about it. However, I do intend to use it and would like to have feedback from readers if they would prefer to switch the encounters on and off? Or even have an option to increase or decrease the chance of encounters, as if the party were out looking for monsters, or deliberately trying to avoid them! (Please leave feedback if you have any preference.)

Crafting Items

Another aspect of which I am very aware when playing SoZ is that making sure the player will have “potential” access to all crafting materials is vital. After all, having recipes that cannot be followed due to a lack of materials will become a quick turn off if not managed correctly. To this end, I am ensuring all recipes do have the potential to be crafted if the player ensures they have the capabilities to acquire and work with the materials. It will be a two-way responsibility: I will ensure provision if they take the trouble to learn to craft. And as regular readers of this blog will know, every recipe has now had its gold requirements reduced (in most cases) to ensure there are no extreme prices for said items, but at the same time, maintaining a balanced economy.

Moving Forward

I have also managed to do more work on one of the side adventures. I was reminded just how difficult it can be to do something that may be slightly different from the norm. For instance, a “simple” transition I was working on was complicated by the fact that I wanted to offer more ways to use it, subject to the party’s skills and abilities. Instead of being able to use the normal simple transition lines in the properties, I ended up writing four separate scripts!

Party Focused

I want to stress how this campaign will be written with the party as the focus rather than a leader with a group of followers. An example of such was given above where every member of the party will be checked when discovering “goodies” on the overland map. I also wrote my own system for “party conversations” before SoZ came out, which allows responses from all party members and not just the main PC speaker. After all, party members should not stand mute if they have something valuable to offer. This system is slightly different from the SoZ system though, in that the options present themselves immediately without having to click on the party member in the conversation menu. Note: I will probably make use of both systems as required.

The Rewards Poll

This is still up and running at the Vault and currently has the following scores …

Saturday, 19 September 2009

History In The Making

This week, I have been trying to tidy up some of the files that can be downloaded for players to read some background story to the campaign. These are basically synopses of gameplay that my own group of players did between the years of 2002 - 2008. Unfortunately, all the adventures except the last one (Soul Shaker) were not written for general release and required DM controlling a unique turn-based combat system I wrote with NWN. (Soul Shaker can be downloaded from the Vault.)

NOTE: Knowledge of the campaign is not required, but if you want to get a better understanding of what has already transpired and like a simple read, then feel free to download a chapter and take a look. Some chapters are better written than others. (Remember, these were originally only written to remind my players what had happened each week between play and so I was not always giving the writing my 100% attention.)

I am also continuing to work on the new website to help provide other background (covering earlier parts that these synopses do not cover) and other game mechanics information.


Better The Demon

The next chapter begins after Soul Shaker and as you will know by now is called, "Better The Demon". It is designed in NWN2, whereas all earlier adventures used NWN1.

Progress with this latest module is slower than I would have liked for a number of reasons, primarily due to my health. However, I am still progressing, and I started work on another area this week and added another unique item that can be used in my modules: Rope. While this item may not be quite as flexible as in a PnP game, it will, none the less, be something to add a new dimension to the game.

Saturday, 12 September 2009

Multiplayer Maps

Last week I showed you my new mapping system and how everything worked just great in my single player testing. Then I tested it for a multi-player environment and had to spend the last week reworking the scripts to work for that. In my writing, I came across three problems, which I hope I have ironed out:

1) The SetScriptHidden function did not appear to work. (After rewriting the script from scratch, this problem sorted itself.)

2) The EffectSetScale appeared to not work under certain circumstances, and so I abandoned its usage and left the PCs at their default (reduced) sizes for overland maps anyway. UPDATE: I discovered that this required a delay before applying in circumstances I did not expect.

3) The PC still made random spot and listen checks even though I had removed all the heartbeat codes that called it. In the end, I tracked down a global variable setting that implied it would ignore the map checks if set: SetGlobalInt(VAR_ENC_IGNORE, 1) ; I placed this in the terrain on enter and so far I have not had any more checks displayed in the chat bar. (I will let you know if I later find this did not work.)

Anyway, a week later and the maps now work for multi-player. One thing I will be happy about, is when I have finished writing all these systems for MP and can leave them alone once and for all.

Scroll Spells Damage & Duration

In the meanwhile, my friend and I have been going through more spells to alter the scripts regarding their usage when cast from scrolls that vary the power. Along the way, we increased the ability increase spells (e.g. Bear's Endurance etal.) to 30 minutes per level and increase by 1d4 + 1 instead of a fixed value of 4. Invisibility has also been increased to 10 minutes per level.

The Poll Continues

Chaos Wielder of the Shagret site kindly posted my last poll on the Vault to see what kind of response it would receive there. The Vault obviously gets far more hits than my own blog and it's interesting to see the comparative scores. I include a shot of the results so far.

If you want to go and register your vote there too, here is the link to the Vault.

Saturday, 5 September 2009

Maps - The Best of Both Worlds

I had no intention of doing what I did this week, but recognising my own ineptitude at designing areas led me to it: I have finally managed to incorporate a version of SoZ's overland map system that is compatible with my own design! I went down this route because my efforts at city design to date have been awful, and I much prefer the way it is handled in SoZ overland map system where the city is simply a placeable with conversation options. Being able to have a player click on a city and take them to certain spots within the city is both easier for me to work with and quicker for the player to navigate to the areas they want to go to.

However, there was an important hurdle I had to overcome before this mapping system could be used. For my campaign, the following design point was implemented well before SoZ hit the scenes: A Vigour System that is designed to track a PC's fatigue levels based on food, sleep and distance travelled. As this system is linked to movement and travel, I had to design a real-time wrapper to work alongside my current system when the player chooses to explore a region using the overland map rather than simply travel to an area via the use of a world map.

Multi-Map System

With the addition of this mapping system, it now means the player has the choice of travel based upon either: items they have acquired, objects they have activated or how healthy they are to travel. As a game, it means the player can choose the method they prefer to use, or maybe even use a combination of all as they become available. The default/basic map system available will now be the SoZ overland system (subject to how fit the PC is to travel according to their Vigour level). Alternatively, if the PC finds a map and gains locations on the map, then they will be able to choose to use this form of map travel instead (as long as they have enough provisions for the journey). I have even made use of the original NWN2 map system for yet another method of travel, but I won't go into details of that one now - I want to keep some surprises. ;)

Flexible Use & Travel Info

After getting the core system in place, which involved coding for various terrain types (which affect speed of travel), I realised that the system is also flexible enough to allow other modes of transport to increase the speed at which the party could potentially travel. For instance, it is possible to have a special variable check for "flying" or "mounted", which would alter the speed variable and thereby increase the distance covered in a given time. I don't have any immediate plans to do this, but it was good to know that it may be possible.

From the player's perspective, the speed at which their PC crosses the map remains unchanged, which means slower movement for the PC is NOT actually reflected in the player's avatar onscreen. This is useful because it means a player can reach any location on the map in the same time while moving the character across the screen, although the amount of time it takes for the PC in game time is altered according to the terrain type and speed for said terrain. (However, a PC is still slowed if they are encumbered.)

All this information is fed back to the player in real time inside a small GUI designed to show the various aspects of their travel: terrain type, movement speed on the terrain, total distance travelled and total time travelled. For those use to PnP (Pen and Paper D&D), the altered system has a similar feel when used, in that the player says where they want to go (by controlling the PC across the map) and the code behind the scene gives the player feedback as they travel. And the most important point of all (which makes this different o the OC), is that it also calculates the PCs vigour levels and checks for food as they go. (Vigour levels for each PC will be updated in the "Chat" window to keep the GUI clear for other information.) This GUI can be closed if preferred and reopens when using the rest button.

The observant among you may notice I have removed the three menu systems at the bottom of the OC map system that are normally along the bottom in the centre. As far as I could see, there was no need for these in my own use. I have a separate date system GUI (bottom right of screen shot), resting can be controlled by pressing "r", and I could not see any other reason for the player menu. If anybody believes these menus contain anything that may be important, please let me know.

Create Food & Water

For those with the spell ability, there will be a means to acquire a special Arcaene Scroll known as Create Food & Water, which can be used instead of rations while travelling. In this case, as long as the party has someone with the ability to use the scroll, then vigour levels are kept fine without having to acquire further rations.

Saturday, 29 August 2009

A Difficult Week

This week has been a difficult one for me. The most stressful time came at the end of the week, when one of our pet rabbits (Honey) stopped eating and started to drool. A few trips to the vets and one operation later (today) and she is back home after having had some spikes removed from her teeth that were causing her pain. She is still quiet at the moment, but now I know the cause of her not eating has been treated, I am more hopeful to see her start to improve again soon.

I did manage to do a little more writing at the start of the week, and can say that the quests are still making progress. I also spent some time designing one of the areas that may be reached, although there is still more work to go there. Unfortunately, for the reasons given, the amount was not really enough to move on the progress marker, although I have jotted down more ideas to translate into module writing.

Rewards Poll

The poll I carried out regarding awards came to an end last week, and I was once again pleased to get a healthy 41 votes. The two clear winners of the Rewards Poll showed that players are most motivated by either finding new Weapons & Armour or Advancing The Story. I found myself agreeing with all of the comments and while some of the other rewards scored lower, I do hope to give a good smattering of the various types listed in the module. Furthermore, I hope to also elevate the "value" of finding gold. At the moment, it is obvious that as a reward it does not inspire much in players, but if they found that they could make good use (or even essential use) of that gold, then maybe it will become more desirable.

Saturday, 22 August 2009

Quest Writing

As the title suggests, I am moving more into the realms of writing quests than covering mechanics ... at last! I know I have reported on this before, but this is also the first time I have started to write conversations and design areas and not had to stop to sort out a game mechanics issue. I even have managed to pencil in a few more areas in my notebook, which are now ready to build in the tool set.

Having started this process, however, I am reminded of the extremely hard task of writing conversations (and journal entries), allowing for varied player options and depth. And it's not necessarily the number of options as such, but more to do with how the different options have an impact on how the various quests will run and interact with each other - and keeping track of all the variables. You know what I mean: Give the player more options and you have geometrically increased your variable count. E.g. In one quest I am currently writing, the player can react to a cut scene in one of two ways. On the surface on things, this would appear a simple two-way check, but as I have come to code for it, I have been reminded of a whole number of other aspects that must be covered if the "obvious path" is not chosen. How tempting it is to not give a choice to the player at the cut scene stage and just move them into the quest regardless. Hopefully, the extra effort of allowing a choice even at the these early stages will give the module a feeling of greater freedom and less manipulation.

Star*Drive

I have to agree with Frank Perez (Faithless Blog) at the look of the up and coming module called Star*Drive by Yaddaman. The work looks like an absolute masterpiece and done with complete dedication to the task. How one man can have done all that I have seen from the screenshots is simply amazing. I do enjoy sci-fi games as much as fantasy ones, so to have something like this mod available in NWN2 is probably one of the most exciting modules to come along since its release, as it will open up a whole new avenue of interest to me. I remember trying to mod a System Shock 2 module once, using ShockED. Now, if this mod is as good as it looks, I will have the pleasure of being able to rekindle my sci-fi modding as a second hobby outlet. (NB: It won't ever interfere with my NWN2 projects, but will give me something to look forward to in the future.)

The Reward Poll

Only three days left to vote in the poll! If there is a reward system you want me to consider in the module, be sure to vote and add a comment.

Sunday, 16 August 2009

Worst Enemy == ME!

I just spent the last couple of days trying to track down why a variable was being reset to zero whenever a second player joined the module when played in MP mode. It turned out to be a function I wrote that was buried inside an include file that helped keep track of module variables between modules in the same campaign. Thankfully, I tracked it down and fixed an issue with this and with the new PC/Companion AI that allows different players in the same MP game to control their own PCs separately from the leader. i.e. Players can control their own PCs independently of the leader with respect to stand ground and follow them. It may not be a major alteration, but it does make it feel like the players are more in control of their own group of PCs even though being part of the same party!

The Smelter

On a more positive note, I did manage to finish coding the "smelter" that allows a player (with a high enough skill) to smelt ore (five of a kind) into an ingot of the same material. And to make things easier for the player, they can add all the ore they have found in a single go and when used (closed) the smelter differentiates the different types automatically and even provides the remainder of ore. (It takes five ore to make one ingot.)

This is just another part of the crafting system where a player controls their components and is encouraged to make their own items. Don't forget that the economy of the system has been greatly revised, which means crafting/enchanting is a lot easier to pay for than it is at the moment. Of course, gold is harder to come by, and so will make gold a more attractive find as well. As a guide though, no single item can be sold for more than 10000 gp. If the value of the item is more than that, then it is considered a "unique" item crafted for the specific use of the player and no-one will (can afford) to buy it. (Don't worry, the smelter wll not appear on a carpet as it does in the screenshot!)

Sunday, 9 August 2009

Spell Alterations

A while ago I explained how I was going to change the way some spells worked because I felt they were too restrictive as they currently played. To this end, I have already altered some and intend to work my way through the rest as time goes by. Here is my list of alterations to date, but please tell me if there are any “pet peeves” about certain spells that you would like altered. If I think it will improve the spell, then I may just add it to my alterations as I go along. As a guiding factor, I often preferred the 3e PnP description to any set in the OC. Alternatively, if you think any changes I have made are too biased, then let me know and I may reconsider.

- Virtue (D4 Temp HPs & Longer duration)
- Ray of Frost (D3 Damage)
- Divine Favour (Can scale to 6)
- Endure Elements (Increase Resistance To 3 Change Amount to 0)
- Summon Creatures (Duration 1 hour per level)
- Charm Person - UPDATE: Left as OC: 12 seconds + 6 seconds / 3 Levels
- Expeditious Retreat (Duration 1 minute per level)
- Magic Missile (Missiles increased to max of 10)
- Ray of Enfeeblement (Duration 1 minute per level)
- Sleep - UPDATE: Left as OC: 18 seconds + 6 seconds / Level
- Resist Elements(Decrease Resistance To 12 Change Amount to 0)

By The Full of the Moon

For those interested in photography, I took these photos of the moon the other night and thought I would share them with you. Quite atmospheric I thought.

Friday, 31 July 2009

Castle & Classic Cars

While I have been working on the module, I have also had the opportunity to sample some of the better weather we have had of late by taking a trip to a local castle: Chiddingstone Castle. It was a pleasant day out and we were blessed with the added bonus of a free classic car show while there. For those interested in some photos of a castle and a few classic car shots, take a look at this web album. (Can you spot the troll in her lair?) And here is the official Chiddingstone Castle Website if you want more information. It is the farthest and longest I have been out in quite some time and I am still recovering from the trip even now, but it was worth it, as I like to get inspiration for some building designs when visiting such places.








Picking Pockets

One of the gaming aspects I have been looking at is when a rogue attempts to pick an NPCs pockets. Having looked at it more closely, I discovered an issue where a PC does not always get "reproached" after being detected by their target. I made a post at the forums, but no-one has come back to my last post where I mention the issue. If anybody reading this blog can shed some light on how to resolve this, it would be a great help. :)

Zork - Great Underworld Empire

If you fancy a chance to play (or replay) the classic Zork I adventure game using the NWN2 interface, then look no further than Amraphael's excellent conversion at the Vault: ZORK – Rediscovering the Great Underground Empire. Amraphael (a.k.a Nilhar) has done some very impressive work in this module, and I am not too proud to say that there are some ideas that I would like to copy and consider using in my own.

Saturday, 25 July 2009

Rewards (POLL: What Reward Gets You Excited?)

I don't have much to report this week, as I have not had much chance to work on the module at all. The little I have done involved a script that attaches to a creature's OnDeath script and has them drop some treasure (of gems and gold) according to their level. I wanted to make sure all gems could potentially be found, as the crafting systems require gems in many cases. However, this also got me to thinking about rewards in general and I decided to flesh out this weeks post with another poll: What Reward Gets You Excited?

I decided to only allow one answer in this poll to try to concentrate the answer, but if you wanted more or had something different in mind, then please add a comment. :) NB: By "Reward", I don't just "treasures", but any kind of "return" for your playing the module.

Friday, 17 July 2009

Moving Along ... With Patch v1.23

Ye Olde Shoppe

With the majority of the costing exercise behind me, I started to make use of the new economical values in my module by starting to work more with some of the shops and trades that will be available in the game. As mentioned in a previous post, each trading place will open with an additional "store" information GUI, giving extra details for the place, such as maximum buying prices, identify costs and limits to the store's gold. In addition to this, I have now created a system that randomly adds new stock items and informs the player of such in the new GUI. New stock may simply be other useful items, or may be a special item that will add more to the game. Note, however, items that don't sell will be removed from stock after a time and new items added, so if there is an item you want and you have the gold, buy it!

The system already works well, and all I have to do now is customize some new stock items for the various shop types and consider adding extra code to the system that decides how to handle items sold to the store from the PC.

Party Maps

Another system that I finished this week was the Party Map system. Readers of the blog may recall that I do still intend to use the map systems from both NWN2/MotB. Each system is used in a different way according to what the PC has discovered. However, I have also adapted the code to allow PCs to acquire map items and view them as a party (including MP mode). The map displays locations discovered and gives some information about them when selected, but the "Travel To" button is disabled to prevent a quick escape from a dungeon environment. The idea is to allow PCs to look at a map together and discuss options similar to old PnP style play.



Dead Weapons

With the release of patch v1.23, I have been able to make use of some of the new functions, including the GetBaseMaterial to determine what material an item (in this case a weapon) is made from. This is useful to me, as it means I can determine what properties may still be available to a weapon that has degraded. i.e. Dead Weapons (*) degrade in my game. However, if a weapon is made from a certain material (e.g. adamantine), then any properties associated with the material in its construction are not lost, as opposed to magic weapons that may have had 2-3 properties on them, but have been lost with weapon degradation and lack of care. This means, of course, that sometimes it may pay to have a weapon made of a certain material, as its properties may last longer than a weapon made from iron that has been enchanted. NB: There are means to keep a weapon in good condition and not lose any properties. Also, Living Weapons, by comparison, do not degrade with use. (*) The term Dead Weapon will become more obvious when playing the game.

Auto-Pause Combat System

With the release of patch v1.23, I also want to make a slight alteration to my optional Auto-Pause Combat System. At the moment, the system works well, but now that instant feats have become available in the latest patch, I would like to make the new "feat" instant in response, as opposed to have an action delay time. However, the new feats.2da supplied with the patch failed to have the new column added, which means although the facility is there, I cannot make use of it until I have managed to edit the 2da file and added a column. I have told it should be possible using Excel, but at the moment I have not had much success. I guess Atari will release the file separately at some point. Even so, I think this new feature of instant feats will be a great blessing to the community.

NWN2Player.ini

After patching to v1.23, I found that when I entered Character Mode in game, that I could no longer look upwards, like I could prior to patching. I was about to reinstall the entire game when I had a thought about allowing NWN2 to rebuild the NWN2player.ini file after I deleted my version. Thankfully, after doing this, the game worked again just fine. I know one of my players was also struggling with one of his playing modes, so maybe this might be a fix worth noting for future reference. NB: I don't think the fault was as a deliberate result of the patch, but in my case, it did occur at the same time.

Saturday, 11 July 2009

A Recipe For More Work

Today, I was hoping to bring news of finishing the "costing" exercise I have been trying to sort out for the last few weeks. Unfortunately, while on the home straight (reworking the costs of creating Wondrous Items using the new SoZ recipes), I came across another "problem": It seems that the minimum caster level stated in the Wondrous Item recipe description actually has no bearing when using the recipe at all!

On checking the 2da file and accompanying crafting scripts, I could not see any check for caster level and, in practice, I was able to create a Cloak of Resistance (+5) with my 1st level cleric (after I gave him all the ingredients), which according to the description requires a 15th level caster. I made a post on the forums asking people about it. For now, I have put this final section on hold awaiting any further information on this, as I do not want to edit all the descriptions only to find it "fixed" in the next patch. I don't mind there being no minimum caster level, but if this is the case, it does affect the costs involved to create the item in the recipe.

Spell Alterations

In the meanwhile, one of my players has been helping me go through spells in the game to work out which ones will require extra code to allow variable level casting and any alterations we want to include. E.g. A Summon Monster lasts 1 hour per level (max 20) or until killed now. We have done the first couple of levels and will hopefully get through the rest in time.

The Greater Essences

After closer study of the greater essences and what properties they instill to items, I have decided to alter the level at which PCs need to be to work with them. I compared the level of giving a basic property to an item between the OC crafting system and the MotB system (like giving armour +2 AC) and then adjusted the level slightly for any "cost differences". By my calculations, the level to work with the greater essences dropped by 4 in every case. So now, the caster level to work with greater essences are as follows:
  • Brilliant Essence (x1) : 8th level.
  • Brilliant Essence (x2) : 11th level.
  • Brilliant Essence (x3) : 14th level.
  • Brilliant Essence (x4) : 17th level.
  • Pristine Essence (x1) : 20th level.
  • Pristine Essence (x2) : 23rd level.
  • Pristine Essence (x3) : 26th level.
This allows the players to start using the greater essences much sooner than normal, which is something I want to encourage. The properties that can be enchanted with these essences are now closer in value to their creature distilled lesser essence types.

The only downside to all this of course, is that I will now need to edit the essences descriptions to reflect this. However, as there will be a single tome explaining all the greater essence recipes, I will simply remove much of the crafting descriptive text and leave something a little more generic. This does, however, prompt me to have to finish the Greater Crafting tome that I started some while back.

Free Game

Lastly, has anybody tried playing this free game from Aeria Games? I have not looked at it yet, but wondered if anybody else had any experience with it?

Saturday, 4 July 2009

The Sum of the Parts ...

… Will not necessarily be exceeded by the value of the whole. This is my conclusion with regards to making items from various ingredients anyway. My initial aim was to balance the cost of making items to their sale value, so that a sensible economy was maintained in the world. However, there are some circumstances where such balance is simply not going to happen. In other words, some items will cost more to make than they would eventually be worth on the open market.

However, after a great deal of item cost rearrangement, the number of items that are worth less than they cost to make are far fewer than before, and those that still are can be justifiably explained (in my opinion). As a general rule, the more powerful the magic, the less you get in return for your input. (Think of the cost of increasing the amount of cache memory in a computer for the return performance it gives.) As an example, a crafter might get a reasonable return for a crafted item up to +5 in power, but thereafter (+6 and above), the cost becomes more than they would get in return for the items used in its creation. This, of course, gives added reason why items above +5 in a world are seen far less than the smaller values. Crafting items of a higher power becomes more of a personal achievement than about money making. And this would also explain why such items would not normally be sold on the open market, unless of course, the seller did not craft the item in the first place and was simply making what they could from the item.

To reflect an area of cost I am talking about, look at the table below that shows the value of using essences to create an item compared to the market value that said crafted item would reach. NB: When I speak of crafting, I also mean it to include the ability to enchant items, as they are closely related. Both speak of creating items using other items as ingredients or catalysts in some way.

Please note that the values above are a guideline only and may not be the exact values acquired in game due to other varying cost factors and bartering. From the above table you can also see that the value of essences has been greatly reduced from the norm. The next table shows all the values of essences available. In the OC, essences costs ran from 150 gp – 100000 gp with no distinction between the types, but now I give a greater value to spirit and power essences, which I believe are used in the more powerful enchantments.

Note also that the lesser essences convert 2 to 1 (unchanged), whereas the greater essences now convert at 5 to 1 (from a previous 8 to 1 conversion rate).

The New Cost Variations

All my modifications to the 2da files have now reduced the costs of items considerably. As it currently stands, it is reasonable to say that adding a single magic property to an item can add somewhere between a few gold (e.g. 40gp for a 20% reduction in weight of an item) to a few hundred gold (e.g. 500gp for a +1 to AC or an enhancement.) Immunity to something currently adds the most cost, running into potential thousands of gold for a single immunity. (This is still an area where I am adjusting ingredients for crafting items to balance the cost of creation.)

Ammunition/Thrown Weapon Costs

Another consequence of these adjustments is that ammunition and thrown weapons will now only be available in quantities of 20 and likewise the same ammo will only be crafted in quantities of 20 at a time. I am using a guideline of around 100 - 250 gp cost for the amount a PC will have to pay for magic ammunition or thrown weapons. I decided to include darts, shuriken and throwing axes in the same relative costs as arrows, bolts and bullets and current testing shows a base cost factor of 0.001 and a multiplier of 0.01 in the baseitems.2da for all of them gives reasonable cost results.

Recipes

The “modern-day” recipes that describe how to craft or enchant items will also be available in Althéa. Their cost is always around 4gp (EDIT: Some enchantments cost slightly more.) as they will be single use items in my world and creation recipes will still require ingredients to use (enchantment recipes will only need gold). (Molds cost more in the first place but can be used repeatedly.) The advantage of using recipes is that they often (not always) aid the crafter to create or enchant an item at a lower level than would otherwise be required. The disadvantage of using recipes, is that there is usually a much higher cost gold involved (reflecting the ease of use) to complete the item.

The Bottom Line

Overall, the cost of items feels more realistic to me and the economy comes across as more achievable to the population where stores and general crafting NPCs are concerned. No longer will an NPC have a multi-million gp-worth store containing many amazing items (no matter what the level of the module is aimed at), but now, the storeowner will have most items running into hundreds at most, with a few exceptional items at higher levels.

In most cases it will benefit the PC to craft any items that they want to use, as it will be cheaper than if they simply paid for them. Some items will not even be available to buy and crafting (or finding) will be the only means of their acquisition. Sometimes, selling crafted items will bring a little gold profit and at other times the cost of the ingredients will outweigh the final worth of the crafted item; the player must make a decision if they want to make such an item or not. However, as the PC grows in wealth, gold will become less important than the items they can craft and so the decision will become less difficult to make.

The D&D Style Poll

The poll about which style of D&D you prefer to play (more action v more reading) ended a couple of weeks ago with a healthy 40 votes. The results are quite interesting and may be skewed slightly by the way I asked for votes (in that you could choose more than one response). However, if I am to take it that everybody did vote on every aspect they wanted, then it certainly looks like an almost 50-50% split!

For me, I believe that means I need to concentrate on a method of play that allows rewards for both styles of play. In all fairness, I believe the “action” player is already rewarded by their keenness to take on more combat: more combat means more experience. However, in the past, players have not quite had the same direct kind of rewards for doing more reading (unless you consider the read a reward in itself). Therefore, I have concluded that I will continue to invest some time in my “reward tests” for players who take the time to read any books they find. Experience will not be rewarded just for picking up a book and reading it (although that could still possible in some circumstances), but PCs will be rewarded according to how much a player remembers (or finds out) through further reading. How this will play in practise, only time will tell. Whatever the case, I hope it will offer an interesting playing opportunity to those that like to read and become involved in a world mythos.

And a happy 4th July to all our American friends!

Friday, 26 June 2009

Roll Up! Roll Up!

What a week! Editing 2da files is a laborious task. Hopefully, however, after my long search and many calculations to try to make the cost of items more “reasonable”, I am nearing the end. It was an encouragement to have Rob McGinnis (McGnome) point out in a comment that even they found this “a pain”. (It’s good to know I struggle with the best.) Besides that, I have taken time to improve my Scalable System a little further, to now include a way to allow crafters to increase the power of an item they craft at an extra cost. Lastly, I have added a new GUI to replace the previously edited official “Store” GUI that gives extra information about a store. Check out each section that may interest you below.

The Cost of Items

First of all, let me share with you all the 2da files I have edited so far (that appear to have an impact on the cost of items), and information I have learned about them. I currently have the following edited 2da files sitting in my override folder:

Armorrulestats: To alter cost of masterwork & mithral items.
Baseitems: To correct shields costs and alter the ItemMultiplier factor where needed.
Iprp_arcspell: To alter arcane failure costs. (5-50%)
Iprp_bonuscost: To alter ability costs. (1-12)
Iprp_chargecost: To alter costs related to number of uses and charges.
Iprp_damagereduction: To alter damage reduction costs. (1-40)
Iprp_damagetype: To alter factors involved with various damage types. (Cold etc.)
Iprp_feats: To alter costs of feats.
Iprp_immuncost: To alter cost of immunity percentage. (5-100%)
Iprp_immunity: To alter cost of a specific immunity. (Poison etc.)
Iprp_meleecost: To alter enhancement value costs, including AC. (1-20)
Iprp_resistcost: To alter damage resistance costs. (Resist 5/- to Resist 50/-)
Iprp_skillcost: To alter costs of skills (ranks). (1-50)
Iprp_spellvcost: To alter costs of spell level related benefits. (0-9)
Iprp_spells: To alter spell costs. (A factor that can vary with other files.)
Iprp_srcost: To alter spell resistance costs. (10-40)
Iprp_weightcost: To alter weight reduction costs. (1-80%)
Itempropdef: Contains a factor used in calculating costs. (*)
Itemprops: To correct (remove) some invalid property entries from the toolset. (*)

(*) My thanks go to Sunjammer for extra information regarding these two files, as they have a number of errors that can confuse the builder. I recommend their download and use. For more information, visit Sunjammer’s website.

I am not sure how many more 2da files there may be left to consider, as I am only part way through checking the effect of my alterations on the costs of items. However, I can say that with these altered files, the costs have dropped considerably and cover most of the items I have checked to date. I did have to revise my original cost values for the Iprp_spells file I reported last week, as I learned they had a large impact on items that could cast spells. However, after a little more alteration, the costs settled down again. I do still have a number of craft items to check costs on, but now that the core costs have settled down, I hope to check these costs some time next week and correct any that don’t make sense.

The Scalable System

If you read the blog last week, you may have noticed that I have slightly altered some of my original idea to help form a better overall system. I decided to do this to allow the possibility of being able to buy items (scrolls, potions or wands) that would cast at a higher level if the PC paid a higher price for said item. For example, a PC can now buy a Potion of Cure Light Wounds at any level the store has available and gain the advantages of the more powerful brew after paying more for it. Check out the screen shot below to see a store with two different versions of the Cure Light Wounds potion. NB: Paying extra for such a little difference in benefit may not be worth it in many cases, but in cases where duration is subject to caster level, then paying extra for a longer duration may be worth considering.

However, the real benefit of this system is for when a PC crafts a scroll, potion or wand. Upon completion of the crafting (and if scaling for the spell cast is possible), the player will be offered a new GUI for them to pay extra to ensure the item crafted will cast at a minimum level when used. (See screenshot.) Note that levels offered will be between 1 and 19th level, with levels incapable by the caster and levels below a minimum innate level of the spell being made “unavailable”. This will be very useful for PCs who can craft items such as Wand of Fireballs, and want to ensure the fireball cast from it meets a minimum level. The same holds true for crafted scrolls and potions too. There are two caveats for crafted items, however:

1) A minimum level only applies to damage/cure amounts and/or duration. Spell Resistance and DC rolls are still based on the users spell capabilities or the item’s innate caster level. (The lowest caster level required to cast the spell.)

2) Merchants, if they even entertain buying crafted items, will not normally pay more than it costs to make an item at its lower level costs.


In the last day, I have been editing the spell scripts that require the extra code to handle this, and testing has proven everything works fine. Scrolls still cast at the caster’s highest spell capability, whereas potions and wands now cast at the level they have been crafted. In the case of a scroll having a minimum level higher than the caster’s highest caster level, then the scrolls minimum cast level will be used instead.

Store Information

In a previous blog, I showed you how I had extra store information shown in its title bar. Well, now I have introduced a new GUI that will open at the time of purchase that will allow a player to trade more efficiently. It will show such things as “Store Gold”, “Maximum Buy Price” and “Identify Costs”. Check out the screen shot for a visual.

Friday, 19 June 2009

Counting The Costs!

Here is my problem: Why would a player bother to use an amethyst (normally 100gp value) and some powdered silver (normally 50gp value) to craft some Holy Water worth around 25gp on average? It just does not make any sense. Furthermore, the clerics who tend to supply Holy Water would quickly go out of business at these costs, no matter how charitable they are.

This is why I have to confess at having to sort out another “mechanic’s problem” before I can get back to writing the plot. Furthermore, this is just one example of a complete system rife with cost anomalies that would drive a player to despair if they looked closely enough. But it’s only a fantasy world, I hear you say. I know I could have just gone with the flow, but after having put so much effort into encouraging crafting, why have the whole thing spoiled due to bad game economics?

2DA Nightmares!
Sorting through the tangled web of 2da files that handles cost has not been easy, and I have discovered a number of further “problems” along the way. One file in particular has grabbed my editing attention: iprp_spells.2da. Examining this file, I discovered a large discrepancy between the costs of casting spells of the same level. Some spells even did not have a properly calculated cost element in place, meaning some high level spells could be cast at a cost cheaper than a 1st level spell!

This was not the only 2da file with problems. The baseitems.2da also needed some editing to help bring prices back in line with D&D costs (e.g. shields and everything else halved), and also to help alleviate the cost of preparing potions (multiply factor). To sort out the problem of craft items being worth more than the final product (like the Holy Water above), I ended up reworking some of the costs of the individual crafting items (reducing their worth) and changed one or two of the items required for various items in the crafting.2da file. This also meant I had to update the information in my crafting tome that PCs can find in the game. I will also need to re-evaluate all the costs in the nx2_crafting.2da file as well to reflect a more consistent cost when crafting items using the various materials that have changed price.

Finally, I am also working through the des_crft_spells.2da because there are some spells that can currently be made into potions that should not be able to. I am following the rule that potions only work on the imbiber. E.g. It’s absurd to consider a Light potion can be brewed to allow a PC to cast Light on a fellow PC.

I spent quite some time working out the formulae for calculating costs of items before I found this piece of information in the itempropdef.txt file, which confirmed what I had already figured plus gave me the missing factor that was to be found in the itempropdef.2da.

+-------+---------------
E Cost
+-------+---------------

A factor that determines the final cost of an item. The actual calculation may or may not involve summing all the "cost" values of item properties, squaring this value, multiplying by 1000, adding this to the base value of the item, then squaring the sum of all the negative "cost" values, subtracting this from the positive/beneficial sum, then multiplying this value by the base item multiplier.

With this new knowledge in mind, I started to examine why certain items calculated at certain costs and discovered that some 2da files had errors in them. As one example, notice how the costs for adding the 70% of weight reduction to an item costs more than better values. I have altered the iprp_weightcost.2da file to use the following figures to correct for errors and alter for Althéa costs. (NB: Although I have kept the rows in the same order, this table is not meant to represent the actual 2da file, but a table to show my figures and results. I decided to cost weight reduction at roughly 10gp per 1% reduction.):

Updated With Correct Values November 2014
Consistent Costing
Another issue with the iprp_spells.2da file is that it contains the costs of setting a spell on an item at different levels. The problem with this is (in my opinion) is that it automatically defaults to the highest level (and therefore costs) for the PC. This just serves to add further confusion for the player when using one of these varying level spells, because one time a spell may cost X amount to craft an item, while another time it has increased to Y. To resolve this issue, I calculated what I believed to be the correct cost for each spell level as if cast by the lowest spell caster level possible, so that now, a player knows exactly how much it costs to craft an item with a particular spell. Check the table below for my current set cost figures and the equivalent item values.

Scalable Power

From this, I also developed the “Scaleable Power” system, which has always been a part of the Althéa scroll system: Casting power (for scrolls) scales to the user rather than the original creator. Furthermore, as long as a PC can use an item, it will automatically cast at the user’s highest spell casting level, regardless of magic type. E.g. A 1st level wizard / 15th level cleric would be able to cast a Fireball scroll as if caster level 15, because they have at least one level in wizardry that allows them to be able to read the scroll. However, I have introduced one check that must also be satisfied: The user must have a Wisdom, Intelligence or Charisma score equal to the spell level + 10 to be able to use the magic in the item. E.g. In the above example, the PC must have a Wisdom score (most likely key attribute in this case) of at least 13 (as Fireball is a 3rd level spell).

Both scrolls and wands scale in this way, with one further exception for the wand: The power of a wand will only scale if the PC knows the spell it is casting. (Awaiting new SpellKnown function in patch v1.23) If they do not know the spell, then the wand casts at the lowest level that the spell can be cast, with a minimum of 5th level (the level any crafter has to be to craft the wand in the first place). E.g. A Wand of Ice Storm used by a 17th level cleric would only cast at 7th level. (The lowest level to cast Ice Storm.) However, the same wand in the hands of a 10th level wizard who knows the Fireball spell would cast at 10th level. UPDATE: I have introduced another part to the craft system that means wands will now only cast at the level they are created. I will explain more in my next post.

Potions are always set to work at the lowest level that the spell could be cast, but at a minimum of 3rd level (the level any crafter has to be to brew the potion in the first place). NB: There are some “Special Brew” potions (E.g. Heal) that do work at higher levels, but are outside the ability of the PC to craft. PCs can only brew potions that are 3rd level or lower. UPDATE: Potion crafting has also altered. Again, I will explain more in my next blog.

There is a downside to all this, of course, and that is I have to add a small amount of code to every spell script that requires power scaling. (That is a lot of scripts!) Now, considering this, I may opt to only scale certain spells (even though any spell is potentially possible), simply due to time constraints.

And this is where I ask the readers to give me feedback on “MUST HAVE” spells to scale with use. Please leave any comment you think will be helpful. Thanks!