BBS v1.1 The Bulletin Board System allows players to read and post messages. The system consists of a Scribe (NPC) and the Bulletin Board (Signpost placeable). Players can talk to the Scribe and get an item called Bulletin Board Notice. During conversation, the Scribe will ask a player to speak a title and a message, clicking Done after each. To speak, the player has to type a message and press Enter, as if addressing another player. Upon successful input, the item is given to the player. The player can then walk up to the Bulletin Board and select the Post Message dialogue option to have their message entered on the Bulletin Board. The Bulletin Board displays messages in reverse chronological order so the latest message appears first. Players can page through the listings which consist of the title and name of the poster. The default page length is 5 entries, but it can be set for any number between 1 and 10. When a player posts a message, the Bulletin Board Notice disappears from their inventory. If the player has more than one, one will be taken at random. Once the maximum number of messages for the Bulletin Board has been reached, older messages will be deleted to make space for new ones. The default maximum is 25 messages. To change these defaults, look at the "void bbs_initiate" function inside the "bbs_include" script. All Bulletin Boards with the same tag share the messages. If you change the tags you end up with separate Bulletin Boards. For example, you could have it so the Bulletin Boards in the same city show the same messages, but be different from city to city. The Bulletin Board System uses custom tokens in the range 3671 - 3699. Hopefully these won't conflict with any you might be using. The "bbs_include" script contains a function "void bbs_add_notice". You can use it to post messages from NPCs to the Bulletin Board and make it seem more lively, perhaps with minor quests. For more information read the comments above the function. Because the "bbs_include" script is used as an include file, it does not have a "void main", so whenever you compile that script or build your module you will get a compiling error in it. That is normal and does not affect operation in any way. The code for capturing a PC spoken string came from a post by gsmithcat in the NWN Scripting forum. HOW TO IMPLEMENT IN YOUR MODULE Import the 2 ERF files. Paint the Scribe NPC (Creatures - Custom - NPCs - Humans) and the Bulletin Board placeable (Placeable Objects - Custom - Penants & Signs) in an area, preferably next to each other. That's it! USING IT WITH PERSISTENT WORLDS If you make changes to your module, all saved data is lost. It is possible however to restore the Bulletin Board messages. By default any messages posted are also written to the NWN log file. Here are the steps you need to take to restore the messages: 1. open the log file in a full-featured text editor (I recommend Textpad) 2. copy all the lines that contain the string ":::BBS:::" 3. open up the script (or create one) for your module's OnLoad event 4. place the following line of code above the "void main()" line of code: #include "bbs_include" 5. paste the copied lines inside the "void main()" 6. delete any periods at the beginning of those lines, if any exist Now when you restart your module the messages will be there. I recommend renaming or deleting the log file before restarting your module to facilitate the message recovery next time you need to make changes to your module. Changes from 1.0 - Made the conversation with the Bulletin Board private so it doesn't appear to players nearby - Removed the need to call bbs_initiate before bbs_add_notice - Messages now written to log file so they can be restored Serban Oprescu serban@pixelsharp.com http://www.pixelsharp.com/projects/nwn/