Releases: SwingTheVine/Wplace-BlueMarble
Release list
Version 0.91.0
Shaky-Stable Beta Release
In this version, you can now make the color filter window smaller using the 🗗 button. Also, the template wizard should no longer corrupt your template when you download or convert the template storage.
Change Log
- Color Filter full-screen mode now has a windowed mode, which makes the window very small. You can activate this with the 🗗 button.
- Template Wizard should no longer output corrupted templates when downloading or converting template storage.
- Color Filter windowed mode now has a button to enter full-screen mode. You can activate this with the 🗖 button.
- Color Filter now has a button to refresh pixel data displayed in the color list.
willReadFrequentlywill now apply correctly to certainOffscreenCanvases used by Blue Marble.- Added Credits Window, which has Blue Marble attributions.
- Blue Marble credits have been updated.
- Fixed bug in color filter window where the colored containers for the eye icons were not squares.
- All text-only anchors (e.g. a link like this) in Blue Marble now have underlines.
- Disabled Blue Marble buttons will now display a 🚫 cursor.
- Template Wizard now shows the date-time of the last Wplace update.
- Updated userscript metadata (e.g. description) to comply with GreasyFork rules.
- Color Filter now shows hex color codes when in full-screen mode.
Developer-Specific
- Changed icons for buttons that close windows. They are still ❌ icons, but the Unicode value has changed.
- The minimum supported ECMAScript version has been changed to the ECMAScript release that occurred in 2020. Previously, ECMAScript version
E5was partially supported. - The main window class has changed from
.bm-windowto.bm-window .bm-windowed. - All windows in windowed mode will now have
.bm-window .bm-windowedas their class. The main window is permanently in windowed mode. Full-screen windows will have only.bm-windowfor their class. - You can now use
getWplaceVersion()insrc/utils.jsto get aDateof the last Wplace update.
Installation
Download one of the attached BlueMarble.user.js files in the assets section to use this release.
Version 0.92.0
Shaky-Stable Beta Release
In this version, you can now highlight incorrectly placed pixels. You can also display full-sized template pixels. In addition, Blue Marble will now attempt to skip large transparent areas of your template, during template creation. This should make Blue Marble faster for certain templates.
Change Log
User-Specific
- YOU CAN NOW HIGHLIGHT INCORRECT PIXELS using the "Settings Window."
- Also, you can additionally highlight pixels that are incorrectly transparent on the canvas (or highlight only placed pixels that are also incorrect pixels).
- Fixed a bug where coordinate information was displayed in the wrong area of the pixel information menu.
- You can now display the end result of the template ("full-sized template pixels") by using a certain highlight pattern.
- Added a Settings Window that contains user-settings. This will persist between sessions.
- Windows in Windowed Mode will now properly render vertically aligned content. E.g. The title "Color Filter" in the small color filter window will now be vertically centered.
- Fixed English grammar issue where the color filter window displayed "1 incorrect pixels."
- Added "correct pixels" and "total pixels" display to the color filter in windowed mode.
- By default, on template creation, tiles that the template appears on, in which the template is 100% transparent in that tile, will not be saved. This will increase (up to 10000% in some cases) template loading times. This can be disabled in the settings window.
- Users can now tell Blue Marble to, upon template creation, aggressively discard tiles that the template appears to be 100% transparent. The difference between this and the default option is that you are more likely to lose small portions of your template if a specific tile only has a few template pixels on it. As a trade-off, enabling this makes the default option run 50 to 100 times faster. Users can enable this in the settings window. The default option must be enabled for this experimental option to work.
- Using one or both of the template creation options listed above, users can now feasibly have a single template for two pieces of artwork, which are millions of pixels away from each other. Blue Marble will ignore the empty tiles in-between the two pieces of art.
- Added more supporters to the credits.
Developer-Specific
- CSS declarations will no longer fight over who gets to determine how Windowed Mode looks.
- CSS declarations, which determine how Windowed Mode looks, will no longer greedily apply to Full-screen Mode.
- Fixed JSDoc issue that brought the code wikipedia offline from the release of 0.91.0 to the release of 0.92.0.
TemplateManagerno longer passes inWindowMain. Now,TemplateManagerreceives the currentWindowMaininstance usingTemplateManager.setWindowMain().- Fixed miscellaneous issues with invalid JSDoc syntax that was failing safely.
- The logic for
.addCheckbox()has changed to allowinnerHTMLto be passed into the<label>element instead of defaulting to the<input>element. If you pass in both at once, the former will go to the<label>, and the latter will go to the<input>. - You can now retrieve/modify user settings from any place that the
SettingsManagerclass instance is accessible. However, it will always take up to 5 seconds for changes to save to user storage (changes go into effect instantly, then they are stored later). - The coordinates that Blue Marble injects into the pixel information menu is now a flexbox. Each coordinate is a child.
Installation
Download one of the attached BlueMarble.user.js files in the assets section to use this release.
Version 0.90.0
Shaky-Stable Beta Release
In this version, Blue Marble windows will no longer scroll to the top when you click inside the window. The "Select/Unselect All" buttons were renamed. Finally, if you try to open a Blue Marble window, but the window is already open, the window will close.
Change Log
- Clicking on a Blue Marble window will no longer bring it to the top.
- When scrolled down in a Blue Marble window, clicking inside the window will no longer "cause the UI to jump".
- The "Select All" and "Unselect All" buttons inside the color filter window were renamed to "Hide All Colors" and "Show All Colors", respectively.
Installation
Download one of the attached BlueMarble.user.js files in the assets section to use this release.
Version 0.89.0
Shaky-Stable Beta Release
In this version, the majority of Blue Marble has been updated. Specifically, the color filter has been redesigned to run faster. In addition, Blue Marble is less strict about the hex color of your template matching the Wplace palette. #000101 will be considered black (#000000) now, instead of "Other".
Change Log
User-Specific
Blue Marble Outage
- Tiles will now load properly.
Color Filter
- Color filter now approximates color matches within a range. This means users no longer need to turn off anti-fingerprinting measures in order to use the color filter.
- Color filter settings no longer persist between site refreshes.
- Color filter now appears in its own window.
- Color filter now requires you to load all template tiles (per browser session) in order to accurately calculate the amount of correctly placed pixels.
- Fixed bug where total pixels, correct pixels, and completion percentage were incorrect in certain circumstances.
- Color filter can now be sorted "ascending" or "descending" according to:
- Color ID
- Color name
- Premium colors
- Completion percentage per color
- Correctly placed pixels per color
- Incorrectly placed pixels per color
- Total pixels
- Color filter now supports enabling/disabling all colors at once.
- Color filter now supports hiding unused colors from view inside the color filter list of colors.
- Color filter buttons to enable/disable all colors only apply to the colors in the list of colors the user can see.
- Color filter window now contains statistics about all templates (e.g. total amount of correctly placed pixels).
- Color filter window now displays the date and time the user will complete all templates loaded.
- When all templates are completed, and all pixels are correct, the color filter window will display confetti.
- Color filter now supports filtering Erased (
#deface) colors. - Color filter now supports "Other" as an actual color. Previously, it was a "shadow" color that did not exist.
Non-specific Windows
- All windows now have an exclusive minimization button.
- All windows, excluding the main window, now have a "Close Window" button.
- All windows, excluding the main window, now appear in the top left corner by default.
- All windows now attempt to bring themselves into view when you click on them.
Main Window
- Coordinate input fields no longer persist input between site refreshes.
- Developed "smarter" pasting logic when pasting coordinates from clipboard into coordinate input fields located in the main window.
- Merged "Enable" and "Disable" buttons (located in the main window) into a single, unified, button.
- Removed the color filter from main window.
- Added to the main window, a button to open the Template Wizard.
- Added to the main window, a button to open Color Filter window.
- Username display field has been removed from the main window.
- The "globe" icon in the main window no longer handles window minimization.
- The "globe" icon will now display a party hat on the "birthday" of Blue Marble.
- When the main window is loaded on the "birthday" of Blue Marble, confetti will appear.
- The default main window location has been moved slightly.
- In the main window, you can now see how long it will take to fill up your charges.
Telemetry Window
- The entire telemetry window UI is brand new, and now matches the overall window theme of Blue Marble.
- Telemetry window now contains a "non-legal" summary of what user information is stored on external servers.
Template Wizard
- Added a "Template Wizard" window.
- The template wizard window now gives the user the option to download all templates in storage.
- The template wizard window now displays the template storage schema health to the user.
- The template wizard window now gives the user the option to update template schemas without having to upload new templates manually.
Developer-Specific
GitHub
- Branch protection has been disabled.
- Git(Hub) Branches are now properly used.
Documentation
- Contribution documentation has been updated to reflect Git(Hub) branch changes.
- Contributing License has been added to the project.
- Updated documentation to better comply with OpenSFF best practices.
- Added hits.sh badge to count repository views.
- Wplace.live status badge has been removed.
- tokei.rs badges have been replaced.
- "Visitors" badge is now enabled to allow referrals (
noreferrerwas removed). - Duplicated questions in README.md FAQ have been removed.
- Fixed incorrect JSDoc parameter types in
Overlay.jsfunctions.
Build Pipeline
- Added tokei to build pipeline to calculate "Total Lines of X" badges in README.md.
- CodeQL will now run in release branches.
- Compression badge calculations now blacklist all flavors of Blue Marble except the main flavor.
- Entry point for bundling CSS files is now an auto-generated
src/main.cssfile. - Build pipeline will now automatically generate all flavors of Blue Marble.
Application Logic
- Templates no longer store Erased (
#deface) pixels as "x" grids inside template storage. Erased pixels are now rendered on-the-go. - All previous Color Filter pixel calculations are no longer stored.
- Color filter pixel calculations now store only total pixels per color. Everything else is calculated on-the-go.
- Window minimization logic has been redone. All minimization logic is brand new.
- Color filter logic has been redone. All color filter logic is brand new.
- Window dragbar logic has been modified to allow child elements to be interactive.
- CSS selectors have been migrated from mostly ID selectors (old) to mostly class selectors (new).
- All SVGs have been modified.
./utils.jsnow contains localization functions for displaying most basic units of measurement.- Timers can now be created. Timers are located at
Overlay.addTimer(). - All windows are now their own file and class. They are no longer located in
main.js. - Template schema version has been bumped from
1.0.0to2.0.0. - Logic handling the application of developer-specified attributes to elements has been modified to allow some attributes names which coincide with reserved words in JavaScript. E.g., a developer had to specify
classNameinstead ofclassbecauseclassis a reserved JavaScript word. Developers can now specify that theclassattribute be applied to elements. - Added support to
Overlay.jsfor the following HTML elements:<span><details><summary><form><fieldset><legend><select><option><ol>(ordered list)<ul>(unordered/bullet list)<menu><li>(list item)<table><caption><thead>(table header container)<tbody>(table body)<tfoot>(table footer)<tr>(table row)<th>(table header data/cell)<td>(table data/cell)
addDragbar()andaddTimer()are now functions ofOverlay.jsinstead ofmain.js.- Window minimization is now a function of
Overlay.jsinstead of being hard-coded. - Code for filtering colors, calculating correct pixels, and modifying Erased pixels is now a function of
templateManager.js. - Code for filtering colors, calculating correct pixels, and modifying Erased pixels now use only 1
OffscreenCanvas(in addition to the mainOffscreenCanvas). In other words, filtering colors, calculating correct pixels, and modifying Erased pixels now only requires 1 iteration over every pixel, instead of multiple iterations. ApiManager.getBrowserFromUA()andApiManager.getOS()functions are no longer private.- Tiles with no templates are no longer drawn to a canvas before returning the unmodified tile.
- Logic to load templates based on template storage is now dependent on schema version matching.
- Added
sleep()function to./utils.js. - Added a function to
./utils.jsthat allows a canvas to be viewed in a new tab. - Added a function to
./utils.jsto decode numbers that were encoded in base-n. - Added a function to
./utils.jsto retrieve data from the clipboard. This was previously hard-coded. - Added a function to
./utils.jsto calculate the relative luminance of a color.
Project Design
- CSS for each object (e.g.
WindowMain) is now stored in its own.cssfile. - Added "Standalone" flavor of Blue Marble, which contains all external URI dependencies.
- Added "GreasyFork" flavor of Blue Marble, which complies with GreasyFork rules.
- Added donation link to userscript header.
- Removed unused, non-specific code throughout the project.
Wiki
- Patched security vulnerability (CVE-2025-13465)
Installation
Download the attached BlueMarble.user.js file in the assets section to use this release.
Version 0.88.0
Shaky-Stable Beta Release
In this version, the location of the expanded coordinates was fixed.
Change Log
- Fixed a bug where the expanded coordinates provided by BM were generating in the wrong location on the UI.
Installation
Download the attached BlueMarble.user.js file in the assets section to use this release.
Version 0.87.0
Shaky-Stable Beta Release
In this version, Blue Marble will no longer run in iframes.
Change Log
- Disabled Blue Marble from displaying in
<iframe>HTML elements. - Disabled Blue Marble from displaying in the "Patch Notes" pop-up window in Wplace. However, Blue Marble will still display on the "Patch Notes" webpage.
Installation
Download the attached BlueMarble.user.js file in the assets section to use this release.
Version 0.85.0
Shaky-Stable Beta Release
In this version, the color filter will display invalid palette colors.
Change Log
- Added "Other" color to color filter, which is all invalid colors.
- Updated user documentation for template creation.
- Updated developer documentation to specify that modular programming should be used.
Installation
Download the attached BlueMarble.user.js file in the assets section to use this release.
Version 0.84.0
Shaky-Stable Beta Release (Version 0.83.0)
In this release, a display bug with Blue Marble was fixed.
Change Log
- Fixed a bug where Blue Marble would not display on
wplace.live// - Fixed duplication issue with Quick Guide on the README.md
Installation
Download the attached BlueMarble.user.js file in the assets section to use this release.
Version 0.83.0
Shaky-Stable Beta Release
In this release, color filtering and telemetry were added.
Change Log
- Added telemetry popup and requests.
- Added color filtering by @vishnuvardhan33
- Fixed the one-click install links (v0.82.0)
- Fixed transparent colored template pixels not displaying on dark pixels by @EastMonster
- Added link to landing website by @camilledaguin
New Contributors
- @vishnuvardhan33
- @filipus098
- @EastMonster
- @Cyberflixt
- @camilledaguin
- @windigerbus
- @sobakintech
- @agatemosu
- @nemupy
Installation
Download the attached BlueMarble.user.js file in the assets section below to use this release.
Version 0.81.0
Shaky-Stable Beta Release
In this release, compatibility with #deface colors was added, and the documentation was updated.
Change Log
- Added compatability for
#defacetemplate colors. - Added "one-click install" links in installation instructions, and fixed bugs in the links. Done by @thatfrozenfrog in #62.
- Updated documentation by @SwingTheVine in #98.
- Fixed documentation/wiki bugs by @SwingTheVine in #99.
- Added quick guide.
- Fixed bug in drag bar speed.
New Contributors
- @thatfrozenfrog made their first contribution in #62
Installation
Download the attached BlueMarble.user.js file in the assets section below to use this release.