- **Fixed various things caused by a new Canary update.** Discord rolled out a new Canary update (22nd October) which changed many internal things. All mods, including GooseMod, were broken but now most things should be working fine. You may have some minor issues with GooseMod or issues with some plugins, if so feel free to report in our Discord, we'll continue to roll out some small hotfixes over the next week.
- **Carousel controls in banner images.** Also made modal opening more obvious via cursor.
- **Search text hints.** Now shows no results text for no results, and hints to go to an other category if there are results in that and not the current category.
- **Heavy reduction in GooseMod wipes / resets.** Sometimes when Discord updates (desktop) GooseMod settings and modules would get cleared due to a Discord client bug. This should now hopefully be eliminated or at least heavily reduced thanks to a new parity storage backup system.
- **Added tweaks setting section.** Includes new minor changes you can now toggle on or off. New settings (and more will likely be added in future updates):
- **Placeholder Image.** Use a placeholder image in the Store for modules without images.
- **Collapsible Home Category.** Let home category be collapsible via icon.
- **Headers are now not collapsible by default.** Now has to be turned on for individual headers. The experimental section is also now collapsed by default.
- **Various minor additions to allow for easier theming.** We introduced a variety of small tweaks to help make some of GooseMod easier to theme for theme developers:
- **GooseMod now supports almost entire translations.** Almost all of GooseMod now supports translations, instead of previously where it was only some features and only a few languages. Current languages with translations: German, Chinese (Simplified), Chinese (Traditional), Dutch, Finnish, French, Hungarian, Polish, Portuguese (Brazil), Russian, Thai, Ukrainian.
- **Decreased data usage and improved performance of Store pages.** Images (banners, profile pictures) are now lazy loaded, meaning they are only loaded when visible. This should decrease data usage a lot, and help performance for low-end devices.
- **GooseMod is now almost half the size as it was before.** Smaller size should help load times and reduces impact of new additions in the future!
- **Better for GooseMod's future.** GooseMod now uses Rollup; this helps developing GooseMod for the future: improving efficiency and speed of development.
- ### Error Fail-safing
- **GooseMod is now resistant to crashes.** You should experience less crashes! GooseMod now hardens most things plugins patch into to resist crashes and just error out instead.
- ### Better Debugging
- **GooseMod now is easier and better to debug.** Both plugins and GooseMod itself is now easier to debug. Should let issues be easier to fix in future.
- ### Patcher API
- **Adding to context menu for messages now also adds to expanded MiniPopover.** Should help web users who don't have right click menus.
- **GooseMod commands autocomplete section no longer adds multiple times when in DMs.**
- **Rewrote ID generation.** Should be a bit faster and more random now.
- ### Tweaks and Fixes [progress]
- **Fixed showing no PGP verification warning when adding repo even if repo did have valid PGP.**
- **Repos now have PGP verification support.** Repos can now be signed by their maintainers and verified within GooseMod. This should both improve security generally and for some specific attacks. The main advantage PGP adds is that it verifies repos are made and released by their owners. This prevents someone else taking over and publishing malicious updates as the repo would have to be signed with the same private key, which they should not have access to.
- ### Main Settings
- **Added copy debug info to utilities.**
- **Moved reset setting to end of utilities section.**
- **Added text to experimental section to clarify what it means.**
- ### Commands
- **Commands now use a custom GooseMod section.** Was previously reverted to using built-in after a Discord update.
- **Rewrote logger output to use text and nicer colors.** Now easier to look at and filter.
- **Rewrote React utils library.** Now supports new React used in Discord Canary and now a bit more efficient.
- **Rewrote Webpack library.** Additionally also now a bit more efficient and generally better.
- ### Profile Store
- **Developer's GooseMod modules are now listed under a category in their user profile.** Added as a new neat way of discovering modules and developers.
- ### Main Settings
- **Separated experimental settings into their own category.** Now your settings is even tidier.
- ### Home
- **GooseMod home category now stays collapsed after a refresh if it was collapsed previously.**
- ### Tweaks and Fixes [progress]
- **Fixed custom color picker in settings not appearing.**
- **Removed excess old debug logging.** Clearing up your console since 2021.
- **Fixed custom name and footer for GooseMod changelog.**
- **Fixed repeated class name in home injection container.** No one would have noticed but we fixed it anyway:tm:.
- **Fixed commands (Canary-only).** Now using built-in instead of a GooseMod category due to internal update changing a lot of things.
- **New storage system.** GooseMod now uses WebExtension storage for storing GooseMod preferences, installed modules, cache, etc. This should make storing more reliable, secure, and generally better.
- **GooseMod for desktop clients now uses the GooseMod for Web extension internally.** This simplifies code (avoiding reuse / complications) and should result in faster (~50%) and lighter injection.
- **Images are now shown larger when clicked.** When clicking a header image, a modal now appears showing all the images for the module (with larger sizing).
- **Filter times are now faster.** It should be about twice as fast due to some fixes and optimisations under the hood.
- ### Settings
- **Added start tour option.** You can now easily go through the tour again to catch up on GooseMod's core functions.
- **Other UI improvements.** Purge caches is now not marked as dangerous.
- **Added experimental Snippets option.** More info soon:tm:.
- ### Patcher API
- **Added GuildBadges API for adding badges to guild headers.** It's usage is near identical to UserBadges, but adding to the header of guilds instead of badges for users.
- ### GooseMod Badges
- **Added badge to GooseNest server to show it's official.**
- ### Out of The Box [progress]
- **Removed pack modal.** Now just using a few default modules and relying on users to install their own after being shown the Store.
- **Settings now scrolls to show the GooseMod section.**
- ### Tweaks and Fixes [progress]
- **Tweaked loading screen text.**
- **Fixed various issues caused by a Discord update breaking i18n.**
- **Fixed CSS cache keeping old / removed themes, as well as other improvements.**
- **New tour system.** There is now a tour when opening GooseMod for the first time (since this update). It covers the core features of GooseMod: the Store, settings and community (focusing on the Discord server).
- ### Store Improvements [progress]
- **Added separate imported tab in Home header.** Now has a tab just for imported modules, and a main Store tab for all.
- **Fixed bugs with modules not looking removed / added after changing Home page.**
- **Fixed conflicts with some themes.** Mostly where toggles for modules would show when it shouldn't be shown.
- ### Fixes and Tweaks [progress]
- **Fixed some toasts not working.** Previously toasts without options or type would cause errors.
- **Dramatically decreased Store loading times (40s -> 3s) when loading GooseMod sometimes.** Mostly when opening GooseMod for the first time, purging cache, or sometimes randomly.
- **Renamed Module Store to Store fully throughout.**
- **Added refresh prompt when purging cache via setting.**
- **Fixed some small UI bugs with Firefox.**
- **Fixed GooseMod commands not working.**
- **Fixed OOTB to open Themes in Home instead of trying to open it in settings.**
- **More reliable modal.** Repos which fail to load now show up so you can remove / disable them.
- **Simplified internals.** Mostly a pro for us, repos are now easier to work with and simpler internally in GooseMod.
- ### Store Improvements [progress]
- **Loading is more reliable.** Most bugs for being stuck in loading have been fixed, apologies for any issues.
- ### New Debug Setting [progress]
- **Debug toasts have been added.** You likely won't need them, but debug toasts have been added. This setting shows some toasts on certain events for insights into internal code.
- **New backup system.** There is a new backup system in GooseMod settings allowing you to backup your modules and settings. Backing up produces a backup file which you can then use to restore later on.
- ### Store Improvements [progress]
- **Ludicrous speed.** Clicking on home items is now significantly faster than before.
- **Squashed bugs.** A bug causing Store pages to load forever has been fixed, as well as some rare crashes. Store in Settings is also now up and working again.
- **Better sorting and filtering.** Options are now properly shown and applied after going off and back to Store pages.
- **Home now has improved loading.** Should be faster and no longer showing it's loading for the rest of time.
- **Settings which need a refresh now have a neat prompt.** Instead of the disclaimer text, it now has a prompt for you after you change them.
- **Icons now have tooltips.** To clear up any confusion, hovering over any setting icons (experimental or debug) now shows a tooltip saying what they mean.
- **New debug settings.** For plugin developers and us, we now have new debug settings to help test and try out things.
- **It's finally here: React settings.** Long requested by some, it's finally done. We rewrote essentially over 2.5 thousand lines of JS so now our settings are made using React (instead of DOM which it used to use). What this means for you:
- **More fitting UI.** GooseMod's settings are now even more fitting with Discord's, now featuring animations, new colors, and finer looking items, making it now more seamless than ever.
- **Rewritten home.** We also rewrote some of our home settings code. Now home items should be more reliable, plus a new codebase which allows easier additions and tweaks for the future.
- Added GooseMod Badges, built-in custom badges for GooseMod contributors - Sponsors (people who have donated money), Developers (people actively developing GooseMod itself) and Translators (people who have translated GooseMod to other languages)
- CSS Cache, GooseMod now caches Modules' CSS so most styling will appear as soon as GooseMod begins to inject. This works by detecting CSS which is currently injected and then caching it in local storage during client use, which is then loaded quickly at the start of GooseMod injection
- Module Store individual repos, you can now add external repos for modules which aren't in the official Module Store plus now the Module Store is split up into 3 separate repos
- [GitHub Issue #18](https://github.com/GooseMod/GooseMod/issues/18): ChannelTextAreaButtons: Added optional options to show button in upload modal and in readonly channel, now both not showing by default
- [GitHub Issue #22](https://github.com/GooseMod/GooseMod/issues/22): ChannelTextAreaButtons and MiniPopover: Allow React elements as imgSrc instead of only image URLs
- [GitHub Issue #19](https://github.com/GooseMod/GooseMod/issues/19): Fixed failing to get settings button and settings close button when using non-English languages in Discord
- Added sub-menu support in Patcher context menu API
- Added new Patcher ChannelTextArea buttons API, making it now easy for module developers to add buttons to the ChannelTextArea (the buttons to the right of where you type messages)
- Added new Patcher MiniPopover API, making it now easy for module developers to add buttons to MiniPopovers (the buttons which appear to the right when you hover over a message)
- [GitHub PR #11 by Fjorge](https://github.com/GooseMod/GooseMod/pull/11): Only exclude modules with all (not some) authors unselected in Module Store Sidebar
- [GitHub PR #12 by Fjorge](https://github.com/GooseMod/GooseMod/pull/12): Add Changelog button to GooseMod settings
- Native / React settings sidebar injection instead of DOM, resulting in no lag caused by GooseMod when opening settings and them being there with no delay
- Added native patcher library / API (based on Powercord <3)
- Added native context menu injection library / API, this now allows modules to easily add their own entries to context menus with only a couple lines oF JS instead of needing to reinvent the wheel everytime
- Moved version info into separate version info section, there is now a divider after Discord's version info and then GooseMod's own
- ### Tweaks
- Slightly optimized Module Store settings UI generation
- Module Store no longer readjusts settings UI width again when importing or removing a module
- Changed Manage Modules setting into "Local Modules", only shows and allows management of local modules (imported local files) to avoid confusion / duplication
- Added complete new dialog / wizard for setup / first time injection, now asks what "pack" (set of modules) you want to install as well as what theme you want to install. Pre-existing users won't be affected.
- Added new settings injector backup system to fix settings injection when settings button click event fails
- Added module JS cache - installed modules have their JS code installed and that cache is used if there are no updates for the module, reducing network requests and latency
- Module Store setting is now filtered into categories and sorted alphabetically
- CSP Bypasser now queries gateway instead of non-existant page to be more steathy
- Added Discord-like loading screen when injecting
- CSP Bypasser initialisation is now much (speeds up entire injection by ~2x) faster as it actually waits for the iframe to load instead of just waiting for 1 second (also will increase reliability)
- No longer uses global window variable, much more hidden now
- Added uninstall option to end of settings which uninstalls / removes GooseMod without reloading / refresh (leaves some small amounts of code but no visual or noticable changes remain, small traces can be removed by refreshing / reloading)