Kartik Scripts

Ped Catalog & Unlocks

Allow players to wear non-freemode ped models (e.g. goon, hipster, zombie, custom add-on peds) and sell ped changes through your Tebex webstore.

[!TIP] Want players to pay with in-game money instead? See Ped Surgery.


🏬 How Tebex Purchased Peds & Ped Changer Work

  [Tebex Webstore Purchase] 
             │
             ▼
  [Console Exec: kc_ped_grant] ──► [kc_ped_unlocks DB Entry]
                                            │
                                            ▼
  [Player Approaches Ped Changer] ──► [Server Validates Unlock]
                                            │
                                            ▼
  [Player Selects Ped & Confirms] ──► [Ped Applied & Unlock Consumed]

1. Declaring Peds (shared/config.lua)

All wearable ped models are declared in Config.Peds. Unlocked/free peds are available to all players; locked peds require a Tebex purchase or an admin grant.

Config.Peds = {
    { model = 'mp_m_freemode_01', label = 'Male',   gender = 'male',   freemode = true },
    { model = 'mp_f_freemode_01', label = 'Female', gender = 'female', freemode = true },

    { model = 'g_m_m_armgoon_01', label = 'Goon',    gender = 'male' },
    { model = 'u_m_y_zombie_01',  label = 'Zombie',  gender = 'male' },
    { model = 'a_m_y_hipster_01', label = 'Hipster', gender = 'male' },
}

2. Locking Peds & Tebex Package Mapping

  1. Open /shopmanager as an admin in-game.
  2. Pick Peds & Locking in the sidebar and stay on the Ped Locking sub-tab.
  3. On the ped's card, enter its Tebex package id, optionally a store hint shown on the locked tile (e.g. Available on our store), and press Save (saved in kc_ped_packages). Once mapped, the ped model becomes locked for everyone on the server. Leave the package empty to keep a ped free.

The Customers sub-tab looks up a Citizen ID and shows the peds they own, how many changes they have left and their change history, with Grant / Revoke buttons per ped.

3. Webstore Purchase & Delivery

When a customer purchases the ped package on Tebex, Tebex executes the console command:

kc_ped_grant <packageId> {citizenid} {transaction}

The server creates a record in kc_ped_unlocks linked to that player's citizenid. Duplicate webhook executions are prevented via transaction recording.

4. Opening the Ped Changer Door

  • Servers can create dedicated Ped Changer locations in /shopmanager (Shop Type: ped).
  • Owners-Only Access (Config.PedShopOwnersOnly = true): Only players with an unspent ped unlock in kc_ped_unlocks can open the Ped Changer UI. If an unentitled player tries to open it, the server notifies them that they have no ped changes available.
  • Open Wardrobe (Config.PedsOpenToAll = true): Lifts the owners-only gate entirely. Anyone may open the Ped Changer and switch to any ped that carries no Tebex package, as often as Config.PedChangeCooldown and Config.PedChangeFee allow. Sold peds still need their unlock and still spend it.

5. Selecting & Applying the Ped

  • Inside the Ped Changer UI, the player previews their unlocked ped models.
  • Selecting a model and clicking Apply triggers kartik-clothing:commitPed.
  • Single-Use Consumption (Config.PedUnlocksAreSingleUse = true): As the change is applied, the unlock is marked as consumed_at in kc_ped_unlocks, preventing reuse unless the player purchases another ped change package on Tebex or receives a new grant from an admin.
  • An audit log is automatically saved in kc_ped_changes.

6. Editing The Rest Of The Character

The Ped Changer is a full appearance session, not just a model picker. Config.PedShopTabs decides what else it opens alongside the ped list:

Config.PedShopTabs = { 'ped', 'heritage', 'face', 'hair', 'beard', 'makeup', 'skin' }

So a player picks a body, then sets its face, hair, and skin in the same visit. Tab names match Ped Surgery; add 'clothing' or 'tattoos' to widen it further.

[!TIP] Tabs that need a freemode body, heritage, face, beard, makeup, skin, are dropped automatically while a story ped is selected, since head blend and overlays do nothing on one.

Like surgery, the Ped Changer always commits its result, even on a server running inventory clothing items: a new body and face is not a garment to carry.


⚖️ Ped Change Rules (Anti-Powergaming)

These rules apply when players change peds after initial character creation:

SettingDefaultDescription
Config.PedChangeCooldown86400Cooldown period in seconds between ped changes per player (24 hours default; 0 disables).
Config.PedsAllowGenderSwapfalsePrevents changing across genders to preserve character identity.
Config.PedChangeFee0Bank account charge per ped change (0 disables).
Config.PedUnlocksAreSingleUsetrueUnlocks are consumed upon applying the ped change.
Config.PedShopOwnersOnlytrueRestricts Ped Changer door access to players holding unspent ped unlocks.
Config.PedsOpenToAllfalseOpen wardrobe mode, any ped without a Tebex package is free to switch to, for anyone. Overrides the owners-only gate.
Config.PedShopTabsped, heritage, face, hair, beard, makeup, skinWhich tabs the Ped Changer opens besides the ped list.
Config.PedsShowLockedtrueDisplays locked peds greyed-out in the picker UI instead of hiding them.
Config.PedAdminBypassfalseDetermines if staff bypass unlocks, cooldowns, and fees (false ensures staff experience matches players).
Config.PedChangeLogToConsoletrueLogs ped changes to server console.

🛠️ Admin Commands

/pedunlock a_m_y_hipster_01              -- Grant ped unlock to yourself
/pedunlock a_m_y_hipster_01 ABC12345     -- Grant ped unlock to a specific player
/pedlock   a_m_y_hipster_01 ABC12345     -- Revoke a ped unlock from a player
/pedlist                                 -- List all peds and lock state in console
/pedstatus ABC12345                      -- Inspect ped changer door access for a citizen
/givesurgery 12 0 ped                    -- Open a body change on player 12, waiving every rule

[!TIP] /pedstatus [citizenid] prints a citizen's active model, single-use status, owners-only door status, admin bypass, and all active/consumed unlock rows, returning an explicit verdict of OPENS or REFUSED.


🗄️ Database Schemas

Database TableDescription
kc_ped_packagesMaps ped models to Tebex Package IDs. Any ped in this table is locked.
kc_ped_unlocksPlayer entitlements (citizenid, model, source, consumable, consumed_at, revoked_at).
kc_ped_changesComplete audit log of every ped change executed by players.

On this page