RPChat IRC/MU* client
RPChat is an IRC and Telnet[MU*] client designed all forms of online Roleplaying, free-form or rule-based games. It's core functionality is of course, a client that can connect to IRC and Telnet servers, to be able to communicate with others in the same way as other clients out there can do. Many of RPChat's exotic features will be client-side tools designed to enhance the experience of real-time text Roleplaying.

For IRC players, they can expect to receive a lot of features regarding to structure, automation and resources not normally possible in a IRC channel, allowing more complex situations that would otherwise be difficult or impossible to construct and calculate without ruining the story. For MU* players, they can expect some nice graphical tweaks and features designed to making the completely text-based environment easier to read, navigate and control.
I.	Mission Statement
The aim of the RPChat client is listed and explained below, effort will be made to make each and every sub-header live up to it's reality.
A.	IRC and MU* client
RPChat must be a program that can connect to any specified IRC and Telnet server and be able to communicate through it. Much like a normal IRC client but with features geared towards Roleplaying in general. All the core features should be able to be just as useful to regular users as they would be to Roleplayers.
B.	Cross-Platform
RPChat must be written in a programming language that can be ported to Windows, Mac and Linux; so that it can be available to everybody on any system.
C.	Portable
RPChat must be able to be executed by itself with minimal to no installation required. The possibility of a main executable file contained in it's own directory of folders to save content and settings is our current proposal for this point.
D.	Non-exclusive, un-biased medium for Roleplaying
RPChat must be a program that does not focus on any particular genre or activity, it's focus must be that it is flexible enough to be used for any Roleplaying situation or content users could think of. Any features heavily based on existing game-mechanics such as Dungeons and Dragons, will be created only as a feature that can be freely used for other stories and content as well.

Another example, if there is a character who has an ability that cannot be performed in RPChat, new features will be put in place to make it work. But those new features must benefit the entire roleplaying community in a similar fix and not merely to cater to a single entity.
E.	Freeware
RPChat must be a free-to-download, free-to-use program. RPChat can be freely distributed and all user-created content is their own property (unless copyright infringment occurs). Donation boxes will be available for those who want to support the development of the application.

II.	Core usability functions
RPChat will begin as a fully-functioning IRC client designed for ease of use and time-saving features. This will make roleplaying easier in it's raw state.
A.	Tabbed auto-complete
Writing the first letters of a word and pressing tab will cycle through all matching names for characters, items, special actions and other relevant resources. Allowing the user to quickly enter commands and type names without having to retype long words over and over again.

'Marximillio' can be auto completed as little as typing 'ma' or 'mar', if another resource has the same two or three first letters, typing Tab again will cycle through all matches until the user finds the one they're looking for.
B.	Long post splitting
Some IRC clients are unable to handle excessively long messages which can cause them to be cut-off. Splitting will allow a message to be split by taking the remaining complete words and post them immediately after the first block.

i.e. A very long message such as this will be able to be typed out and regardless of how...
...long the message is, the message will be appropriately split with ellipses.
C.	Single/Multi-line text boxes
Enable shortcuts to post messages as single and multi-line, single line is the simpler way to write messages, while multi-line allows a user to to post across a number of lines split from their original

i.e. The list is as follows:
* Moving to the line below
* Listing another item
Art
D.	Recover lost sessions
Be able to bring back the messages of a chat-room after being timed out or disconnected, as if nothing happened. This works by logging all text sent and received in the window and holds it for a short time, should the user be forced to shut down or terminate the program, all text up to when they left will show immediately.
1.	Save sessions
Save logs with filenames, such as Roleplay stories being paused so they can be resumed later. Saving sessions to save all formatting and themes, but also being able to open and resume them later as well!
E.	Time-stamps
Customise settings to apply time-stamps to messages in seconds, minutes and hours. (12/24hr)
F.	Re-enter previously sent messages
Pressing up on the keyboard will cycle through the last messages the user has sent, for re-posting purposes, pressing down cycles back and resets.
G.	Away states
Set states the user, such as being idle, out of character, in character, away from the keyboard and so on.
H.	Tabbed windows
Tabbed windows make it easier to keep things compact, having a few windows inhabiting the same space but not at the same time. Useful for switching room-views and information windows.

I.	Text formatting
Enable automatic and manual text formatting such a Bold, Italics, Underline, Size, Font and Colour. Text formatting should be able to be done letter by letter by highlighting text the user wishes to format then clicking the format they wish to apply. Also the ability to remove all formatting and return to default should one section of text have many formats that would be time-consuming to restore otherwise.
1.	Animated formatting
To add some impact to story telling, certain words and phrases could have animation applied to them. Shaking, rolling, revealing, alternating colour...etc.

i.e. *CLANG* Your sword strikes your opponent's with great strength!

The asterisked CLANG could have a short shaking effect left-to-right to give the notion of something clanging and vibrating very briefly.
J.	Simple UI themes
Gives the user full control over their RPChat interface, being able to change the colour, styles and text formatting. For those who can, will be able to save their own custom interfaces, others may use a number of pre-made templates to get something they like quickly.
K.	MU* specific formatting
Customise formatting while connected to a Telnet[MU*] connection, formatting designed to differentiate between your own messages, other users and automatic outputs made by the server's applications.
L.	Private Messaging and DCC
To be able to speak to and transfer files to another privately, off all public channels.

III.	RPChat's extended Roleplaying features
The listed features concern the extended functionality of being a client geared towards Roleplayers of varying styles of games and play.
A.	User-created resources
RPChat will be able to create, edit and store 'resources' the player can use to create characters, objects, special abilities and more. Resources can be used to make more structured roleplaying games such as Dungeons and Dragons or GURPS. All resources can be edited in the program via the use of profiles containing custom text-boxes, the text-boxes have renamable header-text, single/multi-line entry and can be resized and repositioned to suit the user's creation.

Text-boxes can be changed to become hidden to those without permission to view them, such as the secret to a character's powers, weaknesses or biographical histories that would spoil a story to know right away. Other users like Game masters can be invited to read hidden information for verification purposes.
1.	Character Profiles
The ability to create and edit information regarding Roleplaying characters. Every character has a profile which contains all information regarding their physical appearance, history and trivia. Characters are used as a persona when connecting into a room with other characters, they can be defaulted depending on which server or room the user chooses.
a.	Display & Request profile
With a character profile selected, it can be displayed to others on request, a copy of the profile will be sent to their client automatically, changes made to the profile while connected will be updated and copied to other users to keep their copy accurate. Updates only send the text-boxes with changes made to them, to cut down on bandwidth.
b.	Edit headers
Certain characters may not be able to use some default text-boxes in the character template, users will be able to have full control on the text-boxes contained in profiles. Users can delete boxes, add new ones, and edit existing boxes; box headers can be renamed, changed from single to multi-line and repositioned to suit the character.
c.	Character states / Transformations / Switching
If a user has more than one character and wishes to change to another one, they can use another character profile and switch to it, changing all the information of the playing character and notifying others of the change. Certain characters may have different forms like a super-suit or shapeshifting or simply a costume change, those characters can 'transform' the appropriate switching command in the character's profile.

2.	Item, Weapon and Equipment resources
Allows a user to create and edit objects that can be used by characters as items or props. The kinds of items created can be consumable like food and potions, equipment like weapons and armour or other kinds of possessions. Items are created in the same way as characters, except items must be described on how they look, how they work and how they may be used.

Items and objects created by you can be examined, held and used by other character should they be in view or possession. Even if you give away all copies of a created item, you will still keep the item profile in storage.
a.	Consumable items
Be able to create items that can only be used once or a few times such as food, potions and ammunition. Weapons that require another item to use (Guns requiring bullets) can be combined to form a reload action, the number of bullets counts for how many shots a character has left before running out. Food and drink that is consumed will decrement as such. Items like potions can be consumed but leave a by-product behind, like the vial that contained the potion that can be refilled and reused again.
b.	Equipment
Items that can be worn like clothing or held like weaponry should have the ability to be equipped to a character through a link of some sort. Weapons and armour aren't the only kinds of equipment a character can wear, clothing, jewellery, accessories and other worn objects are considered as equipment and are attached to a character until they decide to take it off.
c.	Inventory management
Characters can hold either infinite or limited amounts of objects depending on which mode is being played. A character's inventory displays all objects and equipment being held by them along with their amounts and descriptions. The inventory is organised by a grid system which can show an object's actual size and maximises storage management when the amount a character can hold is limited. Automatic sorting can be an option for those who find manually sorting to be a chore.

3.	Ability, Skill, Power, Trait and Manoeuver resources
Allows a user to create a resource that represents a character's knowledge, proficiency and other traits. Traits can be attributed to characters and skills can be taught and learned by characters, they can use their skills if they have cleared all conditions to use them.
a.	Proficiencies 
Proficiencies are skills which cover a wide range of abilities below them, much like a school of magic is to a certain type or spell, or mechanics covering all mechanical skills. Proficiencies can cover a number of related skills below it or it can be used in relation with object resources like weapons and armour.
b.	Leveled skills
Certain skills and proficiencies can be improved an expanded upon in the form of levels, ways to leveling up can be point based or through the natural course of free-form roleplaying. Each level will have it's own description for the effectiveness of the skill as well as any restrictions there could be to achieving maximum level without effort in rule-based RPs.
c.	Traits
Traits refer aspects that are an embedded part of a character, a physical, mental or paranormal part of their body or abilities that can have an effect on something. Physical traits like rock-skin, enhanced hearing and night-vision, Mental traits like emotional problems and fears, and others! Traits cannot usually be taught like skills, only inherited; and also they are usually passive so they can't be turned on and off unless their condition says so. 
4.	Resource tagging
Resources can have tags applied to them to aid in identifying them in rule-based modes. For instance, a sword with qualities suited to killing dragons would do more damage to creatures with the tag of 'dragon' embedded in it; so a creature with the tag of 'Dragon' will identify it as being the trigger to the sword's special effect.
a.	Request tagging
If tags are required and one character lacks an obvious one, another user can request to tag that character with the desired tag and the option to write a short message on why it should be. The receiving user can choose whether or not to Accept or Decline the tag.
5.	Resource archives
Users would be able to export and import resources created by others to keep consistent with roleplaying premises or to give newer players a chance to experiment with different items, abilities and even characters.

IV.	Uncategorised featured
This set of features have been written down as possible additions to the program itself, they have not yet been categorised and some may not be complete.
A.	User-list/Character Avatars
Displays a small icon besides any RPChat client nickname as a visual reminder of who's who.
B.	'User is typing' / 'User has typed in some text'
During private messages, you can view whether your counterpart is currently writing a response or has left some writing in your window. Could be useful in finding out if your counterpart is idling or in the middle of replying to you.
C.	Mood music playing
D.	Shop / Trading System
E.	Character Statistics
Allowing characters to have values set to them like Health points, energy, magic, strength, defense, speed...etc. This would be a necessary component to allow Rule-based modes in RPChat.
1.	Custom gauges
In rule-based Roleplaying, a character has a default Health gauge and maybe a Stamina gauge linked to their actions. If a character can use magic, they can create a Mana/magic gauge to link to their magical spells. Different types of gauges can be created and linked depending on the character being used. Mechanical characters could have electricity instead of Stamina and thus be able to add, edit and remove gauges as appropriate.
F.	User right-click options
G.	Time-based Roleplaying
H.	Action / Skill mini-games
A consideration to allow visual and skill-based mini-games to occur as a result of events and actions, hopefully to bring the action of the story to life and offer an alternative to etiquette-dependant (Free-form) or luck-based (dice roll) roleplaying styles. 
I.	User spoofing and puppets
J.	Colon versus /me
The ability to alter the interface to suit a user's preference to IRC or Telnet, the command used to write an action is /me for IRC and : for Telnet MU*s. An option would allow all action commands to be used with either, no matter where you're connecting to.
K.	Room descriptions
L.	Object / Inventory grid system
M.	Hyperlinked action tags
N.	Maps and Markers
O.	Forum / Message-board Mode
P.	Rule-based modes
Allows a user to create or play a rule-based mode such as Dungeon and Dragon's d20 system or GURPS, many templates and automaters can make rule-based Roleplaying less of a hassle and flow more quickly.
Q.	RPChat server
1.	Create social interaction between users
2.	Game tracker to spectate or join in other sessions and games
R.	Status effects
Certain item or extraordinary events may have an adverse effect upon a character, being able to
S.	Ignore function

V.	Research
A.	Users like free, don't screw with it
Research from one review of WebRPG mentioned that turning a free program into something that requires people to pay end up going down in flames.
B.	Users use online gaming as a supplement
Online tabletopping can never really replace physical tabletopping, except to those in isolated areas.
C.	Abrupt, major changes must be announced in good time
Any big change that could seriously affect the users of RPChat should be informed well ahead in time, instead of throwing it out and expecting people to deal with it.
D.	Shareware?
Offering a stripped down version of RPChat and offering a full version for money could work, this topic will require more research.
E.	Competition: OpenRPG
F.	KISS
Keep it simple stupid; go for features that will be used EVERY session before implementing the epic stuff.