Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
9391d03
Add ServerNewDex client and module files
DrewBokman Nov 28, 2025
f083b55
Remove ServerNewDex plugin module
DrewBokman Nov 28, 2025
ec1d6bc
Increase ScrollBarThickness for ScrollingFrames
DrewBokman Nov 28, 2025
1b23b30
Refactor Explorer and Misc_Features modules for readability
DrewBokman Nov 28, 2025
4f87dbe
Add touch drag scrolling to Explorer for mobile
DrewBokman Nov 28, 2025
446c279
Add support for viewing and managing instance tags
DrewBokman Nov 28, 2025
23bb80d
Improve tag handling and UI logic in Properties module
DrewBokman Nov 28, 2025
2a3a41b
Refactor AboutMenu and update version to 1.0.6
DrewBokman Nov 28, 2025
39be48e
Remove test.lua planning document
DrewBokman Nov 28, 2025
410fd7d
Add Console and Model Viewer modules
DrewBokman Nov 28, 2025
c9fc10c
Refactor and improve Dex client modules
DrewBokman Nov 28, 2025
177fec6
Refactor UI element instantiation and sizing
DrewBokman Nov 28, 2025
f03cc2a
Call ResetSettings during initialization
DrewBokman Nov 29, 2025
8c36204
Add client/server mode switch to console
DrewBokman Nov 29, 2025
a57a667
Add separate client/server log histories to console
DrewBokman Nov 29, 2025
5373dc2
Add command history navigation to console
DrewBokman Nov 29, 2025
3534e46
Add code execution confirmation dialog to console
DrewBokman Nov 29, 2025
d37c265
Refactor loadstring to use bytecode and NewScript
DrewBokman Nov 29, 2025
291482b
Refactor API and reflection metadata URLs
DrewBokman Nov 30, 2025
a1e33a4
Add RemoteSpy module and server-side monitoring
DrewBokman Nov 30, 2025
e944033
Improve Block List Editor UI and behavior
DrewBokman Nov 30, 2025
9564188
Refactor RemoteSpy formatting and conditionals
DrewBokman Nov 30, 2025
ef6cdda
Improve remote blocking and log clearing in RemoteSpy
DrewBokman Nov 30, 2025
d009017
Add Unload button to Dex client UI
DrewBokman Nov 30, 2025
7e55e5d
Remove unnecessary wait before monitoring remotes
DrewBokman Nov 30, 2025
50d7609
Remove RemoteSpy module and related functionality
DrewBokman Nov 30, 2025
45f4e94
Refactor Dex: add Data.lua, remove API.lua, update modules
DrewBokman Dec 13, 2025
930fa3b
Remove Friction and Elasticity fields from data table
DrewBokman Dec 13, 2025
4800c54
Refactor API/RMD generation and update classIconMap
DrewBokman Dec 13, 2025
b8b5118
Ensure critical classes like Player are included in API
DrewBokman Dec 13, 2025
4225700
Mark abstract classes as NotCreatable in API data
DrewBokman Dec 13, 2025
81130ef
Move API/RMD generation to client-side
DrewBokman Dec 14, 2025
1a0633c
Updated icons to the new studio ones
DrewBokman Dec 14, 2025
83486b6
oops
DrewBokman Dec 14, 2025
bf715aa
Minified JSON even more
DrewBokman Dec 14, 2025
774977f
Refactor InstanceIcons to use table-based class lookup
DrewBokman Dec 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 59 additions & 30 deletions MainModule/Server/Plugins/Misc_Features.luau
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
--// NOTE: THIS IS NOT A *CONFIG/USER* PLUGIN! ANYTHING IN THE MAINMODULE PLUGIN FOLDERS IS ALREADY PART OF/LOADED BY THE SCRIPT! DO NOT ADD THEM TO YOUR CONFIG>PLUGINS FOLDER!

return function(Vargs, GetEnv)
local server = Vargs.Server;
local service = Vargs.Service;
local server = Vargs.Server
local service = Vargs.Service

local Settings = server.Settings
local Functions, Commands, Admin, Anti, Core, HTTP, Logs, Remote, Process, Variables, Deps =
server.Functions, server.Commands, server.Admin, server.Anti, server.Core, server.HTTP, server.Logs, server.Remote, server.Process, server.Variables, server.Deps
server.Functions,
server.Commands,
server.Admin,
server.Anti,
server.Core,
server.HTTP,
server.Logs,
server.Remote,
server.Process,
server.Variables,
server.Deps

-- // Remove legacy trello board
local epix_board_index = type(Settings.Trello_Secondary) == "table" and table.find(Settings.Trello_Secondary, "9HH6BEX2")

local epix_board_index = type(Settings.Trello_Secondary) == "table"
and table.find(Settings.Trello_Secondary, "9HH6BEX2")

if epix_board_index then
table.remove(Settings.Trello_Secondary, epix_board_index)
Logs:AddLog("Script", "Removed legacy trello board")
Expand Down Expand Up @@ -42,24 +53,40 @@ return function(Vargs, GetEnv)
return table.unpack(args, 1 + (shift and shift - 1 or 0), 10 + (shift and shift - 1 or 0))
end
service.CloneTable = function(tbl)
return (getmetatable(tbl) and not pcall(setmetatable(tbl, getmetatable(tbl)))) and setmetatable({}, {__index = function(_, k) return tbl[k] end}) or table.clone(tbl)
return (getmetatable(tbl) and not pcall(setmetatable(tbl, getmetatable(tbl))))
and setmetatable({}, {
__index = function(_, k)
return tbl[k]
end,
})
or table.clone(tbl)
end
service.GoodSignal = service.Signal
service.Yield = function()
local event = service.Signal.new()
return {
Release = function(...) event:Fire(...) end;
Wait = function(...) return event:Wait(...) end;
Destroy = function() event:Destroy() end;
Event = event;
Release = function(...)
event:Fire(...)
end,
Wait = function(...)
return event:Wait(...)
end,
Destroy = function()
event:Destroy()
end,
Event = event,
}
end
Remote.UnEncrypted = setmetatable({}, { -- TODO: Start adding a server.Messages message and remove later
__newindex = function(_, ind, val)
warn("Unencrypted remote commands are deprecated; moving", ind, "to Remote.Commands. Replace `Remote.Unencrypted` with `Remote.Commands`!")
warn(
"Unencrypted remote commands are deprecated; moving",
ind,
"to Remote.Commands. Replace `Remote.Unencrypted` with `Remote.Commands`!"
)
Remote.Commands[ind] = val
Logs:AddLog("Script", `Attempted to add {ind} to legacy Remote.Unencrypted. Moving to Remote.Commands`)
end
end,
})
if service.Wrapped(server.Folder) then
server.Folder:SetSpecial("Shared", server.Shared)
Expand All @@ -68,7 +95,7 @@ return function(Vargs, GetEnv)
local random = math.random
local format = string.format

local Len = (type(pLen) == "number" and pLen) or random(5,10) --// reru
local Len = (type(pLen) == "number" and pLen) or random(5, 10) --// reru
local Res = {}
for Idx = 1, Len do
Res[Idx] = format("%02x", random(255))
Expand All @@ -79,7 +106,7 @@ return function(Vargs, GetEnv)
HTTP.Trello.API.GenerateRequestID = Functions.GetRandom
end
--// Old settings/plugins backwards compatibility. Do not remove this because many games use old loader ranks!
for _, rank in {"Owners", "HeadAdmins", "Admins", "Moderators", "Creators"} do
for _, rank in { "Owners", "HeadAdmins", "Admins", "Moderators", "Creators" } do
if Settings[rank] and not Settings.CustomRanks[rank] then
Settings.Ranks[if rank == "Owners" then "HeadAdmins" else rank].Users = Settings[rank]
end
Expand All @@ -89,26 +116,28 @@ return function(Vargs, GetEnv)
for name, users in Settings.CustomRanks do
if not Ranks[name] then
Ranks[name] = {
Level = 1;
Users = users;
Level = 1,
Users = users,
}
end
end
end
for k, v in {-- Legacy aliases
[`{Settings.Prefix}giveppoints <player> <amount>`] = `{Settings.Prefix}clientscript <player> game:GetService("StarterGui"):SetCore("SendNotification", \{Title = "Points Awarded", Text = "You received <amount> points!", Icon = "rbxassetid://155221172"\})`,
[`{Settings.Prefix}giveplayerpoints <player> <amount>`] = `{Settings.Prefix}clientscript <player> game:GetService("StarterGui"):SetCore("SendNotification", \{Title = "Points Awarded", Text = "You received <amount> points!", Icon = "rbxassetid://155221172"\})`,
[`{Settings.Prefix}sendplayerpoints <player> <amount>`] = `{Settings.Prefix}clientscript <player> game:GetService("StarterGui"):SetCore("SendNotification", \{Title = "Points Awarded", Text = "You received <amount> points!", Icon = "rbxassetid://155221172"\})`,
[`{Settings.Prefix}flyclip <player>`] = `{Settings.Prefix}fly <player> true`;
[`{Settings.Prefix}showlogs true <player>`] = `{Settings.Prefix}showlogs <player> true`; -- TODO: Remove legacy :showlogs aliases, only temporarily here.
[`{Settings.Prefix}showlogs false <player>`] = `{Settings.Prefix}showlogs <player> false`;
[`{Settings.Prefix}showlogs yes <player>`] = `{Settings.Prefix}showlogs <player> true`;
[`{Settings.Prefix}showlogs no <player>`] = `{Settings.Prefix}showlogs <player> false`;
[`{Settings.Prefix}showcommandlogs true <player>`] = `{Settings.Prefix}showlogs <player> true`;
[`{Settings.Prefix}showcommandlogs false <player>`] = `{Settings.Prefix}showlogs <player> false`;
[`{Settings.Prefix}showcommandlogs yes <player>`] = `{Settings.Prefix}showlogs <player> true`;
[`{Settings.Prefix}showcommandlogs no <player>`] = `{Settings.Prefix}showlogs <player> false`;
} do
for k, v in
{ -- Legacy aliases
[`{Settings.Prefix}giveppoints <player> <amount>`] = `{Settings.Prefix}clientscript <player> game:GetService("StarterGui"):SetCore("SendNotification", \{Title = "Points Awarded", Text = "You received <amount> points!", Icon = "rbxassetid://155221172"})`,
[`{Settings.Prefix}giveplayerpoints <player> <amount>`] = `{Settings.Prefix}clientscript <player> game:GetService("StarterGui"):SetCore("SendNotification", \{Title = "Points Awarded", Text = "You received <amount> points!", Icon = "rbxassetid://155221172"})`,
[`{Settings.Prefix}sendplayerpoints <player> <amount>`] = `{Settings.Prefix}clientscript <player> game:GetService("StarterGui"):SetCore("SendNotification", \{Title = "Points Awarded", Text = "You received <amount> points!", Icon = "rbxassetid://155221172"})`,
[`{Settings.Prefix}flyclip <player>`] = `{Settings.Prefix}fly <player> true`,
[`{Settings.Prefix}showlogs true <player>`] = `{Settings.Prefix}showlogs <player> true`, -- TODO: Remove legacy :showlogs aliases, only temporarily here.
[`{Settings.Prefix}showlogs false <player>`] = `{Settings.Prefix}showlogs <player> false`,
[`{Settings.Prefix}showlogs yes <player>`] = `{Settings.Prefix}showlogs <player> true`,
[`{Settings.Prefix}showlogs no <player>`] = `{Settings.Prefix}showlogs <player> false`,
[`{Settings.Prefix}showcommandlogs true <player>`] = `{Settings.Prefix}showlogs <player> true`,
[`{Settings.Prefix}showcommandlogs false <player>`] = `{Settings.Prefix}showlogs <player> false`,
[`{Settings.Prefix}showcommandlogs yes <player>`] = `{Settings.Prefix}showlogs <player> true`,
[`{Settings.Prefix}showcommandlogs no <player>`] = `{Settings.Prefix}showlogs <player> false`,
}
do
if not Variables.Aliases[k] then
Variables.Aliases[k] = v
end
Expand Down
Loading
Loading