Skip to content

Lua 运行环境与沙箱

每个插件拥有独立且有资源上限的 Lua 5.4.8 State。沙箱开放基础库、table、string、math、UTF-8 和公开的 samp API。

不开放的能力

不提供文件加载、动态代码加载、垃圾回收器控制、字节码导出、操作系统库、I/O 库、debug 库、package 库和原始 coroutine 库。

请使用:

  • 包内 require() 加载模块;
  • samp.storage 保存数据;
  • samp.timer 创建一次性定时器;
  • samp.task 创建可休眠的受控任务;
  • 公开事件获取状态变化。

回调规则

每次回调都有指令和墙钟时间预算。避免无界循环、每帧重建大表、重复拼接长字符串和每帧写存储。

标记为 managed 的写 API 只能在事件、定时器、受控任务或菜单回调中使用,不能在入口脚本顶层初始化阶段调用。绘制 API 只能在 draw.hud 中使用。

API 会拒绝错误类型、NaN、无穷值、越界值、缺少权限、错误阶段和失效 Handle。连续错误或超时只会停用当前会话中的故障插件。