Lunarengine: an Open Source, Roblox-Compatible Game Engine
Posted4 months agoActive4 months ago
github.comTechstoryHigh profile
excitedmixed
Debate
60/100
RobloxGame EngineOpen SourcePreservation
Key topics
Roblox
Game Engine
Open Source
Preservation
LunarEngine is an open-source, Roblox-compatible game engine that has sparked discussion on its potential for game preservation and the limitations of Roblox, with some users expressing excitement and others skepticism.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
2h
Peak period
88
Day 1
Avg / period
19.8
Comment distribution99 data points
Loading chart...
Based on 99 loaded comments
Key moments
- 01Story posted
Aug 23, 2025 at 7:22 AM EDT
4 months ago
Step 01 - 02First comment
Aug 23, 2025 at 9:12 AM EDT
2h after posting
Step 02 - 03Peak activity
88 comments in Day 1
Hottest window of the conversation
Step 03 - 04Latest activity
Aug 31, 2025 at 8:36 PM EDT
4 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 44995147Type: storyLast synced: 11/20/2025, 5:28:51 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
The whole problem is Robux isn't it? It's not like the engine is anything special.
Kids don't care about fancy graphics, they care about connecting and running around with their friends, in a wide variety of games, that are downloaded and up and running within seconds.
I'm not really a Roblox player so I'm not sure.
I'm not saying Roblox won't try, but this project strikes me as very obviously legal.
If legality was a spectrum, I'd rank this higher than VLC Media Player (patents) and way above an NES emulator. I suppose it'd be below Android, and Oracle did sue over Android.
(Disclaimer, I am not a lawyer, etc.)
This looks like it just reimplements a few Roblox APIs in an open source engine. It would of probably made more sense to just create a Roblox to Godot translator or something.
Second, your poking a multi billion dollar bear. If this project ever takes off Roblox will take action, right or wrong that's enough to stop most small projects. You can be right, but you don't have millions to fight non stop lawsuits.
In reality this is a cute proof of concept. It's never going to compete with the actual product. If it does Roblox will have it stopped in 72 hours
The good news though; it’s lawyers shutting down your project. Yesterday, it was hiring someone to break your knees.
The Internet interprets censorship (legal, moral, or otherwise) as damage, and routes around it.
https://en.m.wikipedia.org/wiki/Piracy_in_the_21st_century
and anyway, I heard Usenet is dead ;]
I genuinely don't know how its legal, when I shared the link to pokemon showdown to one of my friends, his first thoughts was, wait how is this legal? This is such a good thing, I wonder why this is free. Only for me to tell it its open source and bro was flabbergasted to say the least.
Its meant to be running live so you can play the many dynamic roblox games, I guess you could but it would be a mess.
(also not a lawyer)
https://en.m.wikipedia.org/wiki/Google_LLC_v._Oracle_America...
(Genuine question, I've no idea what chips it uses or anything - was never rich enough to have a game console until I started work myself.)
Apple, beholden to copyright interests, is wary of software that allows even the possibility of copyright infringement. They just recently allowed video game emulators on their store.
It’s not a legal distinction, sure, but it’s also not apples to apples.
As the GP pointed out, OEMs use copyright and encryption to protect against unapproved execution. But that doesn’t apply to all systems.
Given countries like the UK and US have the strictest intellectual property and computer misuse laws, and emulation is legal there (bar the aforementioned caveats), I’d be surprised if there was a jurisdiction where emulation was illegal. However if you do know of somewhere then please do share.
Edit: I looked into it a bit more. As it is against the law to dump ROMs from games you have legally purchased, as well as acquiring them through other channels, there is no way to emulate games in Japan in a legal manner.
However new games are constantly released for old consoles and often sold as ROMs. Which is completely legal because they own the copyright and distribution rights to those games.
Also modern variants of old consoles will typically use emulation with ROMs approved for distribution, such as:
- The SNES Classic Mini
- The Wii Virtual Console
- The Switch Online, SNES
All of these are official Nintendo products. All of them available in Japan. And all of them use emulation under the hood with ROMs that Nintendo supply and have legal authority to distribute.
You can also take this point further and talk about uses of emulation outside of gaming too. Such as emulated hardware components in a virtual machine.
https://vencord.dev/faq/#Will-I-get-banned-for-using-Vencord...?
However this is an entirely different question. Whether or not an API is copyrightable, and whether you'd be in violation for recreating a proprietary API for the purpose of creating an (open-source) market alternative for their product, are entirely different questions to whether or not a specific private company has stopped serving specific customers due to use of software they do not authorize (which they are entirely in the right to do, legally)
No, they didn't. They very specifically did not rule on whether the API was protected by Oracle's copyright on Java.
> but that Google's infringement of it fell within the bounds of fair use.
They found that, even if the API was protected, Google's use would be within the scope of fair use, and therefore it was not necessary to decide the question of the underlying copyright.
Here is, in full, the opening paragraph of the decision:
Oracle America, Inc., is the current owner of a copyright in Java SE, a computer program that uses the popular Java computer programming language. Google, without permission, has copied a portion of that program, a portion that enables a programmer to call up prewritten software that, together with the computer’s hardware, will carry out a large number of specific tasks. The lower courts have considered (1) whether Java SE’s owner could copyright the portion that Google copied, and (2) if so, whether Google’s copying nonetheless constituted a “fair use” of that material, thereby freeing Google from copyright liability. The Federal Circuit held in Oracle’s favor (i.e., that the portion is copyrightable and Google’s copying did not constitute a “fair use”). In reviewing that decision, we assume, for argument’s sake, that the material was copyrightable. But we hold that the copying here at issue nonetheless constituted a fair use. Hence, Google’s copying did not violate the copyright law.
Had the case not been in the Federal Circuit because it used to have patent issues, and had the xase instead stayed in the Ninth Circuit and had that Circuit ruled that and the Supreme Court left that part of the decision untouched, there would be binding precedent, if only in the Ninth Circuit. But on issues other than its special ones (patents, in this case) the Federal Circuit is to apply precedent from the Circuit the case would otherwise be in, but does not create binding precedent.
So, other than between Oracle and Google themselves, the parties to the original case, as a matter of res judicata, the Federal Circuit decision isn't controlling on any future court the way a Supreme Court decision or even a decision of one of the geographic circuits would be.
(This may seem backwards because it is skipping over a more basic question to a question that should only matter after that has been answered, but the Supreme Court can answer questions in any order it chooses, and will often answer the question that is easiest [and least disruptive/impactful] to answer first even when it seems logically backwards, if that lets it not answer other questions.)
You need to make custom servers. In fact, make a server that patched official clients can connect to. That's the correct order of operations.
The virtual world called Second Life, considered similar to Roblox, also has a rampant child predator problem[3]. It is interesting because Second Life and Roblox are similar 3D worlds. Both experiences have a similar visual feel. Both experiences do very little KYC, resulting in a rampant alt problem. In fact, Second Life will begin using the same version of Lua used by Roblox, so in some ways they are even technologically-related 3D experiences.
[1] https://en.wikipedia.org/wiki/Roblox_Schlep_ban_controversy
[2] https://corp.roblox.com/newsroom/2025/08/more-on-removal-of-...
[3] https://archive.is/yjprF (Feb 2024)
To be honest this librebox project looks kinda fishy to me. Seems like the author never used version control before. They put everything into one commit [1] and are making changes to the repo using the Github web UI. I wish the dev the best of luck but I wouldn't be surprised if this project gets abandoned in a few months
[1] https://github.com/librebox-devs/librebox-demo/commit/e70ea3...
I was working on the project by myself in VS Code and, along with the demo, committed the entire source code on release. Future development will, of course, be used with version control. I'm also sharpening my version control skills.
I had simply done some quick changes with the web UI for language (and also to add more demo images later).
Not sure how this is correlated to the actual product though.
Unsolicited advice: Stop using the Github web UI asap. It will slow you down. VScode has git integration. There's an upfront cost to learning it but it's worth it.
If you're willing to take the plunge it's best to use the git command-line interface directly. It pays in the long run. But I understand it's kind of daunting at first.
Whatever you decide, whether its VScode or the git CLI, just get off of the Github web UI. Trust me. I look at my old projects from when I was in high school and I deeply regret that I didn't do version control. So much information that gets lost.
I thought Flashpoint[1] did pretty well about that? The full download is 1.68TB, I'd wager most stuff you'd have seen back then would be on there.
[1]https://flashpointarchive.org/
LibreOffice, for example, is Mozilla Public Licensed, which is a weak copyleft, like LGPL (I think).
Probably worth mentioning this is just a demo. There's a looooong list of API features that aren't implemented (most notably servers and networking)
The reason we chose to prioritize client support, then server, was replication. If we develop a strong client with broad support, it makes developing the replication piece easier, since the client already supports the features in mind. It would also allow us to make Librebox more practical for game development in its early stages.
We'd love to see how you could do the client-server model though. Perhaps, there is a new and more efficient way.
Good luck guys!
Unless you are running the client against server, you will never know if the client features you are writing are any good.
The games need to run on the server by default, and the clients are just a "view" into what is happening on the server.
For ease of development, your app is a fully functioning server and a client in a single application.
When playing single player, the game is still running on a local server, with only a single client connected.
I strongly recommend building everything around the communication pipeline between the server and client. Make it very easy to dial up latency and packet loss.
their discord server is even stranger; there's absolutely nothing in the channels, and the only member with a developer role is an account dedicated to the "project".
looking at the source, work has absolutely been done - this isn't just a README - but it's still all a bit strange
I apologize if the first impression was crude -- I was in an hurry to get the engine out at this time. I understand that the Discord server simply consisted of a few channels (since then, I've cleaned that up).
I had actually wanted to make a new GitHub account for the project, to separate concerns (GitHub ToS prohibits this, and I had to learn the hard way), so I eventually renamed my old account. I'll make sure to provide more resources under my account so it doesn't seem empty.
In regards to developer attribution, we will have a developer page as well as a resource hub so it seems more than an "account". I had not anticipated that people would look deeper into the account -- I had simply wanted to get the demo out, to show the concept.
On a separate note, I acknowledge some people found it suspicious that the initial commit was every file at once. This doesn't mean I don't know how version control works. It was because I had actually worked on the project alone on my computer and, subject to release, released the full source at once.
Once again, thanks for informing us about these issues. Perhaps, I will better prepare my future releases to avoid this issues, even if I was under time constraints. I think that there are great things that can be accomplished with this project.
Are you aware GitHub lets you create organisation accounts for collecting projects behind a common name? I think it might be what you were looking for. You can even turn your current account into an organisation.
https://github.com/settings/organizations
I'll make sure to do that though as the next step.
This is my standard operating procedure. My public repo's not going to start with the first hundred commits of the code in a different language, with API keys burned in, etc.
It did not occur to me this was rare enough to be suspicious. You shouldn't have to apologize for it :)
A 5 year old isn’t going to be using IRC after all.
I’ve heard more about Roblox and their poor position on child safety this week than total mentions of roblox for years.
That's good... isn't it?
There are plenty of cases where you want to manipulate an object but it's not guaranteed that it exists before your code is run. You get similar functionality with:
while not parentObj:FindFirstChild("childObj name") do wait() end
AFAIK, wait() is >= 1/30 of a second, if you wanted to be extra timely you'd instead run every heartbeat.
https://www.google.com/amp/s/www.msnbc.com/msnbc/amp/shows/t...
I read your comment carefully to see whether you've taken the GP's joke further, but alas :)
Because I was on discord the other day and was talking about roblox and literally everyone hates it but people there were saying eh, we just play with friends we don't care, and I was like we definitely need to figure our shit since roblox doesn't give a (if I might swear since roblox disgusts me, but roblox doesn't give a fuck about child safety) I was thinking of having roblox be sorta as the what'd you say, minecraft but less blocky.
So to me, an open world which can be modded till now was maybe creating a whole game (which imo is wrong approach for things like roblox) and to me the thing which made sense back then (2 weeks ago) was Luanti (formerly minetest) with custom mod and hosting the server.
I am so excited,so doped for this one man. Heck, I will build products for this and host them for free or maybe create jupyter python notebook scripts which can run the games don't worry. I want open source to succeed so badly in this genre just because of the safety aspect.
Seeing it now, It feels like a reimplentation project of sorts.
I was clearly excited wishing for a new approach but it seems not. Well, I feel like I should pardon because I had been completely unprofessional and my take was wrong. But yeah, on a satirical side please don't cancel me for making a wrong take lol (jk)
I've never tried Roblox, so I have no idea how often people do such things in it.
Good times
- remaking one specific, good game on Roblox, such as remaking Bloxburg, in something more practical like Unity?
- working on an existing free remake of a Roblox game, like Nexus Battles, which of course, was archived?
- working on something else?
I’m asking the “Libreboxdevs.” It’s nice to hear these POVs directly from the developers. As you guys read this on a Saturday morning, consider that I’m not asking for, what features are going to be added to your GitHub project, or a comparison between Librebox and other game engines or whatever. I’m asking about your personal decision making.
I was just looking at trying to get Lemur (archived) running in Lune in order to run jest tests running in a react-lua app the other day. I have a start at a test runner with optional in-game output, but getting jest tests to run at init in studio in order to not require run-in-roblox which doesn't yet work on Linux with vinegar flatpaks studio or vinegar in a devcontainer. It would save so much trouble if RobloxStudio.exe could take `--place game.rbxlx --script test_runner.lua --keep-open` args and regularly flush console output to a file.
westurner:lemur:patch_for_roblox_support: https://github.com/LPGhatguy/lemur/compare/master...westurne... .. new require() implementation in lune v0.10: https://github.com/lune-org/lune/issues/311#issuecomment-320...
I started to add loadPlaceFile to read an rbxlx to lemur and thought it probably the wrong place given that it's archived. TIL about Librebox, which can hopefully run tests with Jest with this stemgame react-lua app I've MIT licensed, in local CI too years later.
There is a hosted CI service for running Luau code in Roblox places.
"[Beta] Open Cloud Engine API for Executing Luau" https://devforum.roblox.com/t/beta-open-cloud-engine-api-for...
Advantages to running tests locally: record screenshots and screencasts and save on test failure, immediate feedback, -i/--interactive drop into game session on test failure