UwURaww/Remote-Luau-Loadstring-Execution
GitHub: UwURaww/Remote-Luau-Loadstring-Execution
该项目为两名 Roblox 玩家提供一条基于 Vercel + Redis 的实时脚本桥接通道,使一方能够在游戏内将 Luau 脚本即时发送给另一方执行。
Stars: 1 | Forks: 0
# RLLE
### 远程 Luau Loadstring Execution
两名 Roblox 玩家之间的实时脚本桥接工具,专为在几分钟内部署而设计,无需任何后端经验。
[](https://vercel.com/new/clone?repository-url=https://github.com/UwURaww/Remote-Luau-Loadstring-Execution)
[](https://github.com/UwURaww/Remote-Luau-Loadstring-Execution/fork)
[](https://github.com/UwURaww/Remote-Luau-Loadstring-Execution)
[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[](https://youtube.com/@zmh.j)
[](https://roblox.com.ug/users/2356970312/profile)
## 这是什么
玩家 1 在一个小巧的游戏内执行器风格窗口中编写或粘贴 Lua 脚本并将其发送。玩家 2 会立即收到该脚本,并根据其自身脚本中的设置,通过弹窗批准或自动执行它。
一个轻量级的网站负责处理它们之间的连接——它会显示你的实时部署 URL、两名玩家的连接状态、两个可直接复制使用的脚本,以及系统实时活动日志。
无需注册、无需 token、无需密码。任何拥有该 URL 的人都能接入该桥接。
## 快速开始
设置大约需要两分钟。跳过第 3 步是大家卡住的首要原因,所以千万不要跳过它。
**第 1 步 — 为仓库点赞(可选)**
滚动回此页面顶部的徽章行,如果你想支持该项目,请点击 **Star**。此步骤是可选的——你不需要 fork 任何东西,Vercel 会在下一步中自动为你复制该仓库。
**第 2 步 — 使用 Vercel 部署**
点击此页面顶部的 **Deploy with Vercel** 徽章。如果你尚未登录,它会要求你先使用 GitHub 登录。登录后,你会进入一个如下所示的 **New Project** 界面:
- 在 **Git Scope** 下,应该已经选中了你的 GitHub 账户
- 在 **Private Repository Name** 下输入一个名称——这将作为该仓库在你 GitHub 上的专属副本,你可以保留建议的名称,也可以将其更改为任何你想要的名称
- 在 **Vercel Team** 下,应该已经选中了你的个人账户/项目
- 点击白色的 **Create** 按钮
Vercel 将在你的 GitHub 账户下创建新仓库并立即开始构建。等待构建完成——只需不到一分钟的时间,最后会出现带有五彩纸屑效果的界面和一个 **Continue to Dashboard** 按钮。
**第 3 步 — 连接数据库(必需)**
在你新项目的仪表板中,点击顶部的 **Storage** 标签页。向下滚动到 **Marketplace Database Providers**,找到 **Upstash**,点击小箭头将其展开,然后点击 **Upstash for Redis** 旁边的 **Create**。弹窗会要求你为其命名(默认名称即可)——点击 **Continue**,然后在下一个界面上确保在 **Connect a Project** 下选中了你的项目,保持勾选 **Production** 和 **Preview**,然后点击 **Connect**。
Vercel 会自动提示重新部署,以使数据库连接生效——请等待其完成。
**第 4 步 — 确认其已上线**
在你的 Vercel 仪表板上点击 **Visit**,或者打开它提供的 `.vercel.app` URL。查看页面左上角徽标旁边——如果小圆点是绿色的并显示 **Online**,说明一切就绪。
完成这些后,前往下方的[使用说明](#using-it),真正开始在两个账户之间发送脚本。
## 工作原理
1. **玩家 1** 在执行器窗口中输入脚本并点击 Send
2. 脚本会传输到 Vercel 部署上的 `/api/bridge`,并存入一个共享的频道中,保存在 Redis 里
3. **玩家 2** 每隔几秒轮询一次该频道,发现脚本后直接运行或先询问
每次部署都有其独立的隔离频道。如果两个不同的人部署了各自的项目副本,他们的频道永远不会接触——URL 不同、数据库不同、一切都不同。
## 文件结构
- `api/bridge.js` — 后端,一个 Vercel serverless function
- `public/index.html` — 网站:URL、脚本、实时日志
- `package.json` — 告诉 Vercel 安装 @vercel/kv
- `README.md` — 本文件
Vercel 会自动将 `public/` 中的内容作为你的站点根目录提供服务,并将 `api/` 中的内容作为可通过 `/api/...` 访问的函数提供服务。不需要额外的配置文件。
## 设置参考
这与上面的快速开始设置相同,如果你只需要提醒每一步的作用,可以在此保留作为更简短的参考。
**Star** — 可选,仅表示支持。部署时非必需。
**Deploy with Vercel** — 直接将仓库克隆到你账户下的一个新 GitHub 仓库中,并一步完成构建。只需为仓库命名并点击 Create 即可。
**Connect Upstash Redis** — 必需。Vercel 函数不会在请求之间保留任何内存,因此桥接需要 Redis 在外部记住连接状态和待处理脚本。一旦你在 Storage 下连接了它,连接详细信息就会自动注入。
**Confirm it's live** — 访问你部署的 URL。徽标附近的绿点表示它正在运行。
如果你不想使用一键部署按钮,也可以手动执行此操作:
1. 在 GitHub 上将此仓库 fork 到你自己的账户中
2. 前往 [vercel.com](https://vercel.com) 并使用 GitHub 登录
3. **Add New → Project** → 导入你 fork 的仓库
4. 保持设置为默认 → **Deploy**
## 使用说明
1. 打开你的网站——这里没有额外的设置步骤。页面会立即显示你的桥接 URL、两名玩家的实时连接状态,以及完全填充好的两个脚本
2. 如果你希望在代码中体现该设置,请在复制玩家 2 脚本之前切换 **"Player 2 confirms before executing"**
3. 将 **Player 1 script** 复制到发送者的账户,将 **Player 2 script** 复制到接收者的账户,然后运行它们
4. 随着每个脚本连接成功,状态标签将变为绿色
5. 在玩家 1 的屏幕上,会出现一个小巧的可拖动窗口——输入或粘贴脚本并点击 **Send to Player 2**
6. 根据开关的设置,玩家 2 要么会看到确认弹窗,要么脚本会立即执行
网站底部的 **System Log** 显示实时活动,每几秒刷新一次。随时可以使用 **Reset Connection** 清除当前状态并重新开始。
## 各个脚本的实际作用
**玩家 1** 会获得一个小巧、可拖拽的执行器风格窗口,并在移动端支持触摸操作。它包含一个代码框、一个 Clear 按钮和一个 Send 按钮,以及一个连接成功后会变绿的状态点。最小化按钮会将其折叠为一个小巧的浮动标签页。首次运行时,会有一个简短的两步介绍说明它的功能。
**玩家 2** 完全没有可见的界面。它每隔几秒就会静默检查传入的脚本。唯一值得修改的地方就在最顶部:
```
local CONFIRM_BEFORE_EXECUTE = true
```
将其保留为 `true`,则每个传入的脚本都会出现一个弹窗,要求你在任何代码运行之前批准或拒绝它。将其设置为 `false`,脚本将在到达的瞬间执行,无需审查——只有在你完全信任另一端的人时才适合这样做。
## API 参考
Base URL: `https://your-deployment.vercel.app/api/bridge`
| 动作 | 方法 | 参数 | 描述 |
|---|---|---|---|
| `connect` | GET | `role` (`p1` 或 `p2`) | 标记该玩家已连接 |
| `send` | POST | body: `{ script }` | 将脚本存储为待处理 |
| `poll` | GET | — | 返回并清除待处理的脚本,或 `null` |
| `status` | GET | — | 返回 `{ p1Connected, p2Connected }` |
| `reset` | GET | — | 清除连接状态和任何待处理的脚本 |
| `log` | GET | — | 返回最近 20 条活动日志记录 |
```
GET /api/bridge?action=status
→ { "ok": true, "p1Connected": true, "p2Connected": false }
```
## 隐私与复刻此项目
该项目的构建方式允许任何人在完全拥有自己数据所有权的前提下部署自己的副本:
- **Fork 会创建一个完全独立的实例。** 你的部署将拥有自己的 URL、自己 Upstash 账户下的 Redis 数据库,以及自己的活动日志。所有这些对任何其他人的副本(包括 fork 自的原项目)都是不可见且不共享的
- **原作者不会收集任何内容。** 此代码中没有任何分析、遥测或向任何中央服务器的回调。无论在你的部署上发生什么,都会保留在你自己的 Vercel 和 Upstash 账户中
- **桥接 URL 是唯一的“密钥”。** 任何拥有它的人都可以通过你的频道发送或接收脚本。请像对待私人邀请链接一样对待它——不要将其发布在任何公开场合
- **玩家 2 的确认弹窗是真正的安全保障。** 除非你完全信任另一端的人,否则请保持 `CONFIRM_BEFORE_EXECUTE = true`
- **你可以随时删除所有内容**,只需删除你的 Vercel 项目和 Upstash 数据库即可——在你控制的这两个服务之外不会保留任何内容
这是为两个已经互相信任的人构建的,而不是作为面向公众的多租户服务。如果你 fork 此项目来运行自己的版本,你需全权负责如何使用和分享你的部署。
## 故障排除
**网站徽标附近显示“Offline”**
API 无法连接到 Redis。请在 Vercel 的 Storage 下确认你是否连接了 Upstash 数据库,然后重新部署。
**游戏内状态点保持灰色**
检查你的执行器是否允许 `HttpService` 请求,并确保脚本内的 URL 与你部署的 URL 完全匹配。
**玩家 1 的窗口未出现**
某些执行器会阻止 `CoreGui`。尝试将脚本中的 `game:GetService("CoreGui")` 替换为 `game.Players.LocalPlayer.PlayerGui`。
**按下 Send 后没有任何反应**
查看网站上的 System Log——如果始终没有出现 "Script sent",说明请求未到达你的服务器。请仔细检查脚本顶部的 URL。
## 许可证
该项目基于 **CC BY-NC-SA 4.0** (Attribution-NonCommercial-ShareAlike) 许可证授权。
简单来说:你可以免费 fork、修改、部署自己的版本,并从中学习。只需标明 DoggoJr 为原作者,不要出售它或对其访问收费,并且如果你分享了修改后的版本,请使用相同的许可证发布。完整文本请参阅 [`LICENSE`](./LICENSE)。
## 致谢
由 **DoggoJr** 构建。
[](https://youtube.com/@zmh.j)
[](https://roblox.com.ug/users/2356970312/profile)
随时欢迎 fork、修改并部署你自己的版本。
想让上面的横幅在此仓库链接于其他地方分享时显示吗?请在 **Settings → General → Social preview** 下将其设置为仓库的社交预览图。标签:Lua, rizin, Roblox, 后端开发, 多模态安全, 实时通信, 数据可视化, 无服务器, 游戏外挂工具, 远程脚本执行