Template:Perks/doc

Overview
Displays data about Perks, Cornerstones, and other effects based on search parameters and exclusions. There are a few ways the data can be displayed.

Parameters
All parameters are optional. If no parameters are given, a table of all 300+ Perks will be displayed, showing their icon and name linking to the Perk's page, descriptions, rarity, sources, and price when purchased from a trader.

Selection, Filtering, and Exclusion
You may combine the first three parameters to return more Perks. The result will be the union of your selections, without duplicates. Then use  to remove any Perks that are unrelated to your purposes with their IDs or filter by rarity or source.

Remember that IDs are not visible int he game, so you may need to look them up first.

Output Overrides
These parameters allow you to customize the appearance of the results.

Work in progress

No results from search
If you specify parameters intending to select or search for terms, sometimes there is no result. This can be because you misspelled an id, rarity name, or source name or asked for a search term that was no present in any name or description—or ultimately excluded every item that was found. In this situation, the template, will instead render a plain-text message that nothing was found. (This error display is used for all display modes, table, list, or inline.)

Yields:

Selecting Perks by their IDs
Yields:

You can select multiple Perks this way, by separating multiple IDs by commas.

Yields:

Searching names and descriptions
The following example shows searching the same term in both name and description, but you could search different things in each field or use only one and not the other.

Yields:

Filtering by rarity or source
Rarity and source are filters, not selectors. If you do not select any Perks by id, name, or description, then the entire list of Perks is returned. If you then specify a rarity or source, the results are then filtered to your selections. For example, if the term you searched for in the description returns 20 Perks, but you only filter to, then only a few of those Perks that match the description will be displayed, the ones that can be purchased from traders.

Yields:

You can also filter by rarity instead of source. For example, if the term you searched for in the description returns 20 Perks, but you only filter to, then only 6  Perks that match the description will be displayed, the ones with that rarity.

Yields:

In these examples, you can see that filtering by both rarity and source may result in nothing that meets all of your criteria.

Yields:

Hiding rarity
Yields:

Hiding descriptions
Yields:

Skipping source columns
Compare the following table with the one above. If the sources are not as relevant to your purposes, but the descriptions are (and they usually are), then you may want to skip the entire section of the table on sources with.

Yields:

You can also skip individual columns. For example, none of the following "Delivery Line" Perks are available from the Forsaken Altar or from traders, so we can safely hide those columns without hiding valuable information from the reader.

Yields:

Hiding prices
When hiding the trader source column, it's probably also a good idea to hide prices, but this is not enforced.

Yields:

Showing Perk ID
When you need to show the ID, remember that the table can get very wide. If showing IDs, consider carefully whether you need to show all of the other columns.

Yields:

Custom caption
Yields:

Bulleted
This example reproduces the table above, when searching by id and name, in a list format.

Yields:

Numbered
Yields:

List with IDs
Yields:

Inline examples
Yields the following, shown in the middle of a paragraph to highlight its usefulness. When you lack any kind of vessel, look for to get some for free every time you make Planks!

You can also show the ID of the Perk alongside the link, like, if your readers need to see it too.

View templates
The functionality of the Perks template is accomplished through the Wiki data model. This Template:Perks calls the controller module, which in turn interfaces with the data model module. The view is handled entirely by these additional templates: