Discord, your way. Revenge is a client modification for Discord Android.
Revenge aims to be a lightweight and lightning-fast client modification for Discord Android, while being user-friendly and developer-first. It provides a powerful framework, allowing developers to make add-ons with ease. The sky is the limit!
This repository releases Hermes Bytecode to be executed on official Discord Android clients. The bytecode is not standalone and is meant to be used with official bootstrappers listed in the ⬇️ Download section.
- 🔌 Plugins: Extend Discord with custom features
- 🎨 Themes & Fonts: Customize Discord's appearance to your liking
- 🧪 Experiments: Try out Discord's new features before they're rolled out
These are the official Revenge ways to install Revenge:
- 📵 Non-root: Revenge Manager
- 🩹 Root with Xposed: RevengeXposed
Using the installation methods above will currently install Revenge Classic. You'll need to update from Revenge Classic to Revenge Next manually.
It is recommended to do a separate installation of Revenge before updating to Revenge Next.
Revenge Next does not offer an easy way to downgrade to Revenge Classic.
To update to Revenge Next from Revenge Classic, follow these steps:
- Download the latest release asset from Revenge Next's Actions tab.
- Extract the built bundle and host a local HTTP server that serves the
revenge.bundlefile. - In Revenge Classic, go to Settings > Revenge, and toggle on Developer Settings.
- Navigate back, and head into the Developer section.
- Edit the Load from custom URL field to point to the URL of the
revenge.bundlefile you hosted. - Restart Discord, and you should be running Revenge Next!
Revenge Next is updated regularly with new features and bug fixes. To update to the latest build, follow these steps:
-
Host a HTTP server that points to a new
revenge.bundlefile. -
Head to Settings > Developer (under the Revenge section).
-
Tap on the Evaluate JavaScript option.
-
Paste and evaluate the following snippet. Make sure to modify the URL to point to your newly hosted
revenge.bundlefile:var REVENGE_UPDATE_URL = "<URL here, keep the quotes>"; revenge.discord.native.FileModule.writeFile("documents", "pyoncord/loader.json", JSON.stringify({"customLoadUrl":{"enabled":true,"url":REVENGE_UPDATE_URL}}), "utf8"); "URL updated, please reload Revenge"
-
Restart Discord.
You'll need to have Bun installed. Once you have Bun, follow these steps:
# Install dependencies
bun install# Build Revenge Next
bun run build
# Build Revenge Next with debugging enabled (slow, don't use in production)
bun run build --dev# Start the development server
bun run dev
# Build as production
bun run dev --prodBuilds are generated at dist/revenge.bundle.
# Build types for external consumers
bun run typesTypes are generated at dist/types. To consume, include <dir>/globals.d.ts, and map @revenge-mod/* to <dir>/lib/*.
Bundlers will need to map imports to property access on revenge turning kebab-case and snake_case to camelCase.
Example: @revenge-mod/discord/modules/main_tabs_v2 to revenge.discord.modules.mainTabsV2