<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vencord.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rushii</id>
	<title>Discord Client Modding Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vencord.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rushii"/>
	<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/article/Special:Contributions/Rushii"/>
	<updated>2026-05-31T17:49:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=V126.21&amp;diff=1110</id>
		<title>V126.21</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=V126.21&amp;diff=1110"/>
		<updated>2025-09-20T19:45:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: fix wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;v126.21 is a reference to the version number 126021, the last stable release of the Discord Android app to be built upon Kotlin and utilize Android views for UI. It was released sometime in the summer of 2022. This version is unofficially referred to by Aliucord developers as any of the following: &amp;quot;discordkt&amp;quot;, &amp;quot;126021&amp;quot;, &amp;quot;126.21&amp;quot;, &amp;quot;KNA&amp;quot; (Kotlin Native App), or &amp;quot;kotler&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The next stable release of the Discord Android app (RNA) was new rewrite of the app, based on the [https://reactnative.dev/ React Native] framework. The change of frameworks and languages made all existing client mods for Android completely incompatible, such as [[Aliucord]], Treecord, and CutTheCord. This rewrite for Android &amp;quot;unified&amp;quot; the codebase and UX across iOS and Android, providing a consistent experience between the platforms.&lt;br /&gt;
&lt;br /&gt;
However, the rushed released of this rewrite led to tons of bugs, lag, and layout issues. The performance of the rewrite was so atrocious that even flagship phones ($1000USD+) were unable to smoothly render the app, despite the older, &#039;&#039;actually&#039;&#039; native app working completely fine.&lt;br /&gt;
&lt;br /&gt;
In late 2021, prior to the official release of the RNA (React Native Android) rewrite, Aliucord developers were able to obtain canary builds of the main HBC (Hermes bytecode) bundle, containing the main portion of the app. Some efforts led to a partial re-implementation of the missing native portion, and led to a working preview of the unreleased rewrite. This also served as a testing ground to develop a new client mod, &amp;quot;AliucordRN&amp;quot;, targeting the RNA app. However, even 7 months after the official RNA release, efforts to develop AliucordRN dwindled due to the increase in difficulty compared to modding the old app. This was compounded by the unwillingness to actually use RNA, from the inferior UX it provided. Eventually, all efforts were abandoned. However, one of the original contributors to AliucordRN, [Zoey](https://github.com/NotZoeyDev), continued their efforts in a separate project aimed at creating a Discord client mod iOS: [https://github.com/enmity-mod Enmity].&lt;br /&gt;
[[Category:Lore]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Pomelo_massban_incident&amp;diff=1105</id>
		<title>Pomelo massban incident</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Pomelo_massban_incident&amp;diff=1105"/>
		<updated>2025-08-22T15:56:01Z</updated>

		<summary type="html">&lt;p&gt;Rushii: fix wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Incident ==&lt;br /&gt;
On Tuesday, 9 May 2023, several Discord users were simultaneously banned. Users who were banned lost access to their accounts and were unable to log back in. Shortly after the incident, a [https://www.reddit.com/r/discordapp/comments/13d01h7/anyone_elses_account_randomly_disabled/ Reddit post] was created on the r/discord subreddit. Discord staff u/coral-discord informed people that they were investigating the situation and asked affected users for their usernames. Within hours, the issue was resolved, and affected users were able to log back into their accounts after resetting their passwords.&lt;br /&gt;
&lt;br /&gt;
== Reason ==&lt;br /&gt;
Although the real reason is not known, community members theorized that it was related to Discord&#039;s new usernames (Pomelo). This change removed discriminators from usernames, making all usernames globally unique. As the feature was slowly being rolled out, some users wanted to check if their usernames had been taken. To do this, they made an HTTP request to the Discord Pomelo endpoint. However, they likely failed to add all the necessary HTTP headers for that endpoint, which would&#039;ve triggered antispam and flagged their account for suspicious behavior.&lt;br /&gt;
&lt;br /&gt;
[[Category:Drama &amp;amp; Incidents]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=V126.21&amp;diff=1102</id>
		<title>V126.21</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=V126.21&amp;diff=1102"/>
		<updated>2025-06-13T07:36:49Z</updated>

		<summary type="html">&lt;p&gt;Rushii: more lore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;v126.21 is a reference to the version number 126021, the last stable release of the Discord Android app to be built upon Kotlin and utilize Android views for UI. It was released sometime in the summer of 2022. This version is unofficially referred to by Aliucord developers as any of the following: &amp;quot;discordkt&amp;quot;, &amp;quot;126021&amp;quot;, &amp;quot;126.21&amp;quot;, &amp;quot;KNA&amp;quot; (Kotlin Native App), or &amp;quot;kotler&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The next stable release of the Discord Android app (RNA) was new rewrite of the app, based on the [https://reactnative.dev/ React Native] framework. The change of frameworks and languages made all existing client mods for Android completely incompatible, such as [[Aliucord]], Treecord, and CutTheCord. This rewrite for Android &amp;quot;unified&amp;quot; the codebase and UX across iOS and Android, providing a consistent experience between the platforms.&lt;br /&gt;
&lt;br /&gt;
However, the rushed released of this rewrite led to tons of bugs, lag, and layout issues. The performance of the rewrite was so atrocious that even flagship phones ($1000USD+) were unable to smoothly render the app, despite the older, &#039;&#039;actually&#039;&#039; native app working completely fine.&lt;br /&gt;
&lt;br /&gt;
In December 2022, prior to the official release of the RNA (React Native Android) rewrite, Aliucord developers were able to obtain a rolling canary release of the main HBC (Hermes bytecode) bundle, containing the main portion of the app. Some efforts led to a partial re-implementation of the missing native portion, and gave a preview into the unreleased version. This also served as a testing ground to develop a new client mod, &amp;quot;AliucordRN&amp;quot;, targeting the RNA app.&lt;br /&gt;
&lt;br /&gt;
Even after the official RNA release 7 months later, efforts to develop AliucordRN slowly dwindled due to the large increase in difficulty compared to modding the old app, compounded by the unwillingness to actually use RNA, from the inferior UX it provided. Eventually, all efforts were abandoned. However, AliucordRN served as the predecessor of [https://github.com/enmity-mod Enmity], a Discord client mod for iOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Lore]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=1101</id>
		<title>Aliucord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=1101"/>
		<updated>2025-06-13T07:09:59Z</updated>

		<summary type="html">&lt;p&gt;Rushii: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Infobox mod&lt;br /&gt;
| name = Aliucord&lt;br /&gt;
| logo = Aliucord logo.png&lt;br /&gt;
| logoCaption = The original Aliucord logo, author unknown.&lt;br /&gt;
| yearsActive = February 2021 - present&lt;br /&gt;
| platforms = Android&lt;br /&gt;
| developers = [[Juby210]], [[User:Rushii]], [[User:Vendicated]]&lt;br /&gt;
| licenses = OSL-3.0&lt;br /&gt;
| repo = [https://github.com/Aliucord/Aliucord Aliucord/Aliucord]&lt;br /&gt;
| languages = [[wikipedia:Kotlin_(programming_language)|Kotlin]], [[wikipedia:Java_(programming_language)|Java]]&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Aliucord&#039;&#039;&#039;, commonly referred to as &#039;&#039;&#039;Aliu&#039;&#039;&#039; or &#039;&#039;&#039;AC&#039;&#039;&#039;, is a mobile Discord client mod for Android. It is based on the [[v126.21]] version of the Android app, a version from mid-2022 now called the &#039;&#039;Legacy Android App&#039;&#039;&amp;lt;ref&amp;gt;{{cite web|title=Discord incident status referencing the legacy app|url=https://discordstatus.com/incidents/pp6njm8bcwzq}}&amp;lt;/ref&amp;gt;. Its primary patching method is runtime ART hooking using [[LSPlant]].&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
While Aliucord is an extremely complex project (actively used source code is spread across &#039;&#039;at least&#039;&#039; 13 repositories), the main components can be simplified down to just four. &#039;&#039;Installer&#039;&#039; (alternatively [[#Manager|&#039;&#039;Manager&#039;&#039;]]), &#039;&#039;Injector&#039;&#039;, &#039;&#039;Core&#039;&#039;, and the external plugins. The &#039;&#039;Installer&#039;&#039; is a separate app that handles downloading the Discord APK from a mirror, adding in a precompiled &#039;&#039;Injector&#039;&#039;, which replaces an entry point into the app. Once this replaced class is run, the &#039;&#039;Injector&#039;&#039; initializes LSPlant and downloads a precompiled &#039;&#039;Core&#039;&#039; to execute, which applies some fixes and then loads externally installed plugins.&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found in this blog post: {{cite web|title=Aliucord: Modding the legacy Discord app|url=https://rushii.materii.dev/aliucord}}&lt;br /&gt;
&lt;br /&gt;
==Manager==&lt;br /&gt;
&#039;&#039;Aliucord Manager&#039;&#039; was created in the summer of 2021&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Manager initial commit|url=https://github.com/Aliucord/Manager/commit/7881279196652bf79ae83d971689d6ea6731d833}}&amp;lt;/ref&amp;gt;, aiming to replace the Aliucord Installer with better design. It is written entirely in [[wikipedia:Kotlin_(programming_language)|Kotlin]] and [https://developer.android.com/jetpack/compose Jetpack Compose]. As of March 2024, it is still under development, nearly three years later. While initially, the main idea of this rewrite was to stop using [[wikipedia:Flutter_(software)|Flutter]], new ideas and features started to be implemented, aided by collaboration with [[Vendetta]]&#039;s [https://github.com/vendetta-mod/VendettaManager Manager]. A more user-friendly UI, an install flow that handles edge cases, and multi-install support are some of the main differences.&lt;br /&gt;
&amp;lt;!-- TODO: add images of various manager screens --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client Mods]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=1100</id>
		<title>Aliucord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=1100"/>
		<updated>2025-06-13T07:09:12Z</updated>

		<summary type="html">&lt;p&gt;Rushii: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Infobox mod&lt;br /&gt;
| name = Aliucord&lt;br /&gt;
| logo = Aliucord logo.png&lt;br /&gt;
| logoCaption = The original Aliucord logo, author unknown.&lt;br /&gt;
| yearsActive = February 2021 - present&lt;br /&gt;
| platforms = Android&lt;br /&gt;
| developers = [[Juby210]], [[User:Rushii]], [[User:Vendicated]]&lt;br /&gt;
| licenses = OSL-3.0&lt;br /&gt;
| repo = [https://github.com/Aliucord/Aliucord Aliucord/Aliucord]&lt;br /&gt;
| languages = [[wikipedia:Kotlin_(programming_language)|Kotlin]], [[wikipedia:Java_(programming_language)|Java]]&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Aliucord&#039;&#039;&#039;, commonly referred to as &#039;&#039;&#039;Aliu&#039;&#039;&#039; or &#039;&#039;&#039;AC&#039;&#039;&#039;, is a mobile Discord client mod for Android. It is based on the [v126.21]] version of the Android app, a version from mid-2022 now called the &#039;&#039;Legacy Android App&#039;&#039;&amp;lt;ref&amp;gt;{{cite web|title=Discord incident status referencing the legacy app|url=https://discordstatus.com/incidents/pp6njm8bcwzq}}&amp;lt;/ref&amp;gt;. Its primary patching method is runtime ART hooking using [[LSPlant]].&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
While Aliucord is an extremely complex project (actively used source code is spread across &#039;&#039;at least&#039;&#039; 13 repositories), the main components can be simplified down to just four. &#039;&#039;Installer&#039;&#039; (alternatively [[#Manager|&#039;&#039;Manager&#039;&#039;]]), &#039;&#039;Injector&#039;&#039;, &#039;&#039;Core&#039;&#039;, and the external plugins. The &#039;&#039;Installer&#039;&#039; is a separate app that handles downloading the Discord APK from a mirror, adding in a precompiled &#039;&#039;Injector&#039;&#039;, which replaces an entry point into the app. Once this replaced class is run, the &#039;&#039;Injector&#039;&#039; initializes LSPlant and downloads a precompiled &#039;&#039;Core&#039;&#039; to execute, which applies some fixes and then loads externally installed plugins.&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found in this blog post: {{cite web|title=Aliucord: Modding the legacy Discord app|url=https://rushii.materii.dev/aliucord}}&lt;br /&gt;
&lt;br /&gt;
==Manager==&lt;br /&gt;
&#039;&#039;Aliucord Manager&#039;&#039; was created in the summer of 2021&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Manager initial commit|url=https://github.com/Aliucord/Manager/commit/7881279196652bf79ae83d971689d6ea6731d833}}&amp;lt;/ref&amp;gt;, aiming to replace the Aliucord Installer with better design. It is written entirely in [[wikipedia:Kotlin_(programming_language)|Kotlin]] and [https://developer.android.com/jetpack/compose Jetpack Compose]. As of March 2024, it is still under development, nearly three years later. While initially, the main idea of this rewrite was to stop using [[wikipedia:Flutter_(software)|Flutter]], new ideas and features started to be implemented, aided by collaboration with [[Vendetta]]&#039;s [https://github.com/vendetta-mod/VendettaManager Manager]. A more user-friendly UI, an install flow that handles edge cases, and multi-install support are some of the main differences.&lt;br /&gt;
&amp;lt;!-- TODO: add images of various manager screens --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client Mods]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=MessageLogger&amp;diff=1076</id>
		<title>MessageLogger</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=MessageLogger&amp;diff=1076"/>
		<updated>2024-06-25T18:10:32Z</updated>

		<summary type="html">&lt;p&gt;Rushii: /* Controversy */typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Message Loggers are plugins that allow users to view deleted &amp;amp; edited Discord messages.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
[[File:Message_Logger_preview_deleted_messages.png|alt=This is how deleted messages look like|thumb|This is how deleted messages look like]][[File:Message_Logger_Preview_Edited_Messages.png|alt=This is how Edited Messages looks like|thumb|This is how edited messages look like]]&lt;br /&gt;
&lt;br /&gt;
Message loggers allow users to see:&lt;br /&gt;
* Recently deleted messages. A red text indicates the deleted messages.&lt;br /&gt;
* Recently edited messages. A gray text indicates the edited message.&lt;br /&gt;
&lt;br /&gt;
== Versions (selection) ==&lt;br /&gt;
&lt;br /&gt;
* [https://1lighty.github.io/BetterDiscordStuff/?plugin=MessageLoggerV2 MessageLoggerV2], a [[BetterDiscord]] plugin by [[Lighty]]&lt;br /&gt;
* [https://github.com/Juby210/Aliucord-plugins MessageLogger], an [[Aliucord]] plugin by [[Juby]]&lt;br /&gt;
* [https://vencord.dev/plugins/MessageLogger MessageLogger], a [[Vencord]] plugin by [[rushii]]&lt;br /&gt;
&lt;br /&gt;
== Controversy ==&lt;br /&gt;
Use of MessageLoggers is very controversial in the community, with multiple [[client mods]] such as [[BetterDiscord]]&amp;lt;ref name=&amp;quot;bd-faq&amp;quot;&amp;gt;{{Cite web|url=https://betterdiscord.app/FAQ|quote=Message loggers are in violation discord&#039;s API terms and privacy policy, and can result in account termination. We will not provide such plugins|title=BetterDiscord FAQ point 11}}&amp;lt;/ref&amp;gt; and [[Powercord]]&amp;lt;ref&amp;gt;{{Cite web|url=https://powercord.dev/guidelines|archive-url=https://web.archive.org/web/20210314211818/https://powercord.dev/guidelines|archive-date=2021-03-14|quote=End User Data of other users must be handled with caution with regards to privacy. For example, logging all deleted messages is prohibited.|title=Powercord Guidelines point 2}}&amp;lt;/ref&amp;gt; prohibiting their usage outright and theme developers who vehemently oppose them have [https://github.com/NYRI4/LilyPichu/commit/49b169d1436c9de9b238f09c1fb72e00418f8141 attempted] to block users of it in the past, only to later revert their changes.&lt;br /&gt;
&lt;br /&gt;
Common reasons are that they &amp;quot;violate user privacy&amp;quot; and &amp;quot;Discord&#039;s privacy policy and API terms,&amp;quot; with multiple sources claiming that using loggers poses a risk to your account.&amp;lt;ref name=&amp;quot;bd-faq&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While the morality of their usage is debatable, claims that message loggers are dangerous are nothing more than blatant disinformation. As all the functionality provided by these plugins is performed client-side, &#039;&#039;without interacting with the API or gateway&#039;&#039;, it is impossible for these plugins to pose a risk by simply using them.&lt;br /&gt;
&lt;br /&gt;
Furthermore, there have been no documented cases of users getting their accounts banned just for even revealing they use message loggers. As a result, such plugins still see wide usage across practically all client mods, even on those that officially prohibit them.&lt;br /&gt;
&lt;br /&gt;
Additionally, Discord&#039;s Developer terms of service only apply to &amp;quot;access to and use of the [Discord] APIs&amp;quot;&amp;lt;ref&amp;gt;{{Cite web|url=https://discord.com/developers/docs/policies-and-agreements/developer-terms-of-service|title=Discord Developer Terms of Service}}&amp;lt;/ref&amp;gt;. Since logger plugins entirely rely on data the client &#039;&#039;already has&#039;&#039;, these terms can&#039;t be applied to them.&lt;br /&gt;
&lt;br /&gt;
The only applicable term from the terms of service is the disallowance of modifying Discord services, which [[client mods]] themselves break. As this is not unique to message loggers, using this term to single out message loggers explicitly is inappropriate as well.&lt;br /&gt;
&lt;br /&gt;
== Citations ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=MessageLogger&amp;diff=1036</id>
		<title>MessageLogger</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=MessageLogger&amp;diff=1036"/>
		<updated>2024-03-28T08:11:40Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Elaborate on claims about danger of message loggers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Message Loggers are plugins that allow users to view deleted &amp;amp; edited Discord messages.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
[[File:Message_Logger_preview_deleted_messages.png|alt=This is how deleted messages look like|thumb|This is how deleted messages look like]]&lt;br /&gt;
&lt;br /&gt;
Message loggers allow users to see:&lt;br /&gt;
* Recently deleted messages. A red text indicates the deleted messages.&lt;br /&gt;
* Recently edited messages. A gray text indicates the edited message.&lt;br /&gt;
&lt;br /&gt;
== Versions (selection) ==&lt;br /&gt;
&lt;br /&gt;
* [https://1lighty.github.io/BetterDiscordStuff/?plugin=MessageLoggerV2 MessageLoggerV2], a [[BetterDiscord]] plugin by [[Lighty]]&lt;br /&gt;
* [https://github.com/Juby210/Aliucord-plugins MessageLogger], an [[Aliucord]] plugin by [[Juby]]&lt;br /&gt;
* [https://vencord.dev/plugins/MessageLogger MessageLogger], a [[Vencord]] plugin by [[rushii]]&lt;br /&gt;
&lt;br /&gt;
== Controversy ==&lt;br /&gt;
[[File:Message_Logger_Preview_Edited_Messages.png|alt=This is how Edited Messages looks like|thumb|This is how Edited Messages lo]]&lt;br /&gt;
&lt;br /&gt;
Use of MessageLoggers is very controversial in the community, with multiple [[client mods]] such as [[BetterDiscord]]&amp;lt;ref name=&amp;quot;bd-faq&amp;quot;&amp;gt;{{Cite web|url=https://betterdiscord.app/FAQ|quote=Message loggers are in violation discord&#039;s API terms and privacy policy, and can result in account termination. We will not provide such plugins|title=BetterDiscord FAQ point 11}}&amp;lt;/ref&amp;gt; and [[Powercord]]&amp;lt;ref&amp;gt;{{Cite web|url=https://powercord.dev/guidelines|archive-url=https://web.archive.org/web/20210314211818/https://powercord.dev/guidelines|archive-date=2021-03-14|quote=End User Data of other users must be handled with caution with regards to privacy. For example, logging all deleted messages is prohibited.|title=Powercord Guidelines point 2}}&amp;lt;/ref&amp;gt; prohibiting their usage outright and theme developers who vehemently oppose them have [https://github.com/NYRI4/LilyPichu/commit/49b169d1436c9de9b238f09c1fb72e00418f8141 attempted] to block users of it in the past, only to later revert their changes.&lt;br /&gt;
&lt;br /&gt;
Commonly stated reasons are that they &amp;quot;violate user privacy&amp;quot; and &amp;quot;Discord&#039;s privacy policy and API terms&amp;quot;, with multiple sources claiming usage of loggers poses a risk to your account.&amp;lt;ref name=&amp;quot;bd-faq&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While the morality of their usage is debatable, claims that message loggers are dangerous is nothing more than blatant disinformation. As all the functionality provided by these plugins is performed client-side, &#039;&#039;without interacting with the API or gateway&#039;&#039;, it is simply impossible for these plugins to pose a risk by simply using them.&lt;br /&gt;
&lt;br /&gt;
Furthermore, there have been no documented cases of users getting account banned for just for even revealing they use message loggers. As a result, such plugins still see wide usage across practically all client mods, even on those that officially prohibit them.&lt;br /&gt;
&lt;br /&gt;
Additionally, Discord&#039;s Developer terms of service only apply to &amp;quot;access to and use of the [Discord] APIs&amp;quot;&amp;lt;ref&amp;gt;{{Cite web|url=https://discord.com/developers/docs/policies-and-agreements/developer-terms-of-service|title=Discord Developer Terms of Service}}&amp;lt;/ref&amp;gt;. Since logger plugins entirely rely on data the client &#039;&#039;already has&#039;&#039;, these terms can&#039;t really be applied to them.&lt;br /&gt;
&lt;br /&gt;
The only applicable term from the terms of service would be the disallowing of modifying Discord services, which [[client mods]] themselves break. As this is not unique to message loggers, using this term to specifically single out message loggers is inappropriate as well.&lt;br /&gt;
&lt;br /&gt;
== Citations ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=574</id>
		<title>Aliucord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=574"/>
		<updated>2024-03-09T01:22:29Z</updated>

		<summary type="html">&lt;p&gt;Rushii: add some basic info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Infobox&lt;br /&gt;
| name = Aliucord&lt;br /&gt;
| above = Aliucord&lt;br /&gt;
&lt;br /&gt;
| image = [[File:Aliucord logo.png|thumb]]&lt;br /&gt;
| caption1 = The original Aliucord logo, author unknown.&amp;lt;p&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| label1 = Status&lt;br /&gt;
| data1  = Active&lt;br /&gt;
&lt;br /&gt;
| label3 = Repository&lt;br /&gt;
| data3  = [https://github.com/Aliucord/Aliucord Aliucord/Aliucord]&lt;br /&gt;
&lt;br /&gt;
| label4 = Language&lt;br /&gt;
| data4 = [[wikipedia:Kotlin_(programming_language)|Kotlin]] + [[wikipedia:Java_(programming_language)|Java]]&lt;br /&gt;
&lt;br /&gt;
| label5 = License&lt;br /&gt;
| data5  = OSL-3.0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Aliucord&#039;&#039;, commonly referred to as &#039;&#039;Aliu&#039;&#039;, or &#039;&#039;AC&#039;&#039;, is a mobile Discord client mod for Android. It targets the [[v126.21]] version of the Android app, a version from mid-2022 now called the &#039;&#039;Legacy Android App&#039;&#039;&amp;lt;ref&amp;gt;{{cite web|title=Discord incident status referencing the legacy app|url=https://discordstatus.com/incidents/pp6njm8bcwzq}}&amp;lt;/ref&amp;gt;. It&#039;s primary method of patching is runtime ART hooking through the use of [[LSPlant]].&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
While Aliucord is an extremely complex project (actively used source code is spread across &#039;&#039;at least&#039;&#039; 13 repositories), the main components can be simplified down to just four. &#039;&#039;Installer&#039;&#039; (alternatively [[#Manager|&#039;&#039;Manager&#039;&#039;]]), &#039;&#039;Injector&#039;&#039;, &#039;&#039;Core&#039;&#039;, and the external plugins. The &#039;&#039;Installer&#039;&#039; is a separate app that handles downloading the Discord APK from a mirror, adding in a precompiled &#039;&#039;Injector&#039;&#039;, which replaces an entry point into the app. Once this replaced class is run, the &#039;&#039;Injector&#039;&#039; initializes LSPlant and downloads a precompiled &#039;&#039;Core&#039;&#039; to execute, which applies some fixes and then loads externally installed plugins.&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found in this blog post: {{cite web|title=Aliucord: Modding the legacy Discord app|url=https://rushii.materii.dev/aliucord}}&lt;br /&gt;
&lt;br /&gt;
==Manager==&lt;br /&gt;
&#039;&#039;Aliucord Manager&#039;&#039; was created in the summer of 2021&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Manager initial commit|url=https://github.com/Aliucord/Manager/commit/7881279196652bf79ae83d971689d6ea6731d833}}&amp;lt;/ref&amp;gt;, aiming to replace the Aliucord Installer with better design. It is written entirely in [[wikipedia:Kotlin_(programming_language)|Kotlin]] and [https://developer.android.com/jetpack/compose Jetpack Compose]. As of March 2024, nearly 3 years later, it is still under development. While initially the main idea of this rewrite was to stop using [[wikipedia:Flutter_(software)|Flutter]], new ideas and features started to be implemented, aided by collaboration with [[Vendetta]]&#039;s [https://github.com/vendetta-mod/VendettaManager Manager]. A more user-friendly UI, an install flow that handles edge cases, and multi-install support are some of the main differences.&lt;br /&gt;
&amp;lt;!-- TODO: add images of various manager screens --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client Mods]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=572</id>
		<title>Aliucord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Aliucord&amp;diff=572"/>
		<updated>2024-03-08T23:12:47Z</updated>

		<summary type="html">&lt;p&gt;Rushii: improve infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
| name = Aliucord&lt;br /&gt;
| above = Aliucord&lt;br /&gt;
&lt;br /&gt;
| image = [[File:Aliucord logo.png|thumb]]&lt;br /&gt;
| caption1 = The original Aliucord logo, author unknown.&amp;lt;p&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| label1 = Status&lt;br /&gt;
| data1  = Active&lt;br /&gt;
&lt;br /&gt;
| label3 = Repository&lt;br /&gt;
| data3  = [https://github.com/Aliucord/Aliucord Aliucord/Aliucord]&lt;br /&gt;
&lt;br /&gt;
| label4 = Language&lt;br /&gt;
| data4 = [[wikipedia:Kotlin_(programming_language)|Kotlin]] + [[wikipedia:Java_(programming_language)|Java]]&lt;br /&gt;
&lt;br /&gt;
| label5 = License&lt;br /&gt;
| data5  = OSL-3.0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Aliucord&#039;&#039;, commonly referred to as &#039;&#039;Aliu&#039;&#039; or &#039;&#039;AC&#039;&#039;, is a mobile Discord client mod for Android. It targets the [[v126.21]] version of the Android Discord app, now referred to as the legacy mobile app.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client Mods]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=570</id>
		<title>Opencord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=570"/>
		<updated>2024-03-08T21:31:34Z</updated>

		<summary type="html">&lt;p&gt;Rushii: use infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
| name = Opencord&lt;br /&gt;
| above = Opencord&lt;br /&gt;
&lt;br /&gt;
| image = [[File:Opencord.png|thumb]]&lt;br /&gt;
| caption1 = The original Opencord logo, designed by Wing.&amp;lt;p&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| label1 = Status&lt;br /&gt;
| data1  = Discontinued&lt;br /&gt;
&lt;br /&gt;
| label2 = Authors&lt;br /&gt;
| data2 = [https://github.com/X1nto Xinto], [https://github.com/rushiiMachine rushii]&lt;br /&gt;
&lt;br /&gt;
| label3 = Repository&lt;br /&gt;
| data3  = [https://github.com/MateriiApps/OpenCord MateriiApps/OpenCord]&lt;br /&gt;
&lt;br /&gt;
| label4 = Language&lt;br /&gt;
| data4 = [[wikipedia:Kotlin_(programming_language)|Kotlin]] + [https://developer.android.com/jetpack/compose Jetpack Compose]&lt;br /&gt;
&lt;br /&gt;
| label5 = License&lt;br /&gt;
| data5  = GPLv3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MateriiApps/OpenCord Opencord] was an open-source Material You implementation of the Discord Android app. Created in late August of 2021, it has reimplemented a sizable portion of the mobile Discord client, completely from scratch. Despite steady development initially, it alternated between periods of rapid progress and months of inactivity. Progress completely stopped by May 2023, and it was archived on Jan 12, 2024. As of March 2024, it still has over 1.2k stars on GitHub.&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
&lt;br /&gt;
While the original reason for its creation was that Xinto was fed up with crossplatform React Native apps everywhere&amp;lt;ref&amp;gt;{{cite web|title=Materii discord message|url=https://discord.com/channels/885879572447522817/885879572447522820/1215711663525863442}}&amp;lt;/ref&amp;gt;, as [[Aliucord]], another client mod, started to mature, it became apparent that adding dozens of fixes onto an outdated client would eventually become unsustainable, and an entirely new client would be needed. While the first 8 months of development were only propelled by [https://github.com/x1nto Xinto], in Apr 2022, [https://github.com/rushiiMachine rushii] started contributing to the project and eventually became one of the two main developers. After an amount of time, most contributions started to be done by only rushii as Xinto focused on other projects. Eventually, rushii stopped work on it as well due to roadblocks in designing a proper architecture, exacerbated by loads of technical debt, and dozens of heated debates over the most minuscule of changes.&lt;br /&gt;
&lt;br /&gt;
One of the main goals of the project was to avoid the instability of client mods by reimplementing everything from scratch, instead of relying on patching Discord code which can easily break due to updates. In doing so, a lot of things could be omitted or simplified, like the intentional exclusion of nitro features. (i.e. super reactions, profile effects, etc.) Having a clean interface that focused on usability and simplicity while remaining functional was an important design goal.&lt;br /&gt;
&lt;br /&gt;
While Discord doesn&#039;t &amp;quot;care&amp;quot; about client mods or 3rd party clients, the truth is that if certain API and gateway requests are incorrect, the account will be flagged in a variety of ways and could cause additional captchas, forcing phone verification, or an outright ban.&amp;lt;ref&amp;gt;{{cite web|title=Cordless shutdown notice|url=https://github.com/Bios-Marcel/cordless?tab=readme-ov-file#i-am-closing-down-the-cordless-project}}&amp;lt;/ref&amp;gt; This is one of the major reasons why development took so long since the client must act exactly like a [[v126.21]] Discord client, from the identification sent to the API and gateway, to adhering to all ratelimits, to even spoofing the TLS metadata.&amp;lt;ref&amp;gt;{{cite web|title=JA3 TLS fingerprinting|url=https://github.com/salesforce/ja3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
Opencord is written in [[wikipedia:Kotlin_(programming_language)|Kotlin]] with the use of [https://developer.android.com/jetpack/compose Jetpack Compose], a modern declarative native UI framework for Android. Most of the codebase is based on dependency injection with [https://insert-koin.io Koin], in such a way that it would be theoretically testable in the future. While basic gateway functionality lives independently, most of the complex logic, including caching and live state, lives in [https://github.com/MateriiApps/OpenCord/tree/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/store Stores], a concept taken from the original Discord codebase.&lt;br /&gt;
&lt;br /&gt;
While most of the UI is broken up into small &amp;lt;code&amp;gt;@Composable&amp;lt;/code&amp;gt; components, complex UI was wrongly implemented, leading to dozens of recomposition issues that took an insane amount of effort to fix. Additionally, due to the idiomaticity of Compose, complex UI components can be split up into the layout and content, where invoking the layout forces you to provide all the content to the layout. This led to a lot of repetitiveness throughout the codebase, quickly becoming [https://github.com/MateriiApps/OpenCord/blob/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/ui/screens/home/panels/chat/ChatLoaded.kt#L80-L285 unmaintainable]. While this was eventually planned to be refactored out, that never happened. This has been taken into consideration regarding future projects of the developers and it hasn&#039;t happened to this extent since.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Custom Clients]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=DeadSystemException&amp;diff=569</id>
		<title>DeadSystemException</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=DeadSystemException&amp;diff=569"/>
		<updated>2024-03-08T21:16:04Z</updated>

		<summary type="html">&lt;p&gt;Rushii: small cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [https://developer.android.com/reference/android/os/DeadSystemException Android error] that is thrown when the system dies.&lt;br /&gt;
&lt;br /&gt;
This error can be sometimes be unexpectedly thrown on certain devices if using Aliucord&#039;s [https://github.com/rushiiMachine/aliucord-plugins/tree/master/AudioPlayer AudioPlayer] plugin.&lt;br /&gt;
Nobody knows how or why AudioPlayer is causing that error, because the system crashes into recovery afterwards&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Discord message (Ven)|url=https://discord.com/channels/811255666990907402/811261478875299840/924777944671461417}}&amp;lt;/ref&amp;gt; and the logs are only accessible with root.&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Discord message (HaramKing)|url=https://discord.com/channels/811255666990907402/811261478875299840/924418278225485845}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A sample DeadSystemException:&lt;br /&gt;
{{codesample|lang=java|&lt;br /&gt;
java.lang.RuntimeException: android.os.DeadSystemException&lt;br /&gt;
 at android.view.ViewRootImpl.systemGestureExclusionChanged(ViewRootImpl.java:4671)&lt;br /&gt;
 at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:5582)&lt;br /&gt;
 at android.os.Handler.dispatchMessage(Handler.java:106)&lt;br /&gt;
 at android.os.Looper.loop(Looper.java:233)&lt;br /&gt;
 at android.app.ActivityThread.main(ActivityThread.java:8035)&lt;br /&gt;
 at java.lang.reflect.Method.invoke(Native Method)&lt;br /&gt;
 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)&lt;br /&gt;
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)&lt;br /&gt;
Caused by: android.os.DeadSystemException&lt;br /&gt;
 ... 8 more&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=562</id>
		<title>Opencord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=562"/>
		<updated>2024-03-08T17:33:31Z</updated>

		<summary type="html">&lt;p&gt;Rushii: add input from xinto and cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Opencord.png|thumb|Opencord&#039;s original logo]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MateriiApps/OpenCord Opencord] was an open-source Material You implementation of the Discord Android app. Created in late August of 2021, it has reimplemented a sizable portion of the mobile Discord client, completely from scratch. Despite steady development initially, it alternated between periods of rapid progress and months of inactivity. Progress completely stopped by May 2023, and it was archived on Jan 12, 2024. As of March 2024, it still has over 1.2k stars on GitHub.&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
&lt;br /&gt;
While the original reason for its creation was that Xinto was fed up with crossplatform React Native apps everywhere&amp;lt;ref&amp;gt;{{cite web|title=Materii discord message|url=https://discord.com/channels/885879572447522817/885879572447522820/1215711663525863442}}&amp;lt;/ref&amp;gt;, as [[Aliucord]], another client mod, started to mature, it became apparent that adding dozens of fixes onto an outdated client would eventually become unsustainable, and an entirely new client would be needed. While the first 8 months of development were only propelled by [https://github.com/x1nto Xinto], in Apr 2022, [https://github.com/rushiiMachine rushii] started contributing to the project and eventually became one of the two main developers. After an amount of time, most contributions started to be done by only rushii as Xinto focused on other projects. Eventually, rushii stopped work on it as well due to roadblocks in designing a proper architecture, exacerbated by loads of technical debt, and dozens of heated debates over the most minuscule of changes.&lt;br /&gt;
&lt;br /&gt;
One of the main goals of the project was to avoid the instability of client mods by reimplementing everything from scratch, instead of relying on patching Discord code which can easily break due to updates. In doing so, a lot of things could be omitted or simplified, like the intentional exclusion of nitro features. (i.e. super reactions, profile effects, etc.) Having a clean interface that focused on usability and simplicity while remaining functional was an important design goal.&lt;br /&gt;
&lt;br /&gt;
While Discord doesn&#039;t &amp;quot;care&amp;quot; about client mods or 3rd party clients, the truth is that if certain API and gateway requests are incorrect, the account will be flagged in a variety of ways and could cause additional captchas, forcing phone verification, or an outright ban.&amp;lt;ref&amp;gt;{{cite web|title=Cordless shutdown notice|url=https://github.com/Bios-Marcel/cordless?tab=readme-ov-file#i-am-closing-down-the-cordless-project}}&amp;lt;/ref&amp;gt; This is one of the major reasons why development took so long since the client must act exactly like a [[v126.21]] Discord client, from the identification sent to the API and gateway, to adhering to all ratelimits, to even spoofing the TLS metadata.&amp;lt;ref&amp;gt;{{cite web|title=JA3 TLS fingerprinting|url=https://github.com/salesforce/ja3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
Opencord is written in [[wikipedia:Kotlin_(programming_language)|Kotlin]] with the use of [https://developer.android.com/jetpack/compose Jetpack Compose], a modern declarative native UI framework for Android. Most of the codebase is based on dependency injection with [https://insert-koin.io Koin], in such a way that it would be theoretically testable in the future. While basic gateway functionality lives independently, most of the complex logic, including caching and live state, lives in [https://github.com/MateriiApps/OpenCord/tree/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/store Stores], a concept taken from the original Discord codebase.&lt;br /&gt;
&lt;br /&gt;
While most of the UI is broken up into small &amp;lt;code&amp;gt;@Composable&amp;lt;/code&amp;gt; components, complex UI was wrongly implemented, leading to dozens of recomposition issues that took an insane amount of effort to fix. Additionally, due to the idiomaticity of Compose, complex UI components can be split up into the layout and content, where invoking the layout forces you to provide all the content to the layout. This led to a lot of repetitiveness throughout the codebase, quickly becoming [https://github.com/MateriiApps/OpenCord/blob/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/ui/screens/home/panels/chat/ChatLoaded.kt#L80-L285 unmaintainable]. While this was eventually planned to be refactored out, that never happened. This has been taken into consideration regarding future projects of the developers and it hasn&#039;t happened to this extent since.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Custom Clients]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Main_Page&amp;diff=561</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Main_Page&amp;diff=561"/>
		<updated>2024-03-08T17:01:39Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Add uncategorized pages link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Discord Client Modding Wiki}}&lt;br /&gt;
This is a wiki about all sorts of things related to client modding. Not just strictly Vencord, but also anything about other mods, or client modding lore!&lt;br /&gt;
&lt;br /&gt;
Join us in the &amp;lt;code&amp;gt;#vencord-wiki&amp;lt;/code&amp;gt; channel in our [https://vencord.dev/discord Discord] if you would like to contribute, or instead check out a [[Special:Random|random article]]!&lt;br /&gt;
&lt;br /&gt;
==Main sections==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Client Mods]]&lt;br /&gt;
* [[:Category:Custom Clients]]&lt;br /&gt;
* [[Special:UncategorizedPages]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=DeadSystemException&amp;diff=560</id>
		<title>DeadSystemException</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=DeadSystemException&amp;diff=560"/>
		<updated>2024-03-08T16:58:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Improve page content and history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [https://developer.android.com/reference/android/os/DeadSystemException Android error] that is thrown when the system is dead.&lt;br /&gt;
&lt;br /&gt;
This error can be sometimes be thrown on certain devices randomly when using Aliucord&#039;s [https://github.com/rushiiMachine/aliucord-plugins/tree/master/AudioPlayer AudioPlayer] plugin.&lt;br /&gt;
Nobody knows how or why AudioPlayer is causing that error, because the system crashes into recovery afterwards&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Discord message|url=https://discord.com/channels/811255666990907402/811261478875299840/924777944671461417}}&amp;lt;/ref&amp;gt; and the logs are only accessible with root.&amp;lt;ref&amp;gt;{{cite web|title=Aliucord Discord message|url=https://discord.com/channels/811255666990907402/811261478875299840/924418278225485845}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{codesample|lang=java|title=A sample DeadSystemException|&lt;br /&gt;
java.lang.RuntimeException: android.os.DeadSystemException&lt;br /&gt;
 at android.view.ViewRootImpl.systemGestureExclusionChanged(ViewRootImpl.java:4671)&lt;br /&gt;
 at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:5582)&lt;br /&gt;
 at android.os.Handler.dispatchMessage(Handler.java:106)&lt;br /&gt;
 at android.os.Looper.loop(Looper.java:233)&lt;br /&gt;
 at android.app.ActivityThread.main(ActivityThread.java:8035)&lt;br /&gt;
 at java.lang.reflect.Method.invoke(Native Method)&lt;br /&gt;
 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)&lt;br /&gt;
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)&lt;br /&gt;
Caused by: android.os.DeadSystemException&lt;br /&gt;
 ... 8 more&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Codesample/doc&amp;diff=559</id>
		<title>Template:Codesample/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Codesample/doc&amp;diff=559"/>
		<updated>2024-03-08T16:54:06Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
{{Uses TemplateStyles|Template:Codesample/style.css|Template:Codesample/dark.css|Template:Codesample/light.css|Template:Codesample/borland.css}}&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;code&amp;quot;: {&lt;br /&gt;
			&amp;quot;aliases&amp;quot;: [&lt;br /&gt;
				&amp;quot;1&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Code&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Code sample to render&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;lang&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Programming language&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Name of lexer to use for highlighting&amp;quot;,&lt;br /&gt;
			&amp;quot;example&amp;quot;: &amp;quot;shell-session&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;suggested&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;name&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Title (name) of this code sample. Often a filename&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;suggested&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;highlight&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Highlighted lines&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Line(s) in example to highlight. Comma separated list of line numbers&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;line&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Show line numbers&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Enable line numbers for sample&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;start&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Starting line number&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Starting line number when line numbers are shown. Note: Does not effect line numbers used for highlights.&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;scheme&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Color scheme&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Color scheme to use. \&amp;quot;dark\&amp;quot; and \&amp;quot;light\&amp;quot; will apply solarized color schemes. Anything else will use syntaxhighlight extension defaults.&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;dark&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;description&amp;quot;: &amp;quot;This template augments a &amp;lt;syntaxhighlight&amp;gt; block with fancy colors and an optional title&amp;quot;,&lt;br /&gt;
	&amp;quot;paramOrder&amp;quot;: [&lt;br /&gt;
		&amp;quot;name&amp;quot;,&lt;br /&gt;
		&amp;quot;lang&amp;quot;,&lt;br /&gt;
		&amp;quot;code&amp;quot;,&lt;br /&gt;
		&amp;quot;highlight&amp;quot;,&lt;br /&gt;
		&amp;quot;line&amp;quot;,&lt;br /&gt;
		&amp;quot;start&amp;quot;,&lt;br /&gt;
		&amp;quot;scheme&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;format&amp;quot;: &amp;quot;block&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Codesample |echo &amp;quot;hello world!&amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Codesample |echo &amp;quot;hello world!&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Codesample |echo &amp;quot;hello world!&amp;quot; |lang=text |scheme=light}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Codesample |echo &amp;quot;hello world!&amp;quot; |lang=text |scheme=light}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Codesample |$ echo &amp;quot;hello world!&amp;quot; |lang=shell-session |scheme=dark}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Codesample |$ echo &amp;quot;hello world!&amp;quot; |lang=shell-session |scheme=dark}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Codesample |code=&amp;amp;lt;nowiki&amp;amp;gt;{{Codesample}}&amp;amp;lt;/nowiki&amp;amp;gt; |lang=wikitext}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Codesample |code=&amp;lt;nowiki&amp;gt;{{Codesample}}&amp;lt;/nowiki&amp;gt; |lang=wikitext}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Codesample |name=ingress.yaml |lang=yaml |scheme=dark |line=1 |highlight=5,8 |code=&lt;br /&gt;
---&lt;br /&gt;
apiVersion: networking.k8s.io/v1beta1&lt;br /&gt;
kind: Ingress&lt;br /&gt;
metadata:&lt;br /&gt;
  name: foo-redirect&lt;br /&gt;
  namespace: tool-foo&lt;br /&gt;
  labels:&lt;br /&gt;
    name: foo-redirect&lt;br /&gt;
  annotations:&lt;br /&gt;
    kubernetes.io/ingress.class: nginx&lt;br /&gt;
}}&amp;lt;/pre&amp;gt; || {{Codesample |name=ingress.yaml |lang=yaml |scheme=dark |line=1 |highlight=5,8 |code=&lt;br /&gt;
---&lt;br /&gt;
apiVersion: networking.k8s.io/v1beta1&lt;br /&gt;
kind: Ingress&lt;br /&gt;
metadata:&lt;br /&gt;
  name: foo-redirect&lt;br /&gt;
  namespace: tool-foo&lt;br /&gt;
  labels:&lt;br /&gt;
    name: foo-redirect&lt;br /&gt;
  annotations:&lt;br /&gt;
    kubernetes.io/ingress.class: nginx&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Codesample |name=metadata |lang=yaml |scheme=light |line=1 |start=5 |highlight=1,4 |code=&lt;br /&gt;
  name: foo-redirect&lt;br /&gt;
  namespace: tool-foo&lt;br /&gt;
  labels:&lt;br /&gt;
    name: foo-redirect&lt;br /&gt;
  annotations:&lt;br /&gt;
    kubernetes.io/ingress.class: nginx&lt;br /&gt;
}}&amp;lt;/pre&amp;gt; || {{Codesample |name=metadata |lang=yaml |scheme=light |line=1 |start=5 |highlight=1,4 |code=&lt;br /&gt;
  name: foo-redirect&lt;br /&gt;
  namespace: tool-foo&lt;br /&gt;
  labels:&lt;br /&gt;
    name: foo-redirect&lt;br /&gt;
  annotations:&lt;br /&gt;
    kubernetes.io/ingress.class: nginx&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adding a new color scheme ==&lt;br /&gt;
The &amp;lt;code&amp;gt;scheme=...&amp;lt;/code&amp;gt; parameter will load a css sub-page to add styles matching the [https://pygments.org Pygments] markup definitions. The easiest way to introduce a new scheme is to export it from Pygments itself: &amp;lt;code&amp;gt;pygmentize -f html -S $style -a .wt-codesample-${style}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{tl|Code}}&lt;br /&gt;
* {{tl|Inline-code}}&lt;br /&gt;
* {{tl|Codesample}}&lt;br /&gt;
* {{tl|Terminal}}&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Codesample/light.css&amp;diff=557</id>
		<title>Template:Codesample/light.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Codesample/light.css&amp;diff=557"/>
		<updated>2024-03-08T16:54:04Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.wt-codesample-light .wt-codesample-title {&lt;br /&gt;
	color: #586e75; /* base01 */&lt;br /&gt;
	background: #eee8d5; /* base2 */&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-light .wt-codesample-header div {&lt;br /&gt;
	border-color:  #657b83; /* base00 */&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-light pre {&lt;br /&gt;
	color: #657b83; /* base00 */&lt;br /&gt;
	background-color: #fdf6e3; /* base3 */&lt;br /&gt;
	border-color: #657b83; /* base00 */&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-light .lineno {&lt;br /&gt;
	color: #586e75; /* base01 */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Solarized Light pygments styles -- https://pypi.org/project/pygments-style-solarized/ */&lt;br /&gt;
.wt-codesample-light .hll { background-color: #ffffcc }&lt;br /&gt;
.wt-codesample-light .c { color: #93a1a1; font-style: italic } /* Comment */&lt;br /&gt;
.wt-codesample-light .err { color: #dc322f } /* Error */&lt;br /&gt;
.wt-codesample-light .g { color: #657b83 } /* Generic */&lt;br /&gt;
.wt-codesample-light .k { color: #859900 } /* Keyword */&lt;br /&gt;
.wt-codesample-light .l { color: #657b83 } /* Literal */&lt;br /&gt;
.wt-codesample-light .n { color: #586e75 } /* Name */&lt;br /&gt;
.wt-codesample-light .o { color: #657b83 } /* Operator */&lt;br /&gt;
.wt-codesample-light .x { color: #657b83 } /* Other */&lt;br /&gt;
.wt-codesample-light .p { color: #657b83 } /* Punctuation */&lt;br /&gt;
.wt-codesample-light .ch { color: #93a1a1; font-style: italic } /* Comment.Hashbang */&lt;br /&gt;
.wt-codesample-light .cm { color: #93a1a1; font-style: italic } /* Comment.Multiline */&lt;br /&gt;
.wt-codesample-light .cp { color: #93a1a1; font-style: italic } /* Comment.Preproc */&lt;br /&gt;
.wt-codesample-light .cpf { color: #93a1a1; font-style: italic } /* Comment.PreprocFile */&lt;br /&gt;
.wt-codesample-light .c1 { color: #93a1a1; font-style: italic } /* Comment.Single */&lt;br /&gt;
.wt-codesample-light .cs { color: #93a1a1; font-style: italic } /* Comment.Special */&lt;br /&gt;
.wt-codesample-light .gd { color: #657b83 } /* Generic.Deleted */&lt;br /&gt;
.wt-codesample-light .ge { color: #657b83 } /* Generic.Emph */&lt;br /&gt;
.wt-codesample-light .gr { color: #657b83 } /* Generic.Error */&lt;br /&gt;
.wt-codesample-light .gh { color: #657b83 } /* Generic.Heading */&lt;br /&gt;
.wt-codesample-light .gi { color: #657b83 } /* Generic.Inserted */&lt;br /&gt;
.wt-codesample-light .go { color: #657b83 } /* Generic.Output */&lt;br /&gt;
.wt-codesample-light .gp { color: #657b83 } /* Generic.Prompt */&lt;br /&gt;
.wt-codesample-light .gs { color: #657b83 } /* Generic.Strong */&lt;br /&gt;
.wt-codesample-light .gu { color: #657b83 } /* Generic.Subheading */&lt;br /&gt;
.wt-codesample-light .gt { color: #657b83 } /* Generic.Traceback */&lt;br /&gt;
.wt-codesample-light .kc { color: #859900 } /* Keyword.Constant */&lt;br /&gt;
.wt-codesample-light .kd { color: #859900 } /* Keyword.Declaration */&lt;br /&gt;
.wt-codesample-light .kn { color: #cb4b16 } /* Keyword.Namespace */&lt;br /&gt;
.wt-codesample-light .kp { color: #cb4b16 } /* Keyword.Pseudo */&lt;br /&gt;
.wt-codesample-light .kr { color: #859900 } /* Keyword.Reserved */&lt;br /&gt;
.wt-codesample-light .kt { color: #859900 } /* Keyword.Type */&lt;br /&gt;
.wt-codesample-light .ld { color: #657b83 } /* Literal.Date */&lt;br /&gt;
.wt-codesample-light .m { color: #2aa198 } /* Literal.Number */&lt;br /&gt;
.wt-codesample-light .s { color: #2aa198 } /* Literal.String */&lt;br /&gt;
.wt-codesample-light .na { color: #657b83 } /* Name.Attribute */&lt;br /&gt;
.wt-codesample-light .nb { color: #268bd2 } /* Name.Builtin */&lt;br /&gt;
.wt-codesample-light .nc { color: #268bd2 } /* Name.Class */&lt;br /&gt;
.wt-codesample-light .no { color: #b58900 } /* Name.Constant */&lt;br /&gt;
.wt-codesample-light .nd { color: #cb4b16 } /* Name.Decorator */&lt;br /&gt;
.wt-codesample-light .ni { color: #cb4b16 } /* Name.Entity */&lt;br /&gt;
.wt-codesample-light .ne { color: #cb4b16 } /* Name.Exception */&lt;br /&gt;
.wt-codesample-light .nf { color: #268bd2 } /* Name.Function */&lt;br /&gt;
.wt-codesample-light .nl { color: #657b83 } /* Name.Label */&lt;br /&gt;
.wt-codesample-light .nn { color: #b58900 } /* Name.Namespace */&lt;br /&gt;
.wt-codesample-light .nx { color: #657b83 } /* Name.Other */&lt;br /&gt;
.wt-codesample-light .py { color: #268bd2 } /* Name.Property */&lt;br /&gt;
.wt-codesample-light .nt { color: #859900 } /* Name.Tag */&lt;br /&gt;
.wt-codesample-light .nv { color: #cb4b16 } /* Name.Variable */&lt;br /&gt;
.wt-codesample-light .ow { color: #859900 } /* Operator.Word */&lt;br /&gt;
.wt-codesample-light .w { color: #fdf6e3 } /* Text.Whitespace */&lt;br /&gt;
.wt-codesample-light .mb { color: #2aa198 } /* Literal.Number.Bin */&lt;br /&gt;
.wt-codesample-light .mf { color: #2aa198 } /* Literal.Number.Float */&lt;br /&gt;
.wt-codesample-light .mh { color: #2aa198 } /* Literal.Number.Hex */&lt;br /&gt;
.wt-codesample-light .mi { color: #2aa198 } /* Literal.Number.Integer */&lt;br /&gt;
.wt-codesample-light .mo { color: #2aa198 } /* Literal.Number.Oct */&lt;br /&gt;
.wt-codesample-light .sa { color: #2aa198 } /* Literal.String.Affix */&lt;br /&gt;
.wt-codesample-light .sb { color: #2aa198 } /* Literal.String.Backtick */&lt;br /&gt;
.wt-codesample-light .sc { color: #2aa198 } /* Literal.String.Char */&lt;br /&gt;
.wt-codesample-light .dl { color: #2aa198 } /* Literal.String.Delimiter */&lt;br /&gt;
.wt-codesample-light .sd { color: #2aa198 } /* Literal.String.Doc */&lt;br /&gt;
.wt-codesample-light .s2 { color: #2aa198 } /* Literal.String.Double */&lt;br /&gt;
.wt-codesample-light .se { color: #cb4b16 } /* Literal.String.Escape */&lt;br /&gt;
.wt-codesample-light .sh { color: #2aa198 } /* Literal.String.Heredoc */&lt;br /&gt;
.wt-codesample-light .si { color: #cb4b16 } /* Literal.String.Interpol */&lt;br /&gt;
.wt-codesample-light .sx { color: #2aa198 } /* Literal.String.Other */&lt;br /&gt;
.wt-codesample-light .sr { color: #2aa198 } /* Literal.String.Regex */&lt;br /&gt;
.wt-codesample-light .s1 { color: #2aa198 } /* Literal.String.Single */&lt;br /&gt;
.wt-codesample-light .ss { color: #2aa198 } /* Literal.String.Symbol */&lt;br /&gt;
.wt-codesample-light .bp { color: #268bd2; font-weight: bold } /* Name.Builtin.Pseudo */&lt;br /&gt;
.wt-codesample-light .fm { color: #268bd2 } /* Name.Function.Magic */&lt;br /&gt;
.wt-codesample-light .vc { color: #268bd2 } /* Name.Variable.Class */&lt;br /&gt;
.wt-codesample-light .vg { color: #268bd2 } /* Name.Variable.Global */&lt;br /&gt;
.wt-codesample-light .vi { color: #268bd2 } /* Name.Variable.Instance */&lt;br /&gt;
.wt-codesample-light .vm { color: #cb4b16 } /* Name.Variable.Magic */&lt;br /&gt;
.wt-codesample-light .il { color: #2aa198 } /* Literal.Number.Integer.Long */&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Codesample/dark.css&amp;diff=555</id>
		<title>Template:Codesample/dark.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Codesample/dark.css&amp;diff=555"/>
		<updated>2024-03-08T16:54:04Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.wt-codesample-dark .wt-codesample-title {&lt;br /&gt;
	color: #93a1a1; /* base1 */&lt;br /&gt;
	background: #073642; /* base02 */&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-dark .wt-codesample-header div {&lt;br /&gt;
	border-color:  #839496; /* base0 */&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-dark pre {&lt;br /&gt;
	color: #839496; /* base0 */&lt;br /&gt;
	background-color: #002b36; /* base03 */&lt;br /&gt;
	border-color: #839496; /* base0 */&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-dark .lineno {&lt;br /&gt;
	color: #93a1a1; /* base1 */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Solarized Dark pygments styles -- https://pypi.org/project/pygments-style-solarized/ */&lt;br /&gt;
.wt-codesample-dark .hll { background-color: #ffffcc }&lt;br /&gt;
.wt-codesample-dark .c { color: #586e75; font-style: italic } /* Comment */&lt;br /&gt;
.wt-codesample-dark .err { color: #dc322f } /* Error */&lt;br /&gt;
.wt-codesample-dark .g { color: #839496 } /* Generic */&lt;br /&gt;
.wt-codesample-dark .k { color: #859900 } /* Keyword */&lt;br /&gt;
.wt-codesample-dark .l { color: #839496 } /* Literal */&lt;br /&gt;
.wt-codesample-dark .n { color: #93a1a1 } /* Name */&lt;br /&gt;
.wt-codesample-dark .o { color: #839496 } /* Operator */&lt;br /&gt;
.wt-codesample-dark .x { color: #839496 } /* Other */&lt;br /&gt;
.wt-codesample-dark .p { color: #839496 } /* Punctuation */&lt;br /&gt;
.wt-codesample-dark .ch { color: #586e75; font-style: italic } /* Comment.Hashbang */&lt;br /&gt;
.wt-codesample-dark .cm { color: #586e75; font-style: italic } /* Comment.Multiline */&lt;br /&gt;
.wt-codesample-dark .cp { color: #586e75; font-style: italic } /* Comment.Preproc */&lt;br /&gt;
.wt-codesample-dark .cpf { color: #586e75; font-style: italic } /* Comment.PreprocFile */&lt;br /&gt;
.wt-codesample-dark .c1 { color: #586e75; font-style: italic } /* Comment.Single */&lt;br /&gt;
.wt-codesample-dark .cs { color: #586e75; font-style: italic } /* Comment.Special */&lt;br /&gt;
.wt-codesample-dark .gd { color: #839496 } /* Generic.Deleted */&lt;br /&gt;
.wt-codesample-dark .ge { color: #839496 } /* Generic.Emph */&lt;br /&gt;
.wt-codesample-dark .gr { color: #839496 } /* Generic.Error */&lt;br /&gt;
.wt-codesample-dark .gh { color: #839496 } /* Generic.Heading */&lt;br /&gt;
.wt-codesample-dark .gi { color: #839496 } /* Generic.Inserted */&lt;br /&gt;
.wt-codesample-dark .go { color: #839496 } /* Generic.Output */&lt;br /&gt;
.wt-codesample-dark .gp { color: #839496 } /* Generic.Prompt */&lt;br /&gt;
.wt-codesample-dark .gs { color: #839496 } /* Generic.Strong */&lt;br /&gt;
.wt-codesample-dark .gu { color: #839496 } /* Generic.Subheading */&lt;br /&gt;
.wt-codesample-dark .gt { color: #839496 } /* Generic.Traceback */&lt;br /&gt;
.wt-codesample-dark .kc { color: #859900 } /* Keyword.Constant */&lt;br /&gt;
.wt-codesample-dark .kd { color: #859900 } /* Keyword.Declaration */&lt;br /&gt;
.wt-codesample-dark .kn { color: #cb4b16 } /* Keyword.Namespace */&lt;br /&gt;
.wt-codesample-dark .kp { color: #cb4b16 } /* Keyword.Pseudo */&lt;br /&gt;
.wt-codesample-dark .kr { color: #859900 } /* Keyword.Reserved */&lt;br /&gt;
.wt-codesample-dark .kt { color: #859900 } /* Keyword.Type */&lt;br /&gt;
.wt-codesample-dark .ld { color: #839496 } /* Literal.Date */&lt;br /&gt;
.wt-codesample-dark .m { color: #2aa198 } /* Literal.Number */&lt;br /&gt;
.wt-codesample-dark .s { color: #2aa198 } /* Literal.String */&lt;br /&gt;
.wt-codesample-dark .na { color: #839496 } /* Name.Attribute */&lt;br /&gt;
.wt-codesample-dark .nb { color: #268bd2 } /* Name.Builtin */&lt;br /&gt;
.wt-codesample-dark .nc { color: #268bd2 } /* Name.Class */&lt;br /&gt;
.wt-codesample-dark .no { color: #b58900 } /* Name.Constant */&lt;br /&gt;
.wt-codesample-dark .nd { color: #cb4b16 } /* Name.Decorator */&lt;br /&gt;
.wt-codesample-dark .ni { color: #cb4b16 } /* Name.Entity */&lt;br /&gt;
.wt-codesample-dark .ne { color: #cb4b16 } /* Name.Exception */&lt;br /&gt;
.wt-codesample-dark .nf { color: #268bd2 } /* Name.Function */&lt;br /&gt;
.wt-codesample-dark .nl { color: #839496 } /* Name.Label */&lt;br /&gt;
.wt-codesample-dark .nn { color: #b58900 } /* Name.Namespace */&lt;br /&gt;
.wt-codesample-dark .nx { color: #839496 } /* Name.Other */&lt;br /&gt;
.wt-codesample-dark .py { color: #268bd2 } /* Name.Property */&lt;br /&gt;
.wt-codesample-dark .nt { color: #859900 } /* Name.Tag */&lt;br /&gt;
.wt-codesample-dark .nv { color: #cb4b16 } /* Name.Variable */&lt;br /&gt;
.wt-codesample-dark .ow { color: #859900 } /* Operator.Word */&lt;br /&gt;
.wt-codesample-dark .w { color: #002b36 } /* Text.Whitespace */&lt;br /&gt;
.wt-codesample-dark .mb { color: #2aa198 } /* Literal.Number.Bin */&lt;br /&gt;
.wt-codesample-dark .mf { color: #2aa198 } /* Literal.Number.Float */&lt;br /&gt;
.wt-codesample-dark .mh { color: #2aa198 } /* Literal.Number.Hex */&lt;br /&gt;
.wt-codesample-dark .mi { color: #2aa198 } /* Literal.Number.Integer */&lt;br /&gt;
.wt-codesample-dark .mo { color: #2aa198 } /* Literal.Number.Oct */&lt;br /&gt;
.wt-codesample-dark .sa { color: #2aa198 } /* Literal.String.Affix */&lt;br /&gt;
.wt-codesample-dark .sb { color: #2aa198 } /* Literal.String.Backtick */&lt;br /&gt;
.wt-codesample-dark .sc { color: #2aa198 } /* Literal.String.Char */&lt;br /&gt;
.wt-codesample-dark .dl { color: #2aa198 } /* Literal.String.Delimiter */&lt;br /&gt;
.wt-codesample-dark .sd { color: #2aa198 } /* Literal.String.Doc */&lt;br /&gt;
.wt-codesample-dark .s2 { color: #2aa198 } /* Literal.String.Double */&lt;br /&gt;
.wt-codesample-dark .se { color: #cb4b16 } /* Literal.String.Escape */&lt;br /&gt;
.wt-codesample-dark .sh { color: #2aa198 } /* Literal.String.Heredoc */&lt;br /&gt;
.wt-codesample-dark .si { color: #cb4b16 } /* Literal.String.Interpol */&lt;br /&gt;
.wt-codesample-dark .sx { color: #2aa198 } /* Literal.String.Other */&lt;br /&gt;
.wt-codesample-dark .sr { color: #2aa198 } /* Literal.String.Regex */&lt;br /&gt;
.wt-codesample-dark .s1 { color: #2aa198 } /* Literal.String.Single */&lt;br /&gt;
.wt-codesample-dark .ss { color: #2aa198 } /* Literal.String.Symbol */&lt;br /&gt;
.wt-codesample-dark .bp { color: #268bd2; font-weight: bold } /* Name.Builtin.Pseudo */&lt;br /&gt;
.wt-codesample-dark .fm { color: #268bd2 } /* Name.Function.Magic */&lt;br /&gt;
.wt-codesample-dark .vc { color: #268bd2 } /* Name.Variable.Class */&lt;br /&gt;
.wt-codesample-dark .vg { color: #268bd2 } /* Name.Variable.Global */&lt;br /&gt;
.wt-codesample-dark .vi { color: #268bd2 } /* Name.Variable.Instance */&lt;br /&gt;
.wt-codesample-dark .vm { color: #cb4b16 } /* Name.Variable.Magic */&lt;br /&gt;
.wt-codesample-dark .il { color: #2aa198 } /* Literal.Number.Integer.Long */&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Codesample/style.css&amp;diff=553</id>
		<title>Template:Codesample/style.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Codesample/style.css&amp;diff=553"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.wt-codesample-wrapper {&lt;br /&gt;
	margin: 1em 0;&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-header {&lt;br /&gt;
	display: flex;&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-header div {&lt;br /&gt;
	border-color: #c8ccd1;&lt;br /&gt;
	border-style: solid;&lt;br /&gt;
	border-width: 0;&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-header .wt-codesample-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	padding: .5em 1em;&lt;br /&gt;
	border-width: 1px 1px 0 1px;&lt;br /&gt;
	border-radius: .5em .5em 0 0;&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-header .wt-codesample-fill {&lt;br /&gt;
	border-width: 0 0 1px 0;&lt;br /&gt;
	flex: 2;&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-wrapper pre {&lt;br /&gt;
	font-family: &amp;quot;Source Code Pro&amp;quot;,Menlo,Consolas,Monaco,&amp;quot;Lucida Console&amp;quot;,&amp;quot;Liberation Mono&amp;quot;,&amp;quot;DejaVu Sans Mono&amp;quot;,&amp;quot;Bitstream Vera Sans Mono&amp;quot;,&amp;quot;Courier New&amp;quot;, monospace, monspace;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.wt-codesample-header + .mw-highlight pre {&lt;br /&gt;
	border-top: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Tl&amp;diff=551</id>
		<title>Template:Tl</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Tl&amp;diff=551"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Template link]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:))&amp;diff=549</id>
		<title>Template:))</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:))&amp;diff=549"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}[[Category:Workaround templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:((&amp;diff=547</id>
		<title>Template:((</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:((&amp;diff=547"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}[[Category:Workaround templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Documentation/styles.css&amp;diff=545</id>
		<title>Template:Documentation/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Documentation/styles.css&amp;diff=545"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=yes}} */&lt;br /&gt;
.documentation,&lt;br /&gt;
.documentation-metadata {&lt;br /&gt;
	border: 1px solid #a2a9b1;&lt;br /&gt;
	background-color: #ecfcf4;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation {&lt;br /&gt;
	margin: 1em 0 0 0;&lt;br /&gt;
	padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-metadata {&lt;br /&gt;
	margin: 0.2em 0; /* same margin left-right as .documentation */&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding: 0.4em 1em; /* same padding left-right as .documentation */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-startbox {&lt;br /&gt;
	padding-bottom: 3px;&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin-bottom: 1ex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-heading {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 125%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-clear { /* Don&#039;t want things to stick out where they shouldn&#039;t. */&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-toolbar {&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-size: 85%;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Message_box/ombox.css&amp;diff=543</id>
		<title>Template:Message box/ombox.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Message_box/ombox.css&amp;diff=543"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.ombox {&lt;br /&gt;
	margin: 4px 0;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	border: 1px solid #a2a9b1;    /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
	background-color: #f8f9fa;&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
.ombox.mbox-small {&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-speedy {&lt;br /&gt;
	border: 2px solid #b32424;    /* Red */&lt;br /&gt;
	background-color: #fee7e6;    /* Pink */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-delete {&lt;br /&gt;
	border: 2px solid #b32424;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-content {&lt;br /&gt;
	border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-style {&lt;br /&gt;
	border: 1px solid #fc3;       /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-move {&lt;br /&gt;
	border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-protection {&lt;br /&gt;
	border: 2px solid #a2a9b1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 0.25em 0.9em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0 2px 0.9em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0.9em 2px 0;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ombox .mbox-empty-cell {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-invalid-type {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.ombox {&lt;br /&gt;
		margin: 4px 10%;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.ombox.mbox-small {&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		clear: right;&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		float: right;&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		margin: 4px 0 4px 1em;&lt;br /&gt;
		width: 238px;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:IsDocSubpage&amp;diff=541</id>
		<title>Template:IsDocSubpage</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:IsDocSubpage&amp;diff=541"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: (&lt;br /&gt;
	{{#ifeq:{{lc:{{SUBPAGENAME}}}}|{{lc:{{{override|doc}}}}}|1|0}} or (&lt;br /&gt;
		{{#ifeq:{{lc:{{#titleparts:{{FULLPAGENAME}}|-1|-2}}}}|{{lc:{{{override|doc}}}}}|1|0}}&lt;br /&gt;
		and {{#if:{{#translation:}}|1|0}}&lt;br /&gt;
	)&lt;br /&gt;
)&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{true|1}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{false|}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Documentation_subpage/en&amp;diff=539</id>
		<title>Template:Documentation subpage/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Documentation_subpage/en&amp;diff=539"/>
		<updated>2024-03-08T16:54:03Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#switch:&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#if:{{IsDocSubpage|override={{{override|doc}}}|false=}}&lt;br /&gt;
     | &amp;lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#ifeq:{{{doc-notice|show}}} |show&lt;br /&gt;
          | {{Mbox&lt;br /&gt;
             | type = notice&lt;br /&gt;
             | style = margin-bottom:1.0em;&lt;br /&gt;
             | image = [[File:OOjs UI icon book-ltr.svg|40px|alt=|link=]]&lt;br /&gt;
             | text =&lt;br /&gt;
&#039;&#039;&#039;This is a [[w:Wikipedia:Template documentation|documentation]] [[Special:MyLanguage/Help:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{text2|}}}{{{text1|}}}&lt;br /&gt;
  |It contains usage information, [[Special:MyLanguage/Help:Categories|categories]] and other content that is not part of the original {{{text2|{{{text1}}}}}}.&lt;br /&gt;
  |It contains usage information, [[Special:MyLanguage/Help:Categories|categories]] and other content that is not part of the original {{SUBJECTSPACE}} page.&lt;br /&gt;
  }}&lt;br /&gt;
            }}&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#if:{{{inhibit|}}} |&amp;lt;!--(don&#039;t categorize)--&amp;gt;&lt;br /&gt;
          |   &amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
                   | [[Category:{{#switch:{{SUBJECTSPACE}}&lt;br /&gt;
                           | Template | Project = Template&lt;br /&gt;
                           | Module   = Module&lt;br /&gt;
                           | User     = User&lt;br /&gt;
                           | #default = MediaWiki&lt;br /&gt;
                       }} documentation pages{{#translation:}}]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages{{#translation:}}]]&lt;br /&gt;
                  }}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(completing initial #ifeq: at start of template:)&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
     | &amp;lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
    }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:Documentation subpage|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Use this template on Template Documentation subpage (/doc).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*{{tl|Documentation}}&lt;br /&gt;
*{{tl|tl}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Documentation_subpage&amp;diff=537</id>
		<title>Template:Documentation subpage</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Documentation_subpage&amp;diff=537"/>
		<updated>2024-03-08T16:54:02Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}&lt;br /&gt;
     | &amp;lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#ifeq:{{{doc-notice|show}}} |show&lt;br /&gt;
          | {{Mbox&lt;br /&gt;
             | type = notice&lt;br /&gt;
             | style = margin-bottom:1.0em;&lt;br /&gt;
             | image = [[File:Edit-copy green.svg|40px|alt=|link=]]&lt;br /&gt;
             | text =&lt;br /&gt;
{{strong|This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}&amp;lt;br /&amp;gt;It may contain usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. &lt;br /&gt;
            }}&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#if:{{{inhibit|}}} |&amp;lt;!--(don&#039;t categorize)--&amp;gt;&lt;br /&gt;
          |   &amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
                   | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages]]&lt;br /&gt;
                  }}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(completing initial #ifeq: at start of template:)&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
     | &amp;lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
    }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Uses_TemplateStyles&amp;diff=535</id>
		<title>Template:Uses TemplateStyles</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Uses_TemplateStyles&amp;diff=535"/>
		<updated>2024-03-08T16:54:02Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:Uses TemplateStyles|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}&lt;br /&gt;
{{documentation}}&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Documentation/en&amp;diff=533</id>
		<title>Template:Documentation/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Documentation/en&amp;diff=533"/>
		<updated>2024-03-08T16:54:02Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&lt;br /&gt;
It is intended for pages which are [[Special:MyLanguage/Help:Transclusion|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
===Customising display===&lt;br /&gt;
&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&#039;&#039;&#039;heading&#039;&#039;&#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - change the text of the &amp;quot;documentation&amp;quot; heading. If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&#039;s documentation and categories.&lt;br /&gt;
It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[:en:Special:Diff/69888944|developer&#039;s explanation]]).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[w:Template:Documentation subpage]]&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* [[w:Wikipedia:Template documentation]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Documentation&amp;diff=531</id>
		<title>Template:Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Documentation&amp;diff=531"/>
		<updated>2024-03-08T16:54:01Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Codesample&amp;diff=529</id>
		<title>Template:Codesample</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Codesample&amp;diff=529"/>
		<updated>2024-03-08T16:54:01Z</updated>

		<summary type="html">&lt;p&gt;Rushii: 1 revision imported: Add Template:Codesample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;Codesample/style.css&amp;quot;/&amp;gt;&lt;br /&gt;
{{#if:{{{scheme|}}}|{{#tag:templatestyles||src=&amp;quot;Codesample/{{{scheme}}}.css&amp;quot;}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;wt-codesample-wrapper wt-codesample-{{{scheme|noscheme}}}&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{name|}}}|&amp;lt;div class=&amp;quot;wt-codesample-header&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;wt-codesample-title&amp;quot;&amp;gt;{{{name}}}&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;wt-codesample-fill&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;}}&lt;br /&gt;
{{#tag:syntaxhighlight|{{{code|{{{1|}}}}}}|lang=&amp;quot;{{{lang|bash}}}&amp;quot;&lt;br /&gt;
|highlight=&amp;quot;{{{highlight|}}}&amp;quot;&lt;br /&gt;
|line{{#if:{{{line|}}}||NIL}}=&amp;quot;{{{line}}}&amp;quot;&lt;br /&gt;
|start=&amp;quot;{{{start|1}}}&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}[[Category:Templates using TemplateData]][[Category:Semantic markup templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Main_Page&amp;diff=513</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Main_Page&amp;diff=513"/>
		<updated>2024-03-08T07:45:34Z</updated>

		<summary type="html">&lt;p&gt;Rushii: remove unnecessary newline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Discord Client Modding Wiki}}&lt;br /&gt;
This is a wiki about all sorts of things related to client modding. Not just strictly Vencord, but also anything about other mods, or client modding lore!&lt;br /&gt;
&lt;br /&gt;
Join us in the &amp;lt;code&amp;gt;#vencord-wiki&amp;lt;/code&amp;gt; channel in our [https://vencord.dev/discord Discord] if you would like to contribute, or instead check out a [[Special:Random|random article]]!&lt;br /&gt;
&lt;br /&gt;
==Main sections==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Client Mods]]&lt;br /&gt;
* [[:Category:Custom Clients]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Main_Page&amp;diff=512</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Main_Page&amp;diff=512"/>
		<updated>2024-03-08T07:41:57Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Add some categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Discord Client Modding Wiki}}&lt;br /&gt;
&lt;br /&gt;
This is a wiki about all sorts of things related to client modding. Not just strictly Vencord, but also anything about other mods, or client modding lore!&lt;br /&gt;
&lt;br /&gt;
Join us in the &amp;lt;code&amp;gt;#vencord-wiki&amp;lt;/code&amp;gt; channel in our [https://vencord.dev/discord Discord] if you would like to contribute, or instead check out a [[Special:Random|random article]]!&lt;br /&gt;
&lt;br /&gt;
==Main sections==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Client Mods]]&lt;br /&gt;
* [[:Category:Custom Clients]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Category:Client_Mods&amp;diff=510</id>
		<title>Category:Client Mods</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Category:Client_Mods&amp;diff=510"/>
		<updated>2024-03-08T07:28:34Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Add initial content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Discord &#039;&#039;client mod&#039;&#039; is a piece of software that aims to alter the funtionality or look of Discord in some way. While this behavior is against the Discord TOS&amp;lt;ref&amp;gt;{{cite web|title=Discord&#039;s Terms of Service|url=https://discord.com/terms}}&amp;lt;/ref&amp;gt;, it is common knowledge that Discord generally does not care about such projects nor the users who use them. In fact, employees have been known to use them&amp;lt;ref&amp;gt;{{cite web|title=A Discord employee &#039;devsnek&#039; replying to a comment asking about employees using BetterDiscord|url=https://wiki.vencord.dev/index.php/File:Devsnek_about_BD.png}}&amp;lt;/ref&amp;gt; and contribute back to the community&amp;lt;ref&amp;gt;{{cite web|title=GitHub issue by night in BetterDiscord|url=https://github.com/BetterDiscord/BetterDiscord/issues/442}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=GitHub issue by night in PowerCord|url=https://github.com/powercord-org/powercord/issues/386}}&amp;lt;/ref&amp;gt;. The only exception would be the event the Discord API used in an unexpected way, or abused, commonly referred to as a [[selfbot]].&lt;br /&gt;
&lt;br /&gt;
While this only lists client &#039;&#039;modifications&#039;&#039;, there has been projects that aim to completely recreate a Discord client from the ground up. A complete and up-to-date list of all mods/custom clients to exist can be viewed at the [https://github.com/Discord-Client-Encyclopedia-Management/Discord3rdparties Discord Client Encyclopedia].&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=File:Devsnek_about_BD.png&amp;diff=509</id>
		<title>File:Devsnek about BD.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=File:Devsnek_about_BD.png&amp;diff=509"/>
		<updated>2024-03-08T07:22:19Z</updated>

		<summary type="html">&lt;p&gt;Rushii: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Discord employee &#039;devsnek&#039; replying to a comment asking about employees using BetterDiscord.&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=506</id>
		<title>Opencord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=506"/>
		<updated>2024-03-08T07:06:06Z</updated>

		<summary type="html">&lt;p&gt;Rushii: change category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Opencord.png|thumb|Opencord&#039;s original logo]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MateriiApps/OpenCord Opencord] was an open-source Material You implementation of the Discord Android app. Created in late August of 2021, it has reimplemented a sizable portion of the mobile Discord client, completely from scratch. It aims to replicate the functionality and behavior of the [[v126.21|Legacy Android Discord app]], the last release of which was in the summer of 2022. Despite steady development initially, it alternated between periods of rapid progress and months of inactivity. Progress completely stopped by May 2023, and it was archived on Jan 12, 2024. As of March 2024, it still has over 1.2k stars on GitHub.&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
&lt;br /&gt;
While the original reason for its creation is unknown&amp;lt;sup&amp;gt;[Xinto needed]&amp;lt;/sup&amp;gt;, as [[Aliucord|another mobile client mod]] started to mature, it became apparent that adding dozens of fixes onto an outdated client would eventually become unsustainable. While the first 8 months of development were only propelled by [https://github.com/x1nto Xinto], in Apr 2022, [https://github.com/rushiiMachine rushii] started contributing to the project and eventually became one of the two main developers. After an amount of time, most contributions started to be done by only rushii as Xinto focused on other projects. Eventually, rushii stopped work on it as well due to roadblocks in designing a proper architecture, exacerbated by loads of technical debt, and dozens of heated debates over the most minuscule of changes.&lt;br /&gt;
&lt;br /&gt;
One of the main goals of the project was to avoid the instability of client mods by reimplementing everything from scratch, instead of relying on patching Discord code which can easily due to updates. In doing so, a lot of things could be omitted or simplified, like the intentional exclusion of nitro features. (i.e. super reactions, profile effects, etc.) Having a clean interface that focused on usability and simplicity while remaining functional was an important design goal.&lt;br /&gt;
&lt;br /&gt;
While Discord doesn&#039;t &amp;quot;care&amp;quot; about client mods or 3rd party clients, the truth is that if certain API and gateway requests are incorrect, the account will be flagged in a variety of ways and could cause additional captchas, forcing phone verification, or an outright ban.&amp;lt;ref&amp;gt;{{cite web|title=Cordless shutdown notice|url=https://github.com/Bios-Marcel/cordless?tab=readme-ov-file#i-am-closing-down-the-cordless-project}}&amp;lt;/ref&amp;gt; This is one of the major reasons why development took so long since the client must act exactly like a [[v126.21]] Discord client, from the identification sent to the API and gateway, to the request content on specific endpoints, to even TLS metadata.&amp;lt;ref&amp;gt;{{cite web|title=JA3 TLS fingerprinting|url=https://github.com/salesforce/ja3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
Opencord is written in [[wikipedia:Kotlin_(programming_language)|Kotlin]] with the use of [https://developer.android.com/jetpack/compose Jetpack Compose], a modern declarative native UI framework for Android. Most of the codebase is based on dependency injection with [https://insert-koin.io Koin], in such a way that it would be theoretically testable in the future. While basic gateway functionality lives independently, most of the complex logic, including caching and live state, lives in [https://github.com/MateriiApps/OpenCord/tree/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/store Stores], a concept taken from the original Discord codebase.&lt;br /&gt;
&lt;br /&gt;
While most of the UI is broken up into small &amp;lt;code&amp;gt;@Composable&amp;lt;/code&amp;gt; components, complex UI was wrongly implemented, leading to dozens of recomposition issues that took an insane amount of effort to fix. Additionally, due to the idiomaticity of Compose, complex UI components can be split up into the layout and content, where invoking the layout forces you to provide all the content to the layout. This led to a lot of repetitiveness throughout the codebase, quickly becoming [https://github.com/MateriiApps/OpenCord/blob/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/ui/screens/home/panels/chat/ChatLoaded.kt#L80-L285 unmaintainable]. While this was eventually planned to be refactored out, that never happened. This has been taken into consideration regarding future projects of the developers and it hasn&#039;t happened to this extent since.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Custom Clients]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=BetterDiscord&amp;diff=505</id>
		<title>BetterDiscord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=BetterDiscord&amp;diff=505"/>
		<updated>2024-03-08T07:03:35Z</updated>

		<summary type="html">&lt;p&gt;Rushii: rename category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BetterDiscord Logo.png|thumb|Logo of BetterDiscord]]&lt;br /&gt;
Discord client mod made by [[Zerebos]].&amp;lt;ref&amp;gt;[https://betterdiscord.app/ Website]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://github.com/BetterDiscord/BetterDiscord GitHub Repository]&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Client Mods]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Template:Infobox&amp;diff=463</id>
		<title>Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Template:Infobox&amp;diff=463"/>
		<updated>2024-03-08T06:19:52Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Undo revision 462 by Mantikafasi (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Infobox|infobox}}&amp;lt;includeonly&amp;gt;{{template other|{{#ifeq:{{PAGENAME}}|Infobox||{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}|}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go in the /doc subpage, and interwikis go in Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=File:Opencord.png&amp;diff=457</id>
		<title>File:Opencord.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=File:Opencord.png&amp;diff=457"/>
		<updated>2024-03-08T02:11:14Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Rushii uploaded a new version of File:Opencord.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The original logo of Opencord&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=455</id>
		<title>Opencord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=455"/>
		<updated>2024-03-08T01:51:21Z</updated>

		<summary type="html">&lt;p&gt;Rushii: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Opencord.png|thumb|Opencord&#039;s original logo]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MateriiApps/OpenCord Opencord] was an open-source Material You implementation of the Discord Android app. Created in late August of 2021, it has reimplemented a sizable portion of the mobile Discord client, completely from scratch. It aims to replicate the functionality and behavior of the [[v126.21|Legacy Android Discord app]], the last release of which was in the summer of 2022. Despite steady development initially, it alternated between periods of rapid progress and months of inactivity. Progress completely stopped by May 2023, and it was archived on Jan 12, 2024. As of March 2024, it still has over 1.2k stars on GitHub.&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
&lt;br /&gt;
While the original reason for its creation is unknown&amp;lt;sup&amp;gt;[Xinto needed]&amp;lt;/sup&amp;gt;, as [[Aliucord|another mobile client mod]] started to mature, it became apparent that adding dozens of fixes onto an outdated client would eventually become unsustainable. While the first 8 months of development were only propelled by [https://github.com/x1nto Xinto], in Apr 2022, [https://github.com/rushiiMachine rushii] started contributing to the project and eventually became one of the two main developers. After an amount of time, most contributions started to be done by only rushii as Xinto focused on other projects. Eventually, rushii stopped work on it as well due to roadblocks in designing a proper architecture, exacerbated by loads of technical debt, and dozens of heated debates over the most minuscule of changes.&lt;br /&gt;
&lt;br /&gt;
One of the main goals of the project was to avoid the instability of client mods by reimplementing everything from scratch, instead of relying on patching Discord code which can easily due to updates. In doing so, a lot of things could be omitted or simplified, like the intentional exclusion of nitro features. (i.e. super reactions, profile effects, etc.) Having a clean interface that focused on usability and simplicity while remaining functional was an important design goal.&lt;br /&gt;
&lt;br /&gt;
While Discord doesn&#039;t &amp;quot;care&amp;quot; about client mods or 3rd party clients, the truth is that if certain API and gateway requests are incorrect, the account will be flagged in a variety of ways and could cause additional captchas, forcing phone verification, or an outright ban.&amp;lt;ref&amp;gt;{{cite web|title=Cordless shutdown notice|url=https://github.com/Bios-Marcel/cordless?tab=readme-ov-file#i-am-closing-down-the-cordless-project}}&amp;lt;/ref&amp;gt; This is one of the major reasons why development took so long since the client must act exactly like a [[v126.21]] Discord client, from the identification sent to the API and gateway, to the request content on specific endpoints, to even TLS metadata.&amp;lt;ref&amp;gt;{{cite web|title=JA3 TLS fingerprinting|url=https://github.com/salesforce/ja3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
Opencord is written in [https://kotlinlang.org Kotlin] with the use of [https://developer.android.com/jetpack/compose Jetpack Compose], a modern declarative native UI framework for Android. Most of the codebase is based on dependency injection with [https://insert-koin.io Koin], in such a way that it would be theoretically testable in the future. While basic gateway functionality lives independently, most of the complex logic, including caching and live state, lives in [https://github.com/MateriiApps/OpenCord/tree/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/store Stores], a concept taken from the original Discord codebase.&lt;br /&gt;
&lt;br /&gt;
While most of the UI is broken up into small &amp;lt;code&amp;gt;@Composable&amp;lt;/code&amp;gt; components, complex UI was wrongly implemented, leading to dozens of recomposition issues that took an insane amount of effort to fix. Additionally, due to the idiomaticity of Compose, complex UI components can be split up into the layout and content, where invoking the layout forces you to provide all the content to the layout. This led to a lot of repetitiveness throughout the codebase, quickly becoming [https://github.com/MateriiApps/OpenCord/blob/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/ui/screens/home/panels/chat/ChatLoaded.kt#L80-L285 unmaintainable]. While this was eventually planned to be refactored out, that never happened. This has been taken into consideration regarding future projects of the developers and it hasn&#039;t happened to this extent since.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client Mod]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=454</id>
		<title>Opencord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=454"/>
		<updated>2024-03-08T01:46:40Z</updated>

		<summary type="html">&lt;p&gt;Rushii: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Opencord.png|thumb|Opencord&#039;s original logo]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MateriiApps/OpenCord Opencord] was an open-source Material You implementation of the Discord Android app. Created in late August of 2021, it has reimplemented a sizable portion of the mobile Discord client, completely from scratch. It aims to replicate the functionality and behavior of the [[v126.21|Legacy Android Discord app]], the last release of which was in the summer of 2022. Despite steady development initially, it alternated between periods of rapid progress and months of inactivity. Progress completely stopped by May 2023, and it was archived on Jan 12, 2024. As of March 2024, it still has over 1.2k stars on GitHub.&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
&lt;br /&gt;
While the original reason for its creation is unknown&amp;lt;sup&amp;gt;[Xinto needed]&amp;lt;/sup&amp;gt;, as [[Aliucord|another mobile client mod]] started to mature, it became apparent that adding dozens of fixes onto an outdated client would eventually become unsustainable. While the first 8 months of development were only propelled by [https://github.com/x1nto Xinto], in Apr 2022, [https://github.com/rushiiMachine rushii] started contributing to the project and eventually became one of the two main developers. After an amount of time, most contributions started to be done by only rushii as Xinto focused on other projects. Eventually, rushii stopped work on it as well due to roadblocks in designing a proper architecture, exacerbated by loads of technical debt, and dozens of heated debates over the most minuscule of changes.&lt;br /&gt;
&lt;br /&gt;
One of the main goals of the project was to avoid the instability of client mods by reimplementing everything from scratch, instead of relying on patching Discord code which can easily due to updates. In doing so, a lot of things could be omitted or simplified, like the intentional exclusion of nitro features. (i.e. super reactions, profile effects, etc.) Having a clean interface that focused on usability and simplicity while remaining functional was an important design goal.&lt;br /&gt;
&lt;br /&gt;
While Discord doesn&#039;t &amp;quot;care&amp;quot; about client mods or 3rd party clients, the truth is that if certain API and gateway requests are incorrect, the account will be flagged in a variety of ways and could cause additional captchas, forcing phone verification, or an outright ban.&amp;lt;ref&amp;gt;{{cite web|title=Cordless shutdown notice|url=https://github.com/Bios-Marcel/cordless?tab=readme-ov-file#i-am-closing-down-the-cordless-project}}&amp;lt;/ref&amp;gt; This is one of the major reasons why development took so long since the client must act exactly like a [[v126.21]] Discord client, from the identification sent to the API and gateway, to the request content on specific endpoints, to even TLS metadata.&amp;lt;ref&amp;gt;{{cite web|title=JA3 TLS fingerprinting|url=https://github.com/salesforce/ja3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
Opencord is written in [https://kotlinlang.org Kotlin] with the use of [https://developer.android.com/jetpack/compose Jetpack Compose], a modern declarative native UI framework for Android. Most of the codebase is based on dependency injection with [https://insert-koin.io Koin], in such a way that it would be theoretically testable in the future. While basic gateway functionality lives independently, most of the complex logic, including caching and live state, lives in [https://github.com/MateriiApps/OpenCord/tree/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/store Stores], a concept taken from the original Discord codebase.&lt;br /&gt;
&lt;br /&gt;
While most of the UI is broken up into small &amp;lt;code&amp;gt;@Composable&amp;lt;/code&amp;gt; components, complex UI was wrongly implemented, leading to dozens of recomposition issues that took an insane amount of effort to fix. Additionally, due to the idiomaticity of Compose, complex UI components can be split up into the layout and content, where invoking the layout forces you to provide all the content to the layout. This led to a lot of repetitiveness throughout the codebase, quickly becoming [https://github.com/MateriiApps/OpenCord/blob/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/ui/screens/home/panels/chat/ChatLoaded.kt#L80-L285 unmaintainable]. While this was eventually planned to be refactored out, that never happened. This has been taken into consideration regarding future projects of the developers and it hasn&#039;t happened to this extent since.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=453</id>
		<title>Opencord</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=Opencord&amp;diff=453"/>
		<updated>2024-03-08T01:46:01Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Create Opencord page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Opencord.png|thumb|Opencord&#039;s original logo]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MateriiApps/OpenCord Opencord] was an open-source Material You implementation of the Discord Android app. Created in late August of 2021, it has reimplemented a sizable portion of the mobile Discord client, completely from scratch. It aims to replicate the functionality and behavior of the [[v126.21|Legacy Android Discord app]], the last release of which was in the summer of 2022. Despite steady development initially, it alternated between periods of rapid progress and months of inactivity. Progress completely stopped by May 2023, and it was archived on Jan 12, 2024. As of March 2024, it still has over 1.2k stars on GitHub.&lt;br /&gt;
&lt;br /&gt;
==Backstory==&lt;br /&gt;
&lt;br /&gt;
While the original reason for its creation is unknown&amp;lt;sup&amp;gt;[Xinto needed]&amp;lt;/sup&amp;gt;, as [[Aliucord|another mobile client mod]] started to mature, it became apparent that adding dozens of fixes onto an outdated client would eventually become unsustainable. While the first 8 months of development were only propelled by [https://github.com/x1nto Xinto], in Apr 2022, [https://github.com/rushiiMachine rushii] started contributing to the project and eventually became one of the two main developers. After an amount of time, most contributions started to be done by only rushii as Xinto focused on other projects. Eventually, rushii stopped work on it as well due to roadblocks in designing a proper architecture, exacerbated by loads of technical debt, and dozens of heated debates over the most minuscule of changes.&lt;br /&gt;
&lt;br /&gt;
One of the main goals of the project was to avoid the instability of client mods by reimplementing everything from scratch, instead of relying on patching Discord code which can easily from updates. In doing so, a lot of things could be omitted or simplified, like the intentional exclusion of nitro features. (i.e. super reactions, profile effects, etc.) Having a clean interface that focused on usability and simplicity while remaining functional was an important design goal.&lt;br /&gt;
&lt;br /&gt;
While Discord doesn&#039;t &amp;quot;care&amp;quot; about client mods or 3rd party clients, the truth is that if certain API and gateway requests are incorrect, the account will be flagged in a variety of ways and could cause additional captchas, forcing phone verification, or an outright ban.&amp;lt;ref&amp;gt;{{cite web|title=Cordless shutdown notice|url=https://github.com/Bios-Marcel/cordless?tab=readme-ov-file#i-am-closing-down-the-cordless-project}}&amp;lt;/ref&amp;gt; This is one of the major reasons why development took so long since the client must act exactly like a [[v126.21]] Discord client, from the identification sent to the API and gateway, to the request content on specific endpoints, to even TLS metadata.&amp;lt;ref&amp;gt;{{cite web|title=JA3 TLS fingerprinting|url=https://github.com/salesforce/ja3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
Opencord is written in [https://kotlinlang.org Kotlin] with the use of [https://developer.android.com/jetpack/compose Jetpack Compose], a modern declarative native UI framework for Android. Most of the codebase is based on dependency injection with [https://insert-koin.io Koin], in such a way that it would be theoretically testable in the future. While basic gateway functionality lives independently, most of the complex logic, including caching and live state, lives in [https://github.com/MateriiApps/OpenCord/tree/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/store Stores], a concept taken from the original Discord codebase.&lt;br /&gt;
&lt;br /&gt;
While most of the UI is broken up into small &amp;lt;code&amp;gt;@Composable&amp;lt;/code&amp;gt; components, complex UI was wrongly implemented, leading to dozens of recomposition issues that took an insane amount of effort to fix. Additionally, due to the idiomaticity of Compose, complex UI components can be split up into the layout and content, where invoking the layout forces you to provide all the content to the layout. This led to a lot of repetitiveness throughout the codebase, quickly becoming [https://github.com/MateriiApps/OpenCord/blob/4e9ed5e92a2879e4e1ccc7aea9b53499e3110f6f/app/src/main/java/com/xinto/opencord/ui/screens/home/panels/chat/ChatLoaded.kt#L80-L285 unmaintainable]. While this was eventually planned to be refactored out, that never happened. This has been taken into consideration regarding future projects of the developers and it hasn&#039;t happened to this extent since.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=File:Opencord.png&amp;diff=452</id>
		<title>File:Opencord.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=File:Opencord.png&amp;diff=452"/>
		<updated>2024-03-08T01:43:00Z</updated>

		<summary type="html">&lt;p&gt;Rushii: The original logo of Opencord&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The original logo of Opencord&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
	<entry>
		<id>https://wiki.vencord.dev/index.php?title=TimezoneDB&amp;diff=445</id>
		<title>TimezoneDB</title>
		<link rel="alternate" type="text/html" href="https://wiki.vencord.dev/index.php?title=TimezoneDB&amp;diff=445"/>
		<updated>2024-03-07T22:16:17Z</updated>

		<summary type="html">&lt;p&gt;Rushii: Elaborate upon TimezoneDB API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/Vendicated/Vencord/pull/376 TimezoneDB] is a Vencord plugin that hasnt been merged into Vencord since it was created in December 2022.&lt;br /&gt;
&lt;br /&gt;
The plugin lets you assign a specific timezone to any user (saved locally), and displays their local time in commonly viewed locations, like their profile and message timestamps.&lt;br /&gt;
The plugin also uses an instance of [https://github.com/rushiimachine/timezonedb TimezoneDB] [https://timezonedb.catvibers.me/ hosted] by AAGaming to retrieve other people&#039;s timezones that have set one publicly.&lt;br /&gt;
&lt;br /&gt;
In order to make your timezone public, go to https://timezonedb.catvibers.me, and sign in using Discord. Your timezone will automatically be publicly set based on your browser&#039;s current timezone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Rushii</name></author>
	</entry>
</feed>