<divid="app"><divclass="Layout"data-v-f44a984a><!--[--><!--]--><!--[--><spantabindex="-1"data-v-151f2593></span><ahref="#VPContent"class="VPSkipLink visually-hidden"data-v-151f2593> Skip to content </a><!--]--><!----><headerclass="VPNav no-sidebar"data-v-f44a984adata-v-a50780ff><divclass="VPNavBar"data-v-a50780ffdata-v-6f1d18b5><divclass="container"data-v-6f1d18b5><divclass="VPNavBarTitle"data-v-6f1d18b5data-v-d5925166><aclass="title"href="/"data-v-d5925166><!--[--><!--]--><!----><!--[-->The Paper Pilot<!--]--><!--[--><!--]--></a></div><divclass="content"data-v-6f1d18b5><!--[--><!--]--><!----><navaria-labelledby="main-nav-aria-label"class="VPNavBarMenu menu"data-v-6f1d18b5data-v-f83db6ba><spanid="main-nav-aria-label"class="visually-hidden"data-v-f83db6ba>Main Navigation</span><!--[--><!--[--><aclass="VPLink link VPNavBarMenuLink"href="/guide-to-incrementals/"data-v-f83db6badata-v-47a2263edata-v-3c355974><!--[-->Guide to Incrementals<!--]--><!----></a><!--]--><!--[--><aclass="VPLink link VPNavBarMenuLink"href="/projects/"data-v-f83db6badata-v-47a2263edata-v-3c355974><!--[-->Projects<!--]--><!----></a><!--]--><!--[--><aclass="VPLink link VPNavBarMenuLink"href="https://moddingtree.com"target="_blank"rel="noreferrer"data-v-f83db6badata-v-47a2263edata-v-3c355974><!--[-->Profectus<!--]--><!----></a><!--]--><!--]--></nav><!----><divclass="VPNavBarAppearance appearance"data-v-6f1d18b5data-v-a3e7452b><buttonclass="VPSwitch VPSwitchAppearance"type="button"role="switch"aria-label="toggle dark mode"aria-checked="false"data-v-a3e7452bdata-v-481098f9data-v-eba7420e><spanclass="check"data-v-eba7420e><spanclass="icon"data-v-eba7420e><!--[--><svgxmlns="http://www.w3.org/2000/svg"aria-hidden="true"focusable="false"viewbox="0 0 24 24"class="sun"data-v-481098f9><pathd="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><pathd="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><pathd="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><pathd="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><pathd="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><pathd="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><pathd="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><pathd="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><pathd="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svgxmlns="http://www.w3.org/2000/svg"aria-hidden="true"focusable="false"viewbox="0 0 24 24"class="moon"data-v-481098f9><pathd="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><divclass="VPSocialLinks VPNavBarSocialLinks social-links"data-v-6f1d18b5data-v-738bef5adata-v-f6988cfb><!--[--><aclass="VPSocialLink"href="https://github.com/thepaperpilot"target="_blank"rel="noopener"data-v-f6988cfbdata-v-e57698f6><svgrole="img"viewBox="0 0 24 24"xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><pathd="M12.297c-6.630-125.373-121205.3033.4389.88.20511.385.6.113.82-.258.82-.5770-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.42218.073.63317.73.63317.7c-1.087-.744.084-.729.084-.7291.2
<spanclass="line"><spanstyle="color:#A6ACCD;"> [</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#C3E88D;">prestige-button</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#89DDFF;">,</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#C792EA;">function</span><spanstyle="color:#89DDFF;">()</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">{</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">return</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#C3E88D;">Melt your points into </span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">}</span><spanstyle="color:#A6ACCD;">]</span><spanstyle="color:#89DDFF;">,</span></span>
<spanclass="line"><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#C792EA;">function</span><spanstyle="color:#89DDFF;">()</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">{</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">return</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">'</span><spanstyle="color:#C3E88D;">I have </span><spanstyle="color:#89DDFF;">'</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">+</span><spanstyle="color:#F07178;"></span><spanstyle="color:#82AAFF;">format</span><spanstyle="color:#F07178;">(</span><spanstyle="color:#A6ACCD;">player</span><spanstyle="color:#89DDFF;">.</span><spanstyle="color:#A6ACCD;">points</span><spanstyle="color:#F07178;">) </span><spanstyle="color:#89DDFF;">+</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">'</span><spanstyle="color:#C3E88D;"> pointy points!</span><spanstyle="color:#89DDFF;">'</span><spanstyle="color:#F07178;"></span><spanstyle="color:#89DDFF;">},</span></span>
<spanclass="line"><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">{</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#F07178;">color</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#89DDFF;">:</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#C3E88D;">red</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#89DDFF;">,</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#F07178;">font-size</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#89DDFF;">:</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#C3E88D;">32px</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#89DDFF;">,</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#F07178;">font-family</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#89DDFF;">:</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#C3E88D;">Comic Sans MS</span><spanstyle="color:#89DDFF;">"</span><spanstyle="color:#A6ACCD;"></span><spanstyle="color:#89DDFF;">}</span><spanstyle="color:#A6ACCD;">]</span><spanstyle="color:#89DDFF;">,</span></span>
<spanclass="line"></span></code></pre></div><p>It is a list of components, which can be either just a name, or an array with arguments. If it's an array, the first item is the name of the component, the second is the data passed into it, and the third (optional) applies a CSS style to it with a "CSS object", where the keys are CSS attributes.</p><p>These are the existing components, but you can create more in <ahref="/js/components.js">components.js</a>:</p><ul><li><p>display-text: Displays some text (can use basic HTML). The argument is the text to display. It can also be a function that returns updating text.</p></li><li><p>raw-html: Displays some basic HTML, can also be a function.</p></li><li><p>blank: Adds empty space. The default dimensions are 8px x 17px. The argument changes the dimensions. If it's a single value (e.g. "20px"), that determines the height. If you have a pair of arguments, the first is width and the second is height.</p></li><li><p>row: Display a list of components horizontally. The argument is an array of components in the tab layout format.</p></li><li><p>column: Display a list of components vertically. The argument is an array of components in the tab layout format. This is useful to display columns within a row.</p></li><li><p>main-display: The text that displays the main currency for the layer and its effects. The argument is the amount of precision to use, allowing it to display non-whole numbers.</p></li><li><p>resource-display: The text that displays the currency that this layer is based on, as well as the best and/or total values for this layer's prestige currency (if they are put in <code>startData</code> for this layer).</p></li><li><p>prestige-button: The argument is a string that the prestige button should say before the amount of currency you will gain. It can also be a function that returns updating text.</p></li><li><p>text-input: A text input box. The argument is the name of the variable in player[layer] that the input is for, player[layer][argument] (Works with strings, numbers, and Decimals!)</p></li><li><p>slider: Lets the user input a value with a slider. The argument a 3-element array: [name, min, max]. The name is the name of the variable in player[layer] that the input that the input is for, and min and max are the limits of the slider. (Does not work for Decimal values)</p></li><li><p>upgrades: The layer's upgrades. The argument is optional, and is a the list of rows this component should include, if it doesn't have all of them.</p></li><li><p>milestones, challenges, achievements: Display the upgrades, milestones, and challenges for a layer, as appropriate.</p></li><li><p>buyables, clickables: Display all of the buyables/clickables for this layer, as appropriate. The argument is optional and is the size of the boxes in pixels.</p></li><li><p>microtabs: Display a set of subtabs for an area. The argument is the name of the set of microtabs in the "microtabs" feature.</p></li><li><p>bar: Display a bar. The argument is the id of the bar to display.</p></li><li><p>infobox: Display an infobox. The argument is the id of the infobox to display.</p></li><li><p>tree: Displays a tree. The argument is an array of arrays containing the names of the nodes in the tree (first by row, then by column) <ahref="./trees-and-tree-customization">See here for more information on tree layouts and nodes!</a></p></li><li><p>toggle: A toggle button that toggles a bool value. The argument is a pair that identifies the location in player of the bool to toggle, e.g. <code>[layer, id]</code>. 'layer' also affects the color of the toggle.</p></li><li><p>grid: Displays the gridable grid for the layer. If you need more than one grid, use a layer proxy.</p></li><li><p>layer-proxy: Lets you use components from another layer. The argument is a pair, <code>[layer, data]</code>, consisting of the id of the layer to proxy from, and the tabFormat for the components to show. (Note: you cannot use a microtab within a layer proxy)</p></li></ul><p>The rest o