Player Meta
Lilia extends Garry's Mod players with characters, inventories, and permission checks. This reference details the meta functions enabling that integration.
Overview
Player meta functions provide quick access to the active character, networking helpers for messaging or data transfer, and utility checks such as admin status. Players are entity objects that hold at most one Character instance, so these helpers unify player-related logic across the framework.
getChar()
Description:
Returns the currently loaded character object for this player.
Parameters:
- None
Realm:
- Shared
Returns:
- Character|None – The player's active character.
Example Usage:
Name()
Description:
Returns either the character's roleplay name or the player's Steam name.
Parameters:
- None
Realm:
- Shared
Returns:
- string – Display name.
Example Usage:
hasPrivilege(privilegeName)
Description:
Wrapper for CAMI privilege checks.
Parameters:
- privilegeName (string) – Privilege identifier.
Realm:
- Shared
Returns:
- boolean – Result from CAMI.PlayerHasAccess.
Example Usage:
-- Deny access if the player lacks a privilege
if not player:hasPrivilege("Manage") then
return false
end
getCurrentVehicle()
Description:
Safely returns the vehicle the player is currently using.
Parameters:
- None
Realm:
- Shared
Returns:
- Entity|None – Vehicle entity or None.
Example Usage:
-- Attach a camera to the vehicle the player is in
local veh = player:getCurrentVehicle()
if IsValid(veh) then
AttachCamera(veh)
end
hasValidVehicle()
Description:
Determines if the player is currently inside a valid vehicle.
Parameters:
- None
Realm:
- Shared
Returns:
- boolean – True if a vehicle entity is valid.
Example Usage:
-- Allow honking only when in a valid vehicle
if player:hasValidVehicle() then
player:GetVehicle():EmitSound("Horn")
end
isNoClipping()
Description:
Returns true if the player is in noclip mode and not inside a vehicle.
Parameters:
- None
Realm:
- Shared
Returns:
- boolean – Whether the player is noclipping.
Example Usage:
hasRagdoll()
Description:
Checks if the player currently has an active ragdoll entity.
Parameters:
- None
Realm:
- Shared
Returns:
- boolean – True when a ragdoll entity exists.
Example Usage:
removeRagdoll()
Description:
Safely removes the player's ragdoll entity if present.
Parameters:
- None
Realm:
- Shared
Returns:
- None – This function does not return a value.
Example Usage:
getRagdoll()
Description:
Retrieves the ragdoll entity associated with the player.
Parameters:
- None
Realm:
- Shared
Returns:
- Entity|None – The ragdoll entity or None.
Example Usage:
isStuck()
Description:
Determines whether the player's position is stuck in the world.
Parameters:
- None
Realm:
- Shared
Returns:
- boolean – True if the trace detects a stuck state.
Example Usage:
if player:isStuck() then
player:SetPos(player:GetPos() + Vector(0, 0, 16))
end
---
### isNearPlayer(radius, entity)
**Description:**
Checks if an entity is within the given radius of the player.
**Parameters:**
* radius (number) – Distance in units.
* entity (Entity) – Entity to compare.
**Realm:**
* Shared
**Returns:**
* boolean – True if the entity is close enough.
**Example Usage:**
if player:isNearPlayer(128, target) then
print("Target is nearby")
end
entitiesNearPlayer(radius, playerOnly)
Description:
Returns a table of entities within radius of the player.
Parameters:
-
radius (number) – Search distance in units.
-
playerOnly (boolean|None) – Only include players when true.
Realm:
- Shared
Returns:
- table – List of nearby entities.
Example Usage:
for _, ent in ipairs(player:entitiesNearPlayer(256)) do
if ent:IsPlayer() then
ent:ChatPrint("Someone is close to you!")
else
DebugDrawBox(ent:GetPos(), ent:OBBMins(), ent:OBBMaxs(), 0, 255, 0, 0, 5)
end
end
getItemWeapon()
Description:
Returns the active weapon entity and associated item if equipped.
Parameters:
- None
Realm:
- Shared
Returns:
- Entity|None – Weapon entity when matched.
Example Usage:
isRunning()
Description:
Checks whether the player is moving faster than walking speed.
Parameters:
- None
Realm:
- Shared
Returns:
- boolean – True if the player is running.
Example Usage:
if player:isRunning() then
-- player is sprinting
end
getItemDropPos()
Description:
Finds a safe position in front of the player to drop items.
Parameters:
- None
Realm:
- Shared
Returns:
- Vector – World position for dropping items.
Example Usage:
getItems()
Description:
Returns the player's inventory item list if a character is loaded.
Parameters:
- None
Realm:
- Shared
Returns:
- table|None – Table of items or None if absent.
Example Usage:
getTracedEntity(distance)
Description:
Performs a simple trace from the player's shoot position.
Parameters:
- distance (number) – Trace length in units.
Realm:
- Shared
Returns:
- Entity|None – The entity hit or None.
Example Usage:
getTrace(distance)
Description:
Returns a hull trace in front of the player.
Parameters:
- distance (number) – Hull length in units.
Realm:
- Shared
Returns:
- table – Trace result.
Example Usage:
getEyeEnt(distance)
Description:
Returns the entity the player is looking at within a distance.
Parameters:
- distance (number) – Maximum distance.
Realm:
- Shared
Returns:
- Entity|None – The entity or None if too far.
Example Usage:
notify(message)
Description:
Sends a plain notification message to the player.
Parameters:
- message (string) – Text to display.
Realm:
- Server
Returns:
Example Usage:
- None – This function does not return a value.
Example Usage:
notifyLocalized(message, ...)
Description:
Sends a localized notification to the player.
Parameters:
-
message (string) – Translation key.
-
... – Additional parameters for localization.
Realm:
- Server
Example Usage:
- None – This function does not return a value.
Example Usage:
CanEditVendor(vendor)
Description:
Determines whether the player can edit the given vendor.
Parameters:
- vendor (Entity) – Vendor entity to check.
Realm:
- Server
Example Usage:
Returns:
- boolean – True if allowed to edit.
Example Usage:
isUser()
Description:
Convenience wrapper to check if the player is in the "user" group.
Parameters:
- None
Realm:
- Shared
Example Usage:
Returns:
- boolean – Whether usergroup is "user".
Example Usage:
isStaff()
Description:
Returns true if the player belongs to a staff group.
Parameters:
- None
Realm:
- Shared
Example Usage:
Returns:
- boolean – Result from the privilege check.
Example Usage:
isVIP()
Description:
Checks whether the player is in the VIP group.
Parameters:
- None
Realm:
- Shared
Example Usage:
Returns:
- boolean – Result from privilege check.
Example Usage:
isStaffOnDuty()
Description:
Determines if the player is currently in the staff faction.
Parameters:
- None
Realm:
- Shared
Example Usage:
- boolean – True if staff faction is active.
Example Usage:
isFaction(faction)
Description:
Checks if the player's character belongs to the given faction.
Parameters:
- faction (number) – Faction index to compare.
Realm:
- Shared
Example Usage:
- boolean – True if the factions match.
Example Usage:
isClass(class)
Description:
Returns true if the player's character is of the given class.
Parameters:
- class (number) – Class index to compare.
Realm:
- Shared
Returns:
- boolean – Whether the character matches the class.
Example Usage:
hasWhitelist(faction)
Description:
Determines if the player has whitelist access for a faction.
Parameters:
- faction (number) – Faction index.
Realm:
- Shared
Returns:
- boolean – True if whitelisted.
Example Usage:
getClass()
Description:
Retrieves the class index of the player's character.
Parameters:
- None
Realm:
- Shared
Returns:
- number|None – Class index or None.
Example Usage:
hasClassWhitelist(class)
Description:
Checks if the player's character is whitelisted for a class.
Parameters:
- class (number) – Class index.
Realm:
Returns:
- boolean – True if class whitelist exists.
Example Usage:
getClassData()
Description:
Returns the class table of the player's current class.
Parameters:
- None
Realm:
- Shared
Returns:
- table|None – Class definition table.
Example Usage:
getDarkRPVar(var)
Description:
Compatibility helper for retrieving money with DarkRP-style calls.
Parameters:
- var (string) – Currently only supports "money".
Realm:
- Shared
Returns:
- number|None – Money amount or None.
Example Usage:
getMoney()
Description:
Convenience function to get the character's money amount.
Parameters:
- None
Realm:
- Shared
Returns:
- number – Current funds or 0.
Example Usage:
canAfford(amount)
Description:
Checks if the player has enough money for a purchase.
Parameters:
- amount (number) – Cost to test.
Realm:
- Shared
Returns:
- boolean – True if funds are sufficient.
Example Usage:
hasSkillLevel(skill, level)
Description:
Verifies the player's character meets an attribute level.
Parameters:
-
skill (string) – Attribute ID.
-
level (number) – Required level.
Realm:
- Shared
Returns:
- boolean – Whether the character satisfies the requirement.
Example Usage:
meetsRequiredSkills(requiredSkillLevels)
Description:
Checks a table of skill requirements against the player.
Parameters:
- requiredSkillLevels (table) – Mapping of attribute IDs to levels.
Realm:
- Shared
Returns:
- boolean – True if all requirements are met.
Example Usage:
forceSequence(sequenceName, callback, time, noFreeze)
Description:
Plays an animation sequence and optionally freezes the player.
Parameters:
-
sequenceName (string) – Sequence to play.
-
callback (function|None) – Called when finished.
-
time (number|None) – Duration override.
-
noFreeze (boolean) – Don't freeze movement when true.
Realm:
- Shared
Returns:
- number|boolean – Duration or false on failure.
Example Usage:
leaveSequence()
Description:
Stops any forced sequence and restores player movement.
Parameters:
- None
Realm:
- Shared
Returns:
- None – This function does not return a value.
Example Usage:
restoreStamina(amount)
Description:
Increases the player's stamina value.
Parameters:
- amount (number) – Amount to restore.
Realm:
-
Server
-
Returns:
-
None – This function does not return a value.
Example Usage:
consumeStamina(amount)
Description:
Reduces the player's stamina value.
Parameters:
- amount (number) – Amount to subtract.
Realm:
-
Server
-
Returns:
-
None – This function does not return a value.
Example Usage:
addMoney(amount)
Description:
Adds funds to the player's character, clamping to limits.
Parameters:
- amount (number) – Money to add.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
takeMoney(amount)
Description:
Removes money from the player's character.
Parameters:
- amount (number) – Amount to subtract.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
WhitelistAllClasses()
Description:
Grants whitelist access to every registered class.
Parameters:
- None
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
WhitelistAllFactions()
Description:
Whitelists the player for all factions.
Parameters:
- None
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
WhitelistEverything()
Description:
Convenience method to whitelist all factions and classes.
Parameters:
- None
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
classWhitelist(class)
Description:
Adds a single class to the character's whitelist table.
Parameters:
- class (number) – Class index to whitelist.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
classUnWhitelist(class)
Description:
Removes a class from the character's whitelist table.
Parameters:
- class (number) – Class index to remove.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setWhitelisted(faction, whitelisted)
Description:
Sets or clears whitelist permission for a faction.
Parameters:
-
faction (number) – Faction index.
-
whitelisted (boolean|None) – Enable when true, disable when false/nil.
Realm:
- Server
Returns:
- boolean – True if the faction exists.
Example Usage:
loadLiliaData(callback)
Description:
Loads persistent Lilia data for the player from the database.
Parameters:
- callback (function|None) – Invoked with the loaded table.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
saveLiliaData()
Description:
Saves the player's Lilia data back to the database.
Parameters:
- None
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setLiliaData(key, value, noNetworking)
Description:
Stores a value in the player's persistent data table.
Parameters:
-
key (string) – Data key.
-
value (any) – Value to store.
-
noNetworking (boolean|None) – Skip network update when true.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setWaypoint(name, vector)
Description:
Sends a waypoint to the client at the specified position.
Parameters:
-
name (string) – Display label.
-
vector (Vector) – World position.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setWeighPoint(name, vector)
Description:
Alias of setWaypoint()
for backwards compatibility.
Parameters:
-
name (string) – Display label.
-
vector (Vector) – World position.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setWaypointWithLogo(name, vector, logo)
Description:
Creates a waypoint using a custom logo material.
Parameters:
-
name (string) – Display label.
-
vector (Vector) – World position.
-
logo (string) – Material path for the icon.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
getLiliaData(key, default)
Description:
Retrieves a stored value from the player's data table.
Parameters:
-
key (string) – Data key.
-
default (any) – Returned if the key is nil.
Realm:
- Server
Returns:
- any – Stored value or default.
Example Usage:
getAllLiliaData()
Description:
Returns the entire table of persistent data for the player.
Parameters:
- None
Realm:
- Server
Returns:
- table – Player data table.
Example Usage:
setRagdoll(entity)
Description:
Associates a ragdoll entity with the player for later retrieval.
Parameters:
- entity (Entity) – The ragdoll entity.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
NetworkAnimation(active, boneData)
Description:
Broadcasts animation bone data to all clients.
Parameters:
-
active (boolean) – Enable or disable manipulation.
-
boneData (table) – Map of bone names to angles.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setAction(text, time, callback)
Description:
Displays an action bar for a set duration and optionally runs a callback.
Parameters:
-
text (string|None) – Text to display, or nil to clear.
-
time (number|None) – How long to show it for.
-
callback (function|None) – Executed when time elapses.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
doStaredAction(entity, callback, time, onCancel, distance)
Description:
Runs an action only while the player stares at the entity.
Parameters:
-
entity (Entity) – Target entity.
-
callback (function) – Called when the timer finishes.
-
time (number) – Duration in seconds.
-
onCancel (function|None) – Called if gaze breaks.
-
distance (number|None) – Max distance to maintain.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
stopAction()
Description:
Cancels any running action bar on the player.
Parameters:
- None
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
requestDropdown(title, subTitle, options, callback)
Description:
Prompts the client with a dropdown selection dialog.
Parameters:
-
title (string) – Window title.
-
subTitle (string) – Description text.
-
options (table) – Table of options.
-
callback (function) – Receives the chosen value.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
requestOptions(title, subTitle, options, limit, callback)
Description:
Asks the client to select one or more options from a list.
Parameters:
-
title (string) – Window title.
-
subTitle (string) – Description text.
-
options (table) – Available options.
-
limit (number) – Maximum selections allowed.
-
callback (function) – Receives the chosen values.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
requestString(title, subTitle, callback, default)
Description:
Requests a string from the client.
Parameters:
-
title (string) – Prompt title.
-
subTitle (string) – Prompt description.
-
callback (function|None) – Called with the string.
-
default (string|None) – Default value.
Realm:
- Server
Returns:
- deferred|None – Deferred object when no callback supplied.
Example Usage:
binaryQuestion(question, option1, option2, manualDismiss, callback)
Description:
Displays a yes/no style question to the player.
Parameters:
-
question (string) – Main text.
-
option1 (string) – Text for the first option.
-
option2 (string) – Text for the second option.
-
manualDismiss (boolean) – Require manual closing.
-
callback (function) – Called with chosen value.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
getPlayTime()
Description:
Calculates how long the player has been on the server.
Parameters:
- None
Realm:
- Server
Returns:
- number – Total seconds of playtime.
Example Usage:
createRagdoll(freeze, isDead)
Description:
Spawns a ragdoll copy of the player and optionally freezes it.
Parameters:
-
freeze (boolean|None) – Disable physics when true.
-
isDead (boolean|None) – Mark as a death ragdoll.
Realm:
- Server
Returns:
- Entity – The created ragdoll.
Example Usage:
setRagdolled(state, time, getUpGrace, getUpMessage)
Description:
Toggles the player's ragdoll state for a duration.
Parameters:
-
state (boolean) – Enable or disable ragdoll.
-
time (number|None) – Duration before standing up.
-
getUpGrace (number|None) – Extra time to prevent early stand.
-
getUpMessage (string|None) – Message while downed.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
syncVars()
Description:
Sends all networked variables to the player.
Parameters:
- None
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
setLocalVar(key, value)
Description:
Sets a networked local variable on the player.
Parameters:
-
key (string) – Variable name.
-
value (any) – Value to set.
Realm:
- Server
Returns:
- None – This function does not return a value.
Example Usage:
getPlayTime()
Description:
Returns playtime calculated client side when called on a client.
Parameters:
- None
Realm:
- Client
Returns:
- number – Seconds of playtime.
Example Usage:
setWaypoint(name, vector, onReach)
Description:
Displays a waypoint on the HUD until the player reaches it.
Parameters:
-
name (string) – Display label.
-
vector (Vector) – World position.
-
onReach (function|None) – Called when reached.
Realm:
- Client
Returns:
- None – This function does not return a value.
Example Usage:
setWeighPoint(name, vector, onReach)
Description:
Alias of the client version of setWaypoint
.
Parameters:
-
name (string) – Display label.
-
vector (Vector) – World position.
-
onReach (function|None) – Called when reached.
Realm:
- Client
Returns:
- None – This function does not return a value.
Example Usage:
setWaypointWithLogo(name, vector, logo, onReach)
Description:
Places a waypoint using a logo material on the client HUD.
Parameters:
-
name (string) – Display label.
-
vector (Vector) – Position to navigate to.
-
logo (string) – Material path for the icon.
-
onReach (function|None) – Called when reached.
Realm:
- Client
Returns:
- None – This function does not return a value.
Example Usage:
getLiliaData(key, default)
Description:
Client side accessor for stored player data.
Parameters:
-
key (string) – Data key.
-
default (any) – Fallback value.
Realm:
- Client
Returns:
- any – Stored value or default.
Example Usage:
getAllLiliaData()
Description:
Returns the entire local data table for the player.
Parameters:
- None
Realm:
- Client
Returns:
- table – Local data table.
Example Usage:
NetworkAnimation(active, boneData)
Description:
Applies or clears clientside bone angles based on animation data.
Parameters:
-
active (boolean) – Enable or disable animation.
-
boneData (table) – Bones and angles to apply.
Realm:
- Client
Returns:
- None – This function does not return a value.
Example Usage: