Client Data Handling
A MMORPG client such as the Mana client needs manage a lot of data. Mana tries to remain flexible, but easy to use, for server maintainers to make and maintain client data.
Data locations
Mana will load data from several places. Each has it's own purpose. Depending on the operating system, the Mana client won't locate its data in the same place, here is where each data type is stored, depending on the main supported OSes. '%appShort%' is a branding value (of the same name, taken from the branding file, if provided) used to provide branding-specific locations for certain settings.
Path type | Operating System | ||
---|---|---|---|
::: | Linux and Posix | Mac | Windows |
Loading order
Client data is loaded from several sources into PhysFS. When the client is started, the following folders are added in order (later takes precedence):
- application installation path
- run/working directory
-d
/--data
from 'command line' options
After the client logs in to a server and updates are loaded, the following data sources are loaded:
- updates files
- custom data in the
config/%appShort%/customData
folder (zip files only; order undetermined)
Required data
The client requires that several pieces of data are in specific locations. Some is distributed with the client, others need to be provided by branding or updates. Data included with the client sources:
Folder | Description |
---|---|
fonts | Font files. |
graphics/gui | Default [GUI theme](gui_configuration) (gray). |
graphics/images | error.png and [wallpaper](wallpaper). |
help | Help files. |
icons | Icons files. Different formats are provided for different OSes. |
The following files and folders are required by the client but not included with the client sources (as they are world-specific). Subfolders for files not listed are usable and recommended. The file types given are the types that need to go in the folders (ex: images for sprites can be anywhere, but their XML needs to be in graphics/sprites). The table:
Item | Description |
---|---|
**graphics/** | |
graphics/items | Item icons (images). |
graphics/minimaps | Minimap backup folder (images). Used when a map doesn't specify a minimap. File names taken from full map names (maps/a/b/c.tmx becomes graphics/minimaps/a/b/c.png). |
graphics/particles | Particle effects (xml). |
graphics/particles/levelup.particle.xml | Level up effect for the Mana server. |
graphics/particles/warparea.particle.xml | Warp/portal effect. Only used for warps in the TMX file. |
graphics/sprites | Sprites, status effect icons, emotes (all xml). |
graphics/sprites/error.xml | Loaded for missing sprite data. |
maps | Maps (tmx). |
sfx | Sound effects (ogg). |
sfx/fist-swish.ogg | Player unarmed attack sound effect. |
music/system/Magick - Real.ogg | Default system login music. |
[colors.xml](hair.xml.md) | Fallback for hair colors. |
[effects.xml](effects.xml.md) | Effect descriptions. |
[emotes.xml](emotes.xml.md) | Emote descriptions. |
[hair.xml](hair.xml.md) | Hair colors. |
[items.xml](items.xml.md) | Item DB. Hair and race sprites are treated like items for now. |
[monsters.xml](monsters.xml.md) | Monster DB. |
[npcs.xml](npcs.xml.md) | NPC view descriptions. |
[status-effects.xml](status-effects.xml.md) | Status effect descriptions. |
[units.xml](units.xml.md) | Unit descriptions. At the moment, just weight and currency. |
**Files specific to the Mana server support - Specifications in progress** | |
[attributes.xml](attributes.xml.md) | Attribute description. This file is only used by and required for playing with a Mana server. |
[specials.xml](specials.xml.md) | Special attack descriptions. |
[skills.xml](skills.xml.md) | Skills for manaserv. |
[equip.xml](equip.xml.md) | Equipment slot definition for manaserv. |
Optional data
Item | Description |
---|---|
[branding.xml](branding.xml.md) | The branding file is used to brand (customize) the Mana client. |
[paths.xml](paths.xml.md) | The path file is used to override (customize) the default path used for configuration files (base xml files apart.). |
[serverlist.xml](serverlist.xml.md) | The server list file is downloaded by the client that lists available servers and some of their properties. |
[config.xml](config.xml.md) | Main configuration file. Generated by the client in the user config directory. |