-
Notifications
You must be signed in to change notification settings - Fork 2
StormFront Server Settings
With the inception of StormFront and the XML-based StormFrontProtocol, http://www.play.net Simutronics introduced a way to save a player's settings and scripts on the server. This makes it very easy to access your configuration and scripts from any location with an internet location, and removes the need for backup.
The purpose of this Wiki is to document the server settings XML document, and also the way in which server settings are added, updated, and removed from the server.
There are a some special cases of unique notations in the XML file. The most common being:
- Palette References**
- Skin Color**
- Hex Colors**
- Boolean Values**
- In the case of a boolean expression the values "y" or "t" is seen as true, and a "f" or null/empty attribute is seen as false. For example:
- The line attribute here is **True**:
- The line attribute here is **False**: - The vis attribute here is **True**: <w id="sinv" vis="t"></w> - The vis attribute here is **False**: <w id="sinv" vis="f"></w>The server settings XML document is sent in ISO-8859-1 character encoding (which is incompatible with UTF-8, the default xml encoding). To succesfully parse the XML document with a standard XML library such as http://www.dom4j.org dom4j, the following processing instruction needed to be added to the xml file:
%%(xml) %%
- <settings></settings>**: The document itself begins and ends with this tag; all of the actual configuration is nested.
- <palette></palette>**: This is the color palette that all settings with colors make reference to.
- This is a palette color entry under the palette tag. This tag contains two attributes and no data:
- <presets>**: This element defines the "preset" elements, or the static colors/fonts for things like room names, bold text, speech, whispers, thoughts, etc. </i></presets>
- This is a preset entry under the presets tag. This tag has 2 required attributes "color" and "bgcolor", all the rest are optional. - **color**: A palette reference to the foreground color for this preset. - **bgcolor**: A palette reference to the background color for this preset. - **ulcolor**: A palette reference to the underline color for this preset (optional). - **line**: A boolean indicating whether or not to highlight the entire line (optional).
- <names>**: This element contains a list of names to highlight / ignore. The entries are identical to the strings element above. </i></names>
- <vars>**: This element contains a list of variables the user has defined. </i></vars>
- <stream>**: This element contains stream window definitions including x/y position, width, height, default colors and fonts. </i></stream>
- A nested tag to describe the standard font for this stream window. - **charSet**: Not sure what this is used for yet. - **face**: The font face / name for this font. - **size**: The size in pixels of the font. - **weight**: Whether or not this font is bold(?) Have only ever seen this be "normal". - **italic**: A boolean indicating if this font is italic or not. - **strike**: A boolean indicating whether or not this font is strikethrough. - **underline**: A boolean indicating whether or not this font is underlined. - **<columnfont>**: A nested tag to describe the "column" or monospace/fixed font for things like "exp", "info", etc. It has the same attributes as the font tag above. </font></i></columnfont>
- <cmdline>**: This tag describes the colors for the game's entry box. </font></i></cmdline>
- <scripts>**: All of the player's scripts are stored here. </font></i></scripts>
- A script element. The content inside is the script itself. - **name**: The name of this script - **comment**: A comment to describe the script (this is usually empty, I think StormFront pulls the real value from the first comment of the script data itself) - **fmt**: What format the script is stored in. I've only ever seen this be "tok" (see ScriptTokFormat).