This is a fixed and partially extended version of the Roblox source code from 2016. The original source was obtained from git.rip (now taken down).
Pull requests are accepted for bug fixes, dependency updates, and general improvements.
If the build fails or there are any issues with image assets (.png, .svg, etc.), please open an Issue. If you are unable to submit a pull request, a fix will be applied directly.
Prerequisites:
- Visual Studio 2019
- Visual Studio 2015 Build Tools (toolset
v141—v141_xpmay also work but has not been confirmed)
- Navigate to
Library/boost/and runbootstrap.bat. - Open
build_boost.batand update the paths to match the location of this repository on your machine. - Run
build_boost.bat.
Boost is now built.
Qt requires the Visual Studio 2015 Build Tools. The steps below use the VS2015 x86 Native Tools Command Prompt.
- Open the VS2015 x86 Native Tools Command Prompt (search "VS2015" in the Start Menu).
- Change your working directory to
Library/Qt/within this repository. - Run the
configurecommand below, replacing${path}with the absolute path to the root of this repository:
./configure -make nmake -platform win32-msvc2015 -prefix ${path}\Library\Qt -opensource -confirm-license -opengl desktop -nomake examples -nomake tests -webkit -xmlpatternsFor example, if the repository is located at D:\Roblox\Source:
./configure -make nmake -platform win32-msvc2015 -prefix D:\Roblox\Source\Library\Qt -opensource -confirm-license -opengl desktop -nomake examples -nomake tests -webkit -xmlpatterns- Once configuration is complete, run
nmake.- If you receive an error stating that
rcis not recognized, add your Windows SDKbinfolder to yourPATHenvironment variable.
- If you receive an error stating that
- The build will eventually stop with an error, but all required Qt libraries will have been produced by that point.
Qt is now partially compiled (only the libraries needed for this project are required).
Open Roblox.sln in Visual Studio 2019 and build the solution. All projects that are currently supported will compile successfully. Refer to the project status list below for details on which projects are supported.
Prerequisites:
- Xcode (latest version recommended)
- Xcode Command Line Tools (
xcode-select --install)
Note: The macOS client (
MacClientandRobloxMac) does not currently compile successfully. The instructions below describe how to attempt a build.
- Open
Mac/Mac.xcworkspacein Xcode. - Select the target scheme (
MacClientorRobloxMac) from the scheme selector. - Build the project using Product > Build or
Cmd+B.
If you encounter missing dependency errors, ensure that the required libraries in Library/ have been built or are present. Contributions toward making the Mac build functional are welcome.
Prerequisites:
- Android Studio (latest version recommended)
- Android NDK (r21 or later recommended)
- CMake 3.10 or later
Note: The Android client does not currently compile successfully. The instructions below describe how to attempt a build.
- Open Android Studio and select Open an Existing Project.
- Navigate to the
Android/directory within this repository and open it. - Android Studio will prompt you to configure the NDK. Set the NDK path in File > Project Structure > SDK Location.
- Sync the Gradle project and attempt to build via Build > Make Project.
Alternatively, you can use the CMake build system directly:
cmake -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=armeabi-v7a \
-DANDROID_PLATFORM=android-21 \
-B build/android
cmake --build build/androidReplace ${NDK_PATH} with the path to your Android NDK installation.
Prerequisites:
- macOS with Xcode installed
- A valid Apple Developer account (required for device deployment; simulator builds may work without one)
Note: The iOS client does not currently compile successfully. The instructions below describe how to attempt a build.
- Open
Mac/Mac.xcworkspaceorMacClient.xcodeprojin Xcode. - Select the
iOStarget scheme from the scheme selector. - Choose a simulator or connected device as the build destination.
- Build via Product > Build or
Cmd+B.
You may need to configure a development team under Signing & Capabilities in the project settings if targeting a physical device.
Library names marked with an asterisk (*) are out of date and may require updating.
| Library | Version |
|---|---|
| Boost | 1.74.0 |
| libcurl | 7.71.0 |
| zlib | 1.12.11 |
| SDL | 2.0.12 |
| VMProtect * | 2.1.3 |
| cpp-netlib | 0.13.0-final |
| Mesa * | 7.8.1 |
| xulrunner-sdk * | 1.9.0.11 (en-US, win32) |
| glsl-optimizer * | — |
| hlsl2glsl * | — |
| cabsdk * | — |
| Windows/DirectX SDK | — |
| w3c-libwww | 5.4.2 |
| Qt * | 4.8.5 |
The following is a comprehensive list of all projects and their current build status, as well as planned and completed changes to the original source code.
- App
- AppDraw
- Network
- RCCService
- Base
- boost.static
- boost.test
- GfxBase
- RbxG3D
- graphics3D
- RbxTestHooks
- Base.UnitTest
- App.UnitTest
- RobloxStudio
- Log
- WindowsClient
- RobloxTest
- GfxCore
- GfxRender
- CSG
- App.BulletPhysics
- CoreScriptConverter2
- Microsoft.Xbox.GameChat
- Microsoft.Xbox.Samples.NetworkMesh
- XboxClient
- Bootstrapper
- BootstrapperClient
- RobloxProxy
- NPRobloxProxy
- BootstrapperQTStudio
- BootstrapperRCCService
- RCCServiceArbiter
- RobloxModelAnalyzer
- Extract RbxDebug source files from bin/obj files
- MacClient
- RobloxMac
- Android
- iOS
- Studio dark theme
- Constraints
- Sound.PlaybackSpeed
- ScreenGui.Enabled
- ScreenGui.DisplayOrder
- Atmosphere
- Instance
- Wait
- Connect
- GetPropertyChangedSignal
- AnimationTrack.Looped
- Color3uint8
- Sky
- SunAngularSize
- MoonAngularSize
- SunTextureId
- MoonTextureId
- Lighting
- ClockTime
- Post Processing
- MSAA
- AASamples
- BloomEffect
- BlurEffect
- ColorCorrectionEffect
- SunRaysEffect
- Attempt a backport of the 2015 1x1 stud voxel shadow FIB prototype (demo here in 2015 and here in 2014)
- MSAA
- TextSize
- Easier to read debug stat GUIs
- LayerCollector.ResetOnSpawn
- "Oof" sound in volume slider
- Smooth camera scrolling
- Color3
- Color3.fromRGB
- Color3.fromHSV
- Color3.toHSV
- Instance:GetDescendants()
- MeshPart
- Terrain
- WaterReflectance
- MaterialColors
- New 2020 materials
- Sound effects
- FlangeSoundEffect
- SoundEffect
- SoundGroup
- PitchShiftSoundEffect
- ChorusSoundEffect
- CompressorSoundEffect
- TremoloSoundEffect
- ReverbSoundEffect
- DistortionSoundEffect
- EchoSoundEffect
- EqualizerSoundEffect
- ScreenGui.IgnoreGuiInset
- TextBox
- TextBox.CursorPosition
- TextBox.SelectionStart
- Home/End key support
- New Developer Console
- Team
- Player.Team
- Team:GetPlayers()
- Team.PlayerAdded
- Team.PlayerRemoved
- Particle visibility
- ForceField.Visible
- Explosion.Visible
- Decal.Color3
- ClickDetector
- ClickDetector.RightMouseClick
- ClickDetector.CursorIcon
- HttpService headers in HttpService:GetAsync and HttpService:PostAsync
- Humanoid.FloorMaterial
- WaterWaveSize and WaterWaveSpeed can be in the range of
-FLT_MAXtoFLT_MAX - TextBox text selection
- Restore SafeChat (Studio Settings > Game Options > ShowSafeChatButton)
-
int64support - Unicode/UTF-8 support
- 64-bit support
- Compile with VC++ 2019
- Uncapped friction
- Lua 5.3 utf8 library port
- Unlock TextureTrail
- Uncapped PlayerGui:SetTopbarTransparency
- Mesh format version 3.00 support
- Color3.toRGB
- DirectX
- DirectX 9 text render bug (fixed; determined to have never existed in the original source)
- DirectX 11 not initializing
- SDL Windows key
- Keyboard shortcuts
- Chat output shrinking on window minimize