You are here

Building PvP Modules in Neverwinter Nights


While Player versus Player modules are not as common nor have as great a following as Story based modules, they are still a legitimate part of the available player experience. They are perfect when you need a quick play fix and don't have time to get involved in a story, for those times you would rather face a human opponent instead of computer and even for when you crave sport instead of roleplay. That's not to say that roleplay can't be a part of the PvP experience, it often is. It's simply that people don't associate roleplaying with PvP.

At first glance, you would think that making a PvP module is pretty simple. Put together an arena area, throw in some merchants, set your server to full PvP, throw it up in the Arena section of Gamespy and you're done. In fact, many an arena module has been made just like that. They usually last a few days before they disappear from the server lists never to be seen again. It seems that even the audience has learned that it takes more than that.

I learned that lesson too, as that pretty much describes my second PvP module. The first was simpler even. Many of the things I've learned apply to module making in general, not just PvP so if you're interested in making modules, stick around.

Roim's Rules for Module Making:
1. Size matters. Nothing should be larger than it needs to be.
2. If people can exploit, they will exploit. Cheaters do prosper.
3. People need guidance. Script this wherever possible.
4. Balance matters. No single class/race combination should dominate.
5. Small moves, Ellie. Make little changes, not large ones.

Let's take a look at these one by one.

1. Size matters.

Maybe you've not noticed, but the environment in NWN is not to scale. Doors are far too tall, ceilings too high, building too wide, steps too tall, etc. The players have been made small in a large world and we're not even haflings by default. Many single rooms are the size of whole houses in comparison as people trying to make logical layouts that match the exterior shapes of the buildings end up making gymnasiums with furniture.

The starting area of any module is the place where the creator exerts the greatest control over the player's experience. This is where first impressions are made. This area should be small, and contain everything the player needs to know/learn/buy within this small area. If a player joins your module has to search for elements she needs to start playing, then the focus of the game is immediately lost.

The most obvious way in which the player loses immediate focus is if they have to go off in search of merchants. Players get their starting gold and now need equipment. Don't make them go off in search of different shops. Start them where the merchants are. Let them equip immediately then they can focus on your game. After all, it's the game that's important, not whether or not everyone can find the shops and are forced to explore your city before they can play your game.

Size also applies to your other areas. In the real world, when you walk into a tavern, you don't walk into an area the size of Cleveland but instead into a small, contained environment. So why are all the indoor rooms sprawling 5x5 ampitheaters? When making any area for your module where NPC interaction is supposed to happen, ask yourself what size it absolutely has to be to accomplish the player interactions within it. In most cases you'll find you only really need a few tiles to accomplish the task.

While we're on this topic, one last thing. People are not, as a rule, observant. If there's something you want them to find, you need to make it obvious. Doors, stores, tunnels, etc. all need to be easily spotted unless there's a plot need to conceal them. You don't want to listen to people shouting for directions on how to leave your keep, you want to them to find their way outside without assistance.


2. If people can exploit, they will exploit.

Cheaters do prosper. Not that everyone's a cheater, mind you. However when you start observing what's going on in your module you'll be amazed at the ways people will cheat. There are some people who will go to great lengths so that they will not "lose." Why do you need to stop cheating? Because you want a level playing field for everyone and that means you have to work to keep the dishonest players honest.

One of the most common cheats is to log in, hide your starting gold, log out. Log in with a new character and new starting gold. Go collect the old character's starting gold and voila, you've got double the starting cash which immediately gives you an edge in the way you can equip yourself. I've watched people do this five or six times in a row.

A good janitor can prevent this. Put a janitor character in the areas where this is likely to happen. The janitor watches for things placed on the ground, then collects and destroys them, thus taking care of that exploit.

I can't give you a blanket list of exploits that you'll need to watch for. They might vary greatly from module to module. But if you find that one particular player is doing much better than the rest then you might want to spend some time watching what she does. I've spent many a time in invisible DM mode following people around to learn how they might be cheating. Sometimes I feel as though most of my scripting goes toward eliminating exploits.

Here's a specific one that was a tough catch. In my modules I've implemented a rest limit. Every 2 game hours (4 real time minutes) a player may rest. Mages don't like this and complain the loudest but they are the reason this is implemented. Without it they can simply cast, rest, repeat constantly which makes them more powerful than they should be. What happened then was that a mage came up with a work around for the rest limits. They would rest only until most of their spells were available then cancel the rest. Since the rest was canceled the module wasn't counting it as a full rest so no time limit was placed. My solution was to check for a cancelled rest, if rest was cancelled then drop the player to 3 hit points and send them a message that they were groggy and week from interrupted rest. Exploit solved.


3. People need guidance.

They do. Really. If you don't give them guidance you'll spend too much time answering questions and listening to shouts. That is to say, you end up being a customer support person for your players. If you're looking for a customer support position odds are you aren't doing it by building modules so provide all the guidance you can for your players.

I provide guidance in many different ways. The first way is that in my server description I actually provide a description of what the module's about and things the player should no before creating a character. It amazes me how many people don't provide this, or instead provide a web address expecting me to exit my game client to go read a website to learn if I want to play their module or not. By the time I've done that I'll have probably forgotten the name of the module and will play something else. So the first bit of guidance you can provide your players is meaningful information in your server description.

The next place I provide guidance is on in-game documentation. Every player coming into the module is given copies of relevant documents. In my current module, a teams based PvP module called The Balance, they receive a Things to Know document called Instructions that lists all of the important guidelines and modifications they should be aware of to play. They also receive a document call "Laws of this Module" that tells them what are considered crimes here and how they are dealt with. For example, swearing is not allowed, anyone caught swearing will be turned into a cow. Finally, I also give them any supplementary instructions that might be important. The Balance incorporates subraces, so I give them a document called Subrace Instructions that contains just that.

Sometimes it's necessary to provide guidance in other ways. The Balance is a team based PvP module that pits Good players against Evil players. The only way to tell who's who on the battlefield is by looking at their armor. Good's armor is all light gray or silver. Evil's armor is black. If someone isn't wearing armor then you can't tell what team they are on. There are players, though, that will refuse to spend their starting gold on armor, intending to save a bit more and buy the better armor they would rather have. I could spend my time watching and arguing with those players as a DM, or I could script in some guidance. In my case I did the former until I tired of it, then did the latter. Now whenever a player tries to enter the battle map without armor, the door refuses to let them pass and sends them a message indicating that they need armor. Guidance via scripting.


4. Balance Matters

Let's face it, you have a favorite class that you like to play. It might be Rogue, Barbarian, Monk, or any of the other classes. You usually make your first character for a module in that class, go in, test the waters and see if you can play it there.

Well there's something that you should know about PvP in Neverwinter Nights. It's not balanced by default. Third Edition rules were never designed with PvP in mind and Bioware has made some changes that, while they work for their single player game, further unbalance PvP play. If you want everyone to be able to play their favorite class then you'll need to balance your module to provide a level playing field.

There's one character class that's the prime example of imbalance, the Cleric with Animal and Magic Domains. Here's a class that can wear heavy armor, use a shield and stack multiple mage armors upon herself. Not to mention run around with a full time pet that's four levels higher than the character herself. No one can hit her due to her high AC and she can quickly make mincemeat of anyone in her level range. Go into most any unbalanced PvP module and you'll find this class dominating. So how do you approach balancing a class like this? It really depends on the goals of your module but here's one approach.

First open your D&D Player Handbook to page 258. Here we learn that Summon Monster (The equivalent of the NWN Summon Creature spell) is only supposed to last one round per player level. Quite different from the seeming Perma-cast we have in NWN. So the first thing we do here is modify the script that casts this spell to change the duration of the pet. That script, by the way, is nw_s0_summon. Not only does this bring this class much closer to balance, it also brings us closer to actual Third Edition rules. If you'd like to go one step further you can incorporate HC_SummonCreatures, an add on for the Hard Core Ruleset. You don't need to be running the Hard Core Ruleset in order to use this, but what's great is that it further balances pets by providing the pets from the Summon Monster table also found on page 258 of the D&D Player Handbook.

Next let's look at Mage Armor. For reasons that only Bioware knows, they have broken the AC bonuses for Mage Armor into a +1 for Enchantment AC, Deflection AC, Dodge AC, and Natural AC. While all this adds up to a 4 AC bonus, Dodge AC stacks so a player who has the mage armor spell can repeatedly cast this upon herself, each time adding additional dodge bonus. The Player Handbook simply states that Mage Armor should give 4 AC bonus but doesn't state where that bonus should be. Therefore you might want to modify nw_s0_magearm so that no dodge bonus is given, but then give 2 of one of the other types. Once you've done that, Mage Armor will no longer stack. You'll also want to make a decision, based upon the balance needs of your module, whether clerics who can already wear heavy armor and use shields, should be able to cast this or if it should be left to the domain of the true mages. Also consider whether this spell should be self-only for your module. When balancing PvP you can't just consider existing rules, sometimes you have to come up with new ones for the good of your game.

Balance is a tricky thing. The things you might do to balance low level play might have undesired effects at higher levels. This brings me to another point about balancing a PvP module. You need to find a level range and design your module for that range. Don't expect to offer PvP for levels 1 through 20. There aren't enough feasible player slots on most servers to offer all levels of players a good experience. Find a level range that's competitive and offers the players abilities you'd like them to have, and design for that. Then watch and learn through testing what needs to be changed for that range to balance play. Always remember, the goal is to allow everyone to have a fair shot at enjoyable play.

In that same line of thought, if you want to give everyone a fair shot, forget about allowing local characters into your module. You'll need to have a server vault for your player's characters.

Balance also applies to the experience you give to your players. If you set a level range of 2 to 6 for your module and two days after launch there are level 6 characters running around, then you're giving out too much experience. Try to balance the experience reward by the amount of effort you feel should be required to reach your highest level.


5. Small moves, Ellie.

One of the most difficult things about developing a module for PvP play is that you can't test it yourself. You have to have other players to help you test and that usually means that you have to put it online and hope someone comes in to play. More than one someone, actually. I'll never forget this particular player quote: "What do you mean you didn't test it before you put it online? Are you just stupid?"

Knowing that your reputation lies in your user experience and that you can't get any serious testing done until you have players playing, there's a tendency to throw everything at once into a module and hope for the best. I'm here to say, in big bold capital letters shouted across the landscape, DON'T!

When developing a PvP module you need to start with a subset of what you expect to have when you're finished. For instance, you need a subset of base weapons, armor, and magic items to start. No weapons or armor that are particularly powerful, just standard items with +1's, 2's, or 3's, depending on the level range you're aiming at. No magic effects until you can test their influence to your game. If you add a lot of magic effect items at the start, you're liable to face unforeseen consequence later.

Here's a classic example that I overheard last night in the Arena channel of Gamespy. A player was pointing out to a module maker that the people in the module with Boots of Haste were overpowered. The response? 'Yeah, we're thinking about adding Haste to everything now so we don't have to do a player wipe.'

While that may solve their balance issue, it's certainly an outcome that could have been avoided with proper testing. But how do you test something like this? Well, I do it by creating characters that would use the item, giving them one of them, then playing that character in the module. If, after a few hours of play, the item doesn't seem to be overpowering, then I might give one to another player and see what happens. If the item proves overpowering, then I'll either strike it from the module plans or look at ways to modify it so it's not. If everything is fine, then I'll place it on a merchant and watch what happens as more enter the game via player purchase.

The key is to make small moves, observe their effects, and then modify accordingly. Yes it takes longer and is often tedious but in the end you'll have a much stronger offering for your players and much happier players. Great games are not made in a day, but take far longer.

Final Thoughts

As you can see, there's quite a bit more thought needed to make a good PvP module than one might immediately guess. Don't be afraid to experiment. Try new things and see how they work out. You might surprise yourself.

Also, don't limit yourself to imitating what's out there now. You don't have to build a module like everyone else. You might want to try making one that's rogue focused, or that's hafling vs. half-orcs, or any of a million other possible variations. Be bold, be original but above all else, have fun and make it fun for your players. Isn't that why you're doing this?

Migrate Wizard: 
First Release: 
  • up
  • down