๐Ÿค  Wild Country Libs
Getting started

Install wc_libs

Three steps: drop the resource in, ensure it before anything that depends on it, optionally pin the framework. That's the whole setup.

1. Add the resource

Copy the wc_libs folder into your server's resources directory, alongside your other resources โ€” not nested inside one of them.

file tree
resources/
โ”œโ”€โ”€ [core]/
โ”‚   โ””โ”€โ”€ vorp_core/
โ”œโ”€โ”€ [standalone]/
โ”‚   โ””โ”€โ”€ wc_libs/             โ† here
โ””โ”€โ”€ [wc]/
    โ”œโ”€โ”€ wc_encounter/
    โ””โ”€โ”€ wc_death/

2. Ensure it before dependent resources

wc_libs needs to start before any resource that uses it. Add it to your server.cfg ahead of everything else with a "wc_" prefix or anything else you plan to migrate.

server.cfg
ensure vorp_core
ensure wc_libs
ensure wc_encounter
ensure wc_death
Order matters. If a resource using wc:GetMoney(...) starts before wc_libs has finished initializing, the export won't resolve. Keep ensure wc_libs directly after your core framework and before anything that uses it.

3. Confirm it picked up your framework

On start, wc_libs auto-detects which core is running by checking for vorp_core or rsg-core as a started resource. Check your server console for a line like:

console output
[wc_libs] server ready โ€” framework: vorp โ€” version: 1.0.0
[wc_libs] client ready โ€” framework: vorp โ€” version: 1.0.0

If you see NONE DETECTED instead, your core framework either isn't installed or started after wc_libs. Check your ensure order, or set the framework explicitly โ€” see below.

Optional: force the framework

Auto-detection covers almost every setup. The one case it doesn't is running both cores side by side mid-migration โ€” wc_libs will default to VORP and print a warning if it sees both. Override it explicitly in shared/config.lua:

wc_libs/shared/config.lua
-- leave as nil to auto-detect (the default)
WCLibConfig.ForceFramework = 'vorp' -- or 'rsg'

Calling wc_libs from your own resource

Add '@wc_libs/init.lua' to your resource's shared_scripts โ€” that sets the wc shorthand global. Then call any wc_libs function as wc:FunctionName(...), same syntax on client and server.

my_resource/fxmanifest.lua
shared_scripts {
  '@wc_libs/init.lua',
  'config.lua',
}
server-side or client-side, any resource
local money = wc:GetMoney(source)
wc:AddMoney(source, 50)
wc:Notify(source, { title = "+$50" })

local prompt = wc:CreatePrompt("Talk [G]")
wc:SetPromptVisible(prompt, true)
wc is a live proxy. init.lua sets wc = exports['wc_libs'] โ€” it resolves at call time, not load time, so it works correctly on both client and server without any extra setup.