Plugin API 1.0 reference
Plugin API 1.0 is the public contract available to .splug packages. Capability names are stable strings and can be queried with:
lua
if samp.api.has("entity.list", "1.0") then
-- Use the optional capability.
endNamespaces
| Namespace | Purpose |
|---|---|
samp.api | Version and capability discovery. |
samp.log | Plugin-attributed logging. |
samp.events | Subscriptions and event dispatch. |
samp.timer, samp.task | Bounded deferred work. |
samp.storage | Private persistent values. |
samp.format | Bounded platform-independent formatting. |
samp.game, samp.server | Read-only state snapshots. |
samp.player | Generation-safe local-player handle. |
samp.entity | Generation-safe streamed server entities. |
samp.ui, samp.draw | Settings menus and HUD drawing. |
samp.effects, samp.physics | Reversible controlled effects. |
Call phases
| Phase | Meaning |
|---|---|
any | Available during plugin initialization and protected callbacks unless a handle requires live game state. |
managed | Only inside an event, timer, managed task, or menu callback. |
hud | Only inside draw.hud. |
Use the detailed pages for core functions, local-player and vehicle Handles, server entities, menus and HUD drawing, effects and physics, and every event payload. The permission table and runtime limits are also normative parts of API 1.0.
Capability contract
| Capability | Permission | Phase |
|---|---|---|
api.has | None | any |
log | None | any |
events.on | None | any |
event.player.damage_before | game.player.write | any |
event.player.health_changed | game.player.read | any |
event.player.vehicle_entered | game.vehicle.read | any |
event.player.vehicle_left | game.vehicle.read | any |
event.player.interior_changed | game.state.read | any |
event.chat.message_received | chat.read | any |
event.chat.server_message_received | chat.read | any |
event.chat.bubble_received | chat.read | any |
event.checkpoint.entered | game.state.read | any |
event.checkpoint.left | game.state.read | any |
event.ui.menu_opened | ui.menu | any |
event.ui.menu_closed | ui.menu | any |
event.entity.streamed_in | game.entity.read | any |
event.entity.streamed_out | game.entity.read | any |
event.chat.message_sending | chat.intercept | any |
event.command.executing | command.intercept | any |
event.dialog.shown | dialog.read | any |
event.dialog.responding | dialog.intercept | any |
event.textdraw.shown | textdraw.read | any |
event.textdraw.hidden | textdraw.read | any |
event.textdraw.text_changed | textdraw.read | any |
event.textdraw.clicking | textdraw.intercept | any |
timer.after | None | any |
task.spawn | None | any |
task.sleep | None | any |
storage.get | plugin.storage | any |
storage.set | plugin.storage | any |
storage.remove | plugin.storage | any |
format.number | None | any |
game.state | game.state.read | any |
server.current | server.state.read | any |
ui.menu.register | ui.menu | any |
draw.text | ui.draw | hud |
draw.line | ui.draw | hud |
draw.rect | ui.draw | hud |
draw.image | ui.draw | hud |
draw.circle | ui.draw | hud |
draw.progress_bar | ui.draw | hud |
draw.world_to_screen | ui.draw | hud |
player.local_player | game.player.read | any |
player.is_valid | game.player.read | any |
player.position | game.player.read | any |
player.health | game.player.read | any |
player.armor | game.player.read | any |
player.velocity | game.player.read | any |
player.vehicle | game.vehicle.read | any |
vehicle.is_valid | game.vehicle.read | any |
vehicle.position | game.vehicle.read | any |
vehicle.health | game.vehicle.read | any |
vehicle.velocity | game.vehicle.read | any |
entity.get | game.entity.read | any |
entity.list | game.entity.read | any |
entity.is_valid | game.entity.read | any |
entity.position | game.entity.read | any |
entity.player.name | game.entity.read | any |
entity.player.npc | game.entity.read | any |
entity.player.state | game.entity.read | any |
entity.player.health | game.entity.read | any |
entity.player.armor | game.entity.read | any |
entity.player.vehicle_id | game.entity.read | any |
entity.vehicle.model | game.entity.read | any |
entity.vehicle.health | game.entity.read | any |
entity.vehicle.velocity | game.entity.read | any |
entity.vehicle.heading | game.entity.read | any |
entity.object.model | game.entity.read | any |
entity.object.rotation | game.entity.read | any |
entity.object.moving | game.entity.read | any |
entity.object.attachment | game.entity.read | any |
entity.actor.model | game.entity.read | any |
entity.actor.health | game.entity.read | any |
entity.actor.invulnerable | game.entity.read | any |
entity.actor.heading | game.entity.read | any |
entity.pickup.model | game.entity.read | any |
entity.pickup.pickup_type | game.entity.read | any |
entity.text_label.text | game.entity.read | any |
entity.text_label.color | game.entity.read | any |
entity.text_label.draw_distance | game.entity.read | any |
entity.text_label.test_los | game.entity.read | any |
entity.text_label.attachment | game.entity.read | any |
player.set_health | game.player.write | managed |
player.set_armor | game.player.write | managed |
player.set_position | game.player.write | managed |
player.set_velocity | game.player.write | managed |
vehicle.set_health | game.vehicle.write | managed |
vehicle.set_position | game.vehicle.write | managed |
vehicle.set_velocity | game.vehicle.write | managed |
effects.acquire | None | managed |
effects.group | None | any |
effects.release | None | managed |
effects.player.physics_flags | game.physics.override | managed |
effects.player.collision_filter | game.physics.override | managed |
physics.create_surface | game.physics.override | managed |
surface.is_valid | game.physics.override | any |
surface.set_position | game.physics.override | managed |
surface.release | game.physics.override | managed |
require | None | any |