Treat CoreScripts as Open-Source Again

This is a major request. I know that. Not posting this risks it never happening though.

As a Roblox developer, it is currently too hard to do anything with the Roblox core scripts, such as:

  • Know how the internals work despite having the source code.
  • Understand bugs in the core scripts.
  • Contribute to anything meaningful, either for enhancements or to fix major problems.

Over the past month alone, I have not run into one, but two major performance issues due to the CoreScripts. The first one makes VR a stuttery mess in On Tap and the second one causes >100ms frame spikes ever few seconds in Tsunami Game. I had another one that took over a year for a staff response (today!). We have no workarounds, and also no staff respones, while these issues are harming normal gameplay.

I want to draw a comparison to where I work professionally, which is a Java company. Tooling for Java is very mature, and open-source is the norm. After an upgrade to a dependency, we had an issue where 100% of our build would fail to initialize a database correctly, and it failed sometimes on our local systems. This was due to a race condition, so no stack traces - we didn’t know that at first, but I was able to figure it out after a while. It took a day, but using a combination of the open-source code of several dependencies interacting and the debugger, I found the exact issue and why it happened. What about the CoreScripts, which are dependencies for us? The 2 posts I reference have only vague guesses as to what is going on. I can’t debug what is going on, or modify the scripts locally in Studio to force the issue to manifest. Most importantly: there is nothing I can suggest as a change to resolve the issues faster.

The CoreScripts previously being open-source and Luau being open-source, and I want to propose the big idea of treating the CoreScripts as open-source again. Mainly:

  • I want a proper way to be able to view the source code of the CoreScripts over time with some sort of history, in order to figure out when a change was made.
  • I want a process to be able to test changes to the CoreScripts locally in Studio to diagnose issues and give specific suggestions to save engineering time.
  • I want a faster process to suggest changes that are harming performance.
  • It’s free real estate. (It’s free labor, in case you like that greedy-sounding wording - someone else finds the issues and fixes them for you.)

If Roblox is able to address this issue, it would improve my development experience because I can get major issues solved in my game faster. I want to use my shiny Meta Quest Pro that Roblox gave us at RDC to play On Tap with my friends, but I don’t want to do it at 20 FPS due to the first bug report linked. I’ve known about it for over a month and got the firm data on it 3 weeks ago. I would have found the exact problem by now and suggested a fix if I could - please give us the option to do it.

149 Likes

+1

We’ve ““forked”” as many of the corescripts as possible because of issues that hang around never getting fixed. But unfortunately there’s still lots of performance issues devs can’t patch themselves, and Roblox’s speed to address them is extremely slow. This means our users experience reduced performance, and we waste a lot of time fighting things that should be helping us but do the opposite.

Allowing community contributions would be a good way of getting these performance issues ironed out in a much quicker manner, and likely be a good community hiring pipeline for Roblox!

Posts like this go over a month with no acknowledgement from staff:

18 Likes

I stand by you, this would be so helpful especially when you want to see how stuff currently works and for bug reporting.

10 Likes

I agree. As Roblox starts to become more open sourced in other ways, I think it would be fair to create a new roblox/CoreScripts repo which allows us to contribute and create issues.

It would highly benefit the platform and I see no major issues.

9 Likes

I definitely agree with this and would like to see this for a number of reasons including clarity, performance, etc.

7 Likes

+1, I think it’s really stupid that we’re not allowed to deal with code that is always running in our games in a significant manner.

6 Likes

Yep highly agree, I don’t understand why the source code access was seemingly taken away from us. It’s only yet another item on the list of the other internal things that have been weirdly taken away recently. :confused:

I do not understand why the engine is or needs to be, more and more of a black box. We should have the freedom to tweak and modify, scripts that are running inside our own experience, as reasonably possible. This somewhat sudden, change of direction concerns me very much, in many ways.

6 Likes

Didn’t they say this wouldn’t happen because CoreScripts are currently in bytecode, not readable Lua?

3 Likes

Roblox is not likely to to this. At least they should make stuff like the playermodule to be shown in edit mode so we dont use workarounds like play testing and copying.

2 Likes

If I recall correctly, this change was caused by optimizations within the engine. I don’t think this stops Roblox from providing this code in an open source format, like a Github repository.

If I’m misunderstanding, I apologize.


As for the original topic of this post, I do agree that these scripts should be open source. There has been time and time again where I need to copy a script from a running game just to sift through lines of messy code to fix a problem that has been, or has not been already addressed.

A good example of this was when Roblox had issues with the animate script that was causing blending issues with other animations. This was patched relatively quickly, but for less noticeable issues, this is still a concern.

4 Likes

you dont just write bytecode, you write lua then it gets converted into bytecode

3 Likes

Refer to @Vyntrick’s post above as it explains what I said with more detail. I wouldn’t be a programmer if I didn’t know that

4 Likes

Yeah I do agree with this post. It would be cool to be able to look at the CoreScripts

Obviously not all of them for security reasons and such but some of them

2 Likes

arent they in ur game files? or is that old

I’ve noticed a lot of random warnings and errors with massive react stack traces from the core scripts. Like a lot of new Roblox features, it feels like they haven’t been thoroughly tested, and I definitely agree that they should be open source.

3 Likes

I’m actually not sure but I’m pretty sure they are.

Using some common sense told me yes

im pretty sure they are but they arent actually the corescripts and editing them doesnt have an effect, i know some of them are located in the datamodelpatch and looking into roblox studios memory some of them are in there

1 Like

Security over obscurity isn’t a good idea either. Storing sensitive stuff should be on the server instead of the client.

1 Like

You know the CoreScripts are bad when Chat GPT 4 can’t understand how it works :skull:

For anyone wondering what this looks like:

(screenshot from 2023-10-16)
1 Like