Universal Script ๐Ÿ“Œ
600.9k Views

Script Verified SimpleDecompile

Universal Script ๐Ÿ“ŒUploaded by
vxstyvxsty
Verified Badge
Verified User
2 years ago
Please login to perform these actions:

Description

Can decompile LocalScripts & ModuleScripts v1.0.0: Can read upvalues Can read Vector3, Vector2, UDim, UDim2 values Can fully read tables Can read instance paths What it can't do as of now: Read while loops Read for loops Read function arguements's names (For example decompiling this function HelloWorld(Greet, Bye) would return function HelloWorld(a,b) It currently uses the alphabet as arguement counters) Use function arguements Use constants Hardly read constants How do I use it? Put this in your autoexec folder, Get the script you want to decompile's path, enter in your executor: decompile(scriptPath) If you want to print the result do print(decompile(scriptPath)) decompile returns a string value. v1.0.1 Changelogs: [+] A LOT better reading for constants: Instead of the usual local v8 = 'task' local v9 = 'wait', I implemented a feature that detects libraries (os, math, utf8, bit32, debug, string, table, ...) and checks if the next constant is a function of the library. [+] Better proccessTableDescendants code: You might've checked the previous code and said, why the hell is he doing if type(key) == "number" ... instead of making a function for it?!!, I did that. [+] Better instance path reading Instead of the previous (instance:GetFullName() function) I created a function called GetFullName that returns a better looking path, For example Previous: game.Players.LocalPlayer.leaderstats.Cash Current: game:GetService("Players").LocalPlayer:FindFirstChild("leaderstats"):FindFirstChild("Cash") Also added an if check to check if the first service is Workspace and used workspace:FindFirstChild instead of game:GetService("Workspace") [-] Added 2 extra arguements for the DecompileFunction function (exclude name, indent count) You don't need to worry about those as if they don't exist the script automatically adds them. [+] Added support for Enum values and fixed a string bug, If you had a string value in a table it wouldn't add quotes around it, Now it does. v1.0.2 Changelogs: [+] Fixed the main decompile function having incorrect arguements for DecompileFunction [+] Metatables & Metamethods support [_] To do list: Reading .new functions better. v1.0.3 Changelogs: [+] Fixed error when trying to iterate over a script [+] Added better metamethod decompiling (For example: Script now does meta1 = setmetatable(v1, {}); meta1.__index = function... instead of just putting the metamethods in the table itself.) [+] Fixed error where if an instance was parented to nil it would break the script, Script now returns Instance = nil -- Instance parented to nil [_] To do: Add better decompiling: Make script generate possible code instead of just returning constants & upvalues. // I do not promise this will be added, I will try to work on it tho. [+] Fixed ModuleScript error v1.0.4 The Ultimate Update Code sample: ``` local a = false local b = 1.712 local c = "hello world" function abc() print(a, b, c) end ``` [+] Upvalues reading much easier! Now you don't have to worry about having trouble reading upvalue names because i got you covered! Reading abc's upvalues will return either: bool_1 = false (a) number_2 = 1.712 (b) string_3 = "hello world" (c) or a = false b = 1.712 c = "hello world" instead of v1 = false v2 = 1.712 v3 = "hello world" Note: If the output was the first result then it's gonna be (DATATYPE_UPVALUE INDEX) [-] Removed libraries (task, utf8, ...) checks from constants. [+] Better instance naming, Instead of doing v1 = path... now it does the instance's name (Example: Part = workspace.Parts.Part, HumanoidRootPart = game.Players.LocalPlayer.Character.HumanoidRootPart) [+] MORE FUNCTION READING: You are now able to read garbage collection functions from a script that you weren't able to read before! [+] Settings: Only one setting at the moment but you can switch it from your workspace/SimpleDecompile/config.json files, It is the IncludeNils setting [?] What is includeNils? IncludeNils determines whethere you can see the functions that's names are nil, If true will show the functions, if false will exclude them, usually they're found in the garbage collection [+] Better Protos: Instead of your usual "local function nil(a, b).... local function nil(a) -- again" It now has different identifiers for each proto, nil1, nil2, nil3... [+] Better Formatting: Fixed the dumb --[[Found %d roblox functions in the function]]'s indentations, Now it also shows a clearer list. [+] Now loadstringing returns the decompile function, (Aka you can do local functionName = loadstring(game:HttpGet("ThisScript'sURL")(), functionName(script)) I say this is one of the best updates to come to SimpleDecompile, Please make sure to leave a favorite or thumbs up. TODO: Buffer reading and buffer decompiling.

View Raw
Edited By: vxsty Download


Comments
7
User profile picture
REDz 2 years ago - Edited
Cool
User profile picture
REDz 2 years ago - Edited
Can this code see loops?
User profile picture
vxstyVerified
Verified Badge
Verified User
2 years ago - Edited
@REDz read the features
User profile picture
beriVerified
Verified Badge
Verified User
2 years ago - Edited
yo uh, I'm a bit stupid so I can't figure out how to use this
User profile picture
vxstyVerified
Verified Badge
Verified User
2 years ago - Edited
@nixelpizel decompile(LocalScript/ModuleScript path, false -- If you want exclude the function's name in the code, 0 -- Indent count)
User profile picture
Purple_Apple 2 years ago - Edited
Cool. hope to see more updates in the future!
User profile picture
vxstyVerified
Verified Badge
Verified User
2 years ago - Edited
@tycoonman95 working on one right now!
Please Login to add a comment.