Documentation

← Panda Auth

For Developers · Libraries

V3 Library

An encrypted library that Virtual Storage injects into your script automatically. Your service ID is configured for you on upload.

How it works

When you upload a script to Virtual Storage and pick V3, the library is injected automatically (AES-256-CBC encrypted) and your service ID is baked in, so you don't configure it manually. You just call Pelinda.Init.

Download the example

Want a working starting point? Grab the full reference example — a drop-in GUI key system using the V3 library, with key generation, redemption, save-and-resume, and validation already wired up.

You'll need to be signed in to download.

Validate a key

-- V3 Library is automatically injected via Virtual Storage
-- Service ID is auto-configured when uploading to Virtual Storage

-- Initialize the Panda Key System
local result = Pelinda.Init({
    Key = "PANDA-XXXX-XXXX-XXXX-XXXX", -- User's license key
    SilentMode = false,                 -- Set to true to suppress validation prints
    -- Service is auto-injected by Virtual Storage, no need to specify
})

-- Check the result (returns "validated!!", "invalid!!", or "error!!")
if result == "validated!!" then
    print("Authenticated!")
    print("Premium:", __PELINDA_IS_PREMIUM__)
    print("Expires:", __PELINDA_KEY_EXPIRES_AT__ or "Never")
    print("HWID:", __PELINDA_KEY_HWID__)

    -- Your script code here
elseif result == "error!!" then
    print("Connection error - check your internet")
else
    -- result == "invalid!!"
    local keyUrl = Pelinda.GetKeyLink()
    print("Get your key at: " .. keyUrl)

    -- Optionally kick the player
    game.Players.LocalPlayer:Kick("Invalid Key - Please get a valid key")
end

Pelinda.Init returns "validated!!", "invalid!!", or "error!!" and sets globals like __PELINDA_IS_PREMIUM__, __PELINDA_KEY_EXPIRES_AT__, and __PELINDA_KEY_HWID__. Pelinda.GetKeyLink() returns the GetKey URL.

Keyless mode

If your service has keyless access enabled, validate by HWID only:

-- V3 also supports keyless access (if enabled for your service)
-- Users are validated by HWID only

local result = Pelinda.Init({
    SilentMode = true, -- Suppress validation prints
    -- No Key needed if keyless access is enabled
})

if result == "validated!!" then
    print("Keyless access granted!")
    print("Is Keyless:", __PELINDA_IS_KEYLESS__)
    -- Proceed with your script
end

No key needed

In keyless mode you omit the Key field; the user is validated by HWID and __PELINDA_IS_KEYLESS__ is set.