Path of Exile Wiki:Manual of Style

Title of pages
The wiki try to follow the rules of capitalization in English. We name an article in sentence case if it refers to a concept (common noun), and in title case if it refers to a proper noun. In many cases, this is different than the capitalization used in game, since the game capitalizes words to add emphasis to them as game mechanics or game concepts. For example, Increased, Reduced, More and Less are all capitalized in game. These are not proper nouns that should be capitalized in English. For chilled ground, burning ground etc., these should not be capitalized in English either because they are concepts, not proper nouns.

When distinguishing between different item variants name them after their stats and not their appearance, for example Avian Twins Talisman (Fire Damage taken as Cold Damage).

Style of pages
When creating new pages try to keep to the same style as other similar pages have. This helps both readers and editors, the readers gets accustomed to where they can find what they're looking for and the editors can quickly create pages by copy and pasting from other pages.

Things to try and keep similar are
 * Header names and order
 * Referencing style
 * Navigation boxes
 * Categories

If there is a substitution template available for the type of pages you're creating, it's recommended to use it:
 * Area
 * Item
 * Maps
 * Skill Gems

Future proof your text
When writing explanations of mechanics or other things ask the question "Will this be correct next patch also?" with a slightly pessimistic mindset. Path of Exile is an ever changing game and therefore exact numbers changes all the time but the underlying mechanic often stays the same.

The solution is simply to avoid going too specific, for example:
 * Instead of writing "" write "".
 * Link to the pages that deals with the specifics. Instead of "" write "increases Damage".

If you insist on using exact numbers try to use any of our querying templates so the number stays updated even after patches.

Use British English
British English should be used throughout the wiki to remain consistent with the spelling variants used in Path of Exile. For example, use "defence" rather than "defense", "armour" rather than "armor", and "jewellery" rather than "jewelry". Where appropriate, create redirects from American English spellings to their British English spellings.

Version history
The main text of the page should always reference the current game version. Therefore it becomes redundant to keep using phrases such "As of release 3.0.0, (...)" or "With the 3.1 changes (...)". Construct a version history table using Version history table header and Version history table row. Place the table in a section titled "Version history" near the bottom of the page to mention any noteworthy changes.

"Character" vs "Player"

 * Use "character" when describing things that arise as a result of gameplay such as attributes, damage, etc.
 * Good: "Chaos Inoculation makes the character immune to chaos damage"
 * Bad: "Chaos Inoculation makes the player immune to chaos damage"
 * Use "player" when describing things related to the interface of the game
 * Good: "The player can identify an item with a Scroll of Wisdom"
 * Bad: "The character can identify an item with a Scroll of Wisdom"

Sandbox
Use sandboxes for experimental wiki editing.
 * For general page editing use User:YourUserName/sandbox. They can be created in your own userspace. Click on My User Page and create subpages from there.
 * For template editing see Template:Sandbox.
 * For module editing see Module:Sandbox.

Defining a reference
To avoid clutter, use list-defined references with and use  when citing websites.

Below is an example with the preferred style and templates:

only deals damage once, equal to the sum of calculated damage from each weapon.

Dual strike only deals damage once, equal to the sum of calculated damage from each weapon. (...)

Quality of references
Before referencing, some thought about the quality of the references should be given. Primarily, a reference should be from a trustworthy and recent source.

Trustworthiness

 * Optimal: Primary sources i.e. from the developers themselves always take the highest priority:
 * Posts from any known Grinding Gear Games employees on social media (such as reddit, official forums, etc).
 * Pages on the official website (excluding the forums).
 * Videos where one of the developers talks about the game.


 * Good: Sources like information given to the press or other persons by the developers also get a high priority, however, if possible direct information should be preferred:
 * News articles from known websites sites that are based on information that was specifically given to the press (for example, from press-only events about upcoming releases.
 * Collaboration between the developers and third party sources, as long this can be verified (for example, collaboration between ZiggyD and Grinding Gear Games. Please note that this goes only for the productions in which content from the developers are involved and not content from the same source otherwise.


 * Questionable: Sources from any regular user or a member of community. Please note that if the information is replicable by any other user there is no citation needed (such as information from the game itself or it's data). This kind of source should always have some kind of evidence included in the source and not just claims by a user:
 * Video showing in game content and explaining it; this serves as evidence and is generally acceptable.

Age
Age of a reference is an important factor for Path of Exile, since the game is reviving constant patches and something that may have been true in the past may get outdated soon. In particular, if there mentions of changes in a patch note and the information given in a source is outdated, the source should no longer be cited.

Please note that how much the age matters also depends on the topic in question; numerical information (such as explicit damage values) is highly subject to change, while mechanical information (how something works in general) tends to only change in major updates.

Determining the age of a reference:
 * Optimally the version of the game should be visible in the publication, such as the league version on the top right corner of the screen.
 * When from an official source (such as the developers), the date of the publication was made can be used
 * When from an unofficial source, the date of when the information was released can serve as a base line, however please be aware that information may have been released from an old version of the game then what the date on the publication may indicate. Publications may also have been edited retroactively.

Avoid referencing
Avoid referencing information from sources that:
 * can be verified with very little ease (for example, there doesn't need to be a citation on the name of an item, because everyone can just find this value in game easily)
 * have been known to manipulate users or change their information to suit their own needs (such as market manipulation)
 * have issues with their methodology of obtaining said information (for example, poor use of statistics, such as "I've killed 5 monsters and got 1 exalted orb, as such the drop rate of exalted orbs is 1/5")
 * dismiss certain aspects of information

General
* Always document templates on the respective /doc page (see Template documenation for details)
 * Complicated templates should be implemented in lua
 * Add categories to the /doc page
 * Use English words for naming separated by a space
 * Do not capitalize all words
 * Consider creating /testcases 

Template Documentation
* Always document the template you are creating
 * Create a list of arguments the template takes and a description of what they do (and if they are optional)
 * Add appropriate categories to the template (NOT the /doc subpage, i.e. use tags)
 * For lua based templates add Template:Lua at the top

General

 * Use underscore_naming for variables and functions
 * Use 4 spaces for indentation
 * Add extension documentation to /doc if possible, however this is not required if the code is readable
 * If implementing a template in lua
 * Add to the lua comments which template(s) are implemented by the function
 * Add to the /doc page which templates are implemented
 * Add to a link from the template's /doc page using Template:Lua

Module Documenation

 * Add appropriate categories to the template (NOT the /doc subpage, i.e. use tags)
 * For templates for inclusion in other templates add Template:ProgrammingModule

Define variables as local unless they are otherwise needed
As the title suggest try to define locally in the scope they are needed.

Compress boolean statements if possible
This may be require some basic familiarity with Boolean algebra.

 Examples  

Strings connecting
There are 3 basic rules:  If the string is very long to connect, use a table and. This is faster and more readable  If the string is short, but has multiple arguments, use, while it may be a bit slower, it is much more readable  Use .. for other simple cases  

Avoid code duplication
Please try to avoid any form of repeated (in particular 'spaghetti') code. Minor repeats where required are, but large portions of the code repeating itself should be avoided.

Consider the following techniques:
 * Use library modules to reduce code duplication
 * Use poe wiki library modules like Module:Util, Module:Game to reduce code duplication
 * Move code that is used regularly into a function; if the code is used...:
 * ... only used in that module, add as local, non callable function to the module
 * ... used primarily in that module, but may be used in others, add it to the return table
 * ... is generally useful for a lot of various modules consider adding it to Module:Util (discuss on talk page first)
 * For formatting strings based on conditions, consider moving the formatting itself outside of the conditions if it is the same
 * For long  that execute similar code create a table and loop trough the table