Skip to content

UCP Panel ​

UCP Panel 是面向 FiveM / RedM 游戏服务器的综合控制面板。它由 Web 管理端、Express 认证与权限服务、MySQL 数据库以及运行在游戏服务器内的 fc_ucp Lua 资源组成。

当前版本:0.2.0
项目状态:个人项目,持续开发,已经形成完整架构并用于服务器管理场景

项目部署地址已部署在独立域名,可直接查看登录入口。
访问 ucp.funcolor.cn

解决的问题 ​

FiveM 服务器的数据通常分散在游戏框架、银行插件、皮肤插件、日志系统和社区工具中。管理员需要在多个入口之间切换,玩家也很难在游戏外查看角色资料。

UCP Panel 把这些能力集中到一套权限清晰的控制台里,同时保留游戏内操作入口。

主要功能 ​

游戏内 UCP ​

  • 游戏内按 F9 或输入 /ucp 打开窗口化面板
  • 服务端确认玩家真实身份,浏览器端不能伪造他人账号
  • 首次进入自动注册并绑定服务器
  • 短时 JWT 自动续期,支持长时间停留
  • 新玩家首次登录必须修改初始密码

服务器管理 ​

  • 服务器实时概览、在线趋势和运行状态
  • 玩家、角色、车辆、组织与帮派管理
  • 封禁、白名单、RP 门禁和服务器日志
  • 银行余额、玩家转账、公户入账和取款
  • 皮肤读取、服装分享码和外观预览
  • OX 物品日志、资金流水与面板审计日志
  • KOOK 问答机器人、知识库、工单与音乐投稿

权限系统 ​

系统提供面板管理员、服务器管理员和普通用户三级基础角色,并支持按服务器分配细粒度权限。菜单显示、前端路由和后端接口都会校验权限,后端是最终判定来源。

系统结构 ​

text
浏览器 / 游戏内 NUI
        │
        ▼
Vue 3 控制面板
        │  /api
        ▼
Express 认证与权限层
        │  按服务器代理请求
        ▼
fc_ucp(FiveM 原生 Lua 资源)
        │  oxmysql
        ▼
游戏数据库

技术栈 ​

层级技术
Web 前端Vue 3、Vue Router、Ant Design Vue、Axios
Web 后端Node.js、Express、JWT、bcrypt、MySQL2
游戏插件Lua 5.4、FiveM、NUI、oxmysql
数据与缓存MySQL / MariaDB、可选 Redis
部署Docker、Docker Compose、1Panel、Nginx
集成KOOK、SMTP、七牛云、txAdmin

请求链路演示 ​

下面的交互演示展示一次游戏内操作如何从 Lua 客户端走到数据库,再返回 NUI:

INTERACTION LAB

一次操作,穿过整条技术链路

STEP 01 / 06

玩家触发操作

玩家在游戏内按 F9 或输入 /ucp。客户端脚本只负责触发界面,不直接相信浏览器传来的身份。

RegisterCommand('ucp', openPanel)

工程重点 ​

身份不能由前端决定 ​

游戏内面板通过服务端 source 获取玩家标识符,再签发短时令牌。前端只负责展示结果,无法自行声明自己是某个玩家。

数据操作保留审计 ​

资金变化、物品变化和管理员操作写入日志。部分涉及游戏规则的操作只做查看,不绕过原有扣款、税务或业务校验。

跨服务器隔离 ​

一套面板可以管理多台服务器。用户绑定、权限、日志和数据请求都带服务器上下文,避免不同服务器之间互相串数据。

可重复部署 ​

项目支持 Docker Compose 和 1Panel,启动时自动执行幂等数据库迁移。SMTP、JWT 密钥、内部通信密钥和数据库信息通过环境变量注入。

下一阶段 ​

  • 继续完善现有服务器管理模块
  • 加强代理离线、健康检查和异常可观测性
  • 评估更多游戏框架与第三方插件适配
  • 沉淀可复用的 Lua 业务层,为后续平台适配做准备