<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.pcgamingshelter.eu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiVisor</id>
	<title>PC Gaming Shelter - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.pcgamingshelter.eu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiVisor"/>
	<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/wiki/Special:Contributions/WikiVisor"/>
	<updated>2026-06-27T15:02:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2018</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2018"/>
		<updated>2026-06-24T19:57:26Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Sport.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
|label11=Platform&lt;br /&gt;
|image11=NewIcon_Platform.png&lt;br /&gt;
|label12=Sandbox&lt;br /&gt;
|image12=NewIcon_Sandbox.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|target5=Event Calendar&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll new pages up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll new pages down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2017</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2017"/>
		<updated>2026-06-24T19:57:12Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=1&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Sport.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
|label11=Platform&lt;br /&gt;
|image11=NewIcon_Platform.png&lt;br /&gt;
|label12=Sandbox&lt;br /&gt;
|image12=NewIcon_Sandbox.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=1&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|target5=Event Calendar&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll new pages up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll new pages down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2016</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2016"/>
		<updated>2026-06-23T08:40:09Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Sport.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
|label11=Platform&lt;br /&gt;
|image11=NewIcon_Platform.png&lt;br /&gt;
|label12=Sandbox&lt;br /&gt;
|image12=NewIcon_Sandbox.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|target5=Event Calendar&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll new pages up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll new pages down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=File:NewIcon_Sport.png&amp;diff=2015</id>
		<title>File:NewIcon Sport.png</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=File:NewIcon_Sport.png&amp;diff=2015"/>
		<updated>2026-06-23T08:39:01Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=File:NewIcon_Sandbox.png&amp;diff=2014</id>
		<title>File:NewIcon Sandbox.png</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=File:NewIcon_Sandbox.png&amp;diff=2014"/>
		<updated>2026-06-23T08:39:01Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=File:NewIcon_Platform.png&amp;diff=2013</id>
		<title>File:NewIcon Platform.png</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=File:NewIcon_Platform.png&amp;diff=2013"/>
		<updated>2026-06-23T08:39:01Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Template:Infobox/Generic&amp;diff=2012</id>
		<title>Template:Infobox/Generic</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Template:Infobox/Generic&amp;diff=2012"/>
		<updated>2026-06-23T08:32:52Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;infobox-section d-flex flex-column flex-sm-row border-0 rounded-0 px-3 py-1&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#vardefine:sep|{{#ifeq:{{{multiple|0}}}|1|{{{sep|,}}}|\n}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#vardefine:indicator&lt;br /&gt;
     |{{#if:{{{indicator|}}}&lt;br /&gt;
        |&amp;lt;i class=&amp;quot;indicator&amp;quot; style=&amp;quot;background-color:{{{indicator|}}};box-shadow: 0 0 3px {{{indicator|}}}&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
      }}&lt;br /&gt;
   }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;infobox-label&amp;quot;&amp;gt;{{{1|}}}&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;infobox-value&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
  --&amp;gt;&amp;lt;ul class=&amp;quot;d-flex flex-column&amp;quot;&amp;gt;{{#arraymap:{{{2|}}}&lt;br /&gt;
    |{{#var:sep}}&lt;br /&gt;
    |@@@&lt;br /&gt;
    |{{#switch:{{{links|0}}}&lt;br /&gt;
       |1=&amp;lt;li class=&amp;quot;{{#switch: @@@|Singleplayer=order-0|Multiplayer=order-1|#default=order-2}}&amp;quot;&amp;gt;{{#var:indicator}}&amp;lt;!--&lt;br /&gt;
       --&amp;gt;{{#if: {{{form|}}}&lt;br /&gt;
            |{{#formredlink: form={{{form|}}}&lt;br /&gt;
               |link text=@@@&lt;br /&gt;
               |existing link text=@@@&lt;br /&gt;
               |target=@@@&lt;br /&gt;
             }}&lt;br /&gt;
            |[[@@@]]&lt;br /&gt;
          }}&amp;lt;/li&amp;gt;&lt;br /&gt;
       |#default=&amp;lt;li&amp;gt;{{#var:indicator}}@@@&amp;lt;/li&amp;gt;&lt;br /&gt;
     }}&lt;br /&gt;
    |&lt;br /&gt;
  }}&amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Datatables.js&amp;diff=2011</id>
		<title>MediaWiki:Datatables.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Datatables.js&amp;diff=2011"/>
		<updated>2026-06-23T08:27:58Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;var selectors = [&lt;br /&gt;
    &amp;quot;#games &amp;gt; table&amp;quot;,&lt;br /&gt;
    &amp;quot;[data-datatable=&#039;games&#039;] &amp;gt; table&amp;quot;,&lt;br /&gt;
    &amp;quot;[data-table=&#039;games&#039;] &amp;gt; table&amp;quot;,&lt;br /&gt;
    &amp;quot;[data-table-type=&#039;games&#039;] &amp;gt; table&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
var found = false;&lt;br /&gt;
for (var i = 0; i &amp;lt; selectors.length; i++) {&lt;br /&gt;
    if (document.querySelector(selectors[i])) {&lt;br /&gt;
        found = true;&lt;br /&gt;
        break;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ------------- DataTables Loader and initialisation ---------------- */&lt;br /&gt;
&lt;br /&gt;
if (found === true) {&lt;br /&gt;
    /* Load CSS. */&lt;br /&gt;
    const dtsource =&lt;br /&gt;
        &amp;quot;https://cdn.datatables.net/v/dt/moment-2.29.4/dt-2.3.7/b-3.2.6/b-colvis-3.2.6/b-html5-3.2.6/b-print-3.2.6/cc-1.2.0/date-1.6.3/fh-4.0.5/r-3.0.8/sc-2.4.3/sb-1.8.4/sp-2.3.5/sl-3.1.3/sr-1.4.3/datatables.min.css&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    if (!document.querySelector(&#039;link[href*=&amp;quot;datatables.min.css&amp;quot;]&#039;)) {&lt;br /&gt;
        $(&amp;quot;&amp;lt;link/&amp;gt;&amp;quot;, { rel: &amp;quot;stylesheet&amp;quot;, href: dtsource }).appendTo(&amp;quot;head&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!document.querySelector(&amp;quot;#datatable-styles&amp;quot;)) {&lt;br /&gt;
        $(&amp;quot;&amp;lt;style/&amp;gt;&amp;quot;, {&lt;br /&gt;
            id: &amp;quot;datatable-styles&amp;quot;,&lt;br /&gt;
            text: `&lt;br /&gt;
            &lt;br /&gt;
        table.dataTable &amp;gt; tbody &amp;gt; tr &amp;gt; td {&lt;br /&gt;
          padding-top: 0.25rem;&lt;br /&gt;
          padding-bottom: 0.25rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
		table.dataTable, table.dataTable * {&lt;br /&gt;
		  border: 0 !important;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        .dt-loading {&lt;br /&gt;
          display: block !important;&lt;br /&gt;
          min-height: 4rem;&lt;br /&gt;
          position: relative;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-loading &amp;gt; * {&lt;br /&gt;
          display: none !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-loading::before {&lt;br /&gt;
          animation: dt-loading 0.8s linear infinite;&lt;br /&gt;
          border: 0.25rem solid #dee2e6;&lt;br /&gt;
          border-radius: 50%;&lt;br /&gt;
          border-top-color: #6c757d;&lt;br /&gt;
          content: &amp;quot;&amp;quot;;&lt;br /&gt;
          height: 2rem;&lt;br /&gt;
          left: calc(50% - 1rem);&lt;br /&gt;
          position: absolute;&lt;br /&gt;
          top: 1rem;&lt;br /&gt;
          width: 2rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        @keyframes dt-loading {&lt;br /&gt;
          to {&lt;br /&gt;
            transform: rotate(360deg);&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
		div.dtsp-panesContainer div.dtsp-title {&lt;br /&gt;
			padding: 2px 0 !important;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        .dtsp-bordered, .dtsp-bordered:hover,&lt;br /&gt;
        .dtsp-searchPane, .dtsp-searchPane:hover {&lt;br /&gt;
          border: 0 !important;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
		.dtsp-topRow button:hover, .dtsp-topRow input:hover,&lt;br /&gt;
		.dtsp-topRow button:focus, .dtsp-topRow input:focus,&lt;br /&gt;
		.dtsp-topRow button, .dtsp-topRow input {&lt;br /&gt;
			margin: 0 !important;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        .dtsp-paneButton.clearButton {&lt;br /&gt;
          font-size: 2.5rem;&lt;br /&gt;
		  line-height: 0;&lt;br /&gt;
          padding-bottom: 6px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dtsp-paneButton.clearButton:not(:disabled) {&lt;br /&gt;
          color: #dc3545 !important;&lt;br /&gt;
		  font-size: 3rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
		.dtsp-topRow {&lt;br /&gt;
		  background-color: #1e2d59;&lt;br /&gt;
          background-image: url(/w/extensions/wikivisor/images/embossed-leather-pattern.png);&lt;br /&gt;
          background-blend-mode: darken;&lt;br /&gt;
          background-size: cover;&lt;br /&gt;
          border: 1px solid rgba(255,255,255,0.2);&lt;br /&gt;
          box-shadow: inset 0 0 30px rgba(0,0,0,0.75);&lt;br /&gt;
		}&lt;br /&gt;
        .dtsp-caret {&lt;br /&gt;
          align-items: end;&lt;br /&gt;
          display: inline-flex !important;&lt;br /&gt;
          font-size: 0 !important;&lt;br /&gt;
          height: 1rem;&lt;br /&gt;
          justify-content: center;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
          width: 1rem;&lt;br /&gt;
          align-items: center;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        div.dtsp-topRow button.dtsp-collapseButton span.dtsp-caret {&lt;br /&gt;
			top: unset !important;        	&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dtsp-caret::before {&lt;br /&gt;
          content: &amp;quot;\\2335&amp;quot;;&lt;br /&gt;
          font-size: 1rem;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        [aria-expanded=&amp;quot;true&amp;quot;] .dtsp-caret::before,&lt;br /&gt;
        .dtsp-caret-u::before,&lt;br /&gt;
        .dtsp-caret-up::before {&lt;br /&gt;
          content: &amp;quot;\\2303&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        div.dtsp-searchPane div.dtsp-topRow div.dtsp-searchCont input.dtsp-search {&lt;br /&gt;
		  padding-left: 8px;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toggle {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          background: var(--bs-primary, #0d6efd);&lt;br /&gt;
          border: 0;&lt;br /&gt;
          border-radius: 0.25rem;&lt;br /&gt;
          color: #fff;&lt;br /&gt;
          display: inline-flex;&lt;br /&gt;
          flex: 0 0 auto;&lt;br /&gt;
          font-weight: 600;&lt;br /&gt;
          gap: 0.375rem;&lt;br /&gt;
          line-height: 1.25;&lt;br /&gt;
          padding: 0.5rem 0.75rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toolbar {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          display: flex;&lt;br /&gt;
          gap: 0.75rem;&lt;br /&gt;
          justify-content: space-between;&lt;br /&gt;
          margin-bottom: 0.75rem;&lt;br /&gt;
          width: 100%;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toolbar .dt-search {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          display: flex;&lt;br /&gt;
          flex: 1 1 auto;&lt;br /&gt;
          gap: 0.5rem;&lt;br /&gt;
          justify-content: flex-end;&lt;br /&gt;
          margin: 0 !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toolbar .dt-search input {&lt;br /&gt;
          margin-left: 0 !important;&lt;br /&gt;
          max-width: 24rem;&lt;br /&gt;
          width: 100%;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        @media (max-width: 576px) {&lt;br /&gt;
          .dt-filter-toolbar {&lt;br /&gt;
            align-items: stretch;&lt;br /&gt;
            flex-direction: column;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          .dt-filter-toolbar .dt-filter-toggle,&lt;br /&gt;
          .dt-filter-toolbar .dt-search,&lt;br /&gt;
          .dt-filter-toolbar .dt-search input {&lt;br /&gt;
            max-width: none;&lt;br /&gt;
            width: 100%;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toggle:focus {&lt;br /&gt;
          box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);&lt;br /&gt;
          outline: 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toggle::before {&lt;br /&gt;
          content: &amp;quot;\\2630&amp;quot;;&lt;br /&gt;
          font-size: 1rem;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-backdrop {&lt;br /&gt;
          background: rgba(0, 0, 0, 0);&lt;br /&gt;
          inset: 0;&lt;br /&gt;
          opacity: 0;&lt;br /&gt;
          pointer-events: none;&lt;br /&gt;
          position: fixed;&lt;br /&gt;
          transition: opacity 180ms ease;&lt;br /&gt;
          z-index: 1040;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-backdrop.is-open {&lt;br /&gt;
          opacity: 1;&lt;br /&gt;
          pointer-events: auto;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel {&lt;br /&gt;
          background-color: #11161b !important;&lt;br /&gt;
          border-color: var(--bg-content);&lt;br /&gt;
          border-style: solid;&lt;br /&gt;
          border-width: 0.5rem;&lt;br /&gt;
          border-bottom-right-radius: 0.625rem;&lt;br /&gt;
          border-top-right-radius: 0.625rem;&lt;br /&gt;
          color: #fff;&lt;br /&gt;
          display: flex;&lt;br /&gt;
          flex-direction: column;&lt;br /&gt;
          height: 100vh;&lt;br /&gt;
          left: 0;&lt;br /&gt;
          max-width: min(92vw, 20rem);&lt;br /&gt;
          overflow: hidden;&lt;br /&gt;
          position: fixed;&lt;br /&gt;
          top: 0;&lt;br /&gt;
          transform: translateX(-100%);&lt;br /&gt;
          transition: transform 220ms ease;&lt;br /&gt;
          width: 20rem;&lt;br /&gt;
          z-index: 1050;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel.is-open {&lt;br /&gt;
          box-shadow: 0 0 20px rgba(255,255,255,0.2);&lt;br /&gt;
          transform: translateX(0);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__header {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          border-bottom: 1px solid var(--accent);&lt;br /&gt;
          display: flex;&lt;br /&gt;
          flex: 0 0 auto;&lt;br /&gt;
          justify-content: space-between;&lt;br /&gt;
          padding: 0.75rem 1rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__title {&lt;br /&gt;
          font-size: 1.4rem;&lt;br /&gt;
          font-weight: 600;&lt;br /&gt;
          margin: 0;&lt;br /&gt;
          border-bottom: 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__close {&lt;br /&gt;
          background: transparent;&lt;br /&gt;
          border: 0;&lt;br /&gt;
          color: rgb(124,124,124);&lt;br /&gt;
          font-size: 2.5rem;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
          padding: 0.125rem 0.375rem 6px 0.375rem;&lt;br /&gt;
          width: 35px;&lt;br /&gt;
          height: 35px;&lt;br /&gt;
		  display: flex;&lt;br /&gt;
		  align-items: center;&lt;br /&gt;
		  justify-content: center;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body {&lt;br /&gt;
          flex: 1 1 auto;&lt;br /&gt;
          overflow: auto;&lt;br /&gt;
          padding: 0.75rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body .dtsp-panesContainer {&lt;br /&gt;
          margin: 0 !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body .dtsp-searchPanes {&lt;br /&gt;
          display: block !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body .dtsp-searchPane {&lt;br /&gt;
          margin-bottom: 0.75rem !important;&lt;br /&gt;
          width: 100% !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        body.dt-filter-panel-open {&lt;br /&gt;
          overflow: hidden;&lt;br /&gt;
        }&lt;br /&gt;
		&lt;br /&gt;
		aside.is-open .sidebar-drawer {&lt;br /&gt;
			display: inline-block;&lt;br /&gt;
			right: 0;&lt;br /&gt;
			left: 284px;&lt;br /&gt;
			border: 0;&lt;br /&gt;
			z-index: 3;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		aside.dt-filter-panel {&lt;br /&gt;
			background-image: url(/w/images/d/de/File_Icon-Guardians-semitransparent.png);&lt;br /&gt;
			background-position: bottom;&lt;br /&gt;
			background-repeat: no-repeat;&lt;br /&gt;
		}&lt;br /&gt;
      `,&lt;br /&gt;
        }).appendTo(&amp;quot;head&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $(selectors.join(&amp;quot;,&amp;quot;)).addClass(&amp;quot;dt-loading&amp;quot;).attr(&amp;quot;aria-busy&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Load JavaScript. */&lt;br /&gt;
    $.when(&lt;br /&gt;
        mw.loader.getScript(&lt;br /&gt;
            &amp;quot;https://cdn.datatables.net/v/dt/moment-2.29.4/dt-2.3.7/b-3.2.6/b-colvis-3.2.6/b-html5-3.2.6/b-print-3.2.6/cc-1.2.0/date-1.6.3/fh-4.0.5/r-3.0.8/sc-2.4.3/sb-1.8.4/sp-2.3.5/sl-3.1.3/sr-1.4.3/datatables.min.js&amp;quot;,&lt;br /&gt;
        ),&lt;br /&gt;
    ).then(&lt;br /&gt;
        () =&amp;gt; {&lt;br /&gt;
            window.datatablesLoaded = true;&lt;br /&gt;
            initDataTable();&lt;br /&gt;
        },&lt;br /&gt;
        (e) =&amp;gt; mw.log.error(e.message),&lt;br /&gt;
    );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ------------- DataTables configuration ---------------------------- */&lt;br /&gt;
&lt;br /&gt;
function initDataTable() {&lt;br /&gt;
    function getDataTableColumnCount(table) {&lt;br /&gt;
        var headerRow =&lt;br /&gt;
            table.tHead &amp;amp;&amp;amp; table.tHead.rows.length&lt;br /&gt;
                ? table.tHead.rows[table.tHead.rows.length - 1]&lt;br /&gt;
                : null;&lt;br /&gt;
&lt;br /&gt;
        if (headerRow) {&lt;br /&gt;
            return headerRow.cells.length;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return table.rows.length ? table.rows[0].cells.length : 0;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function normaliseDataTableRows(table, expectedColumnCount) {&lt;br /&gt;
        $(&amp;quot;tbody tr&amp;quot;, table).each(function () {&lt;br /&gt;
            var row = this;&lt;br /&gt;
            var cellCount = row.cells.length;&lt;br /&gt;
&lt;br /&gt;
            if (cellCount === 1 &amp;amp;&amp;amp; row.cells[0].colSpan &amp;gt; 1) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            while (cellCount &amp;lt; expectedColumnCount) {&lt;br /&gt;
                row.appendChild(document.createElement(&amp;quot;td&amp;quot;));&lt;br /&gt;
                cellCount++;&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function waitForTableToSettle(table, callback) {&lt;br /&gt;
        var settleTimer;&lt;br /&gt;
        var timeoutTimer;&lt;br /&gt;
        var observer;&lt;br /&gt;
        var settled = false;&lt;br /&gt;
&lt;br /&gt;
        function finish() {&lt;br /&gt;
            if (settled) return;&lt;br /&gt;
&lt;br /&gt;
            settled = true;&lt;br /&gt;
            clearTimeout(settleTimer);&lt;br /&gt;
            clearTimeout(timeoutTimer);&lt;br /&gt;
&lt;br /&gt;
            if (observer) {&lt;br /&gt;
                observer.disconnect();&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            callback();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        function scheduleFinish() {&lt;br /&gt;
            clearTimeout(settleTimer);&lt;br /&gt;
            settleTimer = setTimeout(finish, 500);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (window.MutationObserver) {&lt;br /&gt;
            observer = new MutationObserver(scheduleFinish);&lt;br /&gt;
            observer.observe(table.tBodies[0] || table, {&lt;br /&gt;
                childList: true,&lt;br /&gt;
                subtree: true,&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        timeoutTimer = setTimeout(finish, 30000);&lt;br /&gt;
        scheduleFinish();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getAcceptsValues(html) {&lt;br /&gt;
        return (html || &amp;quot;&amp;quot;)&lt;br /&gt;
            .split(/&amp;lt;br\s*\/?&amp;gt;/i)&lt;br /&gt;
            .map((value) =&amp;gt; value.trim())&lt;br /&gt;
            .filter(Boolean);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeText(html) {&lt;br /&gt;
        var container = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var values = [];&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = html || &amp;quot;&amp;quot;;&lt;br /&gt;
        values.push(container.textContent || &amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        container.querySelectorAll(&amp;quot;*&amp;quot;).forEach(function (element) {&lt;br /&gt;
            [&amp;quot;alt&amp;quot;, &amp;quot;title&amp;quot;, &amp;quot;aria-label&amp;quot;, &amp;quot;class&amp;quot;, &amp;quot;src&amp;quot;].forEach(function (attribute) {&lt;br /&gt;
                var value = element.getAttribute(attribute);&lt;br /&gt;
&lt;br /&gt;
                if (value) {&lt;br /&gt;
                    values.push(value);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        return values.join(&amp;quot; &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeValue(html) {&lt;br /&gt;
        var text = getGameModeText(html)&lt;br /&gt;
            .toLowerCase()&lt;br /&gt;
            .replace(/[_-]+/g, &amp;quot; &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        if (/\b(single\s*player|singleplayer|solo|sp)\b/.test(text)) {&lt;br /&gt;
            return &amp;quot;SP&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (/\b(multi\s*player|multiplayer|mp)\b/.test(text)) {&lt;br /&gt;
            return &amp;quot;MP&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (/\b(co\s*op|coop|cooperative)\b/.test(text)) {&lt;br /&gt;
            return &amp;quot;Coop&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeValues(html) {&lt;br /&gt;
        var selectedModes = new Set(getAcceptsValues(html)&lt;br /&gt;
            .map(getGameModeValue)&lt;br /&gt;
            .filter(Boolean));&lt;br /&gt;
&lt;br /&gt;
        return [&amp;quot;SP&amp;quot;, &amp;quot;MP&amp;quot;, &amp;quot;Coop&amp;quot;].filter(function (mode) {&lt;br /&gt;
            return selectedModes.has(mode);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeDisplayValue(html, mode) {&lt;br /&gt;
        var container = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var link;&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = html || &amp;quot;&amp;quot;;&lt;br /&gt;
        link = container.querySelector(&amp;quot;a[href]&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        if (!link) {&lt;br /&gt;
            return mode;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        link = link.cloneNode(false);&lt;br /&gt;
        link.textContent = mode;&lt;br /&gt;
&lt;br /&gt;
        return link.outerHTML;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeDisplayValues(html) {&lt;br /&gt;
        var valuesByMode = {};&lt;br /&gt;
&lt;br /&gt;
        getAcceptsValues(html).forEach(function (value) {&lt;br /&gt;
            var mode = getGameModeValue(value);&lt;br /&gt;
&lt;br /&gt;
            if (mode &amp;amp;&amp;amp; !valuesByMode[mode]) {&lt;br /&gt;
                valuesByMode[mode] = getGameModeDisplayValue(value, mode);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        return [&amp;quot;SP&amp;quot;, &amp;quot;MP&amp;quot;, &amp;quot;Coop&amp;quot;]&lt;br /&gt;
            .filter(function (mode) {&lt;br /&gt;
                return Object.prototype.hasOwnProperty.call(valuesByMode, mode);&lt;br /&gt;
            })&lt;br /&gt;
            .map(function (mode) {&lt;br /&gt;
                return valuesByMode[mode];&lt;br /&gt;
            });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function normaliseColumnName(value) {&lt;br /&gt;
        return String(value || &amp;quot;&amp;quot;)&lt;br /&gt;
            .trim()&lt;br /&gt;
            .toLowerCase()&lt;br /&gt;
            .replace(/[\s_-]+/g, &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getTableConfigElement(table) {&lt;br /&gt;
        return table.closest(&lt;br /&gt;
            &amp;quot;[data-hidden-columns], [data-hide-columns], [data-dt-hidden-columns], [data-dt-hide-columns], [data-first-column-name], [data-first-column], [data-page-column-name], [data-dt-first-column-name]&amp;quot;,&lt;br /&gt;
        ) || table.parentElement;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getFirstColumnName(table) {&lt;br /&gt;
        var configElement = getTableConfigElement(table);&lt;br /&gt;
        var columnName = configElement&lt;br /&gt;
            ? configElement.getAttribute(&amp;quot;data-first-column-name&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-first-column&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-page-column-name&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-dt-first-column-name&amp;quot;)&lt;br /&gt;
            : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        return String(columnName || &amp;quot;Page&amp;quot;).trim() || &amp;quot;Page&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHiddenColumnIndexes(table, titles) {&lt;br /&gt;
        var configElement = getTableConfigElement(table);&lt;br /&gt;
        var rawValue = configElement&lt;br /&gt;
            ? configElement.getAttribute(&amp;quot;data-hidden-columns&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-hide-columns&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-dt-hidden-columns&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-dt-hide-columns&amp;quot;)&lt;br /&gt;
            : &amp;quot;&amp;quot;;&lt;br /&gt;
        var titleIndexes = {};&lt;br /&gt;
        var hiddenIndexes = new Set();&lt;br /&gt;
&lt;br /&gt;
        titles.forEach(function (title, index) {&lt;br /&gt;
            titleIndexes[normaliseColumnName(title)] = index;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        String(rawValue || &amp;quot;&amp;quot;)&lt;br /&gt;
            .split(/[,\|]/)&lt;br /&gt;
            .map(function (value) {&lt;br /&gt;
                return value.trim();&lt;br /&gt;
            })&lt;br /&gt;
            .filter(Boolean)&lt;br /&gt;
            .forEach(function (value) {&lt;br /&gt;
                var numberValue = Number(value);&lt;br /&gt;
                var normalisedValue = normaliseColumnName(value);&lt;br /&gt;
&lt;br /&gt;
                if (Number.isInteger(numberValue) &amp;amp;&amp;amp; numberValue &amp;gt;= 0 &amp;amp;&amp;amp; numberValue &amp;lt; titles.length) {&lt;br /&gt;
                    hiddenIndexes.add(numberValue);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                if (Object.prototype.hasOwnProperty.call(titleIndexes, normalisedValue)) {&lt;br /&gt;
                    hiddenIndexes.add(titleIndexes[normalisedValue]);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
        return hiddenIndexes;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getTableData(table, columnCount) {&lt;br /&gt;
        return Array.from(table.tBodies[0] ? table.tBodies[0].rows : [])&lt;br /&gt;
            .filter((row) =&amp;gt; !(row.cells.length === 1 &amp;amp;&amp;amp; row.cells[0].colSpan &amp;gt; 1))&lt;br /&gt;
            .map((row) =&amp;gt; {&lt;br /&gt;
                var data = Array.from(row.cells, (cell) =&amp;gt; cell.innerHTML.trim());&lt;br /&gt;
&lt;br /&gt;
                while (data.length &amp;lt; columnCount) {&lt;br /&gt;
                    data.push(&amp;quot;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                return data.slice(0, columnCount);&lt;br /&gt;
            });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildTableLayout(table, titles) {&lt;br /&gt;
        var headerRow = document.createElement(&amp;quot;tr&amp;quot;);&lt;br /&gt;
        var tableHead = document.createElement(&amp;quot;thead&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        titles.forEach((title) =&amp;gt; {&lt;br /&gt;
            var headerCell = document.createElement(&amp;quot;th&amp;quot;);&lt;br /&gt;
            headerCell.textContent = title;&lt;br /&gt;
            headerRow.appendChild(headerCell);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        table.replaceChildren(tableHead, document.createElement(&amp;quot;tbody&amp;quot;));&lt;br /&gt;
        tableHead.appendChild(headerRow);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function suppressSearchPaneBorders(container) {&lt;br /&gt;
        if (!container) {&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        function removeBorderClass() {&lt;br /&gt;
            container.querySelectorAll(&amp;quot;.dtsp-bordered&amp;quot;).forEach(function (element) {&lt;br /&gt;
                element.classList.remove(&amp;quot;dtsp-bordered&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        removeBorderClass();&lt;br /&gt;
&lt;br /&gt;
        new MutationObserver(removeBorderClass).observe(container, {&lt;br /&gt;
            attributes: true,&lt;br /&gt;
            attributeFilter: [&amp;quot;class&amp;quot;],&lt;br /&gt;
            childList: true,&lt;br /&gt;
            subtree: true,&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function openFellowshipLinksInNewTab(dataTable) {&lt;br /&gt;
        dataTable&lt;br /&gt;
            .column(0)&lt;br /&gt;
            .nodes()&lt;br /&gt;
            .toArray()&lt;br /&gt;
            .forEach(function (cell) {&lt;br /&gt;
                cell.querySelectorAll(&amp;quot;a&amp;quot;).forEach(function (link) {&lt;br /&gt;
                    link.target = &amp;quot;_blank&amp;quot;;&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function setupFilterToolbar(wrapper, toggle) {&lt;br /&gt;
        var toolbar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var search = wrapper.querySelector(&amp;quot;.dt-search&amp;quot;);&lt;br /&gt;
        var searchRow = search ? search.closest(&amp;quot;.dt-layout-row&amp;quot;) : null;&lt;br /&gt;
&lt;br /&gt;
        toolbar.className = &amp;quot;dt-filter-toolbar&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (searchRow &amp;amp;&amp;amp; searchRow.parentNode) {&lt;br /&gt;
            searchRow.parentNode.insertBefore(toolbar, searchRow);&lt;br /&gt;
        } else {&lt;br /&gt;
            wrapper.insertBefore(toolbar, wrapper.firstChild);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        toolbar.appendChild(toggle);&lt;br /&gt;
&lt;br /&gt;
        if (search) {&lt;br /&gt;
            toolbar.appendChild(search);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (searchRow &amp;amp;&amp;amp; searchRow.parentNode &amp;amp;&amp;amp; !searchRow.querySelector(&amp;quot;.dt-search&amp;quot;)) {&lt;br /&gt;
            searchRow.remove();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getCurrentPageName() {&lt;br /&gt;
        var pageName = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (window.mw &amp;amp;&amp;amp; mw.config) {&lt;br /&gt;
            pageName = mw.config.get(&amp;quot;wgTitle&amp;quot;) || mw.config.get(&amp;quot;wgPageName&amp;quot;) || &amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!pageName) {&lt;br /&gt;
            pageName = (document.querySelector(&amp;quot;#firstHeading&amp;quot;) || {}).textContent || document.title || &amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return pageName.replace(/_/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getFilterPanelTitle(titles, hiddenColumnIndexes) {&lt;br /&gt;
        var pageName = getCurrentPageName();&lt;br /&gt;
&lt;br /&gt;
        if (hiddenColumnIndexes &amp;amp;&amp;amp; hiddenColumnIndexes.size === 1) {&lt;br /&gt;
            return titles[Array.from(hiddenColumnIndexes)[0]] + &amp;quot;: &amp;quot; + pageName;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return pageName;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function setupFilterOffCanvas(dataTable, table, titles, hiddenColumnIndexes) {&lt;br /&gt;
        var wrapper = table.closest(&amp;quot;.dt-container&amp;quot;) || table.parentNode;&lt;br /&gt;
        var panes = wrapper ? wrapper.querySelector(&amp;quot;.dtsp-panesContainer&amp;quot;) : null;&lt;br /&gt;
&lt;br /&gt;
        if (!wrapper || !panes) {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (wrapper.querySelector(&amp;quot;.dt-filter-toggle&amp;quot;)) {&lt;br /&gt;
            return document.getElementById(wrapper.querySelector(&amp;quot;.dt-filter-toggle&amp;quot;).getAttribute(&amp;quot;aria-controls&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var toggle = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
        var panel = document.createElement(&amp;quot;aside&amp;quot;);&lt;br /&gt;
        var backdrop = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var drawer = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
        var header = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var title = document.createElement(&amp;quot;h2&amp;quot;);&lt;br /&gt;
        var close = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
        var body = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var panelId = &amp;quot;dt-filter-panel-&amp;quot; + $(&amp;quot;.dt-filter-panel&amp;quot;).length;&lt;br /&gt;
        var lastFocusedElement = null;&lt;br /&gt;
&lt;br /&gt;
        toggle.type = &amp;quot;button&amp;quot;;&lt;br /&gt;
        toggle.className = &amp;quot;dt-filter-toggle&amp;quot;;&lt;br /&gt;
        toggle.textContent = &amp;quot;Filters&amp;quot;;&lt;br /&gt;
        toggle.setAttribute(&amp;quot;aria-controls&amp;quot;, panelId);&lt;br /&gt;
        toggle.setAttribute(&amp;quot;aria-expanded&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        panel.id = panelId;&lt;br /&gt;
        panel.className = &amp;quot;dt-filter-panel&amp;quot;;&lt;br /&gt;
        panel.setAttribute(&amp;quot;aria-hidden&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
        panel.setAttribute(&amp;quot;aria-label&amp;quot;, &amp;quot;Data filters&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        backdrop.className = &amp;quot;dt-filter-backdrop&amp;quot;;&lt;br /&gt;
        drawer.className = &amp;quot;sidebar-drawer&amp;quot;;&lt;br /&gt;
        drawer.setAttribute(&amp;quot;type&amp;quot;, &amp;quot;button&amp;quot;);&lt;br /&gt;
        drawer.setAttribute(&amp;quot;tabindex&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        header.className = &amp;quot;dt-filter-panel__header&amp;quot;;&lt;br /&gt;
        title.className = &amp;quot;dt-filter-panel__title&amp;quot;;&lt;br /&gt;
        title.textContent = getFilterPanelTitle(titles, hiddenColumnIndexes);&lt;br /&gt;
        close.type = &amp;quot;button&amp;quot;;&lt;br /&gt;
        close.className = &amp;quot;dt-filter-panel__close&amp;quot;;&lt;br /&gt;
        close.setAttribute(&amp;quot;aria-label&amp;quot;, &amp;quot;Close filters&amp;quot;);&lt;br /&gt;
        close.innerHTML = &amp;quot;&amp;amp;times;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        body.className = &amp;quot;dt-filter-panel__body&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        header.append(title, close);&lt;br /&gt;
        body.appendChild(panes);&lt;br /&gt;
        panel.append(drawer, header, body);&lt;br /&gt;
&lt;br /&gt;
        setupFilterToolbar(wrapper, toggle);&lt;br /&gt;
        document.body.append(backdrop, panel);&lt;br /&gt;
&lt;br /&gt;
        function openPanel() {&lt;br /&gt;
            lastFocusedElement = document.activeElement;&lt;br /&gt;
            panel.classList.add(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            backdrop.classList.add(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            document.body.classList.add(&amp;quot;dt-filter-panel-open&amp;quot;);&lt;br /&gt;
            panel.setAttribute(&amp;quot;aria-hidden&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
            toggle.setAttribute(&amp;quot;aria-expanded&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
            close.focus();&lt;br /&gt;
            dataTable.columns.adjust();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        function closePanel() {&lt;br /&gt;
            panel.classList.remove(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            backdrop.classList.remove(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            document.body.classList.remove(&amp;quot;dt-filter-panel-open&amp;quot;);&lt;br /&gt;
            panel.setAttribute(&amp;quot;aria-hidden&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
            toggle.setAttribute(&amp;quot;aria-expanded&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (lastFocusedElement &amp;amp;&amp;amp; document.contains(lastFocusedElement)) {&lt;br /&gt;
                lastFocusedElement.focus();&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            dataTable.columns.adjust();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        toggle.addEventListener(&amp;quot;click&amp;quot;, openPanel);&lt;br /&gt;
        close.addEventListener(&amp;quot;click&amp;quot;, closePanel);&lt;br /&gt;
        drawer.addEventListener(&amp;quot;click&amp;quot;, closePanel);&lt;br /&gt;
        backdrop.addEventListener(&amp;quot;click&amp;quot;, closePanel);&lt;br /&gt;
&lt;br /&gt;
        document.addEventListener(&amp;quot;keydown&amp;quot;, function (event) {&lt;br /&gt;
            if (event.key === &amp;quot;Escape&amp;quot; &amp;amp;&amp;amp; panel.classList.contains(&amp;quot;is-open&amp;quot;)) {&lt;br /&gt;
                closePanel();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        return panel;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $(&amp;quot;.dataTable&amp;quot;)&lt;br /&gt;
        .each(function () {&lt;br /&gt;
            var table = this;&lt;br /&gt;
&lt;br /&gt;
            waitForTableToSettle(table, function () {&lt;br /&gt;
                if ($.fn.dataTable.isDataTable(table)) {&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                normaliseDataTableRows(table, getDataTableColumnCount(table));&lt;br /&gt;
&lt;br /&gt;
                $(table).DataTable({&lt;br /&gt;
                    dom: &amp;quot;f&amp;quot;,&lt;br /&gt;
                    language: {&lt;br /&gt;
                        search: &amp;quot;&amp;quot;,&lt;br /&gt;
                        searchPlaceholder: &amp;quot;Search&amp;quot;,&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            title: {&lt;br /&gt;
                                _: &#039;Filters: %d&#039;,&lt;br /&gt;
                                0: &#039;&#039;&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                    },&lt;br /&gt;
                    retrieve: true,&lt;br /&gt;
                    order: [[0, &amp;quot;asc&amp;quot;]],&lt;br /&gt;
                    pageLength: 1000,&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    $(selectors.join(&amp;quot;,&amp;quot;)).each(function () {&lt;br /&gt;
        var table = this;&lt;br /&gt;
&lt;br /&gt;
        waitForTableToSettle(table, function () {&lt;br /&gt;
            if ($.fn.dataTable.isDataTable(table)) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            var titles = [&lt;br /&gt;
                getFirstColumnName(table), &amp;quot;Developer&amp;quot;, &amp;quot;Publisher&amp;quot;, &amp;quot;Genre&amp;quot;, &amp;quot;Platform&amp;quot;, &amp;quot;Mode&amp;quot;, &amp;quot;Released&amp;quot;, &amp;quot;Category&amp;quot;&lt;br /&gt;
            ];&lt;br /&gt;
            var hiddenColumnIndexes = getHiddenColumnIndexes(table, titles);&lt;br /&gt;
            var paneIndexes = [1, 2, 3, 4, 5, 7].filter(function (paneIndex) {&lt;br /&gt;
                return !hiddenColumnIndexes.has(paneIndex);&lt;br /&gt;
            });&lt;br /&gt;
            var data = getTableData(table, titles.length);&lt;br /&gt;
&lt;br /&gt;
            buildTableLayout(table, titles);&lt;br /&gt;
&lt;br /&gt;
            var dataTable = new DataTable(table, {&lt;br /&gt;
                columns: [&lt;br /&gt;
                    {&lt;br /&gt;
                        title: titles[0],&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(0),&lt;br /&gt;
                        render: function (data, type) {&lt;br /&gt;
                            if (type === &amp;quot;display&amp;quot;) {&lt;br /&gt;
                                return (&lt;br /&gt;
                                    &#039;&amp;lt;span style=&amp;quot;display: list-item; margin-left: 1.25rem; white-space: nowrap&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                                    data +&lt;br /&gt;
                                    &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
                                );&lt;br /&gt;
                            }&lt;br /&gt;
&lt;br /&gt;
                            return data;&lt;br /&gt;
                        },&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: false,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Developer&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(1),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(1),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Publisher&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(2),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(2),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Genre&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(3),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(3),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Platform&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(4),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(4),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Mode&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(5),&lt;br /&gt;
                        render: {&lt;br /&gt;
                            display: function (data) {&lt;br /&gt;
                                return getGameModeDisplayValues(data).join(&amp;quot;, &amp;quot;);&lt;br /&gt;
                            },&lt;br /&gt;
                            sp: function (data) {&lt;br /&gt;
                                return getGameModeValues(data);&lt;br /&gt;
                            },&lt;br /&gt;
                        },&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(5),&lt;br /&gt;
                            orthogonal: &amp;quot;sp&amp;quot;,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Released&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(6),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(6),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Category&amp;quot;,&lt;br /&gt;
                        visible: false,&lt;br /&gt;
                        render: {&lt;br /&gt;
                            display: function (data) {&lt;br /&gt;
                                return data;&lt;br /&gt;
                            },&lt;br /&gt;
                            sp: function (data) {&lt;br /&gt;
                                return getAcceptsValues(data);&lt;br /&gt;
                            },&lt;br /&gt;
                        },&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: true,&lt;br /&gt;
                            orthogonal: &amp;quot;sp&amp;quot;,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                ],&lt;br /&gt;
                layout: {&lt;br /&gt;
                    topStart: null,&lt;br /&gt;
                    topEnd: null,&lt;br /&gt;
                    top2: {&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            cascadePanes: true,&lt;br /&gt;
                            initCollapsed: true,&lt;br /&gt;
                            layout: &amp;quot;columns-1&amp;quot;,&lt;br /&gt;
                            columns: paneIndexes,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    top1: {&lt;br /&gt;
                        search: {&lt;br /&gt;
                            className: &amp;quot;mx-0 w-100&amp;quot;,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                },&lt;br /&gt;
                order: [[0, &amp;quot;asc&amp;quot;]],&lt;br /&gt;
                language: {&lt;br /&gt;
                    search: &amp;quot;&amp;quot;,&lt;br /&gt;
                    searchPlaceholder: &amp;quot;Search&amp;quot;,&lt;br /&gt;
                    searchPanes: {&lt;br /&gt;
                        title: {&lt;br /&gt;
                            _: &#039;Filters: %d&#039;,&lt;br /&gt;
                            0: &#039;&#039;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                },&lt;br /&gt;
                paging: false,&lt;br /&gt;
                searchDelay: 400,&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            var lastGlobalSearch = dataTable.search();&lt;br /&gt;
&lt;br /&gt;
            dataTable.on(&amp;quot;draw.dt&amp;quot;, function () {&lt;br /&gt;
                var globalSearch = dataTable.search();&lt;br /&gt;
&lt;br /&gt;
                openFellowshipLinksInNewTab(dataTable);&lt;br /&gt;
&lt;br /&gt;
                if (globalSearch === lastGlobalSearch) {&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                lastGlobalSearch = globalSearch;&lt;br /&gt;
&lt;br /&gt;
                paneIndexes.forEach(function (paneIndex) {&lt;br /&gt;
                    dataTable.searchPanes.rebuildPane(paneIndex, true);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            var filterPanel;&lt;br /&gt;
&lt;br /&gt;
            dataTable.rows.add(data).draw();&lt;br /&gt;
            $(table)&lt;br /&gt;
                .removeClass(&amp;quot;dt-loading&amp;quot;)&lt;br /&gt;
                .removeAttr(&amp;quot;aria-busy&amp;quot;)&lt;br /&gt;
                .show();&lt;br /&gt;
            dataTable.searchPanes.rebuildPane();&lt;br /&gt;
            filterPanel = setupFilterOffCanvas(dataTable, table, titles, hiddenColumnIndexes);&lt;br /&gt;
            suppressSearchPaneBorders(filterPanel);&lt;br /&gt;
            dataTable.columns.adjust().draw(false);&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Datatables.js&amp;diff=2010</id>
		<title>MediaWiki:Datatables.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Datatables.js&amp;diff=2010"/>
		<updated>2026-06-23T08:26:01Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;var selectors = [&lt;br /&gt;
    &amp;quot;#games &amp;gt; table&amp;quot;,&lt;br /&gt;
    &amp;quot;[data-datatable=&#039;games&#039;] &amp;gt; table&amp;quot;,&lt;br /&gt;
    &amp;quot;[data-table=&#039;games&#039;] &amp;gt; table&amp;quot;,&lt;br /&gt;
    &amp;quot;[data-table-type=&#039;games&#039;] &amp;gt; table&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
var found = false;&lt;br /&gt;
for (var i = 0; i &amp;lt; selectors.length; i++) {&lt;br /&gt;
    if (document.querySelector(selectors[i])) {&lt;br /&gt;
        found = true;&lt;br /&gt;
        break;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ------------- DataTables Loader and initialisation ---------------- */&lt;br /&gt;
&lt;br /&gt;
if (found === true) {&lt;br /&gt;
    /* Load CSS. */&lt;br /&gt;
    const dtsource =&lt;br /&gt;
        &amp;quot;https://cdn.datatables.net/v/dt/moment-2.29.4/dt-2.3.7/b-3.2.6/b-colvis-3.2.6/b-html5-3.2.6/b-print-3.2.6/cc-1.2.0/date-1.6.3/fh-4.0.5/r-3.0.8/sc-2.4.3/sb-1.8.4/sp-2.3.5/sl-3.1.3/sr-1.4.3/datatables.min.css&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    if (!document.querySelector(&#039;link[href*=&amp;quot;datatables.min.css&amp;quot;]&#039;)) {&lt;br /&gt;
        $(&amp;quot;&amp;lt;link/&amp;gt;&amp;quot;, { rel: &amp;quot;stylesheet&amp;quot;, href: dtsource }).appendTo(&amp;quot;head&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!document.querySelector(&amp;quot;#datatable-styles&amp;quot;)) {&lt;br /&gt;
        $(&amp;quot;&amp;lt;style/&amp;gt;&amp;quot;, {&lt;br /&gt;
            id: &amp;quot;datatable-styles&amp;quot;,&lt;br /&gt;
            text: `&lt;br /&gt;
            &lt;br /&gt;
        table.dataTable &amp;gt; tbody &amp;gt; tr &amp;gt; td {&lt;br /&gt;
          padding-top: 0.25rem;&lt;br /&gt;
          padding-bottom: 0.25rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
		table.dataTable, table.dataTable * {&lt;br /&gt;
		  border: 0 !important;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        .dt-loading {&lt;br /&gt;
          display: block !important;&lt;br /&gt;
          min-height: 4rem;&lt;br /&gt;
          position: relative;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-loading &amp;gt; * {&lt;br /&gt;
          display: none !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-loading::before {&lt;br /&gt;
          animation: dt-loading 0.8s linear infinite;&lt;br /&gt;
          border: 0.25rem solid #dee2e6;&lt;br /&gt;
          border-radius: 50%;&lt;br /&gt;
          border-top-color: #6c757d;&lt;br /&gt;
          content: &amp;quot;&amp;quot;;&lt;br /&gt;
          height: 2rem;&lt;br /&gt;
          left: calc(50% - 1rem);&lt;br /&gt;
          position: absolute;&lt;br /&gt;
          top: 1rem;&lt;br /&gt;
          width: 2rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        @keyframes dt-loading {&lt;br /&gt;
          to {&lt;br /&gt;
            transform: rotate(360deg);&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
		div.dtsp-panesContainer div.dtsp-title {&lt;br /&gt;
			padding: 2px 0 !important;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        .dtsp-bordered, .dtsp-bordered:hover,&lt;br /&gt;
        .dtsp-searchPane, .dtsp-searchPane:hover {&lt;br /&gt;
          border: 0 !important;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
		.dtsp-topRow button:hover, .dtsp-topRow input:hover,&lt;br /&gt;
		.dtsp-topRow button:focus, .dtsp-topRow input:focus,&lt;br /&gt;
		.dtsp-topRow button, .dtsp-topRow input {&lt;br /&gt;
			margin: 0 !important;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        .dtsp-paneButton.clearButton {&lt;br /&gt;
          font-size: 2.5rem;&lt;br /&gt;
		  line-height: 0;&lt;br /&gt;
          padding-bottom: 6px;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dtsp-paneButton.clearButton:not(:disabled) {&lt;br /&gt;
          color: #dc3545 !important;&lt;br /&gt;
		  font-size: 3rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
		.dtsp-topRow {&lt;br /&gt;
		  background-color: #1e2d59;&lt;br /&gt;
          background-image: url(/w/extensions/wikivisor/images/embossed-leather-pattern.png);&lt;br /&gt;
          background-blend-mode: darken;&lt;br /&gt;
          background-size: cover;&lt;br /&gt;
          border: 1px solid rgba(255,255,255,0.2);&lt;br /&gt;
          box-shadow: inset 0 0 30px rgba(0,0,0,0.75);&lt;br /&gt;
		}&lt;br /&gt;
        .dtsp-caret {&lt;br /&gt;
          align-items: end;&lt;br /&gt;
          display: inline-flex !important;&lt;br /&gt;
          font-size: 0 !important;&lt;br /&gt;
          height: 1rem;&lt;br /&gt;
          justify-content: center;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
          width: 1rem;&lt;br /&gt;
          align-items: center;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        div.dtsp-topRow button.dtsp-collapseButton span.dtsp-caret {&lt;br /&gt;
			top: unset !important;        	&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dtsp-caret::before {&lt;br /&gt;
          content: &amp;quot;\\2335&amp;quot;;&lt;br /&gt;
          font-size: 1rem;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        [aria-expanded=&amp;quot;true&amp;quot;] .dtsp-caret::before,&lt;br /&gt;
        .dtsp-caret-u::before,&lt;br /&gt;
        .dtsp-caret-up::before {&lt;br /&gt;
          content: &amp;quot;\\2303&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        div.dtsp-searchPane div.dtsp-topRow div.dtsp-searchCont input.dtsp-search {&lt;br /&gt;
		  padding-left: 8px;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toggle {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          background: var(--bs-primary, #0d6efd);&lt;br /&gt;
          border: 0;&lt;br /&gt;
          border-radius: 0.25rem;&lt;br /&gt;
          color: #fff;&lt;br /&gt;
          display: inline-flex;&lt;br /&gt;
          flex: 0 0 auto;&lt;br /&gt;
          font-weight: 600;&lt;br /&gt;
          gap: 0.375rem;&lt;br /&gt;
          line-height: 1.25;&lt;br /&gt;
          padding: 0.5rem 0.75rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toolbar {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          display: flex;&lt;br /&gt;
          gap: 0.75rem;&lt;br /&gt;
          justify-content: space-between;&lt;br /&gt;
          margin-bottom: 0.75rem;&lt;br /&gt;
          width: 100%;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toolbar .dt-search {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          display: flex;&lt;br /&gt;
          flex: 1 1 auto;&lt;br /&gt;
          gap: 0.5rem;&lt;br /&gt;
          justify-content: flex-end;&lt;br /&gt;
          margin: 0 !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toolbar .dt-search input {&lt;br /&gt;
          margin-left: 0 !important;&lt;br /&gt;
          max-width: 24rem;&lt;br /&gt;
          width: 100%;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        @media (max-width: 576px) {&lt;br /&gt;
          .dt-filter-toolbar {&lt;br /&gt;
            align-items: stretch;&lt;br /&gt;
            flex-direction: column;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          .dt-filter-toolbar .dt-filter-toggle,&lt;br /&gt;
          .dt-filter-toolbar .dt-search,&lt;br /&gt;
          .dt-filter-toolbar .dt-search input {&lt;br /&gt;
            max-width: none;&lt;br /&gt;
            width: 100%;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toggle:focus {&lt;br /&gt;
          box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);&lt;br /&gt;
          outline: 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-toggle::before {&lt;br /&gt;
          content: &amp;quot;\\2630&amp;quot;;&lt;br /&gt;
          font-size: 1rem;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-backdrop {&lt;br /&gt;
          background: rgba(0, 0, 0, 0);&lt;br /&gt;
          inset: 0;&lt;br /&gt;
          opacity: 0;&lt;br /&gt;
          pointer-events: none;&lt;br /&gt;
          position: fixed;&lt;br /&gt;
          transition: opacity 180ms ease;&lt;br /&gt;
          z-index: 1040;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-backdrop.is-open {&lt;br /&gt;
          opacity: 1;&lt;br /&gt;
          pointer-events: auto;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel {&lt;br /&gt;
          background-color: #11161b !important;&lt;br /&gt;
          border-color: var(--bg-content);&lt;br /&gt;
          border-style: solid;&lt;br /&gt;
          border-width: 0.5rem;&lt;br /&gt;
          border-bottom-right-radius: 0.625rem;&lt;br /&gt;
          border-top-right-radius: 0.625rem;&lt;br /&gt;
          color: #fff;&lt;br /&gt;
          display: flex;&lt;br /&gt;
          flex-direction: column;&lt;br /&gt;
          height: 100vh;&lt;br /&gt;
          left: 0;&lt;br /&gt;
          max-width: min(92vw, 20rem);&lt;br /&gt;
          overflow: hidden;&lt;br /&gt;
          position: fixed;&lt;br /&gt;
          top: 0;&lt;br /&gt;
          transform: translateX(-100%);&lt;br /&gt;
          transition: transform 220ms ease;&lt;br /&gt;
          width: 20rem;&lt;br /&gt;
          z-index: 1050;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel.is-open {&lt;br /&gt;
          box-shadow: 0 0 20px rgba(255,255,255,0.2);&lt;br /&gt;
          transform: translateX(0);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__header {&lt;br /&gt;
          align-items: center;&lt;br /&gt;
          border-bottom: 1px solid var(--accent);&lt;br /&gt;
          display: flex;&lt;br /&gt;
          flex: 0 0 auto;&lt;br /&gt;
          justify-content: space-between;&lt;br /&gt;
          padding: 0.75rem 1rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__title {&lt;br /&gt;
          font-size: 1.4rem;&lt;br /&gt;
          font-weight: 600;&lt;br /&gt;
          margin: 0;&lt;br /&gt;
          border-bottom: 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__close {&lt;br /&gt;
          background: transparent;&lt;br /&gt;
          border: 0;&lt;br /&gt;
          color: rgb(124,124,124);&lt;br /&gt;
          font-size: 2.5rem;&lt;br /&gt;
          line-height: 1;&lt;br /&gt;
          padding: 0.125rem 0.375rem 6px 0.375rem;&lt;br /&gt;
          width: 35px;&lt;br /&gt;
          height: 35px;&lt;br /&gt;
		  display: flex;&lt;br /&gt;
		  align-items: center;&lt;br /&gt;
		  justify-content: center;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body {&lt;br /&gt;
          flex: 1 1 auto;&lt;br /&gt;
          overflow: auto;&lt;br /&gt;
          padding: 0.75rem;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body .dtsp-panesContainer {&lt;br /&gt;
          margin: 0 !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body .dtsp-searchPanes {&lt;br /&gt;
          display: block !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        .dt-filter-panel__body .dtsp-searchPane {&lt;br /&gt;
          margin-bottom: 0.75rem !important;&lt;br /&gt;
          width: 100% !important;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        body.dt-filter-panel-open {&lt;br /&gt;
          overflow: hidden;&lt;br /&gt;
        }&lt;br /&gt;
		&lt;br /&gt;
		aside.is-open .sidebar-drawer {&lt;br /&gt;
			display: inline-block;&lt;br /&gt;
			right: 0;&lt;br /&gt;
			left: 284px;&lt;br /&gt;
			border: 0;&lt;br /&gt;
			z-index: 3;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		aside.dt-filter-panel {&lt;br /&gt;
			background-image: url(/w/images/d/de/File_Icon-Guardians-semitransparent.png);&lt;br /&gt;
			background-position: bottom;&lt;br /&gt;
			background-repeat: no-repeat;&lt;br /&gt;
		}&lt;br /&gt;
      `,&lt;br /&gt;
        }).appendTo(&amp;quot;head&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $(selectors.join(&amp;quot;,&amp;quot;)).addClass(&amp;quot;dt-loading&amp;quot;).attr(&amp;quot;aria-busy&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Load JavaScript. */&lt;br /&gt;
    $.when(&lt;br /&gt;
        mw.loader.getScript(&lt;br /&gt;
            &amp;quot;https://cdn.datatables.net/v/dt/moment-2.29.4/dt-2.3.7/b-3.2.6/b-colvis-3.2.6/b-html5-3.2.6/b-print-3.2.6/cc-1.2.0/date-1.6.3/fh-4.0.5/r-3.0.8/sc-2.4.3/sb-1.8.4/sp-2.3.5/sl-3.1.3/sr-1.4.3/datatables.min.js&amp;quot;,&lt;br /&gt;
        ),&lt;br /&gt;
    ).then(&lt;br /&gt;
        () =&amp;gt; {&lt;br /&gt;
            window.datatablesLoaded = true;&lt;br /&gt;
            initDataTable();&lt;br /&gt;
        },&lt;br /&gt;
        (e) =&amp;gt; mw.log.error(e.message),&lt;br /&gt;
    );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ------------- DataTables configuration ---------------------------- */&lt;br /&gt;
&lt;br /&gt;
function initDataTable() {&lt;br /&gt;
    function getDataTableColumnCount(table) {&lt;br /&gt;
        var headerRow =&lt;br /&gt;
            table.tHead &amp;amp;&amp;amp; table.tHead.rows.length&lt;br /&gt;
                ? table.tHead.rows[table.tHead.rows.length - 1]&lt;br /&gt;
                : null;&lt;br /&gt;
&lt;br /&gt;
        if (headerRow) {&lt;br /&gt;
            return headerRow.cells.length;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return table.rows.length ? table.rows[0].cells.length : 0;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function normaliseDataTableRows(table, expectedColumnCount) {&lt;br /&gt;
        $(&amp;quot;tbody tr&amp;quot;, table).each(function () {&lt;br /&gt;
            var row = this;&lt;br /&gt;
            var cellCount = row.cells.length;&lt;br /&gt;
&lt;br /&gt;
            if (cellCount === 1 &amp;amp;&amp;amp; row.cells[0].colSpan &amp;gt; 1) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            while (cellCount &amp;lt; expectedColumnCount) {&lt;br /&gt;
                row.appendChild(document.createElement(&amp;quot;td&amp;quot;));&lt;br /&gt;
                cellCount++;&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function waitForTableToSettle(table, callback) {&lt;br /&gt;
        var settleTimer;&lt;br /&gt;
        var timeoutTimer;&lt;br /&gt;
        var observer;&lt;br /&gt;
        var settled = false;&lt;br /&gt;
&lt;br /&gt;
        function finish() {&lt;br /&gt;
            if (settled) return;&lt;br /&gt;
&lt;br /&gt;
            settled = true;&lt;br /&gt;
            clearTimeout(settleTimer);&lt;br /&gt;
            clearTimeout(timeoutTimer);&lt;br /&gt;
&lt;br /&gt;
            if (observer) {&lt;br /&gt;
                observer.disconnect();&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            callback();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        function scheduleFinish() {&lt;br /&gt;
            clearTimeout(settleTimer);&lt;br /&gt;
            settleTimer = setTimeout(finish, 500);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (window.MutationObserver) {&lt;br /&gt;
            observer = new MutationObserver(scheduleFinish);&lt;br /&gt;
            observer.observe(table.tBodies[0] || table, {&lt;br /&gt;
                childList: true,&lt;br /&gt;
                subtree: true,&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        timeoutTimer = setTimeout(finish, 30000);&lt;br /&gt;
        scheduleFinish();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getAcceptsValues(html) {&lt;br /&gt;
        return (html || &amp;quot;&amp;quot;)&lt;br /&gt;
            .split(/&amp;lt;br\s*\/?&amp;gt;/i)&lt;br /&gt;
            .map((value) =&amp;gt; value.trim())&lt;br /&gt;
            .filter(Boolean);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeText(html) {&lt;br /&gt;
        var container = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var values = [];&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = html || &amp;quot;&amp;quot;;&lt;br /&gt;
        values.push(container.textContent || &amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        container.querySelectorAll(&amp;quot;*&amp;quot;).forEach(function (element) {&lt;br /&gt;
            [&amp;quot;alt&amp;quot;, &amp;quot;title&amp;quot;, &amp;quot;aria-label&amp;quot;, &amp;quot;class&amp;quot;, &amp;quot;src&amp;quot;].forEach(function (attribute) {&lt;br /&gt;
                var value = element.getAttribute(attribute);&lt;br /&gt;
&lt;br /&gt;
                if (value) {&lt;br /&gt;
                    values.push(value);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        return values.join(&amp;quot; &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeValue(html) {&lt;br /&gt;
        var text = getGameModeText(html)&lt;br /&gt;
            .toLowerCase()&lt;br /&gt;
            .replace(/[_-]+/g, &amp;quot; &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        if (/\b(single\s*player|singleplayer|solo|sp)\b/.test(text)) {&lt;br /&gt;
            return &amp;quot;SP&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (/\b(multi\s*player|multiplayer|mp)\b/.test(text)) {&lt;br /&gt;
            return &amp;quot;MP&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (/\b(co\s*op|coop|cooperative)\b/.test(text)) {&lt;br /&gt;
            return &amp;quot;Coop&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getGameModeValues(html) {&lt;br /&gt;
        var selectedModes = new Set(getAcceptsValues(html)&lt;br /&gt;
            .map(getGameModeValue)&lt;br /&gt;
            .filter(Boolean));&lt;br /&gt;
&lt;br /&gt;
        return [&amp;quot;SP&amp;quot;, &amp;quot;MP&amp;quot;, &amp;quot;Coop&amp;quot;].filter(function (mode) {&lt;br /&gt;
            return selectedModes.has(mode);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function normaliseColumnName(value) {&lt;br /&gt;
        return String(value || &amp;quot;&amp;quot;)&lt;br /&gt;
            .trim()&lt;br /&gt;
            .toLowerCase()&lt;br /&gt;
            .replace(/[\s_-]+/g, &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getTableConfigElement(table) {&lt;br /&gt;
        return table.closest(&lt;br /&gt;
            &amp;quot;[data-hidden-columns], [data-hide-columns], [data-dt-hidden-columns], [data-dt-hide-columns], [data-first-column-name], [data-first-column], [data-page-column-name], [data-dt-first-column-name]&amp;quot;,&lt;br /&gt;
        ) || table.parentElement;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getFirstColumnName(table) {&lt;br /&gt;
        var configElement = getTableConfigElement(table);&lt;br /&gt;
        var columnName = configElement&lt;br /&gt;
            ? configElement.getAttribute(&amp;quot;data-first-column-name&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-first-column&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-page-column-name&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-dt-first-column-name&amp;quot;)&lt;br /&gt;
            : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        return String(columnName || &amp;quot;Page&amp;quot;).trim() || &amp;quot;Page&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getHiddenColumnIndexes(table, titles) {&lt;br /&gt;
        var configElement = getTableConfigElement(table);&lt;br /&gt;
        var rawValue = configElement&lt;br /&gt;
            ? configElement.getAttribute(&amp;quot;data-hidden-columns&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-hide-columns&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-dt-hidden-columns&amp;quot;) ||&lt;br /&gt;
            configElement.getAttribute(&amp;quot;data-dt-hide-columns&amp;quot;)&lt;br /&gt;
            : &amp;quot;&amp;quot;;&lt;br /&gt;
        var titleIndexes = {};&lt;br /&gt;
        var hiddenIndexes = new Set();&lt;br /&gt;
&lt;br /&gt;
        titles.forEach(function (title, index) {&lt;br /&gt;
            titleIndexes[normaliseColumnName(title)] = index;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        String(rawValue || &amp;quot;&amp;quot;)&lt;br /&gt;
            .split(/[,\|]/)&lt;br /&gt;
            .map(function (value) {&lt;br /&gt;
                return value.trim();&lt;br /&gt;
            })&lt;br /&gt;
            .filter(Boolean)&lt;br /&gt;
            .forEach(function (value) {&lt;br /&gt;
                var numberValue = Number(value);&lt;br /&gt;
                var normalisedValue = normaliseColumnName(value);&lt;br /&gt;
&lt;br /&gt;
                if (Number.isInteger(numberValue) &amp;amp;&amp;amp; numberValue &amp;gt;= 0 &amp;amp;&amp;amp; numberValue &amp;lt; titles.length) {&lt;br /&gt;
                    hiddenIndexes.add(numberValue);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                if (Object.prototype.hasOwnProperty.call(titleIndexes, normalisedValue)) {&lt;br /&gt;
                    hiddenIndexes.add(titleIndexes[normalisedValue]);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
        return hiddenIndexes;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getTableData(table, columnCount) {&lt;br /&gt;
        return Array.from(table.tBodies[0] ? table.tBodies[0].rows : [])&lt;br /&gt;
            .filter((row) =&amp;gt; !(row.cells.length === 1 &amp;amp;&amp;amp; row.cells[0].colSpan &amp;gt; 1))&lt;br /&gt;
            .map((row) =&amp;gt; {&lt;br /&gt;
                var data = Array.from(row.cells, (cell) =&amp;gt; cell.innerHTML.trim());&lt;br /&gt;
&lt;br /&gt;
                while (data.length &amp;lt; columnCount) {&lt;br /&gt;
                    data.push(&amp;quot;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                return data.slice(0, columnCount);&lt;br /&gt;
            });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildTableLayout(table, titles) {&lt;br /&gt;
        var headerRow = document.createElement(&amp;quot;tr&amp;quot;);&lt;br /&gt;
        var tableHead = document.createElement(&amp;quot;thead&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        titles.forEach((title) =&amp;gt; {&lt;br /&gt;
            var headerCell = document.createElement(&amp;quot;th&amp;quot;);&lt;br /&gt;
            headerCell.textContent = title;&lt;br /&gt;
            headerRow.appendChild(headerCell);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        table.replaceChildren(tableHead, document.createElement(&amp;quot;tbody&amp;quot;));&lt;br /&gt;
        tableHead.appendChild(headerRow);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function suppressSearchPaneBorders(container) {&lt;br /&gt;
        if (!container) {&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        function removeBorderClass() {&lt;br /&gt;
            container.querySelectorAll(&amp;quot;.dtsp-bordered&amp;quot;).forEach(function (element) {&lt;br /&gt;
                element.classList.remove(&amp;quot;dtsp-bordered&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        removeBorderClass();&lt;br /&gt;
&lt;br /&gt;
        new MutationObserver(removeBorderClass).observe(container, {&lt;br /&gt;
            attributes: true,&lt;br /&gt;
            attributeFilter: [&amp;quot;class&amp;quot;],&lt;br /&gt;
            childList: true,&lt;br /&gt;
            subtree: true,&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function openFellowshipLinksInNewTab(dataTable) {&lt;br /&gt;
        dataTable&lt;br /&gt;
            .column(0)&lt;br /&gt;
            .nodes()&lt;br /&gt;
            .toArray()&lt;br /&gt;
            .forEach(function (cell) {&lt;br /&gt;
                cell.querySelectorAll(&amp;quot;a&amp;quot;).forEach(function (link) {&lt;br /&gt;
                    link.target = &amp;quot;_blank&amp;quot;;&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function setupFilterToolbar(wrapper, toggle) {&lt;br /&gt;
        var toolbar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var search = wrapper.querySelector(&amp;quot;.dt-search&amp;quot;);&lt;br /&gt;
        var searchRow = search ? search.closest(&amp;quot;.dt-layout-row&amp;quot;) : null;&lt;br /&gt;
&lt;br /&gt;
        toolbar.className = &amp;quot;dt-filter-toolbar&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (searchRow &amp;amp;&amp;amp; searchRow.parentNode) {&lt;br /&gt;
            searchRow.parentNode.insertBefore(toolbar, searchRow);&lt;br /&gt;
        } else {&lt;br /&gt;
            wrapper.insertBefore(toolbar, wrapper.firstChild);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        toolbar.appendChild(toggle);&lt;br /&gt;
&lt;br /&gt;
        if (search) {&lt;br /&gt;
            toolbar.appendChild(search);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (searchRow &amp;amp;&amp;amp; searchRow.parentNode &amp;amp;&amp;amp; !searchRow.querySelector(&amp;quot;.dt-search&amp;quot;)) {&lt;br /&gt;
            searchRow.remove();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getCurrentPageName() {&lt;br /&gt;
        var pageName = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (window.mw &amp;amp;&amp;amp; mw.config) {&lt;br /&gt;
            pageName = mw.config.get(&amp;quot;wgTitle&amp;quot;) || mw.config.get(&amp;quot;wgPageName&amp;quot;) || &amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!pageName) {&lt;br /&gt;
            pageName = (document.querySelector(&amp;quot;#firstHeading&amp;quot;) || {}).textContent || document.title || &amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return pageName.replace(/_/g, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getFilterPanelTitle(titles, hiddenColumnIndexes) {&lt;br /&gt;
        var pageName = getCurrentPageName();&lt;br /&gt;
&lt;br /&gt;
        if (hiddenColumnIndexes &amp;amp;&amp;amp; hiddenColumnIndexes.size === 1) {&lt;br /&gt;
            return titles[Array.from(hiddenColumnIndexes)[0]] + &amp;quot;: &amp;quot; + pageName;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return pageName;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function setupFilterOffCanvas(dataTable, table, titles, hiddenColumnIndexes) {&lt;br /&gt;
        var wrapper = table.closest(&amp;quot;.dt-container&amp;quot;) || table.parentNode;&lt;br /&gt;
        var panes = wrapper ? wrapper.querySelector(&amp;quot;.dtsp-panesContainer&amp;quot;) : null;&lt;br /&gt;
&lt;br /&gt;
        if (!wrapper || !panes) {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (wrapper.querySelector(&amp;quot;.dt-filter-toggle&amp;quot;)) {&lt;br /&gt;
            return document.getElementById(wrapper.querySelector(&amp;quot;.dt-filter-toggle&amp;quot;).getAttribute(&amp;quot;aria-controls&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var toggle = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
        var panel = document.createElement(&amp;quot;aside&amp;quot;);&lt;br /&gt;
        var backdrop = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var drawer = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
        var header = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var title = document.createElement(&amp;quot;h2&amp;quot;);&lt;br /&gt;
        var close = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
        var body = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        var panelId = &amp;quot;dt-filter-panel-&amp;quot; + $(&amp;quot;.dt-filter-panel&amp;quot;).length;&lt;br /&gt;
        var lastFocusedElement = null;&lt;br /&gt;
&lt;br /&gt;
        toggle.type = &amp;quot;button&amp;quot;;&lt;br /&gt;
        toggle.className = &amp;quot;dt-filter-toggle&amp;quot;;&lt;br /&gt;
        toggle.textContent = &amp;quot;Filters&amp;quot;;&lt;br /&gt;
        toggle.setAttribute(&amp;quot;aria-controls&amp;quot;, panelId);&lt;br /&gt;
        toggle.setAttribute(&amp;quot;aria-expanded&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        panel.id = panelId;&lt;br /&gt;
        panel.className = &amp;quot;dt-filter-panel&amp;quot;;&lt;br /&gt;
        panel.setAttribute(&amp;quot;aria-hidden&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
        panel.setAttribute(&amp;quot;aria-label&amp;quot;, &amp;quot;Data filters&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        backdrop.className = &amp;quot;dt-filter-backdrop&amp;quot;;&lt;br /&gt;
        drawer.className = &amp;quot;sidebar-drawer&amp;quot;;&lt;br /&gt;
        drawer.setAttribute(&amp;quot;type&amp;quot;, &amp;quot;button&amp;quot;);&lt;br /&gt;
        drawer.setAttribute(&amp;quot;tabindex&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        header.className = &amp;quot;dt-filter-panel__header&amp;quot;;&lt;br /&gt;
        title.className = &amp;quot;dt-filter-panel__title&amp;quot;;&lt;br /&gt;
        title.textContent = getFilterPanelTitle(titles, hiddenColumnIndexes);&lt;br /&gt;
        close.type = &amp;quot;button&amp;quot;;&lt;br /&gt;
        close.className = &amp;quot;dt-filter-panel__close&amp;quot;;&lt;br /&gt;
        close.setAttribute(&amp;quot;aria-label&amp;quot;, &amp;quot;Close filters&amp;quot;);&lt;br /&gt;
        close.innerHTML = &amp;quot;&amp;amp;times;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        body.className = &amp;quot;dt-filter-panel__body&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        header.append(title, close);&lt;br /&gt;
        body.appendChild(panes);&lt;br /&gt;
        panel.append(drawer, header, body);&lt;br /&gt;
&lt;br /&gt;
        setupFilterToolbar(wrapper, toggle);&lt;br /&gt;
        document.body.append(backdrop, panel);&lt;br /&gt;
&lt;br /&gt;
        function openPanel() {&lt;br /&gt;
            lastFocusedElement = document.activeElement;&lt;br /&gt;
            panel.classList.add(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            backdrop.classList.add(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            document.body.classList.add(&amp;quot;dt-filter-panel-open&amp;quot;);&lt;br /&gt;
            panel.setAttribute(&amp;quot;aria-hidden&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
            toggle.setAttribute(&amp;quot;aria-expanded&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
            close.focus();&lt;br /&gt;
            dataTable.columns.adjust();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        function closePanel() {&lt;br /&gt;
            panel.classList.remove(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            backdrop.classList.remove(&amp;quot;is-open&amp;quot;);&lt;br /&gt;
            document.body.classList.remove(&amp;quot;dt-filter-panel-open&amp;quot;);&lt;br /&gt;
            panel.setAttribute(&amp;quot;aria-hidden&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
            toggle.setAttribute(&amp;quot;aria-expanded&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (lastFocusedElement &amp;amp;&amp;amp; document.contains(lastFocusedElement)) {&lt;br /&gt;
                lastFocusedElement.focus();&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            dataTable.columns.adjust();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        toggle.addEventListener(&amp;quot;click&amp;quot;, openPanel);&lt;br /&gt;
        close.addEventListener(&amp;quot;click&amp;quot;, closePanel);&lt;br /&gt;
        drawer.addEventListener(&amp;quot;click&amp;quot;, closePanel);&lt;br /&gt;
        backdrop.addEventListener(&amp;quot;click&amp;quot;, closePanel);&lt;br /&gt;
&lt;br /&gt;
        document.addEventListener(&amp;quot;keydown&amp;quot;, function (event) {&lt;br /&gt;
            if (event.key === &amp;quot;Escape&amp;quot; &amp;amp;&amp;amp; panel.classList.contains(&amp;quot;is-open&amp;quot;)) {&lt;br /&gt;
                closePanel();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        return panel;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $(&amp;quot;.dataTable&amp;quot;)&lt;br /&gt;
        .each(function () {&lt;br /&gt;
            var table = this;&lt;br /&gt;
&lt;br /&gt;
            waitForTableToSettle(table, function () {&lt;br /&gt;
                if ($.fn.dataTable.isDataTable(table)) {&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                normaliseDataTableRows(table, getDataTableColumnCount(table));&lt;br /&gt;
&lt;br /&gt;
                $(table).DataTable({&lt;br /&gt;
                    dom: &amp;quot;f&amp;quot;,&lt;br /&gt;
                    language: {&lt;br /&gt;
                        search: &amp;quot;&amp;quot;,&lt;br /&gt;
                        searchPlaceholder: &amp;quot;Search&amp;quot;,&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            title: {&lt;br /&gt;
                                _: &#039;Filters: %d&#039;,&lt;br /&gt;
                                0: &#039;&#039;&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                    },&lt;br /&gt;
                    retrieve: true,&lt;br /&gt;
                    order: [[0, &amp;quot;asc&amp;quot;]],&lt;br /&gt;
                    pageLength: 1000,&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    $(selectors.join(&amp;quot;,&amp;quot;)).each(function () {&lt;br /&gt;
        var table = this;&lt;br /&gt;
&lt;br /&gt;
        waitForTableToSettle(table, function () {&lt;br /&gt;
            if ($.fn.dataTable.isDataTable(table)) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            var titles = [&lt;br /&gt;
                getFirstColumnName(table), &amp;quot;Developer&amp;quot;, &amp;quot;Publisher&amp;quot;, &amp;quot;Genre&amp;quot;, &amp;quot;Platform&amp;quot;, &amp;quot;Mode&amp;quot;, &amp;quot;Released&amp;quot;, &amp;quot;Category&amp;quot;&lt;br /&gt;
            ];&lt;br /&gt;
            var hiddenColumnIndexes = getHiddenColumnIndexes(table, titles);&lt;br /&gt;
            var paneIndexes = [1, 2, 3, 4, 5, 7].filter(function (paneIndex) {&lt;br /&gt;
                return !hiddenColumnIndexes.has(paneIndex);&lt;br /&gt;
            });&lt;br /&gt;
            var data = getTableData(table, titles.length);&lt;br /&gt;
&lt;br /&gt;
            buildTableLayout(table, titles);&lt;br /&gt;
&lt;br /&gt;
            var dataTable = new DataTable(table, {&lt;br /&gt;
                columns: [&lt;br /&gt;
                    {&lt;br /&gt;
                        title: titles[0],&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(0),&lt;br /&gt;
                        render: function (data, type) {&lt;br /&gt;
                            if (type === &amp;quot;display&amp;quot;) {&lt;br /&gt;
                                return (&lt;br /&gt;
                                    &#039;&amp;lt;span style=&amp;quot;display: list-item; margin-left: 1.25rem; white-space: nowrap&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                                    data +&lt;br /&gt;
                                    &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
                                );&lt;br /&gt;
                            }&lt;br /&gt;
&lt;br /&gt;
                            return data;&lt;br /&gt;
                        },&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: false,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Developer&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(1),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(1),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Publisher&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(2),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(2),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Genre&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(3),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(3),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Platform&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(4),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(4),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Mode&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(5),&lt;br /&gt;
                        render: {&lt;br /&gt;
                            display: function (data) {&lt;br /&gt;
                                return getGameModeValues(data).join(&amp;quot;, &amp;quot;);&lt;br /&gt;
                            },&lt;br /&gt;
                            sp: function (data) {&lt;br /&gt;
                                return getGameModeValues(data);&lt;br /&gt;
                            },&lt;br /&gt;
                        },&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(5),&lt;br /&gt;
                            orthogonal: &amp;quot;sp&amp;quot;,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Released&amp;quot;,&lt;br /&gt;
                        visible: !hiddenColumnIndexes.has(6),&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: !hiddenColumnIndexes.has(6),&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        title: &amp;quot;Category&amp;quot;,&lt;br /&gt;
                        visible: false,&lt;br /&gt;
                        render: {&lt;br /&gt;
                            display: function (data) {&lt;br /&gt;
                                return data;&lt;br /&gt;
                            },&lt;br /&gt;
                            sp: function (data) {&lt;br /&gt;
                                return getAcceptsValues(data);&lt;br /&gt;
                            },&lt;br /&gt;
                        },&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            show: true,&lt;br /&gt;
                            orthogonal: &amp;quot;sp&amp;quot;,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                ],&lt;br /&gt;
                layout: {&lt;br /&gt;
                    topStart: null,&lt;br /&gt;
                    topEnd: null,&lt;br /&gt;
                    top2: {&lt;br /&gt;
                        searchPanes: {&lt;br /&gt;
                            cascadePanes: true,&lt;br /&gt;
                            initCollapsed: true,&lt;br /&gt;
                            layout: &amp;quot;columns-1&amp;quot;,&lt;br /&gt;
                            columns: paneIndexes,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                    top1: {&lt;br /&gt;
                        search: {&lt;br /&gt;
                            className: &amp;quot;mx-0 w-100&amp;quot;,&lt;br /&gt;
                        },&lt;br /&gt;
                    },&lt;br /&gt;
                },&lt;br /&gt;
                order: [[0, &amp;quot;asc&amp;quot;]],&lt;br /&gt;
                language: {&lt;br /&gt;
                    search: &amp;quot;&amp;quot;,&lt;br /&gt;
                    searchPlaceholder: &amp;quot;Search&amp;quot;,&lt;br /&gt;
                    searchPanes: {&lt;br /&gt;
                        title: {&lt;br /&gt;
                            _: &#039;Filters: %d&#039;,&lt;br /&gt;
                            0: &#039;&#039;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                },&lt;br /&gt;
                paging: false,&lt;br /&gt;
                searchDelay: 400,&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            var lastGlobalSearch = dataTable.search();&lt;br /&gt;
&lt;br /&gt;
            dataTable.on(&amp;quot;draw.dt&amp;quot;, function () {&lt;br /&gt;
                var globalSearch = dataTable.search();&lt;br /&gt;
&lt;br /&gt;
                openFellowshipLinksInNewTab(dataTable);&lt;br /&gt;
&lt;br /&gt;
                if (globalSearch === lastGlobalSearch) {&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                lastGlobalSearch = globalSearch;&lt;br /&gt;
&lt;br /&gt;
                paneIndexes.forEach(function (paneIndex) {&lt;br /&gt;
                    dataTable.searchPanes.rebuildPane(paneIndex, true);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            var filterPanel;&lt;br /&gt;
&lt;br /&gt;
            dataTable.rows.add(data).draw();&lt;br /&gt;
            $(table)&lt;br /&gt;
                .removeClass(&amp;quot;dt-loading&amp;quot;)&lt;br /&gt;
                .removeAttr(&amp;quot;aria-busy&amp;quot;)&lt;br /&gt;
                .show();&lt;br /&gt;
            dataTable.searchPanes.rebuildPane();&lt;br /&gt;
            filterPanel = setupFilterOffCanvas(dataTable, table, titles, hiddenColumnIndexes);&lt;br /&gt;
            suppressSearchPaneBorders(filterPanel);&lt;br /&gt;
            dataTable.columns.adjust().draw(false);&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2009</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2009"/>
		<updated>2026-06-20T09:18:28Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|target5=Event Calendar&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll new pages up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll new pages down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=2008</id>
		<title>Module:Navigation</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=2008"/>
		<updated>2026-06-20T09:16:27Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function renderRow(label, image, target, model)&lt;br /&gt;
	local defaultTarget = label&lt;br /&gt;
	if not target then&lt;br /&gt;
		target = defaultTarget&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local cardClass = &#039;navthumb&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
		cardClass = &#039;navthumb p-3&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local labelClass = &#039;navthumb-label&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
		labelClass = &#039;navthumb-label h-100 with-icon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    local html = mw.html.create()&lt;br /&gt;
    local card = html:tag(&#039;div&#039;):addClass(cardClass)&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
        card:tag(&#039;div&#039;):addClass(&#039;navthumb-image&#039;):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):done()&lt;br /&gt;
    end&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
    	card:tag(&#039;div&#039;):addClass(labelClass):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):css({&lt;br /&gt;
        	[&#039;background-size&#039;] = &#039;contain&#039;,&lt;br /&gt;
			[&#039;background-repeat&#039;] = &#039;no-repeat&#039;,&lt;br /&gt;
			-- [&#039;padding-left&#039;] = &#039;30px&#039;,&lt;br /&gt;
        }):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
	else    	&lt;br /&gt;
		card:tag(&#039;div&#039;):addClass(labelClass):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.data(frame)&lt;br /&gt;
  local args = frame:getParent().args or {}&lt;br /&gt;
  local title = args[1] or args[&#039;title&#039;] or &#039;Navigate&#039;&lt;br /&gt;
  local showThumbs = args[&#039;show thumbs&#039;] or &#039;1&#039;&lt;br /&gt;
  local freeText = args[&#039;free text&#039;] or nil&lt;br /&gt;
  local footer = args[&#039;footer&#039;] or nil&lt;br /&gt;
  &lt;br /&gt;
  local html = mw.html.create()&lt;br /&gt;
  local card = html:tag(&#039;div&#039;):addClass(&#039;card bg-transparent thumbwall mb-3&#039;)&lt;br /&gt;
  local header = card:tag(&#039;div&#039;):addClass(&#039;card-header border-bottom-0&#039;):wikitext(title):done()&lt;br /&gt;
  local body = card:tag(&#039;div&#039;):addClass(&#039;card-body pt-2&#039;)&lt;br /&gt;
  &lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[&#039;label&#039; .. i] do&lt;br /&gt;
		local label = args[&#039;label&#039; .. i]&lt;br /&gt;
		local imageUrl = &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		local image = args[&#039;image&#039; .. i] or &#039;&#039;&lt;br /&gt;
		if image and image ~= &#039;&#039; then&lt;br /&gt;
			imageUrl = frame:preprocess(&lt;br /&gt;
				string.format(&#039;{{filepath:{{PAGENAME:%s}}}}&#039;, image)&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local target = args[&#039;target&#039; .. i] or label&lt;br /&gt;
        body:node(renderRow(label, imageUrl, target, showThumbs))&lt;br /&gt;
    	i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if freeText then&lt;br /&gt;
	    body:node(freeText)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if footer then&lt;br /&gt;
	    card:tag(&#039;div&#039;):addClass(&#039;card-footer&#039;):wikitext(footer)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Players&amp;diff=2007</id>
		<title>Players</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Players&amp;diff=2007"/>
		<updated>2026-06-19T14:36:23Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This directory lists all players, veterans, and community leaders preserved in the Shelter. To be added to this list, please ensure your Player Page includes the proper semantic data.&lt;br /&gt;
&lt;br /&gt;
== Archive Records ==&lt;br /&gt;
{{#ask: [[Category:Players]]&lt;br /&gt;
|?Plays game=Associated Games&lt;br /&gt;
|?Member of=Clan / Community&lt;br /&gt;
|?Player note=Status / Note&lt;br /&gt;
|?Contact links=Contact&lt;br /&gt;
|format=datatable&lt;br /&gt;
|mainlabel=Player Name&lt;br /&gt;
|headers=plain&lt;br /&gt;
|searchlabel=No players have been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
{{DISPLAYTITLE:Global Player &amp;amp; Veteran Roster}}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=All_Forms&amp;diff=2006</id>
		<title>All Forms</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=All_Forms&amp;diff=2006"/>
		<updated>2026-06-19T14:34:22Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Archive Entry Forms}}&lt;br /&gt;
&lt;br /&gt;
This directory contains all the input forms used to add new data to the PC Gaming Shelter. These forms ensure that all information is properly categorized and assigned semantic data.&lt;br /&gt;
&lt;br /&gt;
== Core Archive Forms ==&lt;br /&gt;
Use this to document a PC game.&lt;br /&gt;
:{{led|green}} [[Form:Game|Add a New Game]]&lt;br /&gt;
&lt;br /&gt;
Use the following for community-made modifications:&lt;br /&gt;
:{{led|green}} [[Form:Mod|Add a New Mod]]&lt;br /&gt;
:{{led|green}} [[Form:Map|Add a New Map]]&lt;br /&gt;
:{{led|green}} [[Form:Skin|Add a New Skin]]&lt;br /&gt;
:{{led|green}} [[Form:Utility|Add a New Utility]]&lt;br /&gt;
&lt;br /&gt;
== Community &amp;amp; People Forms ==&lt;br /&gt;
:{{led|green}} [[Form:Player|Add a Player/Veteran]] - Use this to archive a player or community leader.&lt;br /&gt;
:{{led|green}} [[Form:Community|Add a Community/Clan]] - Use this for both Active and Historical groups.&lt;br /&gt;
:{{led|green}} [[Form:Event|Add a Gaming Event]] - Use this to add entries to the Calendar (FPS, RTS, etc.).&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
:{{led|red}} Add a New Guide&lt;br /&gt;
:{{led|red}} Add a New Interview&lt;br /&gt;
:{{led|red}} Add a New Video&lt;br /&gt;
:{{led|red}} Add a New Screenshot&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=All_Forms&amp;diff=2005</id>
		<title>All Forms</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=All_Forms&amp;diff=2005"/>
		<updated>2026-06-19T14:34:01Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Archive Entry Forms}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This directory contains all the input forms used to add new data to the PC Gaming Shelter. These forms ensure that all information is properly categorized and assigned semantic data.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Core Archive Forms ==&lt;br /&gt;
Use this to document a PC game.&lt;br /&gt;
:{{led|green}} [[Form:Game|Add a New Game]]&lt;br /&gt;
&lt;br /&gt;
Use the following for community-made modifications:&lt;br /&gt;
:{{led|green}} [[Form:Mod|Add a New Mod]]&lt;br /&gt;
:{{led|green}} [[Form:Map|Add a New Map]]&lt;br /&gt;
:{{led|green}} [[Form:Skin|Add a New Skin]]&lt;br /&gt;
:{{led|green}} [[Form:Utility|Add a New Utility]]&lt;br /&gt;
&lt;br /&gt;
== Community &amp;amp; People Forms ==&lt;br /&gt;
:{{led|green}} [[Form:Player|Add a Player/Veteran]] - Use this to archive a player or community leader.&lt;br /&gt;
:{{led|green}} [[Form:Community|Add a Community/Clan]] - Use this for both Active and Historical groups.&lt;br /&gt;
:{{led|green}} [[Form:Event|Add a Gaming Event]] - Use this to add entries to the Calendar (FPS, RTS, etc.).&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
:{{led|red}} Add a New Guide&lt;br /&gt;
:{{led|red}} Add a New Interview&lt;br /&gt;
:{{led|red}} Add a New Video&lt;br /&gt;
:{{led|red}} Add a New Screenshot&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=All_Forms&amp;diff=2004</id>
		<title>All Forms</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=All_Forms&amp;diff=2004"/>
		<updated>2026-06-19T14:32:57Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Archive Entry Forms}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This directory contains all the input forms used to add new data to the PC Gaming Shelter. These forms ensure that all information is properly categorized and assigned semantic data.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Core Archive Forms ==&lt;br /&gt;
:{{led|green}} [[Form:Game|Add a New Game]] - Use this to document a PC game.&lt;br /&gt;
Use the following for community-made modifications:&lt;br /&gt;
:{{led|green}} [[Form:Mod|Add a New Mod]]&lt;br /&gt;
:{{led|green}} [[Form:Map|Add a New Map]]&lt;br /&gt;
:{{led|green}} [[Form:Skin|Add a New Skin]]&lt;br /&gt;
:{{led|green}} [[Form:Utility|Add a New Utility]]&lt;br /&gt;
&lt;br /&gt;
== Community &amp;amp; People Forms ==&lt;br /&gt;
:{{led|green}} [[Form:Player|Add a Player/Veteran]] - Use this to archive a player or community leader.&lt;br /&gt;
:{{led|green}} [[Form:Community|Add a Community/Clan]] - Use this for both Active and Historical groups.&lt;br /&gt;
:{{led|green}} [[Form:Event|Add a Gaming Event]] - Use this to add entries to the Calendar (FPS, RTS, etc.).&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
:{{led|red}} Add a New Guide&lt;br /&gt;
:{{led|red}} Add a New Interview&lt;br /&gt;
:{{led|red}} Add a New Video&lt;br /&gt;
:{{led|red}} Add a New Screenshot&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2003</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2003"/>
		<updated>2026-06-19T14:24:35Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll new pages up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll new pages down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2002</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=2002"/>
		<updated>2026-06-19T14:24:17Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=2001</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=2001"/>
		<updated>2026-06-19T14:24:00Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
    const scrollTolerance = scrollStep / 2;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || (dir &amp;lt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;lt;= scrollTolerance)&lt;br /&gt;
          || (dir &amp;gt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll - scrollTolerance);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=2000</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=2000"/>
		<updated>2026-06-19T14:23:03Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
  document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir], [data-scroll-target]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
    const scrollTolerance = scrollStep / 2;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const target = button.dataset.scrollTarget;&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || ((dir &amp;lt; 0 || target === &#039;start&#039;) &amp;amp;&amp;amp; body.scrollTop &amp;lt;= scrollTolerance)&lt;br /&gt;
          || ((dir &amp;gt; 0 || target === &#039;end&#039;) &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll - scrollTolerance);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        if (button.dataset.scrollTarget) {&lt;br /&gt;
          body.scrollTo({&lt;br /&gt;
            top: button.dataset.scrollTarget === &#039;start&#039; ? 0 : body.scrollHeight,&lt;br /&gt;
            behavior: &#039;smooth&#039;&lt;br /&gt;
          });&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
  });&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1999</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1999"/>
		<updated>2026-06-19T14:22:23Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;start&amp;quot; aria-label=&amp;quot;Scroll latest changes to beginning&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;end&amp;quot; aria-label=&amp;quot;Scroll latest changes to end&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1998</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1998"/>
		<updated>2026-06-19T14:20:35Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir], [data-scroll-target]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
    const scrollTolerance = scrollStep / 2;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const target = button.dataset.scrollTarget;&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || ((dir &amp;lt; 0 || target === &#039;start&#039;) &amp;amp;&amp;amp; body.scrollTop &amp;lt;= scrollTolerance)&lt;br /&gt;
          || ((dir &amp;gt; 0 || target === &#039;end&#039;) &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll - scrollTolerance);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        if (button.dataset.scrollTarget) {&lt;br /&gt;
          body.scrollTo({&lt;br /&gt;
            top: button.dataset.scrollTarget === &#039;start&#039; ? 0 : body.scrollHeight,&lt;br /&gt;
            behavior: &#039;smooth&#039;&lt;br /&gt;
          });&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1997</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1997"/>
		<updated>2026-06-19T14:17:10Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1996</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1996"/>
		<updated>2026-06-19T14:15:57Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
    const scrollTolerance = scrollStep / 2;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || (dir &amp;lt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;lt;= scrollTolerance)&lt;br /&gt;
          || (dir &amp;gt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll - scrollTolerance);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1995</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1995"/>
		<updated>2026-06-19T14:13:43Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || (dir &amp;lt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;lt;= 0)&lt;br /&gt;
          || (dir &amp;gt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll + 4);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1994</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1994"/>
		<updated>2026-06-19T14:11:27Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || (dir &amp;lt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;lt;= 0)&lt;br /&gt;
          || (dir &amp;gt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll - 4);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1993</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1993"/>
		<updated>2026-06-19T14:09:26Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; disabled=&amp;quot;disabled&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1992</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1992"/>
		<updated>2026-06-19T14:09:08Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; disabled aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1991</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1991"/>
		<updated>2026-06-19T14:08:21Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: /* Welcome to the PC Gaming Shelter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;span class=&amp;quot;thumbwall-scroll is-inactive&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1990</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1990"/>
		<updated>2026-06-19T14:07:16Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll {&lt;br /&gt;
	font-size: 2.5rem;&lt;br /&gt;
	line-height: 0.35;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir=&amp;quot;1&amp;quot;] {&lt;br /&gt;
	float: right;&lt;br /&gt;
	text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll:disabled,&lt;br /&gt;
.thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1989</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1989"/>
		<updated>2026-06-19T14:04:47Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll {&lt;br /&gt;
	font-size: 2.5rem;&lt;br /&gt;
	line-height: 0.35;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir=&amp;quot;-1&amp;quot;] {&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir=&amp;quot;1&amp;quot;] {&lt;br /&gt;
	text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll:disabled,&lt;br /&gt;
.thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1988</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1988"/>
		<updated>2026-06-19T14:02:39Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: /* Welcome to the PC Gaming Shelter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1987</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1987"/>
		<updated>2026-06-19T14:02:27Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll {&lt;br /&gt;
	font-size: 2.5rem;&lt;br /&gt;
	line-height: 0.35;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir=&amp;quot;-1&amp;quot;] {&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir=&amp;quot;1&amp;quot;] {&lt;br /&gt;
	text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll:disabled,&lt;br /&gt;
.thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall .card-footer {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center !important;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1986</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1986"/>
		<updated>2026-06-19T13:59:14Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1985</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1985"/>
		<updated>2026-06-19T13:58:53Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll {&lt;br /&gt;
	font-size: 2.5rem;&lt;br /&gt;
	line-height: 0.35;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir=&amp;quot;1&amp;quot;] {&lt;br /&gt;
	transform: rotate(180deg);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll:disabled,&lt;br /&gt;
.thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall .card-footer {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center !important;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1984</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1984"/>
		<updated>2026-06-19T13:54:58Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll {&lt;br /&gt;
	font-size: 2.5rem;&lt;br /&gt;
	line-height: 0.35;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll[data-scroll-dir] {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll:disabled,&lt;br /&gt;
.thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall .card-footer {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center !important;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1983</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1983"/>
		<updated>2026-06-19T13:36:02Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
  .thumbwall-scroll {&lt;br /&gt;
    width: 2.75rem;&lt;br /&gt;
    height: 2.75rem;&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-radius: .375rem;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    color: inherit;&lt;br /&gt;
    font-size: 2rem;&lt;br /&gt;
    line-height: .75;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .thumbwall-scroll:disabled,&lt;br /&gt;
  .thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
  }&lt;br /&gt;
.card.thumbwall .card-footer {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center !important;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Rss-feed&amp;diff=1982</id>
		<title>MediaWiki:Rss-feed</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Rss-feed&amp;diff=1982"/>
		<updated>2026-06-19T13:29:33Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;rss-item&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{{link}}} {{{title}}}]&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if: {{{author|}}} &lt;br /&gt;
     |{{#if: {{{date|}}}&lt;br /&gt;
       |&amp;lt;div class=&amp;quot;text-muted&amp;quot;&amp;gt;&amp;amp;mdash; [[User:{{{author}}}|{{{author}}}]] {{#time: d.m.Y H:i|{{{date}}}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
      }}&lt;br /&gt;
   }}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1981</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.js&amp;diff=1981"/>
		<updated>2026-06-19T13:25:07Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Featured-video.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
  &#039;/w/index.php?title=MediaWiki:Datatables.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
	managePersonalIconVis();&lt;br /&gt;
    sortPFCheckboxes();&lt;br /&gt;
    infoboxEvenOdd();&lt;br /&gt;
    showPageFooter();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
window.addEventListener(&#039;resize&#039;, infoboxEvenOdd);&lt;br /&gt;
&lt;br /&gt;
function managePersonalIconVis(){&lt;br /&gt;
  if (mw.config.get(&#039;wgUserId&#039;) !== null) {&lt;br /&gt;
	const personal = document.getElementById(&#039;p-personal&#039;);&lt;br /&gt;
	document.querySelector(&#039;#pane4&#039;).appendChild(personal);&lt;br /&gt;
  } else {&lt;br /&gt;
	const personalIcon = document.querySelector(&#039;.personal-tools-icon&#039;);&lt;br /&gt;
	if (personalIcon) {&lt;br /&gt;
		personalIcon.classList.add(&#039;d-none&#039;);&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sortPFCheckboxes() {&lt;br /&gt;
  const containers = document.querySelectorAll(&amp;quot;.checkboxesSpan&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const labels = Array.from(container.querySelectorAll(&amp;quot;label.checkboxLabel&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    const getText = el =&amp;gt;&lt;br /&gt;
      (el.querySelector(&amp;quot;t&amp;quot;).textContent || el.textContent).trim();&lt;br /&gt;
&lt;br /&gt;
    labels.sort((a, b) =&amp;gt;&lt;br /&gt;
      getText(a).localeCompare(getText(b), undefined, {&lt;br /&gt;
        numeric: true,&lt;br /&gt;
        sensitivity: &amp;quot;base&amp;quot;&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
    labels.forEach(label =&amp;gt; container.appendChild(label));&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function infoboxEvenOdd() {&lt;br /&gt;
  const containers = document.querySelectorAll(&#039;.infobox-row&#039;);&lt;br /&gt;
  if (!containers.length) return;&lt;br /&gt;
&lt;br /&gt;
  containers.forEach(container =&amp;gt; {&lt;br /&gt;
    const items = Array.from(container.children).filter(&lt;br /&gt;
      el =&amp;gt; el.nodeType === Node.ELEMENT_NODE&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.sort((a, b) =&amp;gt;&lt;br /&gt;
      a.getBoundingClientRect().top - b.getBoundingClientRect().top&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    items.forEach((el, idx) =&amp;gt; {&lt;br /&gt;
      el.classList.remove(&#039;even&#039;, &#039;odd&#039;);&lt;br /&gt;
      el.classList.add(idx % 2 === 0 ? &#039;even&#039; : &#039;odd&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showPageFooter(){&lt;br /&gt;
	const catlinks = document.getElementById(&#039;catlinks&#039;);&lt;br /&gt;
	const footers = document.querySelectorAll(&#039;.page-footer&#039;);&lt;br /&gt;
&lt;br /&gt;
	footers.forEach(el =&amp;gt; {&lt;br /&gt;
		catlinks.parentNode.insertBefore(el, catlinks);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
document.querySelectorAll(&#039;.thumbwall&#039;).forEach((card) =&amp;gt; {&lt;br /&gt;
    const body = card.querySelector(&#039;.card-body&#039;);&lt;br /&gt;
    const buttons = card.querySelectorAll(&#039;[data-scroll-dir]&#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!body || !buttons.length) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const scrollStep = 64;&lt;br /&gt;
&lt;br /&gt;
    const updateButtons = () =&amp;gt; {&lt;br /&gt;
      const maxScroll = body.scrollHeight - body.clientHeight;&lt;br /&gt;
&lt;br /&gt;
      buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
        const dir = Number(button.dataset.scrollDir);&lt;br /&gt;
        const inactive = maxScroll &amp;lt;= 0&lt;br /&gt;
          || (dir &amp;lt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;lt;= 0)&lt;br /&gt;
          || (dir &amp;gt; 0 &amp;amp;&amp;amp; body.scrollTop &amp;gt;= maxScroll - 1);&lt;br /&gt;
&lt;br /&gt;
        button.disabled = inactive;&lt;br /&gt;
        button.classList.toggle(&#039;is-inactive&#039;, inactive);&lt;br /&gt;
        button.setAttribute(&#039;aria-disabled&#039;, inactive);&lt;br /&gt;
      });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    buttons.forEach((button) =&amp;gt; {&lt;br /&gt;
      button.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;
        body.scrollBy({&lt;br /&gt;
          top: Number(button.dataset.scrollDir) * scrollStep,&lt;br /&gt;
          behavior: &#039;smooth&#039;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    body.addEventListener(&#039;scroll&#039;, updateButtons);&lt;br /&gt;
    window.addEventListener(&#039;resize&#039;, updateButtons);&lt;br /&gt;
    updateButtons();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1980</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1980"/>
		<updated>2026-06-19T13:24:10Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
  .thumbwall-scroll {&lt;br /&gt;
    width: 2.75rem;&lt;br /&gt;
    height: 2.75rem;&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-radius: .375rem;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    color: inherit;&lt;br /&gt;
    font-size: 2rem;&lt;br /&gt;
    line-height: .75;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .thumbwall-scroll:disabled,&lt;br /&gt;
  .thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
    scroll-behavior: smooth;&lt;br /&gt;
    scroll-snap-type: y mandatory;&lt;br /&gt;
    scroll-padding-block: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbwall .rss-item {&lt;br /&gt;
    min-height: 64px;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1979</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1979"/>
		<updated>2026-06-19T13:21:11Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
  .thumbwall-scroll {&lt;br /&gt;
    width: 2.75rem;&lt;br /&gt;
    height: 2.75rem;&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-radius: .375rem;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    color: inherit;&lt;br /&gt;
    font-size: 2rem;&lt;br /&gt;
    line-height: .75;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .thumbwall-scroll:disabled,&lt;br /&gt;
  .thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
  }&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1978</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1978"/>
		<updated>2026-06-19T13:18:25Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
.thumbwall-scroll {&lt;br /&gt;
    width: 2rem;&lt;br /&gt;
    height: 2rem;&lt;br /&gt;
    border: 1px solid rgba(255, 255, 255, .25);&lt;br /&gt;
    border-radius: .375rem;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    color: inherit;&lt;br /&gt;
    line-height: 1;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
.thumbwall-scroll:disabled,&lt;br /&gt;
.thumbwall-scroll.is-inactive {&lt;br /&gt;
    opacity: .4;&lt;br /&gt;
    cursor: default;&lt;br /&gt;
}&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1977</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1977"/>
		<updated>2026-06-19T13:13:47Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/span&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1976</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1976"/>
		<updated>2026-06-19T13:13:17Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=&amp;lt;button class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;-1&amp;quot; aria-label=&amp;quot;Scroll latest changes up&amp;quot;&amp;gt;&amp;amp;#8249;&amp;lt;/button&amp;gt;&amp;lt;button class=&amp;quot;thumbwall-scroll&amp;quot; type=&amp;quot;button&amp;quot; data-scroll-dir=&amp;quot;1&amp;quot; aria-label=&amp;quot;Scroll latest changes down&amp;quot;&amp;gt;&amp;amp;#8250;&amp;lt;/button&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Property:Has_favorite_mod&amp;diff=1975</id>
		<title>Property:Has favorite mod</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Property:Has_favorite_mod&amp;diff=1975"/>
		<updated>2026-06-18T21:32:32Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: Created a property of type Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a property of type [[Has type::Page]].&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1974</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1974"/>
		<updated>2026-06-18T21:29:16Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 250px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1973</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=MediaWiki:Common.css&amp;diff=1973"/>
		<updated>2026-06-18T21:28:03Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
/* Hide user menu icon for anonymous */&lt;br /&gt;
.personal-tools-icon {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-value ul {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#rightMenu #p-contentnavigation.pagetools .tab-group &amp;gt; div#ca-talk {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.card.thumbwall {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
.card.thumbwall .card-img img {&lt;br /&gt;
	height: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
.thumbwall .card-footer {&lt;br /&gt;
	border-top: 1px solid rgba(255,255,255,0.05);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collab-icons {&lt;br /&gt;
	margin-top: .25rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navthumb a:hover {&lt;br /&gt;
	text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Embed video **/&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 4rem;&lt;br /&gt;
  height: 4rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(0, 0, 0, 0.72);&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  font-size: 0;&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
  place-items: center;&lt;br /&gt;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader__fakeButton::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  height: 0;&lt;br /&gt;
  margin-left: 0.25rem;&lt;br /&gt;
  border-top: 0.75rem solid transparent;&lt;br /&gt;
  border-bottom: 0.75rem solid transparent;&lt;br /&gt;
  border-left: 1.1rem solid #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.embedvideo-loader:hover .embedvideo-loader__fakeButton {&lt;br /&gt;
  background: #e26e1f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.two-cards &amp;gt; div {&lt;br /&gt;
	flex: 1 1 50%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .pf-runquery-formcontent,&lt;br /&gt;
.page-Special_RunQuery_FeaturedLink .dayInput {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gap-2 {&lt;br /&gt;
	gap: .5rem;&lt;br /&gt;
}&lt;br /&gt;
.card .navthumb {&lt;br /&gt;
	min-width: 20%;&lt;br /&gt;
}&lt;br /&gt;
.card-body .navthumb .with-icon a {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	min-height: 45px !important;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#tab-content-smw-property-constraint {&lt;br /&gt;
  filter: invert(1) hue-rotate(180deg) contrast(.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#games &amp;gt; table {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.upcoming-event-row {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-height: 56px;&lt;br /&gt;
  gap: 0 1rem;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  text-shadow: 0 0 10px var(--light);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name {&lt;br /&gt;
	min-height: 40px;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-shadow: 0 0 10px var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .shelter-stats-item-name a {&lt;br /&gt;
	color: var(--light);&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-date {&lt;br /&gt;
	color: var(--shelter-accent-light); &lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.upcoming-event-row .smw-subobject-entity {&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
.to-info-panel {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 300px;&lt;br /&gt;
}&lt;br /&gt;
@media all and ( max-width: 576px ) {&lt;br /&gt;
	.to-info-panel {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
#bottom-notice .to-info-panel {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
}&lt;br /&gt;
.stat-badge {&lt;br /&gt;
  padding: .125rem .5rem;&lt;br /&gt;
  color: #d2a383;&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
}&lt;br /&gt;
.rss-item .external:visited,&lt;br /&gt;
.rss-item .external {&lt;br /&gt;
	color: #81beff !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.card-body:has(.rss-item) {&lt;br /&gt;
	height: 240px;&lt;br /&gt;
	overflow-y: scroll;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=1972</id>
		<title>Module:Navigation</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=1972"/>
		<updated>2026-06-18T21:25:43Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function renderRow(label, image, target, model)&lt;br /&gt;
	local defaultTarget = label&lt;br /&gt;
	if not target then&lt;br /&gt;
		target = defaultTarget&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local cardClass = &#039;navthumb&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
		cardClass = &#039;navthumb p-3&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local labelClass = &#039;navthumb-label&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
		labelClass = &#039;navthumb-label h-100 with-icon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    local html = mw.html.create()&lt;br /&gt;
    local card = html:tag(&#039;div&#039;):addClass(cardClass)&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
        card:tag(&#039;div&#039;):addClass(&#039;navthumb-image&#039;):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):done()&lt;br /&gt;
    end&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
    	card:tag(&#039;div&#039;):addClass(labelClass):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):css({&lt;br /&gt;
        	[&#039;background-size&#039;] = &#039;contain&#039;,&lt;br /&gt;
			[&#039;background-repeat&#039;] = &#039;no-repeat&#039;,&lt;br /&gt;
			[&#039;padding-left&#039;] = &#039;30px&#039;,&lt;br /&gt;
        }):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
	else    	&lt;br /&gt;
		card:tag(&#039;div&#039;):addClass(labelClass):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.data(frame)&lt;br /&gt;
  local args = frame:getParent().args or {}&lt;br /&gt;
  local title = args[1] or args[&#039;title&#039;] or &#039;Navigate&#039;&lt;br /&gt;
  local showThumbs = args[&#039;show thumbs&#039;] or &#039;1&#039;&lt;br /&gt;
  local freeText = args[&#039;free text&#039;] or nil&lt;br /&gt;
  local footer = args[&#039;footer&#039;] or nil&lt;br /&gt;
  &lt;br /&gt;
  local html = mw.html.create()&lt;br /&gt;
  local card = html:tag(&#039;div&#039;):addClass(&#039;card bg-transparent thumbwall mb-3&#039;)&lt;br /&gt;
  local header = card:tag(&#039;div&#039;):addClass(&#039;card-header border-bottom-0&#039;):wikitext(title):done()&lt;br /&gt;
  local body = card:tag(&#039;div&#039;):addClass(&#039;card-body pt-2&#039;)&lt;br /&gt;
  &lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[&#039;label&#039; .. i] do&lt;br /&gt;
		local label = args[&#039;label&#039; .. i]&lt;br /&gt;
		local imageUrl = &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		local image = args[&#039;image&#039; .. i] or &#039;&#039;&lt;br /&gt;
		if image and image ~= &#039;&#039; then&lt;br /&gt;
			imageUrl = frame:preprocess(&lt;br /&gt;
				string.format(&#039;{{filepath:{{PAGENAME:%s}}}}&#039;, image)&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local target = args[&#039;target&#039; .. i] or label&lt;br /&gt;
        body:node(renderRow(label, imageUrl, target, showThumbs))&lt;br /&gt;
    	i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if freeText then&lt;br /&gt;
	    body:node(freeText)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if footer then&lt;br /&gt;
	    card:tag(&#039;div&#039;):addClass(&#039;card-footer&#039;):wikitext(footer)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=1971</id>
		<title>Module:Navigation</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=1971"/>
		<updated>2026-06-18T21:25:14Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function renderRow(label, image, target, model)&lt;br /&gt;
	local defaultTarget = label&lt;br /&gt;
	if not target then&lt;br /&gt;
		target = defaultTarget&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local cardClass = &#039;navthumb&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
		cardClass = &#039;navthumb p-3&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local labelClass = &#039;navthumb-label&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
		labelClass = &#039;navthumb-label h-100 with-icon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    local html = mw.html.create()&lt;br /&gt;
    local card = html:tag(&#039;div&#039;):addClass(cardClass)&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
        card:tag(&#039;div&#039;):addClass(&#039;navthumb-image&#039;):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):done()&lt;br /&gt;
    end&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
    	card:tag(&#039;div&#039;):addClass(labelClass):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):css({&lt;br /&gt;
        	[&#039;background-size&#039;] = &#039;contain&#039;,&lt;br /&gt;
			[&#039;background-repeat&#039;] = &#039;no-repeat&#039;,&lt;br /&gt;
			[&#039;padding-left&#039;] = &#039;30px&#039;,&lt;br /&gt;
        }):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
	else    	&lt;br /&gt;
		card:tag(&#039;div&#039;):addClass(labelClass):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.data(frame)&lt;br /&gt;
  local args = frame:getParent().args or {}&lt;br /&gt;
  local title = args[1] or args[&#039;title&#039;] or &#039;Navigate&#039;&lt;br /&gt;
  local showThumbs = args[&#039;show thumbs&#039;] or &#039;1&#039;&lt;br /&gt;
  local freeText = args[&#039;free text&#039;] or nil&lt;br /&gt;
  local footer = args[&#039;footer&#039;] or nil&lt;br /&gt;
  &lt;br /&gt;
  local html = mw.html.create()&lt;br /&gt;
  local card = html:tag(&#039;div&#039;):addClass(&#039;card bg-transparent thumbwall mb-3&#039;)&lt;br /&gt;
  local header = card:tag(&#039;div&#039;):addClass(&#039;card-header border-bottom-0&#039;):wikitext(title):done()&lt;br /&gt;
  local body = card:tag(&#039;div&#039;):addClass(&#039;card-body pt-2&#039;)&lt;br /&gt;
  &lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[&#039;label&#039; .. i] do&lt;br /&gt;
		local label = args[&#039;label&#039; .. i]&lt;br /&gt;
		local imageUrl = &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		local image = args[&#039;image&#039; .. i] or &#039;&#039;&lt;br /&gt;
		if image and image ~= &#039;&#039; then&lt;br /&gt;
			imageUrl = frame:preprocess(&lt;br /&gt;
				string.format(&#039;{{filepath:{{PAGENAME:%s}}}}&#039;, image)&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local target = args[&#039;target&#039; .. i] or label&lt;br /&gt;
        body:node(renderRow(label, imageUrl, target, showThumbs))&lt;br /&gt;
    	i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if freeText then&lt;br /&gt;
	    body:node(freeText)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if footer then&lt;br /&gt;
	    card:tag(&#039;div&#039;):addClass(&#039;card-header&#039;):wikitext(footer)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=1970</id>
		<title>Module:Navigation</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Module:Navigation&amp;diff=1970"/>
		<updated>2026-06-18T21:23:57Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function renderRow(label, image, target, model)&lt;br /&gt;
	local defaultTarget = label&lt;br /&gt;
	if not target then&lt;br /&gt;
		target = defaultTarget&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local cardClass = &#039;navthumb&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
		cardClass = &#039;navthumb p-3&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local labelClass = &#039;navthumb-label&#039;&lt;br /&gt;
	if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
		labelClass = &#039;navthumb-label h-100 with-icon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    local html = mw.html.create()&lt;br /&gt;
    local card = html:tag(&#039;div&#039;):addClass(cardClass)&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;1&#039; then&lt;br /&gt;
        card:tag(&#039;div&#039;):addClass(&#039;navthumb-image&#039;):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):done()&lt;br /&gt;
    end&lt;br /&gt;
    if image ~= &#039;&#039; and model == &#039;0&#039; then&lt;br /&gt;
    	card:tag(&#039;div&#039;):addClass(labelClass):attr({&lt;br /&gt;
        	[&#039;data-bg&#039;] = image,&lt;br /&gt;
        }):css({&lt;br /&gt;
        	[&#039;background-size&#039;] = &#039;contain&#039;,&lt;br /&gt;
			[&#039;background-repeat&#039;] = &#039;no-repeat&#039;,&lt;br /&gt;
			[&#039;padding-left&#039;] = &#039;30px&#039;,&lt;br /&gt;
        }):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
	else    	&lt;br /&gt;
		card:tag(&#039;div&#039;):addClass(labelClass):wikitext(string.format(&#039;[[%s|%s]]&#039;, target, label)):done()&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.data(frame)&lt;br /&gt;
  local args = frame:getParent().args or {}&lt;br /&gt;
  local title = args[1] or args[&#039;title&#039;] or &#039;Navigate&#039;&lt;br /&gt;
  local showThumbs = args[&#039;show thumbs&#039;] or &#039;1&#039;&lt;br /&gt;
  local freeText = args[&#039;free text&#039;] or nil&lt;br /&gt;
  &lt;br /&gt;
  local html = mw.html.create()&lt;br /&gt;
  local card = html:tag(&#039;div&#039;):addClass(&#039;card bg-transparent thumbwall mb-3&#039;)&lt;br /&gt;
  local header = card:tag(&#039;div&#039;):addClass(&#039;card-header border-bottom-0&#039;):wikitext(title):done()&lt;br /&gt;
  local body = card:tag(&#039;div&#039;):addClass(&#039;card-body pt-2&#039;)&lt;br /&gt;
  &lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[&#039;label&#039; .. i] do&lt;br /&gt;
		local label = args[&#039;label&#039; .. i]&lt;br /&gt;
		local imageUrl = &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		local image = args[&#039;image&#039; .. i] or &#039;&#039;&lt;br /&gt;
		if image and image ~= &#039;&#039; then&lt;br /&gt;
			imageUrl = frame:preprocess(&lt;br /&gt;
				string.format(&#039;{{filepath:{{PAGENAME:%s}}}}&#039;, image)&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local target = args[&#039;target&#039; .. i] or label&lt;br /&gt;
        body:node(renderRow(label, imageUrl, target, showThumbs))&lt;br /&gt;
    	i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if freeText then&lt;br /&gt;
	    body:node(freeText)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if footer then&lt;br /&gt;
	    card:tag(&#039;div&#039;):addClass(&#039;card-header&#039;):wikitext(footer)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
	<entry>
		<id>https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1969</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.pcgamingshelter.eu/w/index.php?title=Main_Page&amp;diff=1969"/>
		<updated>2026-06-18T21:22:58Z</updated>

		<summary type="html">&lt;p&gt;WikiVisor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the PC Gaming Shelter  =&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome to the PC Gaming Shelter. This archive is currently under technical reconstruction.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;my-4&amp;quot;&amp;gt;&lt;br /&gt;
The PC Gaming Shelter is a community-driven archive dedicated to preserving PC gaming history. Since the loss of legendary repositories like Filefront and Gamespy, much of our shared digital heritage has become difficult to find. This wiki serves as a central home for that &amp;quot;lost&amp;quot; information, documenting everything from classic maps, skins, and mods in The Vault to the stories of the developers and players who shaped the industry. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Game Genres&lt;br /&gt;
|label1=Action&lt;br /&gt;
|image1=NewIcon_Action.png&lt;br /&gt;
|label2=Adventure&lt;br /&gt;
|image2=NewIcon_Adventure-alternative.png&lt;br /&gt;
|label3=MMO&lt;br /&gt;
|image3=NewIcon_MMO.png&lt;br /&gt;
|label4=Racing&lt;br /&gt;
|image4=NewIcon_Racing.png&lt;br /&gt;
|label5=RPG&lt;br /&gt;
|image5=NewIcon_RPG.png&lt;br /&gt;
|label6=Shooter&lt;br /&gt;
|image6=NewIcon_Shooter.png&lt;br /&gt;
|label7=Simulation&lt;br /&gt;
|image7=NewIcon_Simulation.png&lt;br /&gt;
|label8=Sport&lt;br /&gt;
|image8=NewIcon_Racing.png&lt;br /&gt;
|label9=Strategy&lt;br /&gt;
|image9=NewIcon_Strategy.png&lt;br /&gt;
|label10=Survival&lt;br /&gt;
|image10=NewIcon_Survival.png&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|Mods, Players &amp;amp; Communities&lt;br /&gt;
|label1=Players&lt;br /&gt;
|image1=NewIcon_Player.png&lt;br /&gt;
|label2=Community&lt;br /&gt;
|image2=NewIcon_Community.png&lt;br /&gt;
|label3=Media&lt;br /&gt;
|image3=NewIcon_Media.png&lt;br /&gt;
|label4=Mods&lt;br /&gt;
|image4=NewIcon_Mods.png&lt;br /&gt;
|label5=Events&lt;br /&gt;
|image5=NewIcon_Events.png&lt;br /&gt;
|label6=Dead Places&lt;br /&gt;
|image6=NewIcon_DeadPlaces.png&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;d-flex flex-column flex-cmln-row&amp;quot; style=&amp;quot;gap: .5rem&amp;quot;&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Latest changes&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-recent-changes}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|20 Last created pages&lt;br /&gt;
|free text={{#tag: rss|{{int:shelter-new-pages}}|max=20}}&lt;br /&gt;
|footer=Scroll&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Thumbwall&lt;br /&gt;
|show thumbs=0&lt;br /&gt;
|title=Statistics &amp;lt;span class=&amp;quot;float-right text-muted&amp;quot;&amp;gt; Archive Size: &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;35G&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|label1=Games &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;164&amp;lt;/span&amp;gt;&lt;br /&gt;
|image1=NewIcon_Games-documented.png&lt;br /&gt;
|target1=Games&lt;br /&gt;
|label2=Files &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;732&amp;lt;/span&amp;gt;&lt;br /&gt;
|image2=NewIcon_Files.png&lt;br /&gt;
|target2=Special:ListFiles&lt;br /&gt;
|label3=Guardians &amp;lt;span class=&amp;quot;stat-badge&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt;&lt;br /&gt;
|image3=NewIcon_Guardians.png&lt;br /&gt;
|target3=Guardians&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;to-info-panel&amp;quot;&amp;gt;{{upcoming events}}&lt;br /&gt;
{{#ask: &lt;br /&gt;
[[Featured:+]]&lt;br /&gt;
[[Featured date::&amp;gt;{{#time:Y-m-01}}]]&lt;br /&gt;
[[Featured date::&amp;lt;{{#time:Y-m-t}}]]&lt;br /&gt;
[[Has featured category::Video of the Month||Picture of the Month]] &lt;br /&gt;
|format=embedded&lt;br /&gt;
|embedonly=yes&lt;br /&gt;
|default=No featured media has been archived yet.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiVisor</name></author>
	</entry>
</feed>