🤠 Wild Country Libs
Server API

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.

ParamTypeDescription
namestringCallback name (auto-prefixed).
handlerfunction(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).

ParamTypeDescription
namestringCallback name (auto-prefixed).
sourceintegerTarget player.
cbfunction(result)Called with the client's response.
...anyExtra 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.