← Back to all posts

Heliodex project update – March 2026

Published 6 April 2026 at 20:18
Updated 6 April 2026 at 20:18

I return with another monthly update. Mostly with information on Mercury, as usual. Hope you're having a great easter if you celebrate that, or otherwise having a more relaxed holiday than I am if you have one at the moment. Here's what I was doing throughout March:

Mercury

Mercury 3 has 105 user accounts. As is tradition for the first day in April, we did a lovely CSS rewrite for the website, including plenty of new fonts, crazy animations, and rainbow colour scheme. I was only able to put in about an hour of work for this, so not as full on as the 2024 April Fools design & rebrand, but still fun nonetheless. It was of course reverted after a day. Some users requested that we bring it back as a website theme, though we already have that feature in Custom CSS (funnily enough that page 500s for some reason, must fix...) I suppose.

Work is still going ahead on the forms branch to fix and rewrite all of the forms on the site, since they currently don't work in development mode due to incompatibilites between 2 of our dependencies: ArkType and Superforms. My goal is to replace Superforms, which has served us well for a long time, with a system built on SvelteKit's Remote Functions, which we have already been using for some site forms that don't require a lot of validation. We're still running into issues with this (mainly with validating file uploads) so we don't yet have a timeline for when this will be completed.

I wrote a roadmap as an issue on the Mercury Core repository, detailing which components need to be completed before the release of Mercury 3. This isn't final, and will absolutely change as development continues, though should still give a good idea of the project's general direction and priorities. The roadmap currently includes 2 database resets, 1 upon the release of the new Economy service, and 1 upon the full public release of Mercury 3. There might be more or fewer than this, though 2 are to be expected.

In the recent Mercury News, we confirmed that the plan for moving to the 2016 client will be executed, and that 2016 will be available alongside the 2013 client for at least until the migration is complete. This isn't yet on the aforementioned roadmap since I don't quite know where it fits in the larger scheme.

A few issues with Mercury have been discovered by our beta testers. 1 is that the Launcher installs Mercury to the root user by default on Linux, and asks for permission to elevate on every launch unless running as root. This is the intended behaviour, as I didn't want to risk installing Mercury multiple times if it was installed for multiple users on the same machine, though this is unlikely and also not really a big problem. A patch was contributed to fix this, and was merged by Taskmanager. It hasn't yet been deployed as I haven't been able to test it myself yet, and I'll probably modify it a bit before deployment, then mark off what is now item 2 on our roadmap. Thank you Lanternoric for the contribution!

Another problem is the ability for a Studio instance serving a game to log the IP addresses of joining users. At the moment, we're investigating a fix using the DLL hook which should also prevent the issue on self-hosted servers. Obviously I don't think this is as much of a problem as other people think it is due to my belief that IP addresses aren't personally identifiable information, though it improves our reputation as a revival platform to have safeguards in place against vulnerabilities similar to this. The attack is carried out with a script similar to the following:

game.DescendantAdded:connect(function(e)
    if string.match(tostring(e), "%d+%.%d+%.%d+%.%d+") then
        print(e)
    end
end)

Note the lowercase :connect() because it's 2013, and the pattern match that only matches IPv4 addresses for the same reason. This was an issue up until December 2016 assumedly due to Roblox forgetting to not add the relevant NetworkClient or whatever to the DataModel in a way that it's hidden from regularly-privileged scripts. This was fixed in the Orbiter by adding a custom UDP proxy system, marking off item 1 on the roadmap list as completed. However, recently I noticed a crash due to a panic caused by a race condition in concurrent map access (I had previously never observed this problem and yesterday found it both here and in Litecode, which was also running at the time), so that will need a fix soon too. Thank you Zanryth for the discovery and testing! Both Zanryth and Lanternoric have been awarded a new exclusive avatar item, the Red Banded Top Hat, for their efforts.

Another is the request hanging when requesting /api/avatar/{username}?wait when not currently waiting for a character rerender, which was fixed in 672a39e. This also took down the whole site if enough requests were made simultaneously, in a kind of self-inflicted Slowloris attack. Thank you stan for the discovery and testing!

Finally, the runtime find-and-replace or other regular expression-based search and replace features used for interpolating values into served Loadscripts have the potential to be used for code injection if the input is not properly sanitised. This doesn't really have the full threat triangle (actor, model, & incentive) though still is worth fixing, so I'm working on a simple custom file format at Heliodex/substitution to allow for safer substitution of values. Thank you Kyle Wagness for the discovery and reporting!

Miscellaneous fixes to assets and other problems relating to TLS and BaseURL configuration have also been made, both in setup deployments and in Loadscripts & Corescripts. Mercury 3 still uses www.mercs.dev as the URL for insecure requests, so trying to visit the website from this domain won't work for submitting any forms or similar and thus this domain isn't recommended for anything except for Client/Studio endpoints.

On the documentation at docs.mercs.dev, we've added new setup guides for RCCService & the Launcher, a guide for installing the .NET SDK, new design pages on use of TLS in the Client & the relationship between Mercury 3 and Mercury Core, and finally an architecture document on different types of revival platforms, mainly covering the difference between launchers and web-based platforms, though also identifying some other experiments in the space. Some more information has also been added on a variety of other pages.

Keep a lookout for the features currently on our roadmap! It's nice to have a clear plan for the next several months or year of development, since the only times we really had a plan as clear as this were the original plan documents for Mercury 3, the shutdown document (The Future of Mercury 2), and the ancient Mercury 2 development Trello board.

Dex Display

Yes, this is the repository for my font, the same one used in my branding and on heliodex.cf. For a while I've tried to use font editors, and was never able to learn or get used to them. Instead, I've written some code to generate a UFO format from a set of SVG files, then convert this into OpenType and from there into pretty much any font format. It's most definitely hacky at the moment, with the SVG to UFO conversion in JS and the UFO to OpenType conversion in Python.

In addition, it doesn't actually work properly, with the final font having very noticeable display issues. This seems to be due to layers not properly working with each other, eg. being merged instead of cutting out the shape, or vice versa. Maybe this is because of the order of the points in each line or contour. Chirality? I'm not entirely sure since all of this is new to me. However if I do end up getting it working properly, it'll be a whole lot easier than manual importing into a font editor, though my implementation might cut me off from future features like variable weights if I want to add them in future.

I'm still drawing the glyphs for the font in Figma. Honestly I'd love if there was some AI-powered font tool that could improve or build upon my basic glyphs, though most of the ones I've found either focus on creating entirely new fonts or are cloud-based and don't offer a self-hosted solution. A while ago I attempted to switch to my favourite open-source alternative design application, Penpot, though Penpot still is missing the ability to move SVG path points manually or edit their positions, which makes font glyph editing difficult. However, Penpot has definitely handled everything else I've tried it with quite well.

Other posts

Heliodex project update – May 2026

May 2026 updates for Heliodex projects

Published 4 June 2026 at 17:01 #monthlyupdate

Welcome!

The first actually-official post of my blog.

Published 25 May 2026 at 01:56

Heliodex project update – April 2026

Project update for Heliodex projects in April 2026

Published 3 May 2026 at 02:02 #monthlyupdate

Heliodex project update – February 2026

Monthly project update – February 2026

Published 4 March 2026 at 04:49 #monthlyupdate

Heliodex project update – January 2026

1st 2026 project updateee

Published 6 February 2026 at 00:42 #monthlyupdate

Heliodex project update – December 2025

Updates for Heliodex projects in December 2025

Published 12 January 2026 at 23:09 #monthlyupdate

Heliodex project update – November 2025

November 2025 Heliodex project update

Published 12 December 2025 at 20:17 #monthlyupdate

Heliodex project update – October 2025

Monthly update for October 2025

Published 9 November 2025 at 06:21 #monthlyupdate

Heliodex project update – September 2025

Another montly update for September 2025

Published 7 October 2025 at 12:58 #monthlyupdate

Heliodex project update – August 2025

Heliodex's monthly project update, for August 2025!

Published 9 September 2025 at 17:38 #monthlyupdate

Heliodex project update – July 2025

July 2025 Heliodex project update

Published 12 August 2025 at 22:48 #monthlyupdate

Heliodex project update – June 2025

Monthly Heliodex project update for June 2025

Published 13 July 2025 at 17:45 #monthlyupdate

Heliodex project update – May 2025

Project update for May 2025

Published 13 June 2025 at 13:43 #monthlyupdate

Heliodex project update – April 2025

Monthly update for Heliodex's projects, April 2025

Published 10 May 2025 at 04:19 #monthlyupdate

Heliodex project update – March 2025

Another monthly update to Heliodex projects for March

Published 10 April 2025 at 19:27 #monthlyupdate

Heliodex project update – February 2025

Heliodex monthly project update for February 2025

Published 10 March 2025 at 01:08 #monthlyupdate

Heliodex project update – January 2025

irst 2025 monthly Heliodex project update

Published 13 February 2025 at 17:38 #monthlyupdate

Heliodex project update – December 2024

Changes to Heliodex projects for the end of 2024

Published 14 January 2025 at 23:55 #monthlyupdate

Heliodex project update – November 2024

Update for projects by me for November 2024

Published 14 December 2024 at 07:15 #monthlyupdate

Heliodex project update – October 2024

actual October 2024 update

Published 13 November 2024 at 00:13 #monthlyupdate

Heliodex project update – September 2024

September* 2024 Heliodex projects update

Published 8 October 2024 at 00:31 #monthlyupdate

Heliodex project update – July/August 2024

Double July and August 2024 update by Heliodex

Published 8 September 2024 at 23:59 #monthlyupdate

Heliodex project update – June 2024

big June 2024 update for projects with Heliodex yeah

Published 12 July 2024 at 04:34 #monthlyupdate

Heliodex project update – May 2024

May 2024: more updates for projects by Heliodex

Published 7 June 2024 at 22:10 #monthlyupdate

Heliodex project update – April 2024

update 4 for 2024 for Heliodex projects in April

Published 14 May 2024 at 04:09 #monthlyupdate

Heliodex project update – March 2024

Heliodex projects update for 2024 March

Published 4 April 2024 at 07:49 #monthlyupdate

Heliodex project update – February 2024

update for Heliodex projects month of February 2024

Published 8 March 2024 at 23:50 #monthlyupdate

Heliodex project update – January 2024

first 2024 january Heliodex project update

Published 13 February 2024 at 04:13 #monthlyupdate

Heliodex project update – December 2023

final 2023 Heliodex project update

Published 13 January 2024 at 03:58 #monthlyupdate

Bootstrap considered harmful

Bootstrap considered harmful

Published 4 January 2024 at 15:10

Heliodex project update – November 2023

update information for Heliodex projects in November 2023

Published 11 December 2023 at 13:52 #monthlyupdate

Heliodex project update – October 2023

update to projects by Heliodex for October

Published 6 November 2023 at 02:41 #monthlyupdate

Heliodex project update – September 2023

late update to Heliodex projects for the month of September

Published 8 October 2023 at 18:31 #monthlyupdate

Heliodex project update – August 2023

update for August on projects by Heliodex

Published 2 September 2023 at 23:26 #monthlyupdate

Heliodex project update – July 2023

Heliodex projects July update

Published 4 August 2023 at 04:14 #monthlyupdate

Heliodex project update – June 2023

update for June on Heliodex projects

Published 2 July 2023 at 07:12 #monthlyupdate

Heliodex project update – May 2023

information about projects by Heliodex for May

Published 3 June 2023 at 02:46 #monthlyupdate

Heliodex project update – April 2023

update for Heliodex projects april

Published 2 May 2023 at 21:52 #monthlyupdate

Heliodex project update – March 2023

Project update 5 for march

Published 2 April 2023 at 22:04 #monthlyupdate

Heliodex project update – February 2023

Heliodex project update 4

Published 3 March 2023 at 22:35 #monthlyupdate

Heliodex project update – January 2023

project update 3

Published 2 February 2023 at 04:59 #monthlyupdate

Heliodex project update – December 2022

project update number 2

Published 2 January 2023 at 05:26 #monthlyupdate

Heliodex project update – November 2022

project update for projects

Published 24 November 2022 at 19:15 #monthlyupdate