Skip to content

Player structure

Here you will learn how to work with the player structure.


Basic Player Info

lua
player:getName() -- Player's display name
player:getCleanName() -- Lowercase, no formatting
player:getNetID() -- Unique player network ID
player:getUserID() -- Unique account ID
player:getWorldName() -- Name of the world the player is in
player:getCountry() -- Player's country (online only)
player:getPlatform() -- Platform (0=Windows, 1=iOS, 4=Android, etc.)
player:getOnlineStatus() -- Online/offline status
player:getDiscordID() -- Returns Discord ID as a STRING
player:getDiscordInvites() -- List/info about created invites
player:getType() -- Non-zero = NPC
player:getAccountCreationDateStr() -- Date string
player:isOnline() -- True/false

Levels & Experience

lua
getMaxLevel() -- Maximum possible level on the server

player:getLevel()
player:setLevel(number)
player:addLevel(number)
player:removeLevel(number)

player:setXP(number)
player:removeXP(number)

-- To ADD XP:
world:addXP(player, amount)

Currency & Items

lua
player:getGems()
player:addGems(amount)
player:setGems(number)
player:removeGems(amount)

player:getCoins()
player:setCoins(number)
player:removeCoins(amount)

player:getItemAmount(itemID)
player:changeItem(itemID, amount)

player:getBankBalance()
player:addBankBalance(amount)
player:setBankBalance(number)
player:removeBankBalance(amount)

Titles

lua
player:hasTitle(id)
player:addTitle(id)
player:removeTitle(id)

Inventory

lua
player:getInventorySize()
player:isMaxInventorySpace()
player:upgradeInventorySpace(amount)
player:getInventoryItems() -- Returns all items

Example:

lua
for _, item in ipairs(player:getInventoryItems()) do
    print(item:getItemID(), item:getItemCount())
end

UI & Messages

lua
player:onConsoleMessage("Hello!")
player:onTalkBubble(player:getNetID(), "Hi!", 0)
player:onDialogRequest(dialog)
player:onTextOverlay("Overlay text")
player:playAudio("audio.wav")

Game Features & UIs

lua
player:onStorePurchaseResult()
player:onGrow4GoodDonate()
player:onRedeemMenu()

player:enterWorld("WORLDNAME", "Welcome!")

player:onGrowmojiUI()
player:onNotebookUI()
player:onCoinsBankUI()
player:onOnlineStatusUI()
player:onClothesUI(player)
player:onAchievementsUI(player)
player:onBackpackUI(player)

Roles, Mods & Stats

lua
player:hasRole(roleID)
player:setRole(roleID)

local all_roles = getRoles() -- every role on server
local highest = getHighestPriorityRole() -- best role on server

local role = player:getRole() -- full role object

player:getMod(modID)
player:addMod(modID, value)

player:getSubscription("subscriptionName")

player:updateStats(world, PlayerStats.ConsumablesUsed, 1)

Dialog Styling

lua
player:setNextDialogRGBA(r, g, b, a)
player:setNextDialogBorderRGBA(r, g, b, a)
player:resetDialogColor()

Other Utilities

lua
player:sendVariant({"OnTalkBubble", player:getNetID(), "Hi!", 0, 0})
player:sendVariant({"OnConsoleMessage", "Welcome!"})

player:sendAction("action|play_sfx\nfile|audio/sound.mp3\ndelayMS|0")

player:getWorld() -- Returns world or nil
player:disconnect() -- Kick player

player:setNickname("Nickname")
player:resetNickname()

getPlayerByName("Name")

local bytes = string.char(1,2,3,4)
player:sendRawPacket(bytes)

Country & Flags

lua
player:setCountry("us") -- Sets player's country

player:setCountryFlagForeground(item_id)
player:getCountryFlagForeground()

player:setCountryFlagBackground(item_id)
player:getCountryFlagBackground()

Blessings

lua
player:hasActiveBlessing(id)
player:hasBlessing(id)
player:addBlessing(id)
player:removeBlessing(id)

getBlessingName(id)
getBlessingInfo(id)
getBlessingRarity(id)

Moderation & Account Management

lua
player:ban(length_seconds, reason, banned_by, shouldBanDevice, shouldBanIP)
-- length_seconds = 0 -> permanent
-- banned_by = player or nil

player:getIP()
player:getRID()
player:setPassword("new password")

player:getEmail()
player:getBackpackItems()
player:getGender()
player:getAltAccounts()

World & Access Tracking

lua
player:getOwnedWorlds()
-- Returns list of world IDs that the player owns (using world locks and other locks that lock the entire world)

player:getRecentWorlds()
-- Returns list of world IDs that the player recently entered

player:getAccessWorlds()
-- Returns list of world IDs that the player has access to

player:getSmallLockedWorlds()
-- Returns list of world IDs that the player locked with small locks (SL, BL, HL, etc)

Example:

lua
local owned = player:getOwnedWorlds()
for _, worldID in ipairs(owned) do
    print("Player owns world ID:", worldID)
end

Security & Login History

lua
player:getIPHistory()
-- Returns list of IP addresses that recently were used to login into the account

player:getRIDHistory()
-- Returns list of RID addresses that recently were used to login into the account

Broadcast World

lua
player:setBroadcastWorld(world_name)
-- Sets the broadcast world for this player (useful for custom broadcasts, /go command will work)

Extras

lua
player:isFacingLeft()
player:getGuildID()
player:getHomeWorldID()
player:getTransformProfileButtons()
player:getClassicProfileContent(category, flags)
player:getClothingItemID()
player:getClothingItemID(PlayerClothes.CHANGETHIS)

player:getUnlockedAchievementsCount()
player:getAchievementsCount()
player:getBackpackUsedSize()

getAutofarm() -- Player autofarm status
setSlots(amount)

GTPS Cloud Documentation