This is a newly discovered build of Roblox, compiled in March of 2007.
To run the client, download this repository as a zip and extract it.
The executable can be found in the client
folder!
For this to execute correctly, you need to make sure your system has the Microsoft Visual C++ 2005 Service Pack
installed. This pack was standard in most older systems, but newer systems are no longer bundled with it.
You can find it here:
https://www.microsoft.com/en-us/download/details.aspx?id=26347
(Note: You will need the x86 pack. It may also help to have the x64 pack as well.)
This build does support hosting and connecting to servers, but there's a non-zero chance this build has exploitable bugs that can be used for remote code execution on your machine.
If you do try and take advantage of the multiplayer functionality in this build, make sure you only connect to servers that are trustworthy. Otherwise it isn't worth doing.
A publicly shared server >>IN PARTICULAR<< is very likely dangerous to connect to. Even if the server host isn't doing anything malicious, a malicious client could connect to the game and potentially exploit some buffer overflow in the network protocol to perform remote code execution on your machine. Private servers where every participant is known and trustworthy are probably okay, but just remember to be careful!
You have been warned, be smart and have fun :)!
https://github.com/CloneTrooper1019/Roblox_0.3.368.0/archive/master.zip
You can enable the command bar by navigating to the bar at the top of the screen and clicking View -> Toolbars -> Command
Here are some basic commands that can be used to do various things in this build:
-
Open Crossroads:
game:load("rbxasset://../../extra/places/Crossroads.rbxl")
-
Open Happy Home in Robloxia:
game:load("rbxasset://../../extra/places/HappyHomeInRobloxia.rbxl")
-
Open Roblox HQ:
game:load("rbxasset://../../extra/places/RobloxHQ.rbxl")
-
Open Tabula Rasa:
game:load("rbxasset://../../extra/places/TabulaRasa.rbxl")
-
Start a Play Solo session:
loadfile("rbxasset://../../extra/scripts/PlaySolo.lua")()
-
Start a localhost server on port 53640:
loadfile("rbxasset://../../extra/scripts/GameServer.lua")(53640)
-
Connect to a localhost server on port 53640:
loadfile("rbxasset://../../extra/scripts/Join.lua")(1, "Player", "localhost", 53640)
-
Create a player manually:
game.Players:createLocalPlayer(0)
-
Load your player's character manually:
game.Players.LocalPlayer:LoadCharacter()
-
Run the game manually:
game:service("RunService"):run()
-
Reset the DataModel to an empty state:
game:clearContent()
This build features the ThumbnailGenerator
service, which is still used by Roblox to this day for render avatars and game thumbnails!
While it only exists on Roblox's backend server today, it happened to exist in this build for some reason.
It has the following API definition:
Class ThumbnailGenerator : Instance
Function string ThumbnailGenerator:click(string fileType, int cx, int cy, bool hideSky)
Note that this service does not work immediately, it will crash Roblox if it isn't setup correctly.
You must copy the following files into the client
directory of this repository:
extra/Mesa-7.2/GLU32.DLL
->client/GLU32.DLL
extra/Mesa-7.2/OPENGL32.DLL
->client/OPENGL32.DLL
extra/Mesa-7.2/OSMESA32.DLL
->client/OSMESA32.DLL
-
When these DLL files are active, the rendering speed will slow to a crawl depending on the resolution of the game window.
- This is cannot be avoided as this forces rendering to software rendering.
- Remove the DLLs from the
client
directory when you aren't using them!
-
Shadows must be disabled or Roblox will crash when opening a new place.
-
Upon using
ThumbnailGenerator:click
, the crash dialog may show (though usually you can still interact with the client). -
MesaLib is very prone to rendering bugs (text appearing as black boxes, etc), though these don't affect the outcome of the thumbnail.
-
Arguments for
ThumbnailGenerator:click
have the following constraints:fileType
can be"PNG"
,"JPG"
,"TGA"
,"BMP"
,"PCX"
or"ICO"
cx
is the width of the thumbnail (max is 4096)cy
is the height of the thumbnail (max is 4096)hideSky
will make the sky transparent and adjust the camera angle if set to true, and will keep the sky and original camera angle if set to false
-
The string returned by the function is the image encoded in base64. Use a base64 to image converter like this one here.
Example usage (renders an avatar thumbnail):
if not game.Players.LocalPlayer then
game.Players:createLocalPlayer(0)
end
game.Players.LocalPlayer:LoadCharacter()
print(game:service("ThumbnailGenerator"):click("PNG", 420, 420, true))