Releases: 3skue/xAPI4
Releases · 3skue/xAPI4
xAPI v4.4
xAPI v4.3
xAPI v4.2
Added:
- FFlags - You can now disable and enable settings to efficiently modify how xAPI works (xAPI → FFlags)
run_on_actor
- Synapse X library and aliases
- Even more aliases
- File system
setreadonly
checkcallstack
cache.replace
fireproximityprompt
loadstring
,clonefunction
,execute_clipboard
, and the teleport queue are now equipped with the xAPI environment- prob some other things I forgor
Changed:
- Improved decompiler even moar
- Better Instance type checking
xAPI v4.1
Added:
oth.hook
,oth.unhook
(more secure versions ofhookfunction
andrestorefunction
I guess)debug.getconstants
debug.getconstant
debug.getprotos
debug.getproto
Fixed:
- Improved decompiler
- Updated
loadstring
(Fiu and LuauCeption) gethwid
is now equipped with a real session tracking calculator- Added a single LocalScript responsible for masking xAPI and 'host scripts'
Me when I allow calling protos:
Full Changelog: v4.0...v4.1
xAPI v4.0
- added
getrunningscripts
(gets scripts that are able to run, not those which are actually running) (we can't extract threads from scripts so we can't check if they are actually running) - added
getscripthash
- added
getclipboard
,setclipboard
,executeclipboard
- added
emulate_call
(secure_call
,securecall
) - added Hydrogen/Delta aliases (for example:
hookfunction
=hookfunc
=replacefunction
=replacefunc
= ...)
- improved function debugger
- upgraded loadstring from Luau 0.590 to 0.618 (bytecode interpreter (Fiu)) and 0.621 (bytecode compiler (LuauCeption))
- fixed
getscripts
getting everything except for scripts - optimized
getidentity
(gettheadidentity
,getthreadcontext
) to be 10 times faster - made unreadable code readable
Disassembly example:
SOURCE:
local function test_function()
return {math:b("print").loadstring, function(a, b, ...)
return 12345, a * b - c
end,}
end
OLD DISASSEMBLY:
-- Decompiled with the xAPI function sandbox.
-- 'test_function', 0 params
local stack = {};
stack[1] = math;
stack[2] = stack[1]["b"];
stack[3] = stack[2](stack[1], "print");
stack[4] = stack[3]["loadstring"];
return {[1] = stack[4]; [2] = function() -- anonymous, 2+ params
local stack = {};
stack[1] = stack[0] * stack[0];
stack[2] = c;
stack[3] = stack[1] - stack[2];
return 12345, stack[3];
end; };
NEW DISASSEMBLY:
-- Decompiled with the xAPI function sandbox.
-- test_function, 0 params, 4 constants, 1 functions
local stack = {};
stack[1] = math;
stack[2] = stack[1]["b"];
stack[3] = stack[2](stack[1], "print");
stack[4] = stack[3]["loadstring"];
return {[1] = stack[4]; [2] = function(p1, p2, ...) -- anonymous, 2+ params, 1 constants, 0 functions
local stack = {};
stack[1] = stack[0] * p2; --// might fix later
stack[2] = c;
stack[3] = stack[1] - stack[2];
return 12345, stack[3];
end; };
Full Changelog: v4.0a...v4.0
Also, how did I manage to change the filesizes from 10 MB to 3 MB in one update even though I added 90000 new lines of code?xAPI v4.0a
New in 4.0a:
decompile
(function only)queue_on_teleport
,clear_teleport_queue
Enhanced:
hookfunction
(previous incorrect implementationhookmetamethod
(PII)getrawmetatable
(read-only (PII))dumpstring
checkcaller
(fixed)clonefunction
getrenv
(semi-PII)getcallingscript
(fixed)
Removed:
getthreads
(insufficient functionality)saveinstance
(output message size limit + IF)cloneref
,compareinstances
,cache.replace
(IF)getgc
(IF)WebSocket
(IF)- Wrapping (xAPI should actually do stuff, not pretend to do stuff)
Pending (Not present in this update, but may be in the next one):
- File system
- Hydrogen/Delta aliases (🥶)