NWScript is the scripting language developed by BioWare for the role-playing video game Neverwinter Nights. It is based on the C programming language and is implemented in the Aurora toolset. Neverscript, an open source 3rd party editor, has been created for the Mac OS X and Linux versions of Neverwinter Nights because the Aurora toolset has not been ported to those platforms. NWScript is also used in the video games The Witcher, Star Wars: Knights of the Old Republic and Star Wars: Knights of the Old Republic II The Sith Lords, which use the Odyssey Engine. Neverwinter Nights 2, the sequel to the original NWN, features a modified version of this scripting language. Syntax While based on C, NWScript does not have many functions from the C family, excluding logical and binary / ternary operators and some mathematical functions. Function source code is not accessible to the end-user, but the correct syntax is defined in a script file called nwscript.nss. The users can create their own functions, and these can be included in other scripts through the #include directive, which works slightly differently than in C++. Hello world NWScript has no way to directly target the screen for output. Instead, for instance, in-game characters such as the player character can be made to speak the typical "Hello world" example message. This script puts a "Hello world" message in the player's message log. For it to work, it should be placed in the OnClientEnter event of the module's properties. void main() { SendMessageToPC(GetEnteringObject(), "Hello world"); } The first line is the void main function which is the function that a NWScript will start at. In the third line, the text Hello world is sent to the player's in-game message log. Data types NWScript allows structs, but not objects. The following common data types are available in NWScript: integer (int) float string struct NWScript has also introduced some data types for purposes of the Neverwinter Nights game: object (refers to game objects, such as NPCs and placeable objects). location (refers to the in-game location of an object, consisting of an area object reference, a vector and a float describing the position and facing within the area). talent (refers to spells and abilities). vector (refers to coordinates of an object, and is a construct of three floats). itemproperty (refers to abilities on items such as weapons for use in the game). effect (refers