Advertisement
CloneTrooper1019

A guide to religiously tracking changes to Roblox's engine.

Apr 10th, 2017
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.39 KB | None | 0 0
  1. DISCLAIMER: All of the information presented here was obtained using publicly available resources, inferences based on observation, and some data mining tools. All of this stuff applies to Windows. I don't know the specifics of how this would work on Macs, but I'd assume it's somewhat similar. If Roblox requests that I remove this paste, I will oblige. Hopefully there shouldn't be any problems with me sharing some of this though.
  2.  
  3. ----------------------------------------------------------------------------------------------------------------------------- GETTING THE API DUMP MANUALLY
  4. ---------------------------------------------------------------------------------------------------------------------------
  5.  
  6. Roblox's API is exported from the client exe itself (RobloxPlayerBeta.exe)
  7. You can find the exe by right clicking on the roblox player from the start menu, and clicking "Open File Location"
  8. (You may have to do this twice if it's a shortcut)
  9.  
  10. If you run the exe itself, you should see a popup indicating what launch options are available. The launch option we're interested in this case is called "--API". So in order to extract the API Dump, you'll need to create a .bat file inside of the game client folder, with the following line written in it:
  11.  
  12. RobloxPlayerBeta.exe --API api.txt
  13.  
  14. This generates a text file called api.txt in the game client folder. Within this file is the API Dump, which is a human readable version of Roblox's API.
  15.  
  16. ----------------------------------------------------------------------------------------------------------------------------- UPDATES PIPELINE, AND ACCESSING DEVELOPMENT VERSIONS OF ROBLOX
  17. ---------------------------------------------------------------------------------------------------------------------------
  18.  
  19. Before a feature is shipped onto Roblox, it goes through a pipeline of QA testing to make sure new features can be safely toggled if something goes wrong, and to make sure everything at a surface level is working as intended.
  20.  
  21. This testing is done through Roblox's gametest servers.
  22. Precisely, it goes through the following pipeline:
  23. gametest2 -> gametest1 -> production
  24.  
  25. Each stage of this pipeline takes a week to go through.
  26. In order to work with the testing pipeline, you have to install a separate version of Roblox from their robloxlabs servers:
  27. https://www.gametest2.robloxlabs.com
  28. https://www.gametest1.robloxlabs.com
  29.  
  30. A lot of the time, you can't actually access the site unless Roblox actually wants users testing stuff that is currently on there. However, this doesn't prevent you from installing the client, since the setup URLs are never blocked even if the website is "offline".
  31.  
  32. You "CAN" grab the latest version of these client installers from these URLs, but I don't advice doing this directly (more on this in a second):
  33.  
  34. https://setup.gametest2.robloxlabs.com/Roblox.exe
  35. https://setup.gametest2.robloxlabs.com/RobloxStudioLauncherBeta.exe
  36. https://setup.gametest1.robloxlabs.com/Roblox.exe
  37. https://setup.gametest1.robloxlabs.com/RobloxStudioLauncherBeta.exe
  38.  
  39. ---------------------------------------------------------------------------------------------------------------------------
  40. -- TOOLS I'VE MADE TO HELP MAKE IT EASIER TO MANAGE THIS
  41. ---------------------------------------------------------------------------------------------------------------------------
  42.  
  43. The main reason I don't advise downloading the builds directly, is because Roblox's installers like to delete existing versions when you move over to different development branches. Plus, Roblox Studio is by default linked to the gametest server when you are using a gametest build, and if you're trying to make use of the website on the prototype build you're going to have a bad time.
  44.  
  45. I've developed a couple of tools that make it easier to deal with this stuff.
  46.  
  47. ~ API Dump Tool ~ (https://github.com/CloneTrooper1019/ROBLOX-API-Dump-Tool)
  48. This tool automates the fetching of API Dumps from any branch of gametest (or just production itself), and you can also compare API Dump versions to the version currently on production.
  49.  
  50. ~ Roblox Studio Mod Manager ~ (https://github.com/CloneTrooper1019/Roblox-Studio-Mod-Manager)
  51. This is a custom Roblox Studio installer and file overrider that I wrote to both counter Roblox Studio's installer from preventing file overrides, and to make it easier to opt into gametest builds of Roblox Studio, while still remaining connected to production as far as the web aspects go. This also comes with a sample mod folder, which contains the mods I use in Roblox Studio that are tailored to my needs. This includes some helpful batch scripts such as:
  52.  
  53. * (BakeImages.bat) A batch script that pulls all PNG files out of the file you drag onto it.
  54. I use this to extract images from Studio.
  55.  
  56. * (ExtractStrings.bat) A batch script that pulls all some-what legible strings out of whatever file you drag onto it.
  57. I use this for data mining and some analysis stuff.
  58.  
  59. * (GetFVars.bat) A batch script that extracts all available FVariables (will cover what they are in a moment)
  60. I use this to figure out what Roblox is using to toggle the enabled state of a feature
  61.  
  62. ---------------------------------------------------------------------------------------------------------------------------
  63. -- A FOOTNOTE ABOUT FVARIABLES
  64. --------------------------------------------------------------------------------------------------------------------------
  65. If you're curious to know what FVariables are, they are essentially Roblox's way of toggling new features on production. The purpose of this feature is to make it so Roblox can ship code that might not work as intended, and disable it without having to reship the client.
  66.  
  67. Roblox primarily controls this from the following url:
  68. http://clientsettings.api.roblox.com/Setting/QuietGet/ClientAppSettings?apiKey=D6925E56-BFB9-4908-AAA2-A5B1EC4B2D79
  69. (This URL was discovered using Fiddler awhile back. Roblox allows us to know about it because we use it for the wiki.)
  70.  
  71. It is possible to change FVariables locally, but I'm not allowed to elaborate on how this is done due to some security issues they still need to address with them. I won't elaborate further on this ;)!
  72.  
  73. (If you really feel the need to, contact me privately and if you tell me what you're trying to do I might elaborate a little bit. No promises though.)
  74.  
  75. ---------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement