<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gw1wiki.ezgame.cc/index.php?action=history&amp;feed=atom&amp;title=Widget%3ATemplate_decoder</id>
	<title>Widget:Template decoder - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://gw1wiki.ezgame.cc/index.php?action=history&amp;feed=atom&amp;title=Widget%3ATemplate_decoder"/>
	<link rel="alternate" type="text/html" href="https://gw1wiki.ezgame.cc/index.php?title=Widget:Template_decoder&amp;action=history"/>
	<updated>2026-10-17T17:27:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://gw1wiki.ezgame.cc/index.php?title=Widget:Template_decoder&amp;diff=3156&amp;oldid=prev</id>
		<title>gww&gt;Chieftain Alex at 22:21, 11 September 2026</title>
		<link rel="alternate" type="text/html" href="https://gw1wiki.ezgame.cc/index.php?title=Widget:Template_decoder&amp;diff=3156&amp;oldid=prev"/>
		<updated>2026-09-11T22:21:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
This widget has no parameters. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{#Widget:Template decoder}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{#Widget:Template decoder}}&lt;br /&gt;
[[Category:Widgets]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- mediawiki hates inline styles or? --&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
	.gw-template-decoder{&lt;br /&gt;
		width: 100%;&lt;br /&gt;
		max-width: 960px;&lt;br /&gt;
		margin: 1em auto;&lt;br /&gt;
		text-align: center;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder input,&lt;br /&gt;
	.gw-template-decoder textarea,&lt;br /&gt;
	.gw-template-decoder select,&lt;br /&gt;
	.gw-template-decoder button{&lt;br /&gt;
		box-sizing: border-box;&lt;br /&gt;
		font-size: 100%;&lt;br /&gt;
		line-height: 1.5em;&lt;br /&gt;
		border: 1px solid #666;&lt;br /&gt;
		margin: 0.25em 0;&lt;br /&gt;
		/*background: #aaa;*/&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder input,&lt;br /&gt;
	.gw-template-decoder textarea,&lt;br /&gt;
	.gw-template-decoder select{&lt;br /&gt;
		font-family: Consolas, Courier, monospace;&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder textarea{&lt;br /&gt;
		height: 10em;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder button{&lt;br /&gt;
		cursor: pointer;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder fieldset{&lt;br /&gt;
		text-align: left;&lt;br /&gt;
		border-radius: 0.5em;&lt;br /&gt;
		margin-bottom: 0.5em;&lt;br /&gt;
		padding:  1em;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder fieldset &amp;gt; br{&lt;br /&gt;
		clear: both;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder legend{&lt;br /&gt;
		font-weight: bold;&lt;br /&gt;
		margin: 0 0.5em;&lt;br /&gt;
		padding: 0 0.25em;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder label{&lt;br /&gt;
		display: block;&lt;br /&gt;
		margin-right: 0.75em;&lt;br /&gt;
		cursor: pointer;&lt;br /&gt;
		text-align: left;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder button {&lt;br /&gt;
		width: 30%;&lt;br /&gt;
		font-size: 85%;&lt;br /&gt;
		font-weight: bold;&lt;br /&gt;
		padding: 0.25em 0.1em;&lt;br /&gt;
		margin: 0.5em 35%;&lt;br /&gt;
		background-color: rgba(66, 141, 31, 0.15);&lt;br /&gt;
		border: 2px solid rgba(66, 141, 31, 1.0);&lt;br /&gt;
		border-radius: 0.5em;&lt;br /&gt;
		transition: 0.4s;&lt;br /&gt;
		cursor: pointer;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder button:hover{&lt;br /&gt;
		background-color: rgba(66, 141, 31, 0.3);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder .radio{&lt;br /&gt;
		display: inline;&lt;br /&gt;
		width: auto;&lt;br /&gt;
		margin-right: 1em;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.gw-template-decoder .radio &amp;gt; input, .gw-template-decoder .radio &amp;gt; label{&lt;br /&gt;
		display: inline;&lt;br /&gt;
		width: auto;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;form class=&amp;quot;gw-template-decoder&amp;quot; id=&amp;quot;skill&amp;quot; action=&amp;quot;#&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset&amp;gt;&lt;br /&gt;
		&amp;lt;legend&amp;gt;Skill Templates&amp;lt;/legend&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;skill-template&amp;quot;&amp;gt;Template or chat code&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input id=&amp;quot;skill-template&amp;quot; name=&amp;quot;template&amp;quot; type=&amp;quot;text&amp;quot; autocomplete=&amp;quot;off&amp;quot; spellcheck=&amp;quot;false&amp;quot; placeholder=&amp;quot;OQAAAA... or [My Cool Build;OQAAAA...]&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;skill-lang-en&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;en&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;skill-lang-en&amp;quot;&amp;gt;EN&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;skill-lang-de&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;de&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;skill-lang-de&amp;quot;&amp;gt;DE&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;skill-mode-pve&amp;quot; name=&amp;quot;gamemode&amp;quot; value=&amp;quot;pve&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;skill-mode-pve&amp;quot;&amp;gt;PvE&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;skill-mode-pvp&amp;quot; name=&amp;quot;gamemode&amp;quot; value=&amp;quot;pvp&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;skill-mode-pvp&amp;quot;&amp;gt;PvP&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;decode&amp;lt;/button&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;skill-output&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;form class=&amp;quot;gw-template-decoder&amp;quot; id=&amp;quot;pawned&amp;quot; action=&amp;quot;#&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset&amp;gt;&lt;br /&gt;
		&amp;lt;legend&amp;gt;paw·ned² Templates&amp;lt;/legend&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;pawned-template&amp;quot;&amp;gt;Template code&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;textarea id=&amp;quot;pawned-template&amp;quot; name=&amp;quot;template&amp;quot; autocomplete=&amp;quot;off&amp;quot; spellcheck=&amp;quot;false&amp;quot; placeholder=&amp;quot;pwnd0001...&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;pawned-lang-en&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;en&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;pawned-lang-en&amp;quot;&amp;gt;EN&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;pawned-lang-de&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;de&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;pawned-lang-de&amp;quot;&amp;gt;DE&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;pawned-mode-pve&amp;quot; name=&amp;quot;gamemode&amp;quot; value=&amp;quot;pve&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;pawned-mode-pve&amp;quot;&amp;gt;PvE&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;pawned-mode-pvp&amp;quot; name=&amp;quot;gamemode&amp;quot; value=&amp;quot;pvp&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;pawned-mode-pvp&amp;quot;&amp;gt;PvP&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;decode&amp;lt;/button&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;pawned-output&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;form class=&amp;quot;gw-template-decoder&amp;quot; id=&amp;quot;equipment&amp;quot; action=&amp;quot;#&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset&amp;gt;&lt;br /&gt;
		&amp;lt;legend&amp;gt;Equipment Templates&amp;lt;/legend&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;equipment-template&amp;quot;&amp;gt;Template or chat code&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input id=&amp;quot;equipment-template&amp;quot; name=&amp;quot;template&amp;quot; type=&amp;quot;text&amp;quot; autocomplete=&amp;quot;off&amp;quot; spellcheck=&amp;quot;false&amp;quot; placeholder=&amp;quot;PEBA... or [My Cool Equipment;PEBA...]&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;equipment-lang-en&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;en&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;equipment-lang-en&amp;quot;&amp;gt;EN&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;equipment-lang-de&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;de&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;equipment-lang-de&amp;quot;&amp;gt;DE&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;equipment-mode-pve&amp;quot; name=&amp;quot;gamemode&amp;quot; value=&amp;quot;pve&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;equipment-mode-pve&amp;quot;&amp;gt;PvE&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;equipment-mode-pvp&amp;quot; name=&amp;quot;gamemode&amp;quot; value=&amp;quot;pvp&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;label for=&amp;quot;equipment-mode-pvp&amp;quot;&amp;gt;PvP&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;decode&amp;lt;/button&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;equipment-output&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://build-wars.github.io/gw-skilldata/js/gw-skilldata-iife-src.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://build-wars.github.io/gw-templates/js/gw-templates-iife-src.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
	class Decoder{&lt;br /&gt;
&lt;br /&gt;
		#skillDB = {&lt;br /&gt;
			de: new GwSkilldata.SkillLangGerman(),&lt;br /&gt;
			en: new GwSkilldata.SkillLangEnglish(),&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		#wiki = {&lt;br /&gt;
			de: 'https://www.guildwiki.de/wiki/',&lt;br /&gt;
			en: 'https://wiki.guildwars.com/wiki/',&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		/** @type {EquipmentTemplate} */&lt;br /&gt;
		#equipmentTemplate = new GwTemplates.EquipmentTemplate;&lt;br /&gt;
		/** @type {PwndTemplate} */&lt;br /&gt;
		#pawnedTemplate    = new GwTemplates.PwndTemplate();&lt;br /&gt;
		/** @type {SkillTemplate} */&lt;br /&gt;
		#skillTemplate     = new GwTemplates.SkillTemplate();&lt;br /&gt;
&lt;br /&gt;
		#lang;&lt;br /&gt;
		#pvp;&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {FormData} form&lt;br /&gt;
		 * @returns {HTMLElement|string}&lt;br /&gt;
		 */&lt;br /&gt;
		decode(form){&lt;br /&gt;
&lt;br /&gt;
			try{&lt;br /&gt;
				this.#pvp  = form.get('gamemode') === 'pvp';&lt;br /&gt;
				this.#lang = new GwSkilldata.Lang(form.get('language'));&lt;br /&gt;
&lt;br /&gt;
				let type = form.get('type');&lt;br /&gt;
&lt;br /&gt;
				if(typeof this[type] !== 'function'){&lt;br /&gt;
					// noinspection ExceptionCaughtLocallyJS&lt;br /&gt;
					throw new Error('invalid method');&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				return (this[type])(form.get('template'));&lt;br /&gt;
			}&lt;br /&gt;
			catch(e){&lt;br /&gt;
				return `&amp;lt;div class=&amp;quot;error&amp;quot;&amp;gt;${e.message}&amp;lt;/div&amp;gt;`;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		skill(template){&lt;br /&gt;
			return this.#parseBuild(template);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		equipment(template){&lt;br /&gt;
			return this.#parseEquipment(template);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		pawned(template){&lt;br /&gt;
			return this.#parsePawned(template);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		#parsePawned(template){&lt;br /&gt;
			let team = this.#pawnedTemplate.decode(template);&lt;br /&gt;
&lt;br /&gt;
			let pawnedContainer = document.createElement('div');&lt;br /&gt;
			pawnedContainer.className = 'pawned';&lt;br /&gt;
&lt;br /&gt;
			for(let build of team){&lt;br /&gt;
				console.log(build);&lt;br /&gt;
&lt;br /&gt;
				pawnedContainer.appendChild(this.#parseBuild(build.skills, build.templatename));&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return pawnedContainer;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		#parseEquipment(template){&lt;br /&gt;
			let equipment = this.#equipmentTemplate.decode(template);&lt;br /&gt;
&lt;br /&gt;
			console.log(equipment);&lt;br /&gt;
&lt;br /&gt;
			let equipmentContainer = document.createElement('div');&lt;br /&gt;
			equipmentContainer.className = 'equipment';&lt;br /&gt;
&lt;br /&gt;
			return equipmentContainer;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		#parseBuild(template, name = ''){&lt;br /&gt;
			let build = this.#skillTemplate.decode(template);&lt;br /&gt;
			let gwwTemplate = ['{{PvX skill bar'];&lt;br /&gt;
			console.log(build);&lt;br /&gt;
&lt;br /&gt;
			let buildContainer = document.createElement('div');&lt;br /&gt;
			buildContainer.className = 'build';&lt;br /&gt;
&lt;br /&gt;
			let professionContainer = document.createElement('div');&lt;br /&gt;
			professionContainer.className = 'professions';&lt;br /&gt;
			buildContainer.appendChild(professionContainer);&lt;br /&gt;
&lt;br /&gt;
			let attributeContainer = document.createElement('ul');&lt;br /&gt;
			attributeContainer.className = 'attributes';&lt;br /&gt;
			buildContainer.appendChild(attributeContainer);&lt;br /&gt;
&lt;br /&gt;
			let skillContainer = document.createElement('div');&lt;br /&gt;
			skillContainer.className = 'skills';&lt;br /&gt;
			buildContainer.appendChild(skillContainer);&lt;br /&gt;
&lt;br /&gt;
			['prof_pri', 'prof_sec'].forEach(p =&amp;gt; {&lt;br /&gt;
				let profession = new GwSkilldata.Profession(build[p], this.#lang);&lt;br /&gt;
&lt;br /&gt;
				gwwTemplate.push(`| ${{prof_pri: 'primary', prof_sec: 'secondary'}[p]} = ${profession.getName()}`);&lt;br /&gt;
&lt;br /&gt;
				professionContainer.appendChild(profession.toHTML(this.#lang));&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			let a = 1;&lt;br /&gt;
			for(let [key, value] of Object.entries(build.attributes)){&lt;br /&gt;
				let attribute = new GwSkilldata.Attribute(Number(key), this.#lang).setLevel(value);&lt;br /&gt;
				let attr = document.createElement('li');&lt;br /&gt;
				attr.appendChild(attribute.toHTML(this.#lang, true));&lt;br /&gt;
&lt;br /&gt;
				gwwTemplate.push(`| attr${a} = ${attribute.getName()}`);&lt;br /&gt;
				gwwTemplate.push(`| attr${a}n = ${attribute.getLevel()}`);&lt;br /&gt;
&lt;br /&gt;
				attributeContainer.appendChild(attr);&lt;br /&gt;
				a++;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			build.skills.forEach((s, i) =&amp;gt; {&lt;br /&gt;
				let skill = this.#skillDB[this.#lang.id].get(s, this.#pvp);&lt;br /&gt;
&lt;br /&gt;
				gwwTemplate.push(`| ${i +1} = ${skill.name}`);&lt;br /&gt;
&lt;br /&gt;
				skillContainer.appendChild(skill.toHTML(&lt;br /&gt;
					this.#lang,&lt;br /&gt;
					`https://smiley.codes/gwdb/img/skills/64/${s}.png`,&lt;br /&gt;
					this.#wiki[this.#lang.id] + encodeURIComponent(skill.name.replaceAll(' ', '_')),&lt;br /&gt;
				));&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			gwwTemplate.push(`| buildname = ${name}`);&lt;br /&gt;
			gwwTemplate.push(`| code = ${build.code}`);&lt;br /&gt;
			gwwTemplate.push('}}\n');&lt;br /&gt;
&lt;br /&gt;
			let gwwTemplateContainer = document.createElement('textarea');&lt;br /&gt;
			gwwTemplateContainer.value = gwwTemplate.join('\n');&lt;br /&gt;
			buildContainer.appendChild(gwwTemplateContainer);&lt;br /&gt;
&lt;br /&gt;
			return buildContainer;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	window.addEventListener('load', ev =&amp;gt; {&lt;br /&gt;
		let decoder = new Decoder();&lt;br /&gt;
&lt;br /&gt;
		['skill', 'equipment', 'pawned'].forEach(f =&amp;gt; {&lt;br /&gt;
			document.getElementById(f).addEventListener('submit', ev =&amp;gt; {&lt;br /&gt;
				ev.preventDefault();&lt;br /&gt;
				ev.stopPropagation();&lt;br /&gt;
&lt;br /&gt;
				let formData = new FormData(ev.target);&lt;br /&gt;
				formData.append('type', f)&lt;br /&gt;
&lt;br /&gt;
				let output = document.getElementById(f + '-output');&lt;br /&gt;
&lt;br /&gt;
				output.innerHTML = '';&lt;br /&gt;
				output.append(decoder.decode(formData));&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>gww&gt;Chieftain Alex</name></author>
	</entry>
</feed>