Skip to content

VORP ​

VORP is the most widely used RedM framework. If you are building a new RedM roleplay server, this is the safe default — it has the largest community and the widest third-party script support.

Core resources ​

VORP is modular — the core alone does not give you a playable server. A typical install includes:

ResourcePurposeRequired?
vorp_corePlayers, characters, money, jobsYes
vorp_utilsShared helpers other VORP resources callYes
vorp_characterCharacter creation and selectionYes in practice
vorp_inventoryItems, weapons, storageMost scripts assume it
vorp_menuShared menu UICommon dependency
vorp_metabolismHunger, thirst, staminaOptional
vorp_hudOn-screen status displayOptional

Check each script's README for exactly which of these it needs — most economy scripts require vorp_inventory, and many UI-driven scripts require vorp_menu.

Load order ​

cfg
ensure oxmysql

ensure vorp_core
ensure vorp_utils
ensure vorp_inventory
ensure vorp_character
ensure vorp_menu

# RedMorrow resources after all of the above
ensure redm_shops
ensure vorp_phone

oxmysql before vorp_core before everything else is the rule that matters. Getting it wrong produces attempt to index a nil value at boot.

Database ​

VORP uses oxmysql in current versions. Older builds shipped against ghmattimysql — if you are running an old server and a new script, this mismatch is worth checking, since a script written for oxmysql will not find its database layer.

Set your connection string in server.cfg before starting anything:

cfg
set mysql_connection_string "mysql://user:password@localhost/vorp?charset=utf8mb4"

See Database & SQL for importing script tables.

Talking to VORP from a script ​

The long-standing server-side pattern for obtaining the core object is an event callback rather than an export:

lua
local VorpCore = {}

TriggerEvent("getCore", function(core)
    VorpCore = core
end)

The inventory API is exposed as an export:

lua
local VorpInv = exports.vorp_inventory:vorp_inventoryApi()

And a player's active character is reached through the core:

lua
local User = VorpCore.getUser(source)
local Character = User.getUsedCharacter
-- Character.firstname, Character.lastname, Character.money, Character.job ...

Verify against your version

VORP is actively developed and its API has changed across major versions. The patterns above are the widely used ones, but before writing integration code against them, confirm the exact names in the vorp_core version you actually run. A script failing on a call that "should" exist is usually a version gap, not a bug.

Common VORP problems ​

Money or job shows as nil — the character was not loaded yet when the script asked. This is normal for a few seconds after a player connects; scripts should wait for the character-selected event rather than reading on spawn.

Inventory items do not register — items must exist in VORP's items table before a script can give them. Importing a script's .sql usually handles this; if it does not, the item names in the script config must match the item names in the database exactly.

A script works on one VORP server and not another — almost always a core version difference. Compare vorp_core versions before anything else.

Getting VORP ​

VORP is free and open source, maintained by the VORP team on GitHub. Install the core from the official repositories rather than a redistributed copy — bundled copies inside script downloads are often outdated.

Once it is running, see Install Your First Script to add resources on top of it.

Documentation for RedMorrow. Scripts are licensed per server — redistribution is not permitted.