<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.telosrealms.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AReskins%2Fdoc</id>
	<title>Module:Reskins/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.telosrealms.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AReskins%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://wiki.telosrealms.com/index.php?title=Module:Reskins/doc&amp;action=history"/>
	<updated>2026-06-22T08:38:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.telosrealms.com/index.php?title=Module:Reskins/doc&amp;diff=14970&amp;oldid=prev</id>
		<title>Willow: the mass documenting</title>
		<link rel="alternate" type="text/html" href="https://wiki.telosrealms.com/index.php?title=Module:Reskins/doc&amp;diff=14970&amp;oldid=prev"/>
		<updated>2026-06-20T11:54:59Z</updated>

		<summary type="html">&lt;p&gt;the mass documenting&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Module:Reskins holds the master list of cosmetic reskin items (Cherub, Halloween, Valentine&amp;#039;s, Christmas, Custom) and renders them either as a gallery for a theme page or as an &amp;quot;Applicable Reskins&amp;quot; list inside an item&amp;#039;s infobox.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;reskin&amp;quot; is a cosmetic skin that can be applied to one or more item types (e.g. the Christmas &amp;quot;Sharpened Candy Cane&amp;quot; reskins any Sword). All of the reskins the wiki knows about are stored as a single Lua table inside this module — each entry records the skin&amp;#039;s &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, its &amp;lt;code&amp;gt;theme&amp;lt;/code&amp;gt;, where it&amp;#039;s &amp;lt;code&amp;gt;obtained&amp;lt;/code&amp;gt;, a flavour &amp;lt;code&amp;gt;desc&amp;lt;/code&amp;gt;, and the list of item &amp;lt;code&amp;gt;types&amp;lt;/code&amp;gt; it applies to.&lt;br /&gt;
&lt;br /&gt;
The module is used two ways:&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;On theme pages&amp;#039;&amp;#039;&amp;#039; (e.g. the Cherub reskins template) — it renders a full infobox gallery of every reskin in that theme.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Inside {{tl|ItemInfobox}}&amp;#039;&amp;#039;&amp;#039; — for a given item type it lists the named reskins that can be applied to that type, in the infobox&amp;#039;s &amp;quot;Applicable Reskins&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Because the data lives in this module, adding or editing a reskin means editing the &amp;lt;code&amp;gt;reskins&amp;lt;/code&amp;gt; table here — there is no separate per-reskin page to maintain.&lt;br /&gt;
&lt;br /&gt;
== Functions / entry points ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Function (#invoke) !! What it does !! Called by&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p.forType&amp;lt;/code&amp;gt; || Given an item type name (e.g. &amp;lt;code&amp;gt;Sword&amp;lt;/code&amp;gt;), returns a &amp;lt;code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;-separated list of clickable reskin entries (sprite icon + &amp;quot;&amp;lt;Name&amp;gt; Skin&amp;quot; linking to the Reskins page) for every reskin whose &amp;lt;code&amp;gt;types&amp;lt;/code&amp;gt; include that type. Skips themes flagged &amp;lt;code&amp;gt;NO_APPLY&amp;lt;/code&amp;gt; (currently &amp;lt;code&amp;gt;Custom&amp;lt;/code&amp;gt;). Used to fill the Reskins section of an item infobox. || {{tl|ItemInfobox}} (via &amp;lt;code&amp;gt;{{#invoke:Reskins|forType|...}}&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p.theme&amp;lt;/code&amp;gt; || Given a theme key (e.g. &amp;lt;code&amp;gt;Cherub&amp;lt;/code&amp;gt;), renders a full {{tl|ItemInfobox}} for every reskin in that theme — using the skin&amp;#039;s sprite, description, &amp;quot;Applies to:&amp;quot; type list, and &amp;quot;obtained&amp;quot; text. Returns &amp;lt;code&amp;gt;&amp;#039;&amp;#039;No reskins in this category yet.&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; if the theme has none. || Theme listing templates, e.g. {{tl|Cherub/Reskins}}, {{tl|Christmas/Reskins}}, {{tl|Custom/Reskins}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How it&amp;#039;s used ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Inside the item infobox&amp;#039;&amp;#039;&amp;#039; (already wired into {{tl|ItemInfobox}} — editors don&amp;#039;t add this themselves). The infobox only requests reskins for untiered items (when none of T1–T8 are set):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|ReskinList={{#if:{{{T1|}}}...{{{T8|}}}||{{#invoke:Reskins|forType|{{{type|{{#var:itemtype}}}}}}}}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;On a theme page&amp;#039;&amp;#039;&amp;#039; (e.g. the Cherub reskins listing template):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;display-items&amp;quot;&amp;gt;&lt;br /&gt;
{{#invoke:Reskins|theme|Cherub}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a new reskin, edit the &amp;lt;code&amp;gt;reskins&amp;lt;/code&amp;gt; table in the module and give it a &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;theme&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;obtained&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;desc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;types&amp;lt;/code&amp;gt;. To list a new theme on its own page, create a template that calls &amp;lt;code&amp;gt;{{#invoke:Reskins|theme|&amp;lt;ThemeName&amp;gt;}}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sprite file naming.&amp;#039;&amp;#039;&amp;#039; Reskin sprite files are built automatically as &amp;lt;code&amp;gt;&amp;lt;ThemePrefix&amp;gt;Reskin-&amp;lt;NameWithoutSpaces&amp;gt;.png&amp;lt;/code&amp;gt;. The theme prefixes are: Cherub → &amp;lt;code&amp;gt;CH&amp;lt;/code&amp;gt;, Halloween → &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;, Valentines → &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, Christmas → &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt;, Custom → &amp;lt;code&amp;gt;Custom&amp;lt;/code&amp;gt;. Example: the Cherub &amp;quot;Blade of False Eden&amp;quot; expects &amp;lt;code&amp;gt;File:CHReskin-BladeOfFalseEden.png&amp;lt;/code&amp;gt;. The name is title-cased and stripped of spaces before the prefix is added, so the uploaded file must match that exact form.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type → sprite/link table.&amp;#039;&amp;#039;&amp;#039; The module&amp;#039;s &amp;lt;code&amp;gt;TYPES&amp;lt;/code&amp;gt; table maps each item type to a T1 icon (e.g. &amp;lt;code&amp;gt;T1Sword.png&amp;lt;/code&amp;gt;) and a section link (e.g. &amp;lt;code&amp;gt;Weapons#Swords&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Abilities#Bombs&amp;lt;/code&amp;gt;, or just &amp;lt;code&amp;gt;Armours&amp;lt;/code&amp;gt;). This is used by &amp;lt;code&amp;gt;p.theme&amp;lt;/code&amp;gt; to render the clickable &amp;quot;Applies to:&amp;quot; list.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Custom theme is excluded from item infoboxes.&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;NO_APPLY = { Custom = true }&amp;lt;/code&amp;gt; means custom/community reskins are shown only on their own theme page via &amp;lt;code&amp;gt;p.theme&amp;lt;/code&amp;gt;, not in the per-item &amp;quot;Applicable Reskins&amp;quot; list.&lt;br /&gt;
* The CLAUDE/project convention notes that reskins live on a separate page rather than on the base item&amp;#039;s page; this module is the mechanism behind that separation.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Related:&amp;#039;&amp;#039;&amp;#039; {{ml|Infobox}} (renders each infobox), {{ml|Equipment}} and {{ml|Shinies}} (sibling display modules), {{tl|ItemInfobox}}.&lt;/div&gt;</summary>
		<author><name>Willow</name></author>
	</entry>
</feed>