-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathNoUpvalueHook.lua
65 lines (49 loc) · 1.48 KB
/
NoUpvalueHook.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
--[[
Report any bugs, issues and detections to me if you don't mind (NoTwistedHere#6703)
I'm tired of 'too many upvalues' so I decided to create a little module instead of doing it manually
]]
return function(src, Upvalues) --// See the example below
local RUpvalues = {}
src = src:gsub("<<(%w*)>>", function(Local)
RUpvalues[Local] = Upvalues[Local] or function() return; end
return Local
end)
local f, e = loadstring(src)
if e then
return error(e)
end
for i, v in next, RUpvalues do
getfenv(f)[i] = v
end
return f
end
--[=[
--// Example
local NUB = loadstring(game:HttpGet("https://raw.githubusercontent.com/NoTwistedHere/Roblox/main/NoUpvalueBypass.lua"))()
local a, b, Old = true, false;
local NewFunc = NUB([[
if <<a>> or <<b>> then
<<c>>(...)
end
return <<d>>(...)
]], {a = a, b = b, c = print, d = Old})
Old = hookfunction(NoUpvalues, NewFunc)
--// Or
local NUB = loadstring(game:HttpGet("https://raw.githubusercontent.com/NoTwistedHere/Roblox/main/NoUpvalueBypass.lua"))()
local Skid = true
local IsSmart = false
local Print = print
local Old = nil
local NewFunc = NUB([[
if <<Skid>> or <<IsSmart>> then
<<Print>>(...)
end
return <<Old>>(...)
]], {
Skid = Skid,
IsSmart = IsSmart,
Print = Print,
Old = Old
})
Old = hookfunction(NoUpvalues, NewFunc)
]=]