High-quality scripts, modules, and plugins to power up your Roblox Studio projects. Created by experienced developers for developers.
Check out our most popular and powerful scripting solutions for Roblox Studio
-- Advanced Pathfinding Module
local AdvancedPathfinding = {}
function AdvancedPathfinding:CreatePath(params)
local path = {
AgentRadius = params.AgentRadius or 2,
AgentHeight = params.AgentHeight or 5,
WaypointSpacing = params.WaypointSpacing or 4,
_computed = false
}
function path:ComputeAsync(start, goal)
-- Async path computation logic
task.spawn(function()
self._waypoints = self:_calculatePath(start, goal)
self._computed = true
end)
end
function path:GetWaypoints()
while not self._computed do task.wait() end
return self._waypoints
end
return setmetatable(path, {__index = AdvancedPathfinding})
end
return AdvancedPathfinding
Advanced pathfinding system with customizable parameters for NPC movement.
-- DataManager Module
local DataManager = {
_playerData = {},
_updateCallbacks = {}
}
function DataManager:InitPlayer(player)
if not self._playerData[player] then
self._playerData[player] = {
cache = {},
pending = {},
saving = false
}
end
end
function DataManager:SetAsync(player, key, value)
local data = self._playerData[player]
data.cache[key] = value
data.pending[key] = true
if not data.saving then
self:_throttledSave(player)
end
end
function DataManager:Get(player, key)
return self._playerData[player].cache[key]
end
function DataManager:OnUpdate(player, key, callback)
if not self._updateCallbacks[player] then
self._updateCallbacks[player] = {}
end
self._updateCallbacks[player][key] = callback
end
return DataManager
Robust data saving solution with caching, throttling, and update events.
-- DialogSystem Module
local DialogSystem = {
_dialogs = {},
_activeDialogs = {}
}
function DialogSystem:CreateDialog(id, config)
local dialog = {
id = id,
title = config.Title or "NPC",
titleColor = config.TitleColor or Color3.new(1, 1, 1),
image = config.Image,
branches = {}
}
self._dialogs[id] = dialog
return dialog
end
function DialogSystem:AddBranch(dialogId, branch)
local dialog = self._dialogs[dialogId]
if dialog then
dialog.branches[branch.id] = branch
end
end
function DialogSystem:Start(player, dialogId, startBranch)
local dialog = self._dialogs[dialogId]
if not dialog then return end
local gui = self:_createDialogGui(player, dialog)
self:_showBranch(player, dialogId, startBranch)
self._activeDialogs[player] = {
dialog = dialog,
gui = gui
}
end
return DialogSystem
Flexible dialogue system with branching conversations and rich text options.
We provide high-quality scripting assets that save you time and elevate your projects
Our scripts are carefully optimized to ensure minimal impact on your game's performance while delivering maximum functionality.
All assets undergo rigorous testing to ensure they're secure, exploit-free, and production-ready.
We continuously improve our assets with new features and compatibility updates for the latest Roblox changes.