# hh2 extension docs
forked from [Cynosphere's docs](https://hackmd.io/@cynosphere/BkQyvPAoV?type=view)
## antiDelete
Ignores message deletes clientside and shows them with red text.
## backoffNerf
Greatly reduces the timing of the client's exponential backoff.
## blocked
Hide blocked messages.
## browsercss
Version of `css` for browser versions of hh2.
## browserdev
Allows importing of arbitrary JS extensions in the browser. Don't enable unless you are actually testing something.
## callRingingBeat
Makes call ring always the rare variant.
## channelleak
Shows channels and their topics that you don't have permissions to view.
## charcount
Adds a character counter to the message input box.
## chromeExtension
Allows for loading of Devtools extensions in the Electron client
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `extension` | object | Object in extensions array |
| `extension.name` | string | Name of extension |
| `extension.path` | string | Path to extension |
## cmder
Command adding framework.
## colorchat
Allows basic bbcode-style formatting to color messages.
## commands
A set of basic commands serving as functional examples of cmder.
## css
Loads in custom CSS or Sass files.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `cssPath` | array or string | Path(s) to (s)css file(s) |
## customRinging
Replace most sounds with custom files.
### Options Values
| key | note |
| -------- | -------- |
| `call_calling` | |
| `call_ringing` | |
| `call_ringing_beat` | |
| `ddr-down` | |
| `ddr-left` | |
| `ddr-right` | |
| `ddr-up` | |
| `deafen` | |
| `discodo` | home button easter egg |
| `disconnect` | |
| `human_man` | |
| `mention1` | unused |
| `mention2` | unused |
| `mention3` | unused |
| `message1` | |
| `message2` | unused |
| `message3` | unused |
| `mute` | |
| `overlayunlock` | |
| `ptt_start` | |
| `ptt_stop` | |
| `reconnect` | |
| `robot_man` | |
| `stream_ended` | |
| `stream_started` | |
| `stream_user_joined` | |
| `stream_user_left` | |
| `undeafen` | |
| `unmute` | |
| `user_join` | |
| `user_leave` | |
| `user_moved` | |
## customsearch
Replaces "Search with Google" to a custom search engine.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `searchURL` | string | URL to append search query on. |
| `searchName` | string | Name of search engine. |
## dblClickEdit
Allows you to edit a message by double-clicking.
## dnt
**Deprecated & outdated. Use pseudoscience instead!**
Disables tracking calls on /api/science.
## dolphin
Allows any drag and drop transactions, regardless of the type.
## downmark
Fixes emoji in uesrnames and other places.
## easyAutomation
A library dealing with messages, guilds and channels. Not well supported.
## emojiCommands
Adds commands via Cmder to type letters in custom emoji.
## emojiGuildName
Adds guild name to which an emoji belongs on hover in search.
## exec
Adds child_process.exec as a dedicated command via cmder.
## experiments
Trips isDeveloper to enable developer experiments. Use at your own risk.
## extender
Framework for adding on to user settings.
## fakeEpapi
**"Deprecated". Just write normal plugins.**
Mocks the Endpwn API for legacy plugins. Don't use this. Please.
## fixCopyMessageLink
orces 'Copy Message Link' to use `discordapp.com` instead of the current origin (Useful for hh2 in the browser).
## fixmentions
Resolves mentions for channels and users you don't know.
## glslbg
Adds support for GLSL shaders as backgrounds.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `shaderFile` | string | Path to a .frag file |
## guildColumns
Fixes mention bar on CSS themes with multiple guild columns.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `columnCount` | int | How many columns should it calculate for |
## guildCount
Shows count of guilds next to the (now non-existant) friend count.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `shortened` | boolean | Show only numbers instead of "# Guilds" |
## guildFeatures
Enable partnered guild UI on guilds you own. Possibly broken.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `allFeaturesOnOwnedGuilds` | boolean | Allows all guild features to be shown on guilds you own. |
## hashRouter
Patches the router to use the fragment portion of the URL.
## imgtitle
Adds title attribute with the filename to image attachments in chat.
## imgxis
**Warning: this is somewhat hacky!**
Adds the IMGXIS editor to image preview.
## inspect
Isolates a Webpack module with a given ID for easier inspection.
## lacida
OTR for Discord DMs, basically. Experimental.
## legacyVoiceRegions
Show legacy voice regions.
## litecord
Allows overriding GLOBAL_ENV props to allow for custom API endpoints to be specified.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `api` | string | Replaces API_ENDPOINT with a custom endpoint |
| `webapp` | string | Replaces WEBAPP_ENDPOINT with a custom endpoint |
| `cdn` | string | Replaces CDN_HOST with a custom endpoint (here you go BiSoga) |
| `assets` | string | Replaces ASSET_ENDPOINT with a custom endpoint |
| `widget` | string | Replaces WIDGET_ENDPOINT with a custom endpoint |
| `invites` | string | Replaces INVITE_HOST with a custom endpoint |
| `marketing` | string | Replaces MARKETING_ENDPOINT with a custom endpoint |
| `channel` | string | Replaces RELEASE_CHANNEL with a custom endpoint |
| `braintreeKey` | string | Replaces BRAINTREE_KEY with your own Braintree auth key |
| `stripeKey` | string | Replaces MARKETING_ENDPOINT with your own Stripe auth key |
| `giftDomain` | string | Replaces GIFT_CODE_HOST with a custom endpoint |
Note:
## loadHooks
Allows a module to wait for the load event to fire
## loadingReplace
Replaces spinning Rainbow Dash with a configurable loading screen based on Minecraft Forge's.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `backgroundColor` | string | Changes loading screen background color. Must be a valid CSS color code. |
| `font` | string | Changes font for loading screen text. Must be a valid CSS font. |
| `borderColor` | string | Changes border color of the progress bar. Must be a valid CSS color code. |
| `barBackground` | string | Changes the color of the empty parts of the progress bar. Must be a valid CSS color code. |
| `barForeground` | string | Changes the color of the filled parts of the progress bar. Must be a valid CSS color code. |
| `textColor` | string | Changes the color of the loading screen text. Must be a valid CSS color code. |
| `logoURL` | string | Changes the logo that appears on screen.
## localStorage
Prevent discord from deleting the localStorage variable.
## magicrequire
Utility for selecting and loading arbitrary Webpack modules.
## maple
Allows hybrid bot/user account usage (in channels where the bot with the given token is present, most actions will be performed by the bot user).
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `botToken` | string | Token for the bot. |
| `whitelistEndpoints` | array of strings | Endpoints told to fallback to user account. Recommended: search, mentions, spotify, @ws, ack, /users/@me
## memoryRouter
Same as hashRouter but in memory instead.
## noconmsg
Stubs out the pasting console warning.
## osu
Makes osu! noises as you type.
## overlay
**BIG WARNING! This could brick your client!**
Enables overlay on all platforms.
## postnet
An HH2 settings manager UI. Essentially this document but built into your client.
## preserveToken
Keeps token in localStorage.
## pseudoscience
Adds hard blocks for /api/science as a fallback for proper patches
## quickDelete
Delete messages quickly by clicking on them while holding backspace, delete, or custom key(s).
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `useShift` | boolean | Setting to specify whether you need to hold the shift key in order to delete a message. |
| `additionalKeys` | array of strings | Array of strings that holds extra keys to use. Refer to [this app](https://mdn.mozillademos.org/en-US/docs/Web/API/KeyboardEvent/code$samples/Exercising_KeyboardEvent?revision=1559366) for specific codes. |
## react
Exposes Discord's version of React
## requests
**You should probably not be using this, especially within extensions!**
Sends API requests.
## rootSetter
Sets asset root for webpack, useful for running hh2 in the browser browser without a reverse proxy.
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `root` | string | URL for the asset root. |
## scriptErrors
Something is creating script errors
## sentrynerf
**This should always be enabled! If it is not, turn on ASAP!**
Disables Sentry.io error reporting.
## showTag
Shows DiscordTag next to a user's nickname.
## smellovision
Shows a meter next to users that changes with their supposed smelliness in group DM calls.
## spotifyspoof
Listen along to Spotify songs without Spotify Premium.
## tardid
Backs up Discord versions to allow quick and easy rollbacks.
## twemojiPatch
Replaces builtin Twemoji with other emoji sets (mustd by default)
### Options Values
| key | type | description |
| -------- | -------- | -------- |
| `pack` | string | Emoji set to use. Options: mustd, noto, noto-old |
## unravelMessage
Allows the user to copy raw message content via the context menu.
## webpackIntercept
Allows extensions to intercept Flux events.