Difference between revisions of "Client Extension"

From ALFA
Jump to: navigation, search
m (Updated link)
 
Line 4: Line 4:
  
 
Documentation found here is copied from the official readme. Additionally, it defines suggested uses on ''[[A Land Far Away]]''.
 
Documentation found here is copied from the official readme. Additionally, it defines suggested uses on ''[[A Land Far Away]]''.
 +
 +
Welcome to the Client Extension!
 +
 +
This program acts as a client plug-in (and, for DMs, optionally a completely
 +
independent standalone client) whose purpose is to improve the multi-player
 +
experience of Neverwinter Nights 2.  It fixes several client crash bugs, and
 +
adds some useful new features.
 +
 +
See the "Quick Start & Overview" section for using the client extension as an
 +
add-on to the game (recommended for most users).  See the "DM Standalone
 +
Client" section for details on using the client extension to log on to your
 +
server as a DM, without starting the game (advanced usage for PW admins).
 +
 +
 +
Quick Start & Overview
 +
----------------------
 +
 +
The Client Extension can either plug-in to the player or DM client, or it can
 +
operate as an independent DM client.  To get started with using the Client
 +
Extension as a player or a DM, use one of the following methods:
 +
 +
 +
(a) Start the game with the included NWLauncher program (recommended).
 +
 +
1)  Run NWLauncher.exe and the game will start with the client extension
 +
    already active.  You need to keep NWLauncher.exe and ClientExtension.hdl
 +
    in the same place for the launcher to work correctly.
 +
   
 +
    It is recommended that you use the game in windowed mode to get the most
 +
    out of the client extension.
 +
               
 +
    You may pass command line arguments to the game by providing them to
 +
    NWLauncher.exe, e.g. by creating a shortcut.  This is useful for launching
 +
    the game in DM mode with the -dmc option.  You can also directly connect to
 +
    a game server at startup by using the +connect <server> argument.  See the
 +
    "Features" section for more details on how to create a shortcut to connect
 +
    to a game server automatically.
 +
 +
 +
2)  Log on to your server as normal and play the game.
 +
 +
 +
                                    - or -
 +
 +
 +
(b) Apply the client extension after starting the game.
 +
 +
1)  (First time only.)  Double-click hdlinstall.reg to install support for .hdl
 +
    files.  You only need to perform this step once per computer.
 +
   
 +
2)  Start Neverwinter Nights 2 in normal or DM client mode, and go to the main
 +
    menu.  It is recommended that you use Neverwinter Nights 2 in windowed mode
 +
    but this is not strictly required.
 +
   
 +
3)  Navigate to where you have placed ClientExtension.hdl in Explorer,
 +
    right-click the ClientExtension.hdl file, and choose the 'Apply' option
 +
    from the menu that appears.
 +
   
 +
4)  Log on to your server as normal.  You must follow steps 3-5 again each time
 +
    you exit Neverwinter Nights 2.  Be sure to apply the extension -before- you
 +
    log on to your server.
 +
 +
 +
The AMDXP version of Neverwinter Nights 2 is not supported.  Only very old AMD
 +
machines use the AMDXP version; recent AMD machines do not.  You will receive
 +
an error message if you attempt to use the AMDXP version of the client.
 +
 +
In order to get the most out of the Client Extension, it is highly recommended
 +
that you read the remainder of the document.  Players should read the
 +
"Features" section; DMs are encouraged to read the entire document for details
 +
on how to best use DM-specific features.
 +
 +
 +
Avoid running Neverwinter Nights 2 in a compatibility mode (i.e. Windows XP
 +
compatibility mode) if you plan on using the Client Extension.  It is not
 +
necessary to run the game in compatibility mode, and doing so may prevent the
 +
Client Extension from loading in some circumstances.
 +
 +
 +
Modes of Operation
 +
------------------
 +
 +
There are two basic modes of operation for the Client Extension:
 +
 +
- Client Extension mode, which can be used in conjuction with the game client
 +
  as a normal player.  To use the Client Extension, simply start the game
 +
  client as normal, then right-click ClientExtension.hdl in Explorer and choose
 +
  the 'Apply' option.  The Client Extension is only active for a single game
 +
  session; you must re-apply the Client Extension each time you wish to use it.
 +
 
 +
  The Client Extension may also be used when you are logged on as a DM, with
 +
  the DM client.  In this mode of operation, the Client Extension can act as an
 +
  aid to your dungeon sessions by providing a more-detailed area map.  Several
 +
  DM-specific commands and features are also available.  See the "DM Features"
 +
  section for more details.
 +
 
 +
- DM Standalone Client mode, which operates as a wholly independent client for
 +
  DMs to log on to their servers and interact with the game world to a limited
 +
  extent.  The usage of the DM Standalone Client is somewhat different, and is
 +
  explained later.
 +
 
 +
 
 +
Features
 +
--------
 +
 +
The Client Extension includes a number of new features and bug fixes that are
 +
designed to improve your multiplayer experience:
 +
 +
- A replacement for the Internet Server Browser functionality, formerly
 +
  provided by GameSpy (official support has since been discontinued).  This
 +
  enables players to locate other servers to join, as prior to the
 +
  discontinuation of matchmaking services by GameSpy.
 +
 +
- An option to directly connect to a multiplayer game server from the command
 +
  line.  Simply run NWLauncher.exe +connect <server> [+password <pw>] to start
 +
  the game and directly connect to a server.  This can be used to create a
 +
  shortcut to launch the game and connect to a particular server.  Here are
 +
  some example command line:
 +
 +
  NWLauncher.exe +connect mynwn2pw.example.com
 +
  NWLauncher.exe +connect mynwn2privatepw.example.com +password playerpassword
 +
  NWLauncher.exe -dmc +connect mynwn2pw.example.com +password dmpassword
 +
 +
- Command history is now available for the client!  The client extension has a
 +
  separate text-entry user interface which allows a history of all chat text
 +
  that you send to be accessed.  Even text you enter in to the normal game chat
 +
  interface is added to the command history, but you may only access the
 +
  command history from the new text-entry user interface.  The new text-input
 +
  user interface is described in the "Text-input User Interface" section.
 +
 
 +
- Larger chat messages can now be sent (up to approximately 4,096 characters).
 +
  Please use this feature appropriately.  Long text messages do not cause any
 +
  problems for normal clients or servers, but sending an overly long message
 +
  may produce results that are difficult to read.  Large text messages are only
 +
  available through the new text-input user interface.
 +
 
 +
  Tip:  You can also paste directly into the separate text-entry user interface
 +
        as an option to paste chat into the game.
 +
 
 +
- A properly functioning reply command (/re) is now available.  This command
 +
  supersedes the built-in reply function.  It has the following improved
 +
  properties:
 +
 
 +
  - Only senders of tells (not other chat messages) are set to the reply
 +
    target.
 +
   
 +
  - Sending a tell no longer sets the reply target to yourself.
 +
 
 +
  The /re command can be used in both the normal game interface and the
 +
  separate text-entry user interface.
 +
 
 +
  When using the separate text-entry user interface, you may use /r as a
 +
  shorthand for /re.  However, using /r in the normal game interface will
 +
  access the old reply function that ships with the game.
 +
 
 +
- A re-tell function (/rt) is now available.  This command sends a tell to the
 +
  last player you have sent a tell to.  Like all other new slash-commands, this
 +
  command is available both through the normal game interface and through the
 +
  separate text-entry user interface.
 +
 
 +
- An /invertrun function is now available.  This command switches the behavior
 +
  for point-and-click movement, so that by default, you will walk unless you
 +
  hold down SHIFT.  WASD movement in the game still runs unless you use SHIFT.
 +
 
 +
  Tip:  You can use /invertrun instead of activating Tracking Mode if you would
 +
        like to walk by default.  You still have easy access to run mode
 +
        without having to toggle a mode button when using /invertrun, as you
 +
        just need to use WASD or hold down SHIFT.
 +
 +
- Rotating chat and combat logs are now automatically written by the Client
 +
  Extension.  Logs are rotated once per day and named by character, with
 +
  entries individually timestamped.  Chat and combat logs are stored under the
 +
  "Logs" directory of your NWN2 home path, i.e.
 +
  "Documents\Neverwinter Nights 2\Logs".  Currently, only server notices are
 +
  written to the combat log; full combat text display is not yet available.
 +
 
 +
- A new area minimap is available.  You can click on a point in the new area
 +
  minimap (not the in-game automap) in order to move to that point.  This is
 +
  often useful if you need to cross a very large area without having to click
 +
  many different times.  Note that if your pathing orders are too complicated,
 +
  the game engine will discard them.  The map is further described in the
 +
  "Area Map" section.
 +
 
 +
- A new form of macro-enabled hotbar buttons are available.  Macro-enabled
 +
  hotbar buttons are created with the /setmacro command (see the documentation
 +
  in this file for details).  Macro-enabled hotbar buttons can perfrom many
 +
  actions per hotbar press, such as enqueuing up many buff spells all at one
 +
  time.
 +
 
 +
  More details on hotbar macros are available in the "Custom Hotbar Macros"
 +
  section.
 +
 
 +
- An appending log file with your chat history is available.  The log file is
 +
  named "nwn2reportlog.log" and is written to your Neverwinter Nights 2
 +
  installation directory.  (Windows Vista and Windows 7 users may need to click
 +
  the "Show compatibility fixes" option in Explorer to see it.)
 +
 
 +
- A console interface for displaying in-game chat is now available.  This is
 +
  often useful if you would like to minimize the game, but still keep tabs on
 +
  what's going on (such as if you are waiting for someone to log on or send you
 +
  a tell) without wasting a large amount of screen real-estate.  This function
 +
  is further described in the "Console Interface" section.
 +
 
 +
  Tip:  You can also copy text from the console window if you enable "Quick
 +
        Edit" in the console properties.  (Right-click the console icon and
 +
        go to the "Properties" menu item.)  This is often useful if you want to
 +
        copy and paste chat from the game.
 +
 
 +
- A crash in a third party library used for autodownloader support is avoided.
 +
  This crash may have occured when attempting to download news information at
 +
  the logon screen.  (The crash only occurs sporadically.)
 +
 
 +
- Wizards with metamagic spells on their hotbars should no longer periodically
 +
  crash during area transitions.
 +
 
 +
- The client should no longer crash when the loading initial area after the
 +
  character selection screen, when the initial area has creatures with certain
 +
  VFX or animation parameters updating.
 +
 +
- Hotbar buttons should no longer occasionally flicker and fail to persist
 +
  changes when editing them.
 +
 
 +
- The client now properly displays Darkvision when transitioning to a new area.
 +
 +
- Animations (particularly terrain scrolling while walking) no longer begin to
 +
  stutter or "chunk up" in NWN2 after the computer has been running for several
 +
  days since its last reboot.
 +
 +
- The networking code responsible for sequencing and reliability over UDP in
 +
  the game client is replaced with more reliable code (if you apply the
 +
  extension before logging on to a game server).  This works around several
 +
  data corruption and data loss problems that result in some transition crashes
 +
  during a zone transfer.
 +
 
 +
  Note that not all transition crashes are caused by these issues.  Also,
 +
  because the same bugs exist in the server-end of connection, some transition
 +
  problems will not be completely fixed unless the server is also using a
 +
  rewritten networking subsystem.
 +
 
 +
  The networking subsystem rewrite does not impact compatibility with clients
 +
  or servers that do not use the more reliable networking code, however, these
 +
  clients and servers will not be protected from their own bugs.
 +
 +
- Point and click movement in the game world no longer waits for a response
 +
  from the server before beginning to animate movement.  In some cases where
 +
  there are dynamic path obstructions, this might result in minor path
 +
  "glitching".  You may disable this feature by using the /mpredict command.
 +
 +
  Movement prediction only applies for point and click in the rendered game
 +
  window and not point and click in the area map.  This feature improves
 +
  perceived responsiveness with respect to movement on laggy servers.
 +
 
 +
- Right-clicking a name in the game's chat history and choosing the send tell
 +
  option will now work for characters with no last name.
 +
 +
- You may use the /tilegrid command to toggle display of the area tile grid on
 +
  the area map.  This is generally only useful for builders.
 +
 
 +
- You may use the /rendertiles command to toggle rendering of tile tints on the
 +
  area map.  This is generally only useful for builders.
 +
 
 +
- DMs have additional graphical interfaces for controlling the game world, and
 +
  are highly encouraged to read the entire readme document for details.
 +
 +
- Improved GUI debugging is available with the new /guidebug and /guitracing
 +
  commands, that log detailed information about what XML GUI events are being
 +
  raised (and with what parameters).  These two commands toggle GUI debugging
 +
  output to the Client Extension console; enable both for maximum output, or
 +
  just enable /guidebug for basic debug output.
 +
 +
  When /guitracing mode is enabled, the console will include lines similar to
 +
  the following:
 +
 +
  FilterClientCallbackSetEventType: Executing NWN2_UIEVENT_DROP - self:UIData
 +
  (int:1, int:1, int:1, int:0, objectid:0x8000039b, objectid:0x8000039b),
 +
  callbackparams: ("self:", "objectid", 0, "local:100")
 +
 +
  The self:UIData () section lists the data that can be retrieved for this
 +
  event using UIObject_Misc_ExtractData().  In this example, there are four
 +
  ints available at int indexes 0, 1, 2, 3, and two objectids available at
 +
  objectid indexes 0 and 1.
 +
 +
  The callbackparams: () section lists the arguments to the GUI XML function
 +
  that this event is configured to run.  In this case, there was a call to the
 +
  UIObject_Misc_ExtractData function with the four arguments listed.
 +
 +
Text-input User Interface
 +
-------------------------
 +
 +
The program will create a free-floating text input box (called "Send message")
 +
at startup time.  You can use this text input box to enter in commands or chat
 +
like you would through the normal game interface.
 +
 +
You can enter in long messages (up to approximately 4,096 characters) through
 +
the text input box, past the normal limit in-game.
 +
 +
The text input box adds a command history function that keeps track of all chat
 +
text and commands that you send in-game or through the text input box itself.
 +
 +
To access this command history, hold down the CONTROL key, and press the UP or
 +
DOWN arrow keys while the text input box is the active window.  This feature is
 +
particularly useful if you have typed a long message, but the person you had
 +
sent it to disconnected before they could read it.
 +
 +
Once you move the cursor to the start or end of the current message, UP/DOWN
 +
arrow keys will also switch to the previous or next command, respectively.
 +
 +
 +
Area Map
 +
--------
 +
 +
One of the first screens that you'll notice when using the client extension is
 +
the map window.  This window provides your view into the game world, rendered
 +
as a top-down, 2D flat board.  Each object in the game is represented by a
 +
small block of pixels.  Hovering the mouse over an object will display a short
 +
description of that object.  Some description details are only available if you
 +
are logged on with the DM client.
 +
 +
To view information about an object that is moving, simply hover the mouse over
 +
the object and leave the cursor still.  The tool tip will display in a moment
 +
without you needing to follow the object with the mouse each step of the way.
 +
 +
A color coding scheme is used to draw each object, so here's the legend you'll
 +
need to understand what you are seeing:
 +
 +
Dark blue                            - Closed door.
 +
Dark blue and magenta hatched        - Open or destroyed* door.
 +
Bright green                          - Map pin with description.
 +
Vermillion                            - Your current position.
 +
Purple                                - Your current target.
 +
Faint green                          - Placeable object.
 +
Faint blue-green                      - Item.
 +
Faint green and faint yellow hatched  - Usable* placeable object.
 +
Faint blue                            - Environmental object.
 +
Bright red                            - Detected hostile creature
 +
Faint red                            - Hostile creature* (not detected)
 +
Bright yellow                        - Detected neutral creature
 +
Faint yellow                          - Neutral creature* (not detected)
 +
Bright turquoise                      - Detected friendly creature
 +
Faint turqouise                      - Friendly creature* (not detected)
 +
Bright white                          - Player+ (other than yourself)
 +
Faint white                          - Player* (not detected)
 +
Pink                                  - Your currently selected player*.
 +
 +
*: Feature only available if you are using the DM client.
 +
+: Only party members are shown unless you are using the DM client.
 +
 +
 +
Detection criteria for non-DM players is based on the tracking skill only in
 +
this release; only creatures that you can track on the in-game minimap will be
 +
visible.
 +
 +
 +
Additionally, certain objects are drawn as simple polygon shapes:
 +
 +
Blue polygon with dotted white line  - Transition trigger.
 +
Red polygon with dotted white line    - Hostile trap (detected).
 +
Green polygon with dotted white line  - Friendly trap.
 +
Yellow polygon with dotted white line - Script* trigger.
 +
 +
*: Feature only available if you are using the DM client.
 +
 +
 +
The client extension also supports showing where objects are pathing to.
 +
Object pathing orders are drawn as a series of line segments, which correspond
 +
to the current movement orders assigned to that object.  Note that only a few
 +
steps ahead are pre-planned, so the final line segment may appear to cross
 +
regions that are not walkable.  Pathing orders are reevaluated automatically at
 +
each step of the way.
 +
 +
Pathing (movement) orders are drawn according to the following legend:
 +
 +
Bright red line dotted with white      - Hostile creature* pathing orders.
 +
Faint red line dotted with white      - Hostile creature* (not detected) path.
 +
Bright yellow line with dotted white  - Neutral creature* pathing orders.
 +
Faint yellow line with dotted white    - Neutral creature* (not detected) path.
 +
Turquoise line with dotted white      - Friendly creature* pathing orders.
 +
Faint turqouise line with dotted white - Friendly creature* (undetected) path.
 +
Solid bright white line                - Player+ pathing orders.
 +
Faint bright white line                - Player* (not detected) pathing orders.
 +
Vermillion line dotted with white      - Your pathing orders.
 +
Pink with dotted white line            - Your currently selected player*.
 +
Purple line dotted with white          - Your target.
 +
 +
*: Feature only available if you are using the DM client.
 +
+: Only party members are shown unless you are using the DM client.
 +
 +
 +
Some servers may not allow display of doors, placeables, or other objects.
 +
 +
 +
The map allows you to change what objects are displayed if you only want to see
 +
objects of a certain type.  To cycle through the drawing levels on the map, you
 +
may press the L key while the map is the active window.  Doing so moves the
 +
drawing level down by one, or starts over at the top if you reach the last
 +
drawing level.  The drawing levels that are supported are:
 +
 +
- Self only
 +
- Creatures* and players*
 +
- Map pins
 +
- Doors
 +
- Environmental objects and placeables
 +
- Transition triggers, traps, and script triggers
 +
- Pathing orders
 +
- Wireframe models (default drawing layer)
 +
- Collision meshes
 +
- Bones (including for creature objects -- slow!)
 +
 +
*: DMs automatically discover all creatures and players in the current area.
 +
 +
 +
The map also allows you to choose the level of terrain drawn.  To cycle between
 +
terrain drawing levels on the map, you may press the T key while the map is the
 +
active window.  The terrain drawing layers that are supported are:
 +
 +
- None (black background)
 +
- Walkable (black for walkable, light gray for non-walkable)
 +
- Walkmesh (walkmesh outlines and filled walkable regions)
 +
- Full terrain display
 +
- Full terrain display with cross-hatched walkable region overlay
 +
- Full terrain display with walkmesh and cross-hatched walkable region overlay
 +
 +
The default drawing layer is full terrain display with walkable region overlay.
 +
 +
If tile tint rendering is enabled with /rendertiles, then tiles are drawn with
 +
the terrain drawing step.
 +
 +
Tip:  Resizing the map window works much quicker in "None" or "Walkable"
 +
      terrain mode.
 +
 +
 +
The map supports displaying a position grid; press the G key while the map is
 +
the active window to toggle grid drawing.
 +
 +
You can press P to toggle display the pathing tile grid.  Fine-grained pathing
 +
data in a baked walkmesh is calculated for each point relative to each other
 +
point only within a pathing tile; intertile pathing uses coarse-grained path
 +
calculations which are then stitched together to form straight lines when
 +
possible.
 +
 +
You can press I to toggle directional light rendering based on the current sun
 +
or moon position.  Directional lighting is enabled by default.
 +
 +
 +
You can left-click an object or point on the map to interact with that object,
 +
or move to that point.  The following interaction behaviors are supported:
 +
 +
Non-hostile creature                - Initiate NPC dialog*.
 +
Hostile creature                    - Attack creature.
 +
Player                              - Follow player.
 +
Locked door                          - Unlock door.
 +
Closed door                          - Open door.
 +
Open, non-transition door            - Close door.
 +
Open, transition door                - Use transition.
 +
Transition trigger                  - Use transition.
 +
Usable placeable                    - Use placeable.
 +
<Other objects or empty point>      - Move to this location.
 +
 +
*: Feature only available if you are using the DM client.
 +
 +
 +
You can SHIFT-left-click to walk instead of run when performing one of the
 +
above operations.
 +
 +
You can ALT-left-click an object on the map to request a description for that
 +
object should you be using the DM client.  This feature is only available in DM
 +
mode.
 +
 +
In standalone DM client mode, you can hover the mouse over an object on the map
 +
to request a description for that object should you be using the DM client.
 +
The object description is shown on in the object tool tip.  Automatic examine
 +
on mouse hover is only performed in standalone mode in order to avoid causing
 +
unexpected examine GUI pop-ups in the Neverwinter Nights 2 game client.
 +
 +
Holding down CTRL will show you what path the server will send you on from your
 +
current location to the location that you leave the mouse over.  A green line
 +
is drawn from your current position to mouse along the path, should there be a
 +
legal path between those two points.  A straight red line is drawn if there is
 +
no valid path.  This is useful for debugging AI pathing issues with your module
 +
as it allows you to see how a creature would attempt to move to any other point
 +
if it were standing where you were.  Only static collisions are calculated for
 +
the proposed path (that is, the path does not consider any blocking creatures
 +
or other dynamically created path blockers).
 +
 +
Proposed path display is modified by the /smoothpath option, which allows you
 +
to see toggle display of the raw walkmesh path before optimization into
 +
straight lines.
 +
 +
The path smoother generates the same rounding errors with respect to straight
 +
line visibility as the server in order to accurately show you how your path
 +
will be computed by the server.
 +
 +
Holding down X displays whether a clear line of sight (taking only base
 +
terrain into account) exists between your position and a target position.
 +
 +
You can CTRL-left-click a point on the map to walk to that point even if there
 +
is an object nearby that you would normally interact with.  If you are logged
 +
on as a DM, CTRL-left-click will teleport you to the desired point instead of
 +
walking.  (You must regular left-click once more to use a transition.)
 +
 +
You can right-click a point on the map to target that object, if it is an
 +
object that may be targetted.
 +
 +
You can CTRL-right-click a creature object to take control of it if you have DM
 +
privileges.  Simply use CTRL-right-click on an empty map region to return
 +
control to the DM PC.
 +
 +
You can left click and drag the mouse to create a selection rectangle.  Release
 +
the mouse to select all actable creature objects in the selection rectangle.
 +
Should you hold down SHIFT while creating the drag selection, all encompassed
 +
objects are appended to your existing selection instead of replacing the prior
 +
selection entirely.  (The selection rectangle is outlined in bright green.)
 +
 +
You can define selection groups in the map window by holding CTRL down and
 +
pressing a number key (0-9).  Press the same number key without CTRL held to
 +
recall a previously set selection group, selecting it in-game.
 +
 +
If you are logged on as a DM, a shorthand function is provided to allow you to
 +
quickly position creatures in your game field.  You may middle-click a point on
 +
the map to move your targetted creature to that point without having to possess
 +
and unpossess the creature in separate steps.  The creature will walk or run
 +
based on on your walk/run setting as with left-clicking.
 +
 +
Similarly, if you are logged on as a DM, you may CTRL-middle-click to teleport
 +
your selection to an area.  This can even be used to teleport objects that
 +
resided within a different area to a specific point in your current area.
 +
 +
When using CTRL-middle-click, if you have no selected objects, then the list
 +
of selected players in the player list window is assumed.  This is useful if
 +
you wish to jump multiple PCs to a new area at a specific point via point and
 +
click on the map; you would jump to the new area, make a selection in the
 +
player list window (multiple players may be selected), and then use the
 +
CTRL-middle-click function to pull those players into your area.
 +
 +
If you are logged on as a DM, you can ALT-middle-click to force your current
 +
selection to attack another creature.  This can be combined with multiple
 +
selection to force many creatures to attack another creature (i.e. a player in
 +
a battle scenario).
 +
 +
You may CTRL-right-click an object to possess it if you are logged on as a DM.
 +
Similarly, you may then CTRL-right-click on empty ground to unpossess your
 +
possessed object.
 +
 +
 +
While the map is the active window, you can also move using the WASD keys.
 +
It is generally recommended to use point-and-click movement instead.  The WASD
 +
movement keys are:
 +
 +
W - Move forwards.  The distance moved depends on your movement rate.
 +
S - Move backwards.  The distance moved depends on your movement rate.
 +
A - Turn left by 18 degrees.
 +
D - Turn right by 18 degrees.
 +
 +
There is no direct indication as to your current heading, although it is
 +
remembered.
 +
 +
You may hold down SHIFT to walk instead of run when using WASD mode.
 +
 +
 +
The map is unable to display what regions are walkable or not.  You will need
 +
to know this based on the objects displayed and your knowledge of the area's
 +
layout.  Attempting to move to a non-walkable location will result in your
 +
movement order being canceled.
 +
 +
 +
You may press the escape key (ESC) to cancel all orders in your order queue
 +
while the map window is active.
 +
 +
 +
Objects are drawn as updating along their current paths smoothly based on their
 +
walk or run characteristics.  This can be disabled with the /clientpath text
 +
command.  Disabling smooth client pathing significantly reduces CPU consumption
 +
spent redrawing the map window.
 +
 +
 +
Area Map Camera Modes and Camera Control
 +
----------------------------------------
 +
 +
The area map supports multiple camera types, which may be cycled through via
 +
the use of the 'C' key while the map window is active.  The following camera
 +
modes are available:
 +
 +
- 2D top-down mode (the default), which is most like a traditional minimap.
 +
  All object control functions are available in 2D top-down mode.
 +
- 3D tactical mode, which renders the game world in a 3D perspective view, with
 +
  a camera under full control of the user.  Currently, group selections are not
 +
  available in 3D tactical mode.  By default, the camera in 3D tactical mode is
 +
  positioned looking down on the area.
 +
- 3D chase mode, which is a 3D perspective view that follows your character in
 +
  a third person view.
 +
 
 +
3D camera modes are experimental and are not intended for performance operation
 +
at this time.
 +
 +
While in a 3D camera mode, pressing 'R' once resets the camera to its default
 +
parameters.  In 3D tactical mode, pressing 'R' a second time will set the
 +
camera so that is roughly located at your character's location, looking in
 +
the direction of your character's facing.
 +
 +
In 3D camera modes, the following control functions area available to orient
 +
and move the camera:
 +
 +
- Scrolling the mouse wheel zooms the camera with respect to its look-at axis.
 +
- Holding the right mouse button down and moving the mouse will rotate (turn)
 +
  the camera.
 +
- Holding the right mouse button down and scrolling the mouse wheel will roll
 +
  the camera.
 +
 +
The map window is rendered entirely in software via GDI, without any hardware
 +
assistance.  As a result, 3D camera modes are intended for static viewing and
 +
not a general purpose, real-time updated interactive 3D display.
 +
 +
A diagnostics readout at the top left of the map window displays the current
 +
camera parameters.
 +
 +
 +
 +
 +
DM Area Teleport Chooser Window
 +
-------------------------------
 +
 +
If you are logged on as a DM, a "DM Area Teleport Chooser" window will be
 +
displayed.  The area chooser window is similar to the map window, but it lets
 +
you choose which area is rendered.
 +
 +
The area chooser window has a drop-down box at the bottom which lets you choose
 +
the name of the area you would like to view.  You must have previously visited
 +
an area to display it; this is a technical limitation of the game protocol.
 +
 +
Unlike the map window, the area chooser window only allows you one possible
 +
action, which is to left-click a point on the map.  Left-clicking teleports
 +
your current selection (which may include multiple creatures or players, or may
 +
even include yourself) to the point you clicked.  This is useful for precision
 +
group teleports to another area, without having to zone to that area first.
 +
 +
If you left-click a point on the map and you have no selection, your character
 +
is teleported alone.  This is useful as a flexible area teleport jump across
 +
your game world, as an adjunct to the existing DM Chooser jump functionality.
 +
 +
Creatures are, by default, not shown on the area chooser window, and the area
 +
chooser window does not update in real time for performance reasons.
 +
 +
You can add two scripts to your server to allow the DM Area Teleport Chooser
 +
window to show creatures (including players) in the area chooser window, when
 +
viewing areas other than your current area.  This feature lets you keep tabs on
 +
what's happening in your PW, without leaving your current area.
 +
 +
Sample scripts to support the DM Area Teleport Chooser's creature viewing
 +
functionality are included (gui_scliext_dm_pollarea, gui_scliext_identify).
 +
 +
 +
Console Interface
 +
-----------------
 +
 +
The program creates a console (text-mode) window for displaying output text to
 +
you outside of the normal rendered game scene.  This window can be observed
 +
even if you minimize the normal game window; it may also be resized or moved
 +
at will.
 +
 +
You cannot enter text directly into the console window; instead, you must use
 +
the normal game interface or the separate text-entry interface.
 +
 +
Player chat and player join/leave events are displayed to the console window,
 +
along with various status miscellaneous pieces of information.
 +
 +
 +
Player List Window
 +
------------------
 +
 +
If you are logged on as a DM, a "Player List Scry" window will be shown.  This
 +
window lists which players are logged on to the server and whether they are
 +
present in the same area as you or not.
 +
 +
There are several columns in the player list window:
 +
 +
Column  Description
 +
--------------------
 +
 +
"Name"  Indicates the player's character name.
 +
 +
"Area"  Indicates the area tag of the player, if known.  This information is
 +
        not always available.  If the area tag is truncated due to being too
 +
        long, then the full area tag name can be seen in the player details
 +
        box by clicking on the player's list box entry
 +
 +
"cHP"    Indicates the current hit points of the player.
 +
 +
"mHP"    Indicates the maximum hit points of the player.
 +
 +
"Lv"    Indicates the player's character level, if known.  This information is
 +
        not always available.
 +
 +
"AC"    Indicates the player's armor class, if known.  This information is not
 +
        always available.
 +
 +
"A"      Indicates whether the player is in the current area or not.  If the
 +
        player is in the current area, the row reads "A".  This feature works
 +
        similar to how a player is shown as in the current area or not in the
 +
        full Neverwinter Nights 2 client player list screen.
 +
       
 +
"DM"    Indicates if the player is logged on as a DM.  If so, then the text
 +
        "DM" appears in the row.
 +
       
 +
       
 +
   
 +
You may select a player in the player list to display additional debugging
 +
interface about that player.  This debugging information is usually only useful
 +
for script debugging.  (The player's account name is also displayed in the
 +
extra information section.)
 +
 +
Selecting a player in the player list highlights the player as pink in the area
 +
map window.  This selection is separate from your in-game selection.
 +
 +
Double-clicking a player in the player list will pull up an Examine dialog in
 +
the game for that player.  This will also select that player in-game for the
 +
next operation, such as /export.
 +
 +
Control-double-clicking a player in the player list will prepopulate the text
 +
input window with a tell command for that player and set the keyboard focus to
 +
the text input window.
 +
 +
By default, the player list window will automatically update.  You may turn
 +
this function off with the "/scry off" command.  Disabling automatic scry
 +
updates is recommended if your server has not yet upgraded to xp_bugfix
 +
1.0.5 or later with ReplaceNetLayer = 1 set.
 +
 +
 +
DM Features
 +
----------
 +
 +
When you apply the extension in DM client mode, additional features that are
 +
designed to improve your ability to act as a dungeon master are activated.
 +
 +
Operating in DM mode greatly increases the amount of information that is
 +
displayed to you in the area map window.  The "Area Map" section covers this
 +
information.
 +
 +
DMs have access to the DM Scry window described above, as well as the DM Area
 +
Teleport Chooser window, also as described above.
 +
 +
While in DM mode, several new command are available for your use.  These
 +
commands may be accessed from either the in-game interface, or the standalone
 +
text-input interface:
 +
 +
/export            - Exports the currently selected creature object to your
 +
                    local vault.  This may be used on other players, or even
 +
                    on non-player creatures.
 +
                   
 +
/saverules        - This command is used to prepare for the DM Standalone
 +
                    Client; its usage is described in the
 +
                    "DM Standalone Client" section.
 +
 +
                    Note that /saverules is generally not needed unless you do
 +
                    not have a full game install.
 +
                   
 +
 +
DM Standalone Client
 +
--------------------
 +
 +
The DM Standalone Client is a completely separate, standalone client for
 +
Neverwinter Nights 2.  It can be used instead of the conventional DM client,
 +
for purposes of aiding your work as a dungeon master.  With the DM Standalone
 +
Client, all of the functionality that the Client Extension exposes in DM mode
 +
is you to use; that is, you may walk around and interact with doors,
 +
placeables, transitions, as well as enter chat commands and receive chat from
 +
players.
 +
 +
To use the DM Standalone Client, you need to install the Visual C++ runtime
 +
update as described in step (b)(2) of the "Quick Start & Overview" section.
 +
 +
 +
Other DM functionality is only available when using the DM client itself.  The
 +
DM Standalone Client is intended as a lightweight replacement client which does
 +
not have the system requirements of the conventional DM client.  In fact, you
 +
could even log on two sessions, one with the player client, and one with the DM
 +
Assistant Client simultaneously to the same server; however, both sessions will
 +
need unique accounts and legal CD-Keys.
 +
 +
If you have scriptable DM functionality available via chat commands or creature
 +
dialogs, this functionality can be accessed from the DM Standalone Client.
 +
 +
Like the conventional DM client, the DM Standalone Client still requires that
 +
you have a valid Neverwinter Nights 2 CD-Key.  The system will consider your
 +
CD-Keys in use for the duration of your session, regardless of whether you are
 +
logged on with the player client, DM client, or DM Standalone Client.
 +
 +
 +
DM Standalone Client Setup (Game Installation Present)
 +
------------------------------------------------------
 +
 +
If the computer that you are running the DM Standalone Client on already has a
 +
game installation with all expansions installed, then you need take no further
 +
steps.  Simply launch NWStandaloneClient.exe and you should be ready to go.
 +
 +
The "DM Standalone Client - Logging On" section describes next steps to log on
 +
to your game world.
 +
 +
 +
DM Standalone Client Setup (Game Not Installed)
 +
-----------------------------------------------
 +
 +
NOTE:  If you have a full install of the game on your computer, then you do not
 +
need to follow these steps.
 +
 +
Because the DM Standalone Client operates in a completely independent fashion
 +
from the conventional client, it requires an additonal preparatory step in
 +
order to assess which client data files are needed in order to connect to your
 +
server.
 +
 +
To perform this one-time preparatory step, you must launch the DM client, apply
 +
the Client Extension in DM mode, and log in to your server as a DM.  Then, use
 +
the "/saverules" command to save a limited set of client data files that are
 +
required to connect to your server.  This command saves the required data to
 +
your <Documents>\Neverwinter Nights 2\ModuleRules\<Module Resource Name> path
 +
for the current module.
 +
 +
This step need only be performed once, unless you make a change to the
 +
visualeffects.2da or baseitems.2da files, or if you create additional classes
 +
or skills.  In such a case, you must re-run the preparatory "/saverule" step
 +
once more in order to capture the current data files contents.  Otherwise, you
 +
may experience erratic behavior with the DM Standalone Client.
 +
 +
The DM Standalone Client uses the walkmesh files (*.trx) downloaded from the
 +
client's autodownloader to display the area map.  However, the DM Standalone
 +
Client cannot download updated file automatically, so you will need to download
 +
them by logging in to the game with the full Neverwinter Nights 2 client.  The
 +
DM Standalone Client will automatically use the walkmesh files once the
 +
autodownloader in the full Neverwinter Nights 2 client has updated them.
 +
 +
 +
The DM Standalone Client will attempt to use your installation CD-Keys and your
 +
saved community account credentials.  If either your installation CD-Keys or
 +
saved community account credentials cannot be automatically discovered, then
 +
you will have to set them manually.  See the "DM Standalone Client Commands"
 +
section for more information on how to manually configure your credentials.
 +
 +
 +
DM Standalone Client - Logging On
 +
---------------------------------
 +
 +
After you have performed the initial set-up steps for the DM Standalone Client,
 +
you're ready to log on.  To begin, simply run the "NWStandaloneClient.exe" file
 +
in Explorer (double-clicking it will suffice).  This will bring up an interface
 +
similar to that which you would see when using the Client Extension in DM mode,
 +
however, it does not plug-in to the normal game client.  Instead, it acts as a
 +
seperate client, operating entirely on its own (with minimal memory usage).
 +
 +
To connect to a server, use the /connectpw <hostname[:port]> <DM password>
 +
command.  If your server's DM password has a space in it, you should instead
 +
use the /setserverpassword <DM password> command, followed by the
 +
/connect <hostname[:port]> command.
 +
 +
You can also use /connectsrv <server display name> to connect to a server by
 +
its name in the online server list supplied by the master server tracker.
 +
 +
An error message will appear in the console screen if there was an error when
 +
connecting.  Otherwise, you should be presented with a character selection
 +
prompt in the console; use the /pickcharfile <DM Vault Character .BIC File>
 +
command to select a character to log on with.  For example, you might use
 +
/pickcharfile char.bic.  (You may also supply a full path name if the character
 +
file is located somewhere else besides your DM vault.)
 +
 +
Tip:  You can save time by putting connection commands like the /connectpw
 +
or /logoncharfile commands in the autorun command file; see the section
 +
"Automatic Command Sending" for more details.
 +
 +
 +
DM Standalone Client Commands
 +
-----------------------------
 +
 +
The following command are available in the DM Standalone Client:
 +
 +
 +
/connectpw <hostname[:port]> <DM password>    - Connects to a server, possibly
 +
                                                disconnecting from the current
 +
                                                server.  The supplied DM
 +
                                                password must not contain
 +
                                                spaces.  The hostname may
 +
                                                optionally include a port
 +
                                                number for the server data
 +
                                                port if the default of 5121 is
 +
                                                not in use.
 +
 +
/connectsrv <"server name"> <category> [DM-pw] - Connects to a server, possibly
 +
                                                disconnecting from the current
 +
                                                server.  The supplied DM
 +
                                                password must not contain
 +
                                                spaces.  The server name is
 +
                                                looked up from the online
 +
                                                server list as a
 +
                                                case-insensitive exact match.
 +
                                                The server name must be quoted
 +
                                                if it contains spaces.  The
 +
                                                category designates the game
 +
                                                type of the server.  It can be
 +
                                                one of the following values:
 +
 +
                                                action
 +
                                                story
 +
                                                storylite
 +
                                                roleplay
 +
                                                teamnvsn
 +
                                                melee1vsn
 +
                                                arena1vsn
 +
                                                social
 +
                                                alternative
 +
                                                pwaction
 +
                                                pwstory
 +
                                                solo
 +
                                                techsupport
 +
 +
/connect <hostname[:port]>                    - Operates as /connectpw, but
 +
                                                with the server password set
 +
                                                via the /setserverpassword
 +
                                                command.
 +
                                               
 +
/setserverpassword <DM password>              - Sets the server DM password to
 +
                                                use with /connect; spaces are
 +
                                                permitted.
 +
 +
/setaccountname <community account name>      - Sets your community account
 +
                                                name, only required if the
 +
                                                DM Standalone Client could not
 +
                                                automatically detect your
 +
                                                account information from your
 +
                                                nwn2player.ini file.
 +
                                               
 +
/setaccountpassword <account passworrd>        - Sets your community account
 +
                                                password, only required if the
 +
                                                DM Standalone Client could not
 +
                                                automatically detect your
 +
                                                account information from your
 +
                                                nwn2player.ini file.
 +
                                               
 +
/addcdkey <CD-Key>                            - Adds a CD-Key to the list of
 +
                                                CD-Keys to authenticate.  One
 +
                                                key is required per expansion
 +
                                                pack that your server uses.
 +
                                               
 +
                                                The first invocation sets the
 +
                                                original game's CD-Key, the
 +
                                                next sets the XP1 CD-Key, and
 +
                                                so-forth.
 +
                                               
 +
                                                The CD-Key must be given in
 +
                                                EXACTLY the same format as it
 +
                                                resides in nwncdkey.ini.
 +
                                               
 +
/setexpansions <expansion bitmask>            - Sets the bitmask of present
 +
                                                expansion packs.  0 for none,
 +
                                                or 0x1 for XP1, 0x2 for XP2,
 +
                                                0x3 for XP1 and XP2, etc.
 +
                                                Defaults to 0x3 (XP1 + XP2).
 +
                                               
 +
/nocdkeys                                      - Clears any existing, partially
 +
                                                entered CD-Key data that was
 +
                                                set via the /addcdkey command.
 +
                                               
 +
                                                You must enter in the
 +
                                                appropriate CD-Keys before the
 +
                                                connection attempt will work.
 +
                                               
 +
/readini                                      - Attempts to discover your
 +
                                                CD-Keys and community account
 +
                                                credentials from the game's
 +
                                                INI files.  You generally do
 +
                                                not need to use this command
 +
                                                as this step is automatically
 +
                                                attempted at startup time.
 +
                                               
 +
/logoncharfile <DM Vault Character .BIC File>  - Supplies the file name for a
 +
                                                character present in your DM
 +
                                                vault that you would like to
 +
                                                log on to the game iwth.
 +
                                               
 +
/pickcharfile <Full .BIC File Path>            - Chooses a character file to
 +
                                                log on with manually at the
 +
                                                appropriate step in the log in
 +
                                                process, versus automatically
 +
                                                logging in.  Use this command
 +
                                                only if prompted to do so by
 +
                                                the DM Standalone Client.
 +
                                               
 +
/export                                        - Exports the currently selected
 +
                                                player's character file.  You
 +
                                                must double click a player in
 +
                                                the player list first before
 +
                                                using this command.
 +
 +
/dialog <Dialog Choice Number>                - Chooses a response from an
 +
                                                active dialog; the response
 +
                                                number must be the same as
 +
                                                shown in the response list.
 +
                                               
 +
                                                This is an experimental
 +
                                                command, use with caution.
 +
                                               
 +
                                                You may also use the command
 +
                                                "/dialog escape" to exit the
 +
                                                dialog with the default escape
 +
                                                action.
 +
                                               
 +
/combatlog                                    - Toggles display of combat-
 +
                                                related events to the console.
 +
                                               
 +
                                                By default, these events are
 +
                                                displayed.
 +
                                               
 +
/reconnect                                    - Reconnects to the server that
 +
                                                you had last connected to.
 +
                                               
 +
/autoreconnect                                - Toggles automatic reconnect
 +
                                                for connection timeouts or the
 +
                                                server shutting down.  The
 +
                                                standalone client will try to
 +
                                                reconnect every 10 seconds
 +
                                                when this mode is enabled.
 +
 +
/disconnect                                    - Disconnects from the current
 +
                                                server.
 +
                                               
 +
/item                                          - Lists the items that you have
 +
                                                on your person.
 +
                                               
 +
/item <Item Name or Hex Item Object ID>        - Uses a 'Unique Power' item on
 +
                                                your current selection, else
 +
                                                yourself for 'self-only'
 +
                                                'Unique Powers'.
 +
 +
/equip <Item Name or Hex Item Object ID>      - Equips an item on your person.
 +
 +
/cast "Spell Name" [Metamagic1[,Metamagic2]    - Casts a spell, optionally with
 +
                                                a list of metamagic names,
 +
                                                such as "extend", "maximize",
 +
                                                and so forth.  The spell name
 +
                                                must be enclosed in quotes if
 +
                                                metamagic is in use; otherwise
 +
                                                quotes are optional.
 +
                                               
 +
                                                If specifying a combination of
 +
                                                metamagic types, separate the
 +
                                                types with commas.
 +
                                               
 +
                                                For more details, see the
 +
                                                "Casting Spells from Macros"
 +
                                                section.
 +
 +
/memorize <Slot> "Spell" [Metamagic][|Class]  - Memorizes a spell at a given
 +
                                                spell slot (the spell level is
 +
                                                computed automatically based
 +
                                                on the spell given and the
 +
                                                metamagic applied).  Specify
 +
                                                metamagic(s) in the same way
 +
                                                as with the /cast command.
 +
 +
                                                Optionally, a class name can
 +
                                                be specified.  This is useful
 +
                                                should multiple classes in a
 +
                                                multiclass character can cast
 +
                                                and memorize the same spell.
 +
 +
                                                If no class name is given,
 +
                                                then the first class that
 +
                                                meets the requirements for the
 +
                                                given spell is used for the
 +
                                                memorization.
 +
 +
                                                Spell slots are numbered from
 +
                                                0 (the top and leftmost slot
 +
                                                for a given spell level).
 +
 +
/spells                                        - Prints information about known
 +
                                                and memorized spells.
 +
 +
/feats                                        - Prints information about
 +
                                                feats.
 +
 +
/talent <Talent Name>                          - Uses a talent (spell-like
 +
                                                ability).  This command is
 +
                                                generally only useful for
 +
                                                DMs that are possessing a
 +
                                                creature.
 +
 +
/feat <Feat Name>                              - Uses an activateable feat.
 +
                                                This command is useful for
 +
                                                activating feats via macros.
 +
 +
                                                The currently selected target
 +
                                                is used if the feat requires
 +
                                                an explicit target object.
 +
 +
/hotbar <Button Number>                        - Activates a hotbar button on
 +
                                                your current selection.
 +
                                                Button 1  = row 1, button 1
 +
                                                Button 13 = row 2, button 1,
 +
                                                etc.
 +
                                               
 +
/setmacro <Button Number> <Commands>          - Define a custom macro command
 +
                                                set to run when you press a
 +
                                                hotbar button.  More than one
 +
                                                command may be supplied,
 +
                                                delimited by semicolon
 +
                                                characters.  You may use the
 +
                                                /hotbar command, or any other
 +
                                                text commands (or even just
 +
                                                plain chat) from the macro
 +
                                                command list.
 +
 +
/mspells <Button Number>                      - Create a custom macro command
 +
                                                to memorize all your currently
 +
                                                memorized spells when you use
 +
                                                the designated button.  NOTE:
 +
                                                this will clear your spell
 +
                                                usages when used if any spells
 +
                                                were replaced.
 +
 +
/cancelpolymorph                              - Cancels an active polymorph.
 +
 +
/rest                                          - Activates the rest function.
 +
 +
/areas                                        - List all known areas (only
 +
                                                static template areas are
 +
                                                listed).
 +
                                               
 +
/dmjump <Area>                                - Jumps the control object to an
 +
                                                area (by name, tag, or raw hex
 +
                                                object id).
 +
                                               
 +
/dmjumpplayer <Account name>                  - Jumps to a location nearby a
 +
                                                player given their account
 +
                                                name.
 +
                                               
 +
/dmjumpsel <Area>                              - Jumps all selected creatures
 +
                                                to an area (by name, tag, or
 +
                                                raw hex object id).  The
 +
                                                objects arrive at (0, 0).
 +
                                               
 +
/dmjumpall <Area>                              - Jumps all players to an area
 +
                                                (by name, tag, or raw hex
 +
                                                object id).  The objects
 +
                                                arrive at (0, 0).
 +
 +
/t "Character Name" Message                    - Send a tell.
 +
 +
/tp "Player Name" Message                      - Send a tell (by account name).
 +
 +
/o "Character First Name" Message              - Send a tell (by first name of
 +
                                                a character).
 +
                                               
 +
/r Message    -or-    /re Message              - Reply to a previous tell.
 +
 +
/rt Message                                    - Send a tell to the last person
 +
                                                that you sent a tell to.  This
 +
                                                is useful if several persons
 +
                                                send you a tell while you are
 +
                                                holding a conversation.
 +
                                               
 +
/s Message                                    - Shout a 'message'.
 +
 +
/l Message                                    - Send 'message' as a normal
 +
                                                volume talk.
 +
                                               
 +
/w Message                                    - Send 'message' as a whisper.
 +
 +
/p Message                                    - Send 'message' to your party
 +
                                                members, and all DMs.
 +
                                               
 +
/dm Message                                    - Send 'message' to all DMs.
 +
 +
/invertrun                                    - Changes the behavior for point
 +
                                                and click movement to walk by
 +
                                                default unless SHIFT is held.
 +
                                               
 +
/modes                                        - List your active modes, such
 +
                                                as stealth or detect.
 +
                                               
 +
/stealth                                      - Toggles the stealth mode, if
 +
                                                it is supported for your
 +
                                                character.
 +
 +
/resname <Module Resource Name>                - Overrides the default module
 +
                                                resource name.  This command
 +
                                                is generally only useful when
 +
                                                attaching the client extension
 +
                                                to an already running game
 +
                                                client instance without
 +
                                                logging out first.
 +
                                               
 +
/replyinvite <accept|reject|ignore>            - Responds to a prior party
 +
                                                invitation.
 +
                                               
 +
/invite <Character Name>                      - Invites a character to join
 +
                                                the party.
 +
                                               
 +
/leaveparty                                    - Depart the current party.
 +
                                               
 +
/partyleader <Character Name>                  - Make another player the party
 +
                                                leader.
 +
 +
/removeparty <Character Name>                  - Remove a party member.
 +
 +
/scry [on|off]                                - Refreshes the player list scry
 +
                                                window with current area data,
 +
                                                or disables or re-enables
 +
                                                automatic updating of area
 +
                                                data.  It is recommended that
 +
                                                automatic area updates only be
 +
                                                used on servers with the
 +
                                                xp_bugfix ReplaceNetLayer = 1
 +
                                                fix enabled due to the data
 +
                                                volume sent.
 +
                                               
 +
/clientpath                                    - Toggles client-side pathing
 +
                                                prediction on or off for game
 +
                                                world objects.  Disabling the
 +
                                                client-side path predictor
 +
                                                will cause objects to only
 +
                                                update positions in the map
 +
                                                when new pathing orders are
 +
                                                recalculated.
 +
 +
/smoothpath                                    - Toggles smooth pathing for
 +
                                                proposed paths (when you hold
 +
                                                control down in the map window
 +
                                                and see a path line).
 +
                                               
 +
/windowstats                                  - Displays internal networking
 +
                                                counters and statistics.
 +
 +
/tilegrid                                      - Toggles display of the map
 +
                                                tile grid.
 +
 +
/rendertiles                                  - Toggles rendering of tile tint
 +
                                                contents for indoor areas.
 +
 +
/polydraw <x1 y1 x2 y2 ... xN yN>              - Draws a series of line
 +
                                                segments on the map window.
 +
                                                Coordinates are expressed in
 +
                                                game units.
 +
 +
/raydraw <o.x o.y o.z d.x d.y d.z>            - Draws a portion of a ray,
 +
                                                given an origin and a ray
 +
                                                direction (in game units).
 +
                                                This is primarily used to
 +
                                                debug the rendering system.
 +
 +
/moveto <x> <y>                                - Attempts to walk to a specific
 +
                                                coordinate set.
 +
 +
/calcpath <x1> <y1> <x2> <y2>                  - Calculates a path between two
 +
                                                points and prints the result
 +
                                                to the console.
 +
 +
/pathto <x> <y>                                - Calculates a path between your
 +
                                                current position and another
 +
                                                point in the same area.
 +
 +
/time                                          - Displays the current game
 +
                                                world time.
 +
 +
/settime <hour> [minute] [second] [millisec]  - Advances server time as per
 +
                                                the behavior of the SetTime
 +
                                                nwscript function (no server
 +
                                                scripts are required).  If you
 +
                                                omit any arguments after hour,
 +
                                                they are defaulted to zero.
 +
 +
/showui                                        - Re-opens all client extension
 +
                                                UI windows that you've closed,
 +
                                                such as the map window.
 +
 +
/kill                                          - Uses DM powers to kill your
 +
                                                current selection.
 +
 +
/heal                                          - Uses DM powers to heal and
 +
                                                resurrect your current
 +
                                                selection.
 +
 +
/getres <restype> <resref>                    - Unpacks a module resource from
 +
                                                the module or its HAK files.
 +
 +
/help [command]                                - Provides online help about a
 +
                                                text command or lists all text
 +
                                                commands if no arguments were
 +
                                                supplied.
 +
 +
/pickupitem                                    - Picks up an item from the
 +
                                                ground were it the selected
 +
                                                item.
 +
 +
/lootitem <item name>                          - Loots an item from the open
 +
                                                item container.
 +
 +
/lootall                                      - Loots all items from the open
 +
                                                item container.
 +
 +
/takeitem                                      - Moves an item directly to your
 +
                                                repository using DM powers.
 +
                                                The selected item is used.
 +
 +
/dumpobject                                    - Use DM powers to display
 +
                                                various trivia about an
 +
                                                object.
 +
 +
/direct2d                                      - Toggles Direct2D acceleration
 +
                                                on or off (requires Vista+).
 +
 +
/nomodels                                      - Enables or disables model
 +
                                                loading (speeds area loading,
 +
                                                but disables wireframe view in
 +
                                                the area map).
 +
 +
/perftrace                                    - Enables logging of client
 +
                                                message processing performance
 +
                                                characteristics.  This tracing
 +
                                                only functions in Client
 +
                                                Extension mode, and only when
 +
                                                using the replacement network
 +
                                                layer (which is the default).
 +
 +
/showfps                                      - Toggles display of nwn2main's
 +
                                                FPS counter (no DM privileges
 +
                                                are required).
 +
 +
/logfps                                        - Toggles timestamped logging of
 +
                                                nwn2main's FPS counter to the
 +
                                                Client Extension log file.
 +
 +
/fswindow                                      - Toggles fullscreen windowed
 +
                                                mode, which covers the monitor
 +
                                                but does not engage fullscreen
 +
                                                input capture.
 +
 +
/tts                                          - Toggles text to speech support
 +
                                                for logon and logoff events,
 +
                                                and in-game chatter.
 +
 +
/ttsfilter [.NET regular expression match]    - Set a .NET regular expression
 +
                                                filter that voice events must
 +
                                                match in text to speech mode
 +
                                                for voice playback to be sent.
 +
 +
                                                If used without arguments, any
 +
                                                filter is removed.
 +
 +
/testregex [text]                              - Tests a regex match assigned
 +
                                                by /ttsfilter against a text
 +
                                                string.
 +
 +
/away [response message]                      - Sets away mode, or toggles it
 +
                                                off if no argument is supplied
 +
                                                and away mode is already on.
 +
 +
                                                When enabled, an automatic
 +
                                                tell ("response message") is
 +
                                                sent to any incoming tell, one
 +
                                                time per sender.  Away mode is
 +
                                                automatically cancelled when a
 +
                                                message is sent or the player
 +
                                                moves.
 +
 +
                                                A summary of received tells
 +
                                                during away mode is shown when
 +
                                                away mode ends.
 +
 +
/camerapitch [degrees]                        - Sets a new default maximum
 +
                                                camera pitch for the
 +
                                                Exploration Mode camera view.
 +
                                                90 degrees is the game default
 +
                                                and 179 degrees is the default
 +
                                                for Character Mode.  The
 +
                                                Client Extension default is
 +
                                                179 degrees.  Valid values
 +
                                                must be between [90, 179].
 +
 +
/freecam                                      - Enables free camera mode, for
 +
                                                DM privileged users.  Switch
 +
                                                to another camera mode to
 +
                                                cancel free camera mode.  Use
 +
                                                the arrow keys and scroll
 +
                                                wheel to navigate in free
 +
                                                camera mode.
 +
 +
/fadeobjects                                  - Toggles object fade for all
 +
                                                camera modes.  The setting is
 +
                                                not persisted to disk.  Use
 +
                                                /fadeobjects again to return
 +
                                                to the configured settings for
 +
                                                the active camera mode.
 +
 +
/console <console-cmd> [console-cmd-params]    - Runs a server-side console
 +
                                                command.
 +
 +
/effectfade                                    - Toggles floating text
 +
                                                announcements when effect
 +
                                                icons (i.e., for buff spells)
 +
                                                fade on your character.
 +
 +
/selectitem [item name]                        - Selects an item by name.  This
 +
                                                command is useful for hotbar
 +
                                                macros that cast spells, such
 +
                                                as Magic Weapon.
 +
 +
 +
 +
If a text line does not begin with a /, then it is sent as a normal volume talk
 +
message.
 +
 +
 +
Regular Expressions
 +
-------------------
 +
 +
.NET regular expressions are used for the text to speech filter.  Documentation
 +
for the regular expression language can be found at the following Microsoft web
 +
site:
 +
 +
http://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx
 +
 +
 +
Automatic Command Sending
 +
-------------------------
 +
 +
Although the DM Standalone Client does not have a dedicated configuration file,
 +
it will read commands (one per line) from two files on the disk at certain
 +
points in time.  These command can configure the DM Standalone Client's
 +
settings, such as the default DM logon character file.
 +
 +
The DM Standalone Client will read the
 +
<Documents>\Neverwinter Nights 2\autocmds.txt file at startup time (where the
 +
<Documents> variable indicates your My Documents (or Documents on Windows Vista
 +
or later) folder.  Once the DM Standalone Client has joined the game world, it
 +
will read the <Documents>\Neverwinter Nights 2\autocmds_ingame.txt file.  Both
 +
files have identical formats.
 +
 +
Should a particular autorun command file not exist, the autorun phase is
 +
simply silently skipped.
 +
 +
 +
Saved Window Positions
 +
----------------------
 +
 +
The client extension remembers how you positioned its windows for the next time
 +
that you log on.  There is one set of settings used in client extension mode,
 +
and another used if you log on with the DM Standalone Client.
 +
 +
Window settings are recorded in the registry at the following location:
 +
 +
HKEY_CURRENT_USER\SOFTWARE\Valhalla Legends\ClientExtension\Settings
 +
 +
There is generally no need to directly edit the saved settings.
 +
 +
 +
Casting Spells from Macros
 +
--------------------------
 +
 +
The /cast command (usable both outside and inside of macros) allows you to cast
 +
a spell by name.
 +
 +
When naming a spell, you should use the spell's full display name.  For spells
 +
with sub-spells (for example, Protection from Alignment), it is usually best to
 +
cast the specific sub-spell you want.  (Many such spells will either do nothing
 +
or take a default behavior that you might not like when casting the main spell
 +
directly.)
 +
 +
For example, if you wanted to cast Protection from Alignment's Protectiom from
 +
Evil sub-spell, you could use the following command:
 +
 +
/cast Protection from Evil
 +
 +
Spells can also be given metamagic modifiers as a comma-separated list.  The
 +
following are the metamagic modifier names that are accepted:
 +
 +
empower
 +
extend
 +
maximize
 +
quicken
 +
silent
 +
still
 +
persistent
 +
permanent
 +
 +
You must have the appropriate feats and spell levels or readied spell
 +
memorizations available to successfully cast a spell.  Otherwise, the spell
 +
casting attempt fails.
 +
 +
The /cast command always uses your current target, unless the spell in question
 +
can only be cast on yourself, in which cast your character is automatically
 +
used as the target.
 +
 +
It is currently not possible to cast spells on the ground with /cast.
 +
 +
Similarly to spells, the /feat <Feat-Name> command can be used to invoke a feat
 +
from a macro.  Only feats that are activateable may be referenced via this
 +
command.  For example, to activate the Racial Spell (Light) feat, one might use
 +
the following command:
 +
 +
/feat Racial Spell (Light)
 +
 +
Subradial feat selection is not currently supported.
 +
 +
 +
Custom Hotbar Macros
 +
--------------------
 +
 +
Custom macro hotbar buttons are a new feature that the Client Extension adds to
 +
the game.  Macros allow you to assign a set of text commands that run when you
 +
press a hotbar button.  The tooltip for a macro hotbar button lists all of the
 +
commands that are run when you activate that button.
 +
 +
This feature is particularly useful when you have a large number of repetitive
 +
actions that you would like to consolidate into just one keypress.  For a
 +
familiar example, you could create a single hotbar button that, when pressed,
 +
would activate all of a Cleric's, or Wizard's buff spells.
 +
 +
To create a hotbar macro button, use the /setmacro command as follows:
 +
 +
/setmacro <hotbar button number> <command1>[;command2;commandN]
 +
 +
"Hotbar button number" indicates the hotbar button which will be turned into a
 +
macro-enabled hotbar button.  Button 1 is the first hotbar button, on row 1.
 +
Button 13 is the first hotbar button on row 2, and buttom 15 is the third
 +
hotbar button on row 2, and so on.
 +
 +
After the hotbar button number, you may provide a list of text commands that
 +
are processed when the hotbar button is pressed.  If you would like to run more
 +
than one text command, separate the commands with a semicolon.
 +
 +
Any Client Extension text command, and any text command supported by the game
 +
client itself may be used in a macro.  You may also macro up simple chat text,
 +
if desired.
 +
 +
The most common use of macro hotbar buttons is to cast several spells in
 +
succession.  There are two ways to do this: by spell name, and by referencing a
 +
different hotbar button.
 +
 +
You can create a macro hotbar button to memorize all your currently memorized
 +
spells.  This is useful in scenarios where your character might polymorph or
 +
otherwise equip and un-equip items that alter their spellcasting stats.  The
 +
/mspells <hotbutton number> command will create such a macro.
 +
 +
 +
 +
Tutorial: Creating a hotbar button to cast several buffs at once via casting
 +
          spells by name.
 +
----------------------------------------------------------------------------
 +
         
 +
Let's say that you want to have a single hotbar button which casts several
 +
offensive spells, all in one go.  (The spells would be enqueued up to be cast
 +
one after another, just as if you hit two hotbar buttons separately.)
 +
 +
For this example, we will create a hotbar button which casts a quickened
 +
version of Isaac's Lesser Missle Storm, followed by Flame Arrow.
 +
 +
This task can be easily automated by creating a hotbar button that casts both
 +
of these spells.  We will use the /cast macro command, which looks up a spell
 +
by name, and casts it on your current target.
 +
 +
We can construct a sequence of /cast commands that will cast the spells that we
 +
want as follows:
 +
 +
/cast "Isaac's Lesser Missile Storm" quicken
 +
/cast Flame Arrow
 +
 +
The first spell casts the lesser missle storm spell, with the "quicken"
 +
metamagic property.  If you wanted to add other metamagic properties to a
 +
spell, you could specify them in a comma-separated list.
 +
 +
For instance, to cast a silent and still Magic Missle spell, you would use the
 +
following command:
 +
 +
/cast "Magic Missile" still, silent
 +
 +
Now, back to our example.  We can create a hotbar button that will run both of
 +
the above macro commands with the /setmacro command.  Here, we will assign the
 +
macro to hotbar button 1, which is the first button on the first hotbar row.
 +
 +
/setmacro 1 /cast "Isaac's Lesser Missile Storm" quicken ; /cast Flame Arrow
 +
 +
That's all there is to it.  Now, the next time you press that hotbar button,
 +
all of the spells you have listed in the macro will be cast.
 +
 +
 +
 +
Tutorial: Creating a hotbar button to cast several buffs at once via hotbar
 +
          buttons.
 +
---------------------------------------------------------------------------
 +
 +
Let's consider that you want to cast several buff spells with one hotbar
 +
button.  This task can be easily accomplished with the /setmacro command.
 +
 +
First, you must place the spells that you would like to cast on their own
 +
hotbar slots.  We'll use hotbar buttons 2, 3, and 4 for this example, so drag
 +
the spells that you would like to cast onto those buttons (first hotbar row).
 +
 +
Now, for this example, we will turn the first hotbar button into a macro-
 +
enabled button which will use buttons 2, 3, and 4.  After you have set up those
 +
three hotbar buttons, type the following command:
 +
 +
/setmacro 1 /hotbar 2 ; /hotbar 3 ; /hotbar 4
 +
 +
If everything worked out, you should see a couple of messages written to your
 +
combat log, along the lines of "Configuring macro command: /hotbar 2".  You
 +
should also have a new hotbar button which has a "2D Missing Texture" icon in
 +
the button 1 slot.  (Don't worry about the missing texture; the button will
 +
still work fine.)
 +
 +
That's it; you're done!  Now, the next time you press the first hotbar button
 +
on row 1, the actions that you have assigned to buttons 2-4 will be carried
 +
out.
 +
 +
Tip:  If you have buff spells that can buff an ally, select that ally before
 +
      you push the macro-enabled hotbar button.  Macros will use your currently
 +
      selected target for their spell targets, for spells that may target a
 +
      creature other than yourself.
 +
 +
 +
Accessing possessed creature abilities as a Dungeon Master
 +
----------------------------------------------------------
 +
 +
You can use special abilities of possessed creatures with the /talent command.
 +
 +
This command only works for intrinsic creature special abilities, such as
 +
Dragon Breath.
 +
 +
When you possess a creature, your hotbar will be populated with grayed spell
 +
buttons for each creature special ability.  While you cannot use the grayed
 +
buttons directly, you may hover the mouse over them to discover the ability
 +
names.  The ability name can then be used with /talent.
 +
 +
For example this command:
 +
 +
/talent Dragon Breath, Fire
 +
 +
...will use the fire-breathing ability of a Red Dragon.
 +
 +
You may use /talent in hotbar macro buttons, or you may simply type it out on
 +
the text input line directly if you prefer.  The same targetting rule as for
 +
/cast apply to /talent.
 +
 +
 +
Launching the Client Extension from the Toolset (Advanced)
 +
----------------------------------------------------------
 +
 +
You can configure the toolset to launch the game with the Client Extension and
 +
not the standard game client.  This step is only recommended for advanced users
 +
that are comfortable with changing their game install.
 +
 +
1) Go to the game installation directory and rename nwn2main.exe to
 +
  nwn2main_override.exe.
 +
 +
2) Copy NWLauncher.exe into the game installation directory, and rename it to
 +
  nwn2main.exe.
 +
 +
To undo this setting, you will have to manually rename back the original
 +
version of nwn2main.exe.
 +
 +
 +
Online Services
 +
---------------
 +
 +
This release of the Client Extension includes connectivity to a third-party
 +
online service operated by the creator of the Client Extension program,
 +
Skywing.  The following describes the online service functionality and any data
 +
collected.
 +
 +
* Master Server Listing:  A master server listing of known NWN2 game servers is
 +
  queried by the Client Extension via a web service API.  This powers the
 +
  Internet Server Browser functionality in the game, now that GameSpy support
 +
  has been discontinued.
 +
 +
* Master Server Population:  When connecting to a server not known to the
 +
  master server listing, the Client Extension requests that the master server
 +
  infrastructure add the server in question to the master list, so that other
 +
  players may join the server.  This broadens coverage of known servers in the
 +
  Internet Server Browser, as not all servers have been upgraded to participate
 +
  in the master server infrastructure project.  The only information passed to
 +
  the online services functionality is the IP address and port number of the
 +
  game server to add to the master server listing.  This functionality is not
 +
  used to correlate or track activity by Client Extension users.  A server that
 +
  has been listed by this mechanism will be visible to other Client Extension
 +
  users, and other clients of the online services API, but no information about
 +
  the user that requested the listing is retained; this information is purely
 +
  used for public server listing and matchmaking purposes.
 +
 +
* Auto Update Functionality:  When started, the Client Extension will attempt
 +
  to discover whether new software updates for the NWN2 Client Extension
 +
  software are available.  If an update is available, the user is prompted to
 +
  decide whether to install the update or continue without installing the
 +
  update.  All software updates are digitally signed.  In addition, the auto
 +
  update functionality provides a description of the update to the user, and
 +
  can provide a "Message of the Day" to the user used to provide notification
 +
  of important community news.  All auto update functionality notifications
 +
  take the form of a clearly marked message box at the main screen in the game
 +
  client, and the user is never required to install an update if they elect not
 +
  to.
 +
 +
* Diagnostics Statistics:  Aggregate counters of selected events, listed below,
 +
  are recorded by means of the online services connectivity.  These counters
 +
  are used only to diagnose and identify problems with software updates and are
 +
  not used to track or identify users.  Information about the individual user
 +
  that incremented a diagnostics counter is not retained; only an aggregate
 +
  numeric counter value of events across all Client Extension users is
 +
  maintained.
 +
 +
  Counters:  Failed Software Update, Successful Software Update, Manual
 +
            Installed Software Update.
 +
 +
* Data Collection and Privacy Policy:  No personally identifying information is
 +
  retained by any of the third party online services hosted by Skywing that the
 +
  Client Extension maintains connectivity to.  IP addresses may be temporarily
 +
  retained in the form of standard web server request logs, but these are not
 +
  used to attempt to identify, contact, or track the activity of Client
 +
  Extension users.  Web server request logs are not shared with external
 +
  parties.
 +
 +
* Online Services Source Code:  The source code for the online services
 +
  functionality used by the Client Extension can be located at the following
 +
  web URL:  https://github.com/SkywingvL/nwn2dev-public
 +
 +
* Online Services Communication Endpoint:  The online services functionality
 +
  supported by the NWN2 Client Extension involves an HTTP connection to
 +
  api.mst.valhallalegends.com and the exchange of standard SOAP messages.  The
 +
  source code for the online services functionality is available at the above
 +
  URL.
 +
 +
Acknowledgements
 +
----------------
 +
 +
Grinning Fool, for assistance with area decoding and portions of the game
 +
object update message decoding.
 +
 +
Obsidian, for working to provide debug symbols for the Neverwinter Nights 2
 +
client and server.  This has proven by far the most positive interaction with
 +
a game developer that I've had to date, something that should be considered a
 +
model for other game developers to emulate.
 +
 +
Brian Meyer, for bearing with several test builds and providing extensive
 +
test work and valuable feedback.
 +
 +
Tero Kivinen <kivinen@iki.fi>, for decoding portions of the walkmesh on-disk
 +
format.
 +
 +
KEMO, for bearing with me for extensive testing of DM cross-area creature
 +
viewing and other assistance with debugging the server-side GUI scripts
 +
involved.
 +
 +
tazpn, for releasing the source code to his Neverwinter Nights 2 model import
 +
and export tool, from which information on the game's bone system was derived.
 +
 +
Numerous beta testers for providing feedback, catching issues, and suggesting
 +
new features.

Latest revision as of 19:19, 15 September 2025

This article covers Skywing's Client Extension.

Documentation found here is copied from the official readme. Additionally, it defines suggested uses on A Land Far Away.

Welcome to the Client Extension!

This program acts as a client plug-in (and, for DMs, optionally a completely independent standalone client) whose purpose is to improve the multi-player experience of Neverwinter Nights 2. It fixes several client crash bugs, and adds some useful new features.

See the "Quick Start & Overview" section for using the client extension as an add-on to the game (recommended for most users). See the "DM Standalone Client" section for details on using the client extension to log on to your server as a DM, without starting the game (advanced usage for PW admins).


Quick Start & Overview


The Client Extension can either plug-in to the player or DM client, or it can operate as an independent DM client. To get started with using the Client Extension as a player or a DM, use one of the following methods:


(a) Start the game with the included NWLauncher program (recommended).

1) Run NWLauncher.exe and the game will start with the client extension

   already active.  You need to keep NWLauncher.exe and ClientExtension.hdl
   in the same place for the launcher to work correctly.
   
   It is recommended that you use the game in windowed mode to get the most
   out of the client extension.
               
   You may pass command line arguments to the game by providing them to
   NWLauncher.exe, e.g. by creating a shortcut.  This is useful for launching
   the game in DM mode with the -dmc option.  You can also directly connect to
   a game server at startup by using the +connect <server> argument.  See the
   "Features" section for more details on how to create a shortcut to connect
   to a game server automatically.


2) Log on to your server as normal and play the game.


                                   - or -


(b) Apply the client extension after starting the game.

1) (First time only.) Double-click hdlinstall.reg to install support for .hdl

    files.  You only need to perform this step once per computer.
    

2) Start Neverwinter Nights 2 in normal or DM client mode, and go to the main

   menu.  It is recommended that you use Neverwinter Nights 2 in windowed mode
   but this is not strictly required.
    

3) Navigate to where you have placed ClientExtension.hdl in Explorer,

   right-click the ClientExtension.hdl file, and choose the 'Apply' option
   from the menu that appears.
   

4) Log on to your server as normal. You must follow steps 3-5 again each time

   you exit Neverwinter Nights 2.  Be sure to apply the extension -before- you
   log on to your server.


The AMDXP version of Neverwinter Nights 2 is not supported. Only very old AMD machines use the AMDXP version; recent AMD machines do not. You will receive an error message if you attempt to use the AMDXP version of the client.

In order to get the most out of the Client Extension, it is highly recommended that you read the remainder of the document. Players should read the "Features" section; DMs are encouraged to read the entire document for details on how to best use DM-specific features.


Avoid running Neverwinter Nights 2 in a compatibility mode (i.e. Windows XP compatibility mode) if you plan on using the Client Extension. It is not necessary to run the game in compatibility mode, and doing so may prevent the Client Extension from loading in some circumstances.


Modes of Operation


There are two basic modes of operation for the Client Extension:

- Client Extension mode, which can be used in conjuction with the game client

 as a normal player.  To use the Client Extension, simply start the game
 client as normal, then right-click ClientExtension.hdl in Explorer and choose
 the 'Apply' option.  The Client Extension is only active for a single game
 session; you must re-apply the Client Extension each time you wish to use it.
 
 The Client Extension may also be used when you are logged on as a DM, with
 the DM client.  In this mode of operation, the Client Extension can act as an
 aid to your dungeon sessions by providing a more-detailed area map.  Several
 DM-specific commands and features are also available.  See the "DM Features"
 section for more details.
 

- DM Standalone Client mode, which operates as a wholly independent client for

 DMs to log on to their servers and interact with the game world to a limited
 extent.  The usage of the DM Standalone Client is somewhat different, and is
 explained later.
 
 

Features


The Client Extension includes a number of new features and bug fixes that are designed to improve your multiplayer experience:

- A replacement for the Internet Server Browser functionality, formerly

 provided by GameSpy (official support has since been discontinued).  This
 enables players to locate other servers to join, as prior to the
 discontinuation of matchmaking services by GameSpy.

- An option to directly connect to a multiplayer game server from the command

 line.  Simply run NWLauncher.exe +connect <server> [+password <pw>] to start
 the game and directly connect to a server.  This can be used to create a
 shortcut to launch the game and connect to a particular server.  Here are
 some example command line:
 NWLauncher.exe +connect mynwn2pw.example.com
 NWLauncher.exe +connect mynwn2privatepw.example.com +password playerpassword
 NWLauncher.exe -dmc +connect mynwn2pw.example.com +password dmpassword

- Command history is now available for the client! The client extension has a

 separate text-entry user interface which allows a history of all chat text
 that you send to be accessed.  Even text you enter in to the normal game chat
 interface is added to the command history, but you may only access the
 command history from the new text-entry user interface.  The new text-input
 user interface is described in the "Text-input User Interface" section.
 

- Larger chat messages can now be sent (up to approximately 4,096 characters).

 Please use this feature appropriately.  Long text messages do not cause any
 problems for normal clients or servers, but sending an overly long message
 may produce results that are difficult to read.  Large text messages are only
 available through the new text-input user interface.
 
 Tip:  You can also paste directly into the separate text-entry user interface
       as an option to paste chat into the game.
 

- A properly functioning reply command (/re) is now available. This command

 supersedes the built-in reply function.  It has the following improved
 properties:
 
 - Only senders of tells (not other chat messages) are set to the reply
   target.
   
 - Sending a tell no longer sets the reply target to yourself.
 
 The /re command can be used in both the normal game interface and the
 separate text-entry user interface.
 
 When using the separate text-entry user interface, you may use /r as a
 shorthand for /re.  However, using /r in the normal game interface will
 access the old reply function that ships with the game.
 

- A re-tell function (/rt) is now available. This command sends a tell to the

 last player you have sent a tell to.  Like all other new slash-commands, this
 command is available both through the normal game interface and through the
 separate text-entry user interface.
 

- An /invertrun function is now available. This command switches the behavior

 for point-and-click movement, so that by default, you will walk unless you
 hold down SHIFT.  WASD movement in the game still runs unless you use SHIFT.
 
 Tip:  You can use /invertrun instead of activating Tracking Mode if you would
       like to walk by default.  You still have easy access to run mode
       without having to toggle a mode button when using /invertrun, as you
       just need to use WASD or hold down SHIFT.

- Rotating chat and combat logs are now automatically written by the Client

 Extension.  Logs are rotated once per day and named by character, with
 entries individually timestamped.  Chat and combat logs are stored under the
 "Logs" directory of your NWN2 home path, i.e.
 "Documents\Neverwinter Nights 2\Logs".  Currently, only server notices are
 written to the combat log; full combat text display is not yet available.
 

- A new area minimap is available. You can click on a point in the new area

 minimap (not the in-game automap) in order to move to that point.  This is
 often useful if you need to cross a very large area without having to click
 many different times.  Note that if your pathing orders are too complicated,
 the game engine will discard them.  The map is further described in the
 "Area Map" section.
 

- A new form of macro-enabled hotbar buttons are available. Macro-enabled

 hotbar buttons are created with the /setmacro command (see the documentation
 in this file for details).  Macro-enabled hotbar buttons can perfrom many
 actions per hotbar press, such as enqueuing up many buff spells all at one
 time.
 
 More details on hotbar macros are available in the "Custom Hotbar Macros"
 section.
 

- An appending log file with your chat history is available. The log file is

 named "nwn2reportlog.log" and is written to your Neverwinter Nights 2
 installation directory.  (Windows Vista and Windows 7 users may need to click
 the "Show compatibility fixes" option in Explorer to see it.)
 

- A console interface for displaying in-game chat is now available. This is

 often useful if you would like to minimize the game, but still keep tabs on
 what's going on (such as if you are waiting for someone to log on or send you
 a tell) without wasting a large amount of screen real-estate.  This function
 is further described in the "Console Interface" section.
 
 Tip:  You can also copy text from the console window if you enable "Quick
       Edit" in the console properties.  (Right-click the console icon and
       go to the "Properties" menu item.)  This is often useful if you want to
       copy and paste chat from the game.
 

- A crash in a third party library used for autodownloader support is avoided.

 This crash may have occured when attempting to download news information at
 the logon screen.  (The crash only occurs sporadically.)
 

- Wizards with metamagic spells on their hotbars should no longer periodically

 crash during area transitions.
 

- The client should no longer crash when the loading initial area after the

 character selection screen, when the initial area has creatures with certain
 VFX or animation parameters updating.

- Hotbar buttons should no longer occasionally flicker and fail to persist

 changes when editing them.
 

- The client now properly displays Darkvision when transitioning to a new area.

- Animations (particularly terrain scrolling while walking) no longer begin to

 stutter or "chunk up" in NWN2 after the computer has been running for several
 days since its last reboot.

- The networking code responsible for sequencing and reliability over UDP in

 the game client is replaced with more reliable code (if you apply the
 extension before logging on to a game server).  This works around several
 data corruption and data loss problems that result in some transition crashes
 during a zone transfer.
 
 Note that not all transition crashes are caused by these issues.  Also,
 because the same bugs exist in the server-end of connection, some transition
 problems will not be completely fixed unless the server is also using a
 rewritten networking subsystem.
 
 The networking subsystem rewrite does not impact compatibility with clients
 or servers that do not use the more reliable networking code, however, these
 clients and servers will not be protected from their own bugs.

- Point and click movement in the game world no longer waits for a response

 from the server before beginning to animate movement.  In some cases where
 there are dynamic path obstructions, this might result in minor path
 "glitching".  You may disable this feature by using the /mpredict command.
 Movement prediction only applies for point and click in the rendered game
 window and not point and click in the area map.  This feature improves
 perceived responsiveness with respect to movement on laggy servers.
 

- Right-clicking a name in the game's chat history and choosing the send tell

 option will now work for characters with no last name.

- You may use the /tilegrid command to toggle display of the area tile grid on

 the area map.  This is generally only useful for builders.
 

- You may use the /rendertiles command to toggle rendering of tile tints on the

 area map.  This is generally only useful for builders.
 

- DMs have additional graphical interfaces for controlling the game world, and

 are highly encouraged to read the entire readme document for details.

- Improved GUI debugging is available with the new /guidebug and /guitracing

 commands, that log detailed information about what XML GUI events are being
 raised (and with what parameters).  These two commands toggle GUI debugging
 output to the Client Extension console; enable both for maximum output, or
 just enable /guidebug for basic debug output.
 When /guitracing mode is enabled, the console will include lines similar to
 the following:
 FilterClientCallbackSetEventType: Executing NWN2_UIEVENT_DROP - self:UIData
 (int:1, int:1, int:1, int:0, objectid:0x8000039b, objectid:0x8000039b),
 callbackparams: ("self:", "objectid", 0, "local:100")
 The self:UIData () section lists the data that can be retrieved for this
 event using UIObject_Misc_ExtractData().  In this example, there are four
 ints available at int indexes 0, 1, 2, 3, and two objectids available at
 objectid indexes 0 and 1.
 The callbackparams: () section lists the arguments to the GUI XML function
 that this event is configured to run.  In this case, there was a call to the
 UIObject_Misc_ExtractData function with the four arguments listed.

Text-input User Interface


The program will create a free-floating text input box (called "Send message") at startup time. You can use this text input box to enter in commands or chat like you would through the normal game interface.

You can enter in long messages (up to approximately 4,096 characters) through the text input box, past the normal limit in-game.

The text input box adds a command history function that keeps track of all chat text and commands that you send in-game or through the text input box itself.

To access this command history, hold down the CONTROL key, and press the UP or DOWN arrow keys while the text input box is the active window. This feature is particularly useful if you have typed a long message, but the person you had sent it to disconnected before they could read it.

Once you move the cursor to the start or end of the current message, UP/DOWN arrow keys will also switch to the previous or next command, respectively.


Area Map


One of the first screens that you'll notice when using the client extension is the map window. This window provides your view into the game world, rendered as a top-down, 2D flat board. Each object in the game is represented by a small block of pixels. Hovering the mouse over an object will display a short description of that object. Some description details are only available if you are logged on with the DM client.

To view information about an object that is moving, simply hover the mouse over the object and leave the cursor still. The tool tip will display in a moment without you needing to follow the object with the mouse each step of the way.

A color coding scheme is used to draw each object, so here's the legend you'll need to understand what you are seeing:

Dark blue - Closed door. Dark blue and magenta hatched - Open or destroyed* door. Bright green - Map pin with description. Vermillion - Your current position. Purple - Your current target. Faint green - Placeable object. Faint blue-green - Item. Faint green and faint yellow hatched - Usable* placeable object. Faint blue - Environmental object. Bright red - Detected hostile creature Faint red - Hostile creature* (not detected) Bright yellow - Detected neutral creature Faint yellow - Neutral creature* (not detected) Bright turquoise - Detected friendly creature Faint turqouise - Friendly creature* (not detected) Bright white - Player+ (other than yourself) Faint white - Player* (not detected) Pink - Your currently selected player*.

  • Feature only available if you are using the DM client.

+: Only party members are shown unless you are using the DM client.


Detection criteria for non-DM players is based on the tracking skill only in this release; only creatures that you can track on the in-game minimap will be visible.


Additionally, certain objects are drawn as simple polygon shapes:

Blue polygon with dotted white line - Transition trigger. Red polygon with dotted white line - Hostile trap (detected). Green polygon with dotted white line - Friendly trap. Yellow polygon with dotted white line - Script* trigger.

  • Feature only available if you are using the DM client.


The client extension also supports showing where objects are pathing to. Object pathing orders are drawn as a series of line segments, which correspond to the current movement orders assigned to that object. Note that only a few steps ahead are pre-planned, so the final line segment may appear to cross regions that are not walkable. Pathing orders are reevaluated automatically at each step of the way.

Pathing (movement) orders are drawn according to the following legend:

Bright red line dotted with white - Hostile creature* pathing orders. Faint red line dotted with white - Hostile creature* (not detected) path. Bright yellow line with dotted white - Neutral creature* pathing orders. Faint yellow line with dotted white - Neutral creature* (not detected) path. Turquoise line with dotted white - Friendly creature* pathing orders. Faint turqouise line with dotted white - Friendly creature* (undetected) path. Solid bright white line - Player+ pathing orders. Faint bright white line - Player* (not detected) pathing orders. Vermillion line dotted with white - Your pathing orders. Pink with dotted white line - Your currently selected player*. Purple line dotted with white - Your target.

  • Feature only available if you are using the DM client.

+: Only party members are shown unless you are using the DM client.


Some servers may not allow display of doors, placeables, or other objects.


The map allows you to change what objects are displayed if you only want to see objects of a certain type. To cycle through the drawing levels on the map, you may press the L key while the map is the active window. Doing so moves the drawing level down by one, or starts over at the top if you reach the last drawing level. The drawing levels that are supported are:

- Self only - Creatures* and players* - Map pins - Doors - Environmental objects and placeables - Transition triggers, traps, and script triggers - Pathing orders - Wireframe models (default drawing layer) - Collision meshes - Bones (including for creature objects -- slow!)

  • DMs automatically discover all creatures and players in the current area.


The map also allows you to choose the level of terrain drawn. To cycle between terrain drawing levels on the map, you may press the T key while the map is the active window. The terrain drawing layers that are supported are:

- None (black background) - Walkable (black for walkable, light gray for non-walkable) - Walkmesh (walkmesh outlines and filled walkable regions) - Full terrain display - Full terrain display with cross-hatched walkable region overlay - Full terrain display with walkmesh and cross-hatched walkable region overlay

The default drawing layer is full terrain display with walkable region overlay.

If tile tint rendering is enabled with /rendertiles, then tiles are drawn with the terrain drawing step.

Tip: Resizing the map window works much quicker in "None" or "Walkable"

     terrain mode.


The map supports displaying a position grid; press the G key while the map is the active window to toggle grid drawing.

You can press P to toggle display the pathing tile grid. Fine-grained pathing data in a baked walkmesh is calculated for each point relative to each other point only within a pathing tile; intertile pathing uses coarse-grained path calculations which are then stitched together to form straight lines when possible.

You can press I to toggle directional light rendering based on the current sun or moon position. Directional lighting is enabled by default.


You can left-click an object or point on the map to interact with that object, or move to that point. The following interaction behaviors are supported:

Non-hostile creature - Initiate NPC dialog*. Hostile creature - Attack creature. Player - Follow player. Locked door - Unlock door. Closed door - Open door. Open, non-transition door - Close door. Open, transition door - Use transition. Transition trigger - Use transition. Usable placeable - Use placeable. <Other objects or empty point> - Move to this location.

  • Feature only available if you are using the DM client.


You can SHIFT-left-click to walk instead of run when performing one of the above operations.

You can ALT-left-click an object on the map to request a description for that object should you be using the DM client. This feature is only available in DM mode.

In standalone DM client mode, you can hover the mouse over an object on the map to request a description for that object should you be using the DM client. The object description is shown on in the object tool tip. Automatic examine on mouse hover is only performed in standalone mode in order to avoid causing unexpected examine GUI pop-ups in the Neverwinter Nights 2 game client.

Holding down CTRL will show you what path the server will send you on from your current location to the location that you leave the mouse over. A green line is drawn from your current position to mouse along the path, should there be a legal path between those two points. A straight red line is drawn if there is no valid path. This is useful for debugging AI pathing issues with your module as it allows you to see how a creature would attempt to move to any other point if it were standing where you were. Only static collisions are calculated for the proposed path (that is, the path does not consider any blocking creatures or other dynamically created path blockers).

Proposed path display is modified by the /smoothpath option, which allows you to see toggle display of the raw walkmesh path before optimization into straight lines.

The path smoother generates the same rounding errors with respect to straight line visibility as the server in order to accurately show you how your path will be computed by the server.

Holding down X displays whether a clear line of sight (taking only base terrain into account) exists between your position and a target position.

You can CTRL-left-click a point on the map to walk to that point even if there is an object nearby that you would normally interact with. If you are logged on as a DM, CTRL-left-click will teleport you to the desired point instead of walking. (You must regular left-click once more to use a transition.)

You can right-click a point on the map to target that object, if it is an object that may be targetted.

You can CTRL-right-click a creature object to take control of it if you have DM privileges. Simply use CTRL-right-click on an empty map region to return control to the DM PC.

You can left click and drag the mouse to create a selection rectangle. Release the mouse to select all actable creature objects in the selection rectangle. Should you hold down SHIFT while creating the drag selection, all encompassed objects are appended to your existing selection instead of replacing the prior selection entirely. (The selection rectangle is outlined in bright green.)

You can define selection groups in the map window by holding CTRL down and pressing a number key (0-9). Press the same number key without CTRL held to recall a previously set selection group, selecting it in-game.

If you are logged on as a DM, a shorthand function is provided to allow you to quickly position creatures in your game field. You may middle-click a point on the map to move your targetted creature to that point without having to possess and unpossess the creature in separate steps. The creature will walk or run based on on your walk/run setting as with left-clicking.

Similarly, if you are logged on as a DM, you may CTRL-middle-click to teleport your selection to an area. This can even be used to teleport objects that resided within a different area to a specific point in your current area.

When using CTRL-middle-click, if you have no selected objects, then the list of selected players in the player list window is assumed. This is useful if you wish to jump multiple PCs to a new area at a specific point via point and click on the map; you would jump to the new area, make a selection in the player list window (multiple players may be selected), and then use the CTRL-middle-click function to pull those players into your area.

If you are logged on as a DM, you can ALT-middle-click to force your current selection to attack another creature. This can be combined with multiple selection to force many creatures to attack another creature (i.e. a player in a battle scenario).

You may CTRL-right-click an object to possess it if you are logged on as a DM. Similarly, you may then CTRL-right-click on empty ground to unpossess your possessed object.


While the map is the active window, you can also move using the WASD keys. It is generally recommended to use point-and-click movement instead. The WASD movement keys are:

W - Move forwards. The distance moved depends on your movement rate. S - Move backwards. The distance moved depends on your movement rate. A - Turn left by 18 degrees. D - Turn right by 18 degrees.

There is no direct indication as to your current heading, although it is remembered.

You may hold down SHIFT to walk instead of run when using WASD mode.


The map is unable to display what regions are walkable or not. You will need to know this based on the objects displayed and your knowledge of the area's layout. Attempting to move to a non-walkable location will result in your movement order being canceled.


You may press the escape key (ESC) to cancel all orders in your order queue while the map window is active.


Objects are drawn as updating along their current paths smoothly based on their walk or run characteristics. This can be disabled with the /clientpath text command. Disabling smooth client pathing significantly reduces CPU consumption spent redrawing the map window.


Area Map Camera Modes and Camera Control


The area map supports multiple camera types, which may be cycled through via the use of the 'C' key while the map window is active. The following camera modes are available:

- 2D top-down mode (the default), which is most like a traditional minimap.

 All object control functions are available in 2D top-down mode.

- 3D tactical mode, which renders the game world in a 3D perspective view, with

 a camera under full control of the user.  Currently, group selections are not
 available in 3D tactical mode.  By default, the camera in 3D tactical mode is
 positioned looking down on the area.

- 3D chase mode, which is a 3D perspective view that follows your character in

 a third person view.
 

3D camera modes are experimental and are not intended for performance operation at this time.

While in a 3D camera mode, pressing 'R' once resets the camera to its default parameters. In 3D tactical mode, pressing 'R' a second time will set the camera so that is roughly located at your character's location, looking in the direction of your character's facing.

In 3D camera modes, the following control functions area available to orient and move the camera:

- Scrolling the mouse wheel zooms the camera with respect to its look-at axis. - Holding the right mouse button down and moving the mouse will rotate (turn)

 the camera.

- Holding the right mouse button down and scrolling the mouse wheel will roll

 the camera.

The map window is rendered entirely in software via GDI, without any hardware assistance. As a result, 3D camera modes are intended for static viewing and not a general purpose, real-time updated interactive 3D display.

A diagnostics readout at the top left of the map window displays the current camera parameters.



DM Area Teleport Chooser Window


If you are logged on as a DM, a "DM Area Teleport Chooser" window will be displayed. The area chooser window is similar to the map window, but it lets you choose which area is rendered.

The area chooser window has a drop-down box at the bottom which lets you choose the name of the area you would like to view. You must have previously visited an area to display it; this is a technical limitation of the game protocol.

Unlike the map window, the area chooser window only allows you one possible action, which is to left-click a point on the map. Left-clicking teleports your current selection (which may include multiple creatures or players, or may even include yourself) to the point you clicked. This is useful for precision group teleports to another area, without having to zone to that area first.

If you left-click a point on the map and you have no selection, your character is teleported alone. This is useful as a flexible area teleport jump across your game world, as an adjunct to the existing DM Chooser jump functionality.

Creatures are, by default, not shown on the area chooser window, and the area chooser window does not update in real time for performance reasons.

You can add two scripts to your server to allow the DM Area Teleport Chooser window to show creatures (including players) in the area chooser window, when viewing areas other than your current area. This feature lets you keep tabs on what's happening in your PW, without leaving your current area.

Sample scripts to support the DM Area Teleport Chooser's creature viewing functionality are included (gui_scliext_dm_pollarea, gui_scliext_identify).


Console Interface


The program creates a console (text-mode) window for displaying output text to you outside of the normal rendered game scene. This window can be observed even if you minimize the normal game window; it may also be resized or moved at will.

You cannot enter text directly into the console window; instead, you must use the normal game interface or the separate text-entry interface.

Player chat and player join/leave events are displayed to the console window, along with various status miscellaneous pieces of information.


Player List Window


If you are logged on as a DM, a "Player List Scry" window will be shown. This window lists which players are logged on to the server and whether they are present in the same area as you or not.

There are several columns in the player list window:

Column Description


"Name" Indicates the player's character name.

"Area" Indicates the area tag of the player, if known. This information is

        not always available.  If the area tag is truncated due to being too
        long, then the full area tag name can be seen in the player details
        box by clicking on the player's list box entry 

"cHP" Indicates the current hit points of the player.

"mHP" Indicates the maximum hit points of the player.

"Lv" Indicates the player's character level, if known. This information is

        not always available.

"AC" Indicates the player's armor class, if known. This information is not

        always available.

"A" Indicates whether the player is in the current area or not. If the

        player is in the current area, the row reads "A".  This feature works
        similar to how a player is shown as in the current area or not in the
        full Neverwinter Nights 2 client player list screen.
        

"DM" Indicates if the player is logged on as a DM. If so, then the text

        "DM" appears in the row.
        
        
    

You may select a player in the player list to display additional debugging interface about that player. This debugging information is usually only useful for script debugging. (The player's account name is also displayed in the extra information section.)

Selecting a player in the player list highlights the player as pink in the area map window. This selection is separate from your in-game selection.

Double-clicking a player in the player list will pull up an Examine dialog in the game for that player. This will also select that player in-game for the next operation, such as /export.

Control-double-clicking a player in the player list will prepopulate the text input window with a tell command for that player and set the keyboard focus to the text input window.

By default, the player list window will automatically update. You may turn this function off with the "/scry off" command. Disabling automatic scry updates is recommended if your server has not yet upgraded to xp_bugfix 1.0.5 or later with ReplaceNetLayer = 1 set.


DM Features


When you apply the extension in DM client mode, additional features that are designed to improve your ability to act as a dungeon master are activated.

Operating in DM mode greatly increases the amount of information that is displayed to you in the area map window. The "Area Map" section covers this information.

DMs have access to the DM Scry window described above, as well as the DM Area Teleport Chooser window, also as described above.

While in DM mode, several new command are available for your use. These commands may be accessed from either the in-game interface, or the standalone text-input interface:

/export - Exports the currently selected creature object to your

                    local vault.  This may be used on other players, or even
                    on non-player creatures.
                    

/saverules - This command is used to prepare for the DM Standalone

                    Client; its usage is described in the
                    "DM Standalone Client" section.
                    Note that /saverules is generally not needed unless you do
                    not have a full game install.
                    

DM Standalone Client


The DM Standalone Client is a completely separate, standalone client for Neverwinter Nights 2. It can be used instead of the conventional DM client, for purposes of aiding your work as a dungeon master. With the DM Standalone Client, all of the functionality that the Client Extension exposes in DM mode is you to use; that is, you may walk around and interact with doors, placeables, transitions, as well as enter chat commands and receive chat from players.

To use the DM Standalone Client, you need to install the Visual C++ runtime update as described in step (b)(2) of the "Quick Start & Overview" section.


Other DM functionality is only available when using the DM client itself. The DM Standalone Client is intended as a lightweight replacement client which does not have the system requirements of the conventional DM client. In fact, you could even log on two sessions, one with the player client, and one with the DM Assistant Client simultaneously to the same server; however, both sessions will need unique accounts and legal CD-Keys.

If you have scriptable DM functionality available via chat commands or creature dialogs, this functionality can be accessed from the DM Standalone Client.

Like the conventional DM client, the DM Standalone Client still requires that you have a valid Neverwinter Nights 2 CD-Key. The system will consider your CD-Keys in use for the duration of your session, regardless of whether you are logged on with the player client, DM client, or DM Standalone Client.


DM Standalone Client Setup (Game Installation Present)


If the computer that you are running the DM Standalone Client on already has a game installation with all expansions installed, then you need take no further steps. Simply launch NWStandaloneClient.exe and you should be ready to go.

The "DM Standalone Client - Logging On" section describes next steps to log on to your game world.


DM Standalone Client Setup (Game Not Installed)


NOTE: If you have a full install of the game on your computer, then you do not need to follow these steps.

Because the DM Standalone Client operates in a completely independent fashion from the conventional client, it requires an additonal preparatory step in order to assess which client data files are needed in order to connect to your server.

To perform this one-time preparatory step, you must launch the DM client, apply the Client Extension in DM mode, and log in to your server as a DM. Then, use the "/saverules" command to save a limited set of client data files that are required to connect to your server. This command saves the required data to your <Documents>\Neverwinter Nights 2\ModuleRules\<Module Resource Name> path for the current module.

This step need only be performed once, unless you make a change to the visualeffects.2da or baseitems.2da files, or if you create additional classes or skills. In such a case, you must re-run the preparatory "/saverule" step once more in order to capture the current data files contents. Otherwise, you may experience erratic behavior with the DM Standalone Client.

The DM Standalone Client uses the walkmesh files (*.trx) downloaded from the client's autodownloader to display the area map. However, the DM Standalone Client cannot download updated file automatically, so you will need to download them by logging in to the game with the full Neverwinter Nights 2 client. The DM Standalone Client will automatically use the walkmesh files once the autodownloader in the full Neverwinter Nights 2 client has updated them.


The DM Standalone Client will attempt to use your installation CD-Keys and your saved community account credentials. If either your installation CD-Keys or saved community account credentials cannot be automatically discovered, then you will have to set them manually. See the "DM Standalone Client Commands" section for more information on how to manually configure your credentials.


DM Standalone Client - Logging On


After you have performed the initial set-up steps for the DM Standalone Client, you're ready to log on. To begin, simply run the "NWStandaloneClient.exe" file in Explorer (double-clicking it will suffice). This will bring up an interface similar to that which you would see when using the Client Extension in DM mode, however, it does not plug-in to the normal game client. Instead, it acts as a seperate client, operating entirely on its own (with minimal memory usage).

To connect to a server, use the /connectpw <hostname[:port]> <DM password> command. If your server's DM password has a space in it, you should instead use the /setserverpassword <DM password> command, followed by the /connect <hostname[:port]> command.

You can also use /connectsrv <server display name> to connect to a server by its name in the online server list supplied by the master server tracker.

An error message will appear in the console screen if there was an error when connecting. Otherwise, you should be presented with a character selection prompt in the console; use the /pickcharfile <DM Vault Character .BIC File> command to select a character to log on with. For example, you might use /pickcharfile char.bic. (You may also supply a full path name if the character file is located somewhere else besides your DM vault.)

Tip: You can save time by putting connection commands like the /connectpw or /logoncharfile commands in the autorun command file; see the section "Automatic Command Sending" for more details.


DM Standalone Client Commands


The following command are available in the DM Standalone Client:


/connectpw <hostname[:port]> <DM password> - Connects to a server, possibly

                                                disconnecting from the current
                                                server.  The supplied DM
                                                password must not contain
                                                spaces.  The hostname may
                                                optionally include a port
                                                number for the server data
                                                port if the default of 5121 is
                                                not in use.

/connectsrv <"server name"> <category> [DM-pw] - Connects to a server, possibly

                                                disconnecting from the current
                                                server.  The supplied DM
                                                password must not contain
                                                spaces.  The server name is
                                                looked up from the online
                                                server list as a
                                                case-insensitive exact match.
                                                The server name must be quoted
                                                if it contains spaces.  The
                                                category designates the game
                                                type of the server.  It can be
                                                one of the following values:
                                                action
                                                story
                                                storylite
                                                roleplay
                                                teamnvsn
                                                melee1vsn
                                                arena1vsn
                                                social
                                                alternative
                                                pwaction
                                                pwstory
                                                solo
                                                techsupport

/connect <hostname[:port]> - Operates as /connectpw, but

                                                with the server password set
                                                via the /setserverpassword
                                                command.
                                                

/setserverpassword <DM password> - Sets the server DM password to

                                                use with /connect; spaces are
                                                permitted.

/setaccountname <community account name> - Sets your community account

                                                name, only required if the
                                                DM Standalone Client could not
                                                automatically detect your
                                                account information from your
                                                nwn2player.ini file.
                                                

/setaccountpassword <account passworrd> - Sets your community account

                                                password, only required if the
                                                DM Standalone Client could not
                                                automatically detect your
                                                account information from your
                                                nwn2player.ini file.
                                                

/addcdkey <CD-Key> - Adds a CD-Key to the list of

                                                CD-Keys to authenticate.  One
                                                key is required per expansion
                                                pack that your server uses.
                                                
                                                The first invocation sets the
                                                original game's CD-Key, the
                                                next sets the XP1 CD-Key, and
                                                so-forth.
                                                
                                                The CD-Key must be given in
                                                EXACTLY the same format as it
                                                resides in nwncdkey.ini.
                                                

/setexpansions <expansion bitmask> - Sets the bitmask of present

                                                expansion packs.  0 for none,
                                                or 0x1 for XP1, 0x2 for XP2,
                                                0x3 for XP1 and XP2, etc.
                                                Defaults to 0x3 (XP1 + XP2).
                                                

/nocdkeys - Clears any existing, partially

                                                entered CD-Key data that was
                                                set via the /addcdkey command.
                                                
                                                You must enter in the
                                                appropriate CD-Keys before the
                                                connection attempt will work.
                                                

/readini - Attempts to discover your

                                                CD-Keys and community account
                                                credentials from the game's
                                                INI files.  You generally do
                                                not need to use this command
                                                as this step is automatically
                                                attempted at startup time.
                                                

/logoncharfile <DM Vault Character .BIC File> - Supplies the file name for a

                                                character present in your DM
                                                vault that you would like to
                                                log on to the game iwth.
                                                

/pickcharfile <Full .BIC File Path> - Chooses a character file to

                                                log on with manually at the
                                                appropriate step in the log in
                                                process, versus automatically
                                                logging in.  Use this command
                                                only if prompted to do so by
                                                the DM Standalone Client.
                                                

/export - Exports the currently selected

                                                player's character file.  You
                                                must double click a player in
                                                the player list first before
                                                using this command.

/dialog <Dialog Choice Number> - Chooses a response from an

                                                active dialog; the response
                                                number must be the same as
                                                shown in the response list.
                                                
                                                This is an experimental
                                                command, use with caution.
                                                
                                                You may also use the command
                                                "/dialog escape" to exit the
                                                dialog with the default escape
                                                action.
                                                

/combatlog - Toggles display of combat-

                                                related events to the console.
                                                
                                                By default, these events are
                                                displayed.
                                                

/reconnect - Reconnects to the server that

                                                you had last connected to.
                                                

/autoreconnect - Toggles automatic reconnect

                                                for connection timeouts or the
                                                server shutting down.  The
                                                standalone client will try to
                                                reconnect every 10 seconds
                                                when this mode is enabled.

/disconnect - Disconnects from the current

                                                server.
                                                

/item - Lists the items that you have

                                                on your person.
                                                

/item <Item Name or Hex Item Object ID> - Uses a 'Unique Power' item on

                                                your current selection, else
                                                yourself for 'self-only'
                                                'Unique Powers'.

/equip <Item Name or Hex Item Object ID> - Equips an item on your person.

/cast "Spell Name" [Metamagic1[,Metamagic2] - Casts a spell, optionally with

                                                a list of metamagic names,
                                                such as "extend", "maximize",
                                                and so forth.  The spell name
                                                must be enclosed in quotes if
                                                metamagic is in use; otherwise
                                                quotes are optional.
                                                
                                                If specifying a combination of
                                                metamagic types, separate the
                                                types with commas.
                                                
                                                For more details, see the
                                                "Casting Spells from Macros"
                                                section.

/memorize <Slot> "Spell" [Metamagic][|Class] - Memorizes a spell at a given

                                                spell slot (the spell level is
                                                computed automatically based
                                                on the spell given and the
                                                metamagic applied).  Specify
                                                metamagic(s) in the same way
                                                as with the /cast command.
                                                Optionally, a class name can
                                                be specified.  This is useful
                                                should multiple classes in a
                                                multiclass character can cast
                                                and memorize the same spell.
                                                If no class name is given,
                                                then the first class that
                                                meets the requirements for the
                                                given spell is used for the
                                                memorization.
                                                Spell slots are numbered from
                                                0 (the top and leftmost slot
                                                for a given spell level).

/spells - Prints information about known

                                                and memorized spells.

/feats - Prints information about

                                                feats.

/talent <Talent Name> - Uses a talent (spell-like

                                                ability).  This command is
                                                generally only useful for
                                                DMs that are possessing a
                                                creature.

/feat <Feat Name> - Uses an activateable feat.

                                                This command is useful for
                                                activating feats via macros.
                                                The currently selected target
                                                is used if the feat requires
                                                an explicit target object.

/hotbar <Button Number> - Activates a hotbar button on

                                                your current selection.
                                                Button 1  = row 1, button 1
                                                Button 13 = row 2, button 1,
                                                etc.
                                                

/setmacro <Button Number> <Commands> - Define a custom macro command

                                                set to run when you press a
                                                hotbar button.  More than one
                                                command may be supplied,
                                                delimited by semicolon
                                                characters.  You may use the
                                                /hotbar command, or any other
                                                text commands (or even just
                                                plain chat) from the macro
                                                command list.

/mspells <Button Number> - Create a custom macro command

                                                to memorize all your currently
                                                memorized spells when you use
                                                the designated button.  NOTE:
                                                this will clear your spell
                                                usages when used if any spells
                                                were replaced.

/cancelpolymorph - Cancels an active polymorph.

/rest - Activates the rest function.

/areas - List all known areas (only

                                                static template areas are
                                                listed).
                                                

/dmjump <Area> - Jumps the control object to an

                                                area (by name, tag, or raw hex
                                                object id).
                                                

/dmjumpplayer <Account name> - Jumps to a location nearby a

                                                player given their account
                                                name.
                                                

/dmjumpsel <Area> - Jumps all selected creatures

                                                to an area (by name, tag, or
                                                raw hex object id).  The
                                                objects arrive at (0, 0).
                                                

/dmjumpall <Area> - Jumps all players to an area

                                                (by name, tag, or raw hex
                                                object id).  The objects
                                                arrive at (0, 0).

/t "Character Name" Message - Send a tell.

/tp "Player Name" Message - Send a tell (by account name).

/o "Character First Name" Message - Send a tell (by first name of

                                                a character).
                                                

/r Message -or- /re Message - Reply to a previous tell.

/rt Message - Send a tell to the last person

                                                that you sent a tell to.  This
                                                is useful if several persons
                                                send you a tell while you are
                                                holding a conversation.
                                                

/s Message - Shout a 'message'.

/l Message - Send 'message' as a normal

                                                volume talk.
                                                

/w Message - Send 'message' as a whisper.

/p Message - Send 'message' to your party

                                                members, and all DMs.
                                                

/dm Message - Send 'message' to all DMs.

/invertrun - Changes the behavior for point

                                                and click movement to walk by
                                                default unless SHIFT is held.
                                                

/modes - List your active modes, such

                                                as stealth or detect.
                                                

/stealth - Toggles the stealth mode, if

                                                it is supported for your
                                                character.

/resname <Module Resource Name> - Overrides the default module

                                                resource name.  This command
                                                is generally only useful when
                                                attaching the client extension
                                                to an already running game
                                                client instance without
                                                logging out first.
                                                

/replyinvite <accept|reject|ignore> - Responds to a prior party

                                                invitation.
                                                

/invite <Character Name> - Invites a character to join

                                                the party.
                                                

/leaveparty - Depart the current party.

/partyleader <Character Name> - Make another player the party

                                                leader.

/removeparty <Character Name> - Remove a party member.

/scry [on|off] - Refreshes the player list scry

                                                window with current area data,
                                                or disables or re-enables
                                                automatic updating of area
                                                data.  It is recommended that
                                                automatic area updates only be
                                                used on servers with the
                                                xp_bugfix ReplaceNetLayer = 1
                                                fix enabled due to the data
                                                volume sent.
                                                

/clientpath - Toggles client-side pathing

                                                prediction on or off for game
                                                world objects.  Disabling the
                                                client-side path predictor
                                                will cause objects to only
                                                update positions in the map
                                                when new pathing orders are
                                                recalculated.

/smoothpath - Toggles smooth pathing for

                                                proposed paths (when you hold
                                                control down in the map window
                                                and see a path line).
                                                

/windowstats - Displays internal networking

                                                counters and statistics.

/tilegrid - Toggles display of the map

                                                tile grid.

/rendertiles - Toggles rendering of tile tint

                                                contents for indoor areas.

/polydraw <x1 y1 x2 y2 ... xN yN> - Draws a series of line

                                                segments on the map window.
                                                Coordinates are expressed in
                                                game units.

/raydraw <o.x o.y o.z d.x d.y d.z> - Draws a portion of a ray,

                                                given an origin and a ray
                                                direction (in game units).
                                                This is primarily used to
                                                debug the rendering system.

/moveto <x> <y> - Attempts to walk to a specific

                                                coordinate set.

/calcpath <x1> <y1> <x2> <y2> - Calculates a path between two

                                                points and prints the result
                                                to the console.

/pathto <x> <y> - Calculates a path between your

                                                current position and another
                                                point in the same area.

/time - Displays the current game

                                                world time.

/settime <hour> [minute] [second] [millisec] - Advances server time as per

                                                the behavior of the SetTime
                                                nwscript function (no server
                                                scripts are required).  If you
                                                omit any arguments after hour,
                                                they are defaulted to zero.

/showui - Re-opens all client extension

                                                UI windows that you've closed,
                                                such as the map window.

/kill - Uses DM powers to kill your

                                                current selection.

/heal - Uses DM powers to heal and

                                                resurrect your current
                                                selection.

/getres <restype> <resref> - Unpacks a module resource from

                                                the module or its HAK files.

/help [command] - Provides online help about a

                                                text command or lists all text
                                                commands if no arguments were
                                                supplied.

/pickupitem - Picks up an item from the

                                                ground were it the selected
                                                item.

/lootitem <item name> - Loots an item from the open

                                                item container.

/lootall - Loots all items from the open

                                                item container.

/takeitem - Moves an item directly to your

                                                repository using DM powers.
                                                The selected item is used.

/dumpobject - Use DM powers to display

                                                various trivia about an
                                                object.

/direct2d - Toggles Direct2D acceleration

                                                on or off (requires Vista+).

/nomodels - Enables or disables model

                                                loading (speeds area loading,
                                                but disables wireframe view in
                                                the area map).

/perftrace - Enables logging of client

                                                message processing performance
                                                characteristics.  This tracing
                                                only functions in Client
                                                Extension mode, and only when
                                                using the replacement network
                                                layer (which is the default).

/showfps - Toggles display of nwn2main's

                                                FPS counter (no DM privileges
                                                are required).

/logfps - Toggles timestamped logging of

                                                nwn2main's FPS counter to the
                                                Client Extension log file.

/fswindow - Toggles fullscreen windowed

                                                mode, which covers the monitor
                                                but does not engage fullscreen
                                                input capture.

/tts - Toggles text to speech support

                                                for logon and logoff events,
                                                and in-game chatter.

/ttsfilter [.NET regular expression match] - Set a .NET regular expression

                                                filter that voice events must
                                                match in text to speech mode
                                                for voice playback to be sent.
                                                If used without arguments, any
                                                filter is removed.

/testregex [text] - Tests a regex match assigned

                                                by /ttsfilter against a text
                                                string.

/away [response message] - Sets away mode, or toggles it

                                                off if no argument is supplied
                                                and away mode is already on.
                                                When enabled, an automatic
                                                tell ("response message") is
                                                sent to any incoming tell, one
                                                time per sender.  Away mode is
                                                automatically cancelled when a
                                                message is sent or the player
                                                moves.
                                                A summary of received tells
                                                during away mode is shown when
                                                away mode ends.

/camerapitch [degrees] - Sets a new default maximum

                                                camera pitch for the
                                                Exploration Mode camera view.
                                                90 degrees is the game default
                                                and 179 degrees is the default
                                                for Character Mode.  The 
                                                Client Extension default is
                                                179 degrees.  Valid values
                                                must be between [90, 179].

/freecam - Enables free camera mode, for

                                                DM privileged users.  Switch
                                                to another camera mode to
                                                cancel free camera mode.  Use
                                                the arrow keys and scroll
                                                wheel to navigate in free
                                                camera mode.

/fadeobjects - Toggles object fade for all

                                                camera modes.  The setting is
                                                not persisted to disk.  Use
                                                /fadeobjects again to return
                                                to the configured settings for
                                                the active camera mode.

/console <console-cmd> [console-cmd-params] - Runs a server-side console

                                                command.

/effectfade - Toggles floating text

                                                announcements when effect
                                                icons (i.e., for buff spells)
                                                fade on your character.

/selectitem [item name] - Selects an item by name. This

                                                command is useful for hotbar
                                                macros that cast spells, such
                                                as Magic Weapon.


If a text line does not begin with a /, then it is sent as a normal volume talk message.


Regular Expressions


.NET regular expressions are used for the text to speech filter. Documentation for the regular expression language can be found at the following Microsoft web site:

http://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx


Automatic Command Sending


Although the DM Standalone Client does not have a dedicated configuration file, it will read commands (one per line) from two files on the disk at certain points in time. These command can configure the DM Standalone Client's settings, such as the default DM logon character file.

The DM Standalone Client will read the <Documents>\Neverwinter Nights 2\autocmds.txt file at startup time (where the <Documents> variable indicates your My Documents (or Documents on Windows Vista or later) folder. Once the DM Standalone Client has joined the game world, it will read the <Documents>\Neverwinter Nights 2\autocmds_ingame.txt file. Both files have identical formats.

Should a particular autorun command file not exist, the autorun phase is simply silently skipped.


Saved Window Positions


The client extension remembers how you positioned its windows for the next time that you log on. There is one set of settings used in client extension mode, and another used if you log on with the DM Standalone Client.

Window settings are recorded in the registry at the following location:

HKEY_CURRENT_USER\SOFTWARE\Valhalla Legends\ClientExtension\Settings

There is generally no need to directly edit the saved settings.


Casting Spells from Macros


The /cast command (usable both outside and inside of macros) allows you to cast a spell by name.

When naming a spell, you should use the spell's full display name. For spells with sub-spells (for example, Protection from Alignment), it is usually best to cast the specific sub-spell you want. (Many such spells will either do nothing or take a default behavior that you might not like when casting the main spell directly.)

For example, if you wanted to cast Protection from Alignment's Protectiom from Evil sub-spell, you could use the following command:

/cast Protection from Evil

Spells can also be given metamagic modifiers as a comma-separated list. The following are the metamagic modifier names that are accepted:

empower extend maximize quicken silent still persistent permanent

You must have the appropriate feats and spell levels or readied spell memorizations available to successfully cast a spell. Otherwise, the spell casting attempt fails.

The /cast command always uses your current target, unless the spell in question can only be cast on yourself, in which cast your character is automatically used as the target.

It is currently not possible to cast spells on the ground with /cast.

Similarly to spells, the /feat <Feat-Name> command can be used to invoke a feat from a macro. Only feats that are activateable may be referenced via this command. For example, to activate the Racial Spell (Light) feat, one might use the following command:

/feat Racial Spell (Light)

Subradial feat selection is not currently supported.


Custom Hotbar Macros


Custom macro hotbar buttons are a new feature that the Client Extension adds to the game. Macros allow you to assign a set of text commands that run when you press a hotbar button. The tooltip for a macro hotbar button lists all of the commands that are run when you activate that button.

This feature is particularly useful when you have a large number of repetitive actions that you would like to consolidate into just one keypress. For a familiar example, you could create a single hotbar button that, when pressed, would activate all of a Cleric's, or Wizard's buff spells.

To create a hotbar macro button, use the /setmacro command as follows:

/setmacro <hotbar button number> <command1>[;command2;commandN]

"Hotbar button number" indicates the hotbar button which will be turned into a macro-enabled hotbar button. Button 1 is the first hotbar button, on row 1. Button 13 is the first hotbar button on row 2, and buttom 15 is the third hotbar button on row 2, and so on.

After the hotbar button number, you may provide a list of text commands that are processed when the hotbar button is pressed. If you would like to run more than one text command, separate the commands with a semicolon.

Any Client Extension text command, and any text command supported by the game client itself may be used in a macro. You may also macro up simple chat text, if desired.

The most common use of macro hotbar buttons is to cast several spells in succession. There are two ways to do this: by spell name, and by referencing a different hotbar button.

You can create a macro hotbar button to memorize all your currently memorized spells. This is useful in scenarios where your character might polymorph or otherwise equip and un-equip items that alter their spellcasting stats. The /mspells <hotbutton number> command will create such a macro.


Tutorial: Creating a hotbar button to cast several buffs at once via casting

         spells by name.

Let's say that you want to have a single hotbar button which casts several offensive spells, all in one go. (The spells would be enqueued up to be cast one after another, just as if you hit two hotbar buttons separately.)

For this example, we will create a hotbar button which casts a quickened version of Isaac's Lesser Missle Storm, followed by Flame Arrow.

This task can be easily automated by creating a hotbar button that casts both of these spells. We will use the /cast macro command, which looks up a spell by name, and casts it on your current target.

We can construct a sequence of /cast commands that will cast the spells that we want as follows:

/cast "Isaac's Lesser Missile Storm" quicken /cast Flame Arrow

The first spell casts the lesser missle storm spell, with the "quicken" metamagic property. If you wanted to add other metamagic properties to a spell, you could specify them in a comma-separated list.

For instance, to cast a silent and still Magic Missle spell, you would use the following command:

/cast "Magic Missile" still, silent

Now, back to our example. We can create a hotbar button that will run both of the above macro commands with the /setmacro command. Here, we will assign the macro to hotbar button 1, which is the first button on the first hotbar row.

/setmacro 1 /cast "Isaac's Lesser Missile Storm" quicken ; /cast Flame Arrow

That's all there is to it. Now, the next time you press that hotbar button, all of the spells you have listed in the macro will be cast.


Tutorial: Creating a hotbar button to cast several buffs at once via hotbar

         buttons.

Let's consider that you want to cast several buff spells with one hotbar button. This task can be easily accomplished with the /setmacro command.

First, you must place the spells that you would like to cast on their own hotbar slots. We'll use hotbar buttons 2, 3, and 4 for this example, so drag the spells that you would like to cast onto those buttons (first hotbar row).

Now, for this example, we will turn the first hotbar button into a macro- enabled button which will use buttons 2, 3, and 4. After you have set up those three hotbar buttons, type the following command:

/setmacro 1 /hotbar 2 ; /hotbar 3 ; /hotbar 4

If everything worked out, you should see a couple of messages written to your combat log, along the lines of "Configuring macro command: /hotbar 2". You should also have a new hotbar button which has a "2D Missing Texture" icon in the button 1 slot. (Don't worry about the missing texture; the button will still work fine.)

That's it; you're done! Now, the next time you press the first hotbar button on row 1, the actions that you have assigned to buttons 2-4 will be carried out.

Tip: If you have buff spells that can buff an ally, select that ally before

     you push the macro-enabled hotbar button.  Macros will use your currently
     selected target for their spell targets, for spells that may target a
     creature other than yourself.


Accessing possessed creature abilities as a Dungeon Master


You can use special abilities of possessed creatures with the /talent command.

This command only works for intrinsic creature special abilities, such as Dragon Breath.

When you possess a creature, your hotbar will be populated with grayed spell buttons for each creature special ability. While you cannot use the grayed buttons directly, you may hover the mouse over them to discover the ability names. The ability name can then be used with /talent.

For example this command:

/talent Dragon Breath, Fire

...will use the fire-breathing ability of a Red Dragon.

You may use /talent in hotbar macro buttons, or you may simply type it out on the text input line directly if you prefer. The same targetting rule as for /cast apply to /talent.


Launching the Client Extension from the Toolset (Advanced)


You can configure the toolset to launch the game with the Client Extension and not the standard game client. This step is only recommended for advanced users that are comfortable with changing their game install.

1) Go to the game installation directory and rename nwn2main.exe to

  nwn2main_override.exe.

2) Copy NWLauncher.exe into the game installation directory, and rename it to

  nwn2main.exe.

To undo this setting, you will have to manually rename back the original version of nwn2main.exe.


Online Services


This release of the Client Extension includes connectivity to a third-party online service operated by the creator of the Client Extension program, Skywing. The following describes the online service functionality and any data collected.

  • Master Server Listing: A master server listing of known NWN2 game servers is
 queried by the Client Extension via a web service API.  This powers the
 Internet Server Browser functionality in the game, now that GameSpy support
 has been discontinued.
  • Master Server Population: When connecting to a server not known to the
 master server listing, the Client Extension requests that the master server
 infrastructure add the server in question to the master list, so that other
 players may join the server.  This broadens coverage of known servers in the
 Internet Server Browser, as not all servers have been upgraded to participate
 in the master server infrastructure project.  The only information passed to
 the online services functionality is the IP address and port number of the
 game server to add to the master server listing.  This functionality is not
 used to correlate or track activity by Client Extension users.  A server that
 has been listed by this mechanism will be visible to other Client Extension
 users, and other clients of the online services API, but no information about
 the user that requested the listing is retained; this information is purely
 used for public server listing and matchmaking purposes.
  • Auto Update Functionality: When started, the Client Extension will attempt
 to discover whether new software updates for the NWN2 Client Extension
 software are available.  If an update is available, the user is prompted to
 decide whether to install the update or continue without installing the
 update.  All software updates are digitally signed.  In addition, the auto
 update functionality provides a description of the update to the user, and
 can provide a "Message of the Day" to the user used to provide notification
 of important community news.  All auto update functionality notifications
 take the form of a clearly marked message box at the main screen in the game
 client, and the user is never required to install an update if they elect not
 to.
  • Diagnostics Statistics: Aggregate counters of selected events, listed below,
 are recorded by means of the online services connectivity.  These counters
 are used only to diagnose and identify problems with software updates and are
 not used to track or identify users.  Information about the individual user
 that incremented a diagnostics counter is not retained; only an aggregate
 numeric counter value of events across all Client Extension users is
 maintained.
 Counters:  Failed Software Update, Successful Software Update, Manual
            Installed Software Update.
  • Data Collection and Privacy Policy: No personally identifying information is
 retained by any of the third party online services hosted by Skywing that the
 Client Extension maintains connectivity to.  IP addresses may be temporarily
 retained in the form of standard web server request logs, but these are not
 used to attempt to identify, contact, or track the activity of Client
 Extension users.  Web server request logs are not shared with external
 parties.
  • Online Services Source Code: The source code for the online services
 functionality used by the Client Extension can be located at the following
 web URL:  https://github.com/SkywingvL/nwn2dev-public
  • Online Services Communication Endpoint: The online services functionality
 supported by the NWN2 Client Extension involves an HTTP connection to
 api.mst.valhallalegends.com and the exchange of standard SOAP messages.  The
 source code for the online services functionality is available at the above
 URL.

Acknowledgements


Grinning Fool, for assistance with area decoding and portions of the game object update message decoding.

Obsidian, for working to provide debug symbols for the Neverwinter Nights 2 client and server. This has proven by far the most positive interaction with a game developer that I've had to date, something that should be considered a model for other game developers to emulate.

Brian Meyer, for bearing with several test builds and providing extensive test work and valuable feedback.

Tero Kivinen <kivinen@iki.fi>, for decoding portions of the walkmesh on-disk format.

KEMO, for bearing with me for extensive testing of DM cross-area creature viewing and other assistance with debugging the server-side GUI scripts involved.

tazpn, for releasing the source code to his Neverwinter Nights 2 model import and export tool, from which information on the game's bone system was derived.

Numerous beta testers for providing feedback, catching issues, and suggesting new features.