---
# System prepended metadata

title: hh2 extension docs

---

# 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.