Callbacks
VORP's Callback.Register/TriggerAsync and RSG's CreateCallback/TriggerClientCallback use different signatures underneath. wc_libs normalizes both into one shape, and namespaces every callback name with a fixed wc_libs: prefix so it never collides with a resource's own callback names.
You don't type the prefix yourself. Pass
"myCallback" and wc_libs registers/triggers it internally as "wc_libs:myCallback". Passing an already-prefixed name is safe too — it won't double-prefix.
RegisterCallback(name, handler)server
Registers a server-side callback.
| Param | Type | Description |
|---|---|---|
| name | string | Callback name (auto-prefixed). |
| handler | function(source, cb, ...) | Call cb(result) when done. |
example — job-gate check, ported from wc_encounter
wc:RegisterCallback('encounter:isJobAllowed', function(source, cb)
local job = wc:GetJob(source)
if not job then cb(true); return end
for _, blocked in ipairs(Config.BlacklistJobs or {}) do
if job.name == blocked then cb(false); return end
end
cb(true)
end)
TriggerCallback(name, source, cb, ...)server
Triggers a client-registered callback from the server (server → client → server round trip).
| Param | Type | Description |
|---|---|---|
| name | string | Callback name (auto-prefixed). |
| source | integer | Target player. |
| cb | function(result) | Called with the client's response. |
| ... | any | Extra args passed through to the client handler. |
underneath, on —
vorp_core
Core.Callback.TriggerAsync(name, source, cb, ...)
rsg-core
RSGCore.Functions.TriggerClientCallback(name, source, cb, ...)
Client-side trigger helper not included in v1. Server-side
RegisterCallback/TriggerCallback are ready to use. A matching client-side "trigger a server callback" wrapper hasn't been built yet — for now, call your framework's own client-side trigger function directly with the wc_libs:-prefixed name, or add the wrapper yourself in _custom/client.lua.