来开火车吧,感受真实的高铁司机和调度上班如何被折磨!
一句话简介: 专为 Folia 多区域并发服务端打造的现代列车套件,支持矿车刚性编组、牛顿动力学仿真、移动授权(MA)闭塞计算与 Web 实时调度大屏。
【插件基本信息】
- 插件名称: SkyRail Suite(包含 STF、STCS、STA、SkyPCC 四大核心组件)
- 作者: 本人
- 源码仓库: GitHub - moerail/Skyworld-Railway
- 官方文档: 中文完整文档 | 司机手册
- 适用服务端: Folia(原生适配 Shiroha / Folia 26.2 及 26.3)
- 支持 Java 版本: Java 21+(推荐 Java 25)
- 插件属性: 本体插件
- 插件类型: 机械 / 交通 / 机制
- 前置依赖: 无额外前置,套件内四个组件配套运行即可
- 来源: 原创
- 开源协议: MIT License
【插件简介】
SkyRail Suite 是一套面向现代 Minecraft 多区域并行服务端(Folia)的列车运行、线路拓扑、影子列控与集中调度套件。
插件告别了传统单线程插件“跨区块即崩溃”的局限,解耦了动力学仿真与地面信号控制:
- 在车载端,提供牛顿力学积分步进、符合铁路人机工效学的手柄(Hotbar)控制与多语言驾驶室 HUD;
- 在地面端,构建有向轨道图(RailGraph)并建立悲观占用账本,参考 ETCS Level 2 与现代城市轨道交通 CBTC 规范,推导连续移动授权(Movement Authority, MA)与动态制动干预曲线;
- 在调度端,通过独立 Web 平台(SkyPCC)实现浏览器全线追踪与远程道岔安全控制。
Fig.1 司机驾驶界面,可见上方的运行许可余量和右侧的计分板HMI
【前言与设计初衷:为什么需要 SkyRail Suite?】
致各位服主、工程师与铁路爱好者:
还在忍受传统单线程铁路插件在 Folia 跨区域线程下频繁报错、死锁与穿模的惨剧吗?还在用十年前落后的“固定闭塞与木牌碰撞”来维系繁忙的轨道网络吗?
在传统单线程时代,铁道服长期依赖经典的红石与牌子体系。但随着服务器迈向Folia的分布式区域线程架构,传统矿车插件只要遇上长编组跨越Region边界,就会引发线程断言崩溃或数据损坏。
本人曾于法国国家铁路(SNCF Voyageurs)机车车辆工程部门工作,主要负责铁路电气牵引系统建模、动力学仿真,以及基础设施与机车车辆的电气兼容性验证(车网电气耦合,EN 50388-2)。
作为一名铁路电气工程方向的从业者与研究者,我希望将现代轨道交通中严谨的“物理动力学、移动授权控制(MA/EoA)、以及控制与保护分离”工程哲学真正引入Minecraft沙盒。
SkyRail Suite正是在这一背景下诞生的开源套件。它采用纯净的数据契约与异步区域线程调度,不仅解决了Folia上的跨区行车难题,更将类似欧洲ETCS与现代地铁CBTC的移动闭塞理念带入方块世界,为大型多核服务器提供兼具工业严谨度与可玩性的现代化列控基座。
【特别声明】
SkyRail Suite是运行于Minecraft环境中的实验性Java仿真程序。
本项目并非经过实际认证的真实铁路安全系统,亦不声称符合包括以下工业规范或标准在内的准入要求:
- ERTMS/ETCS SUBSET-026 — System Requirements Specification
- EN 50126 — Railway Applications – The Specification and Demonstration of Reliability, Availability, Maintainability and Safety (RAMS)
- EN 50716:2023 — Railway Applications — Requirements for software development
相关协议编号与控制理论仅用于游戏机制仿真与算法探索。
【四大核心组件架构】
套件采用微内核解耦设计,由四个协同运作的独立模块组成(建议完整配套安装):
Minecraft 玩家 / 矿车 / 轨道 / 红石
│
[STF] 物理动力学、区域执行与 HMI 驾驶台
│
(不可变数据快照隔离)
│
[STA] 统一服务契约、遥测数据与事件总线
│
[STCS] 有向轨道图(RailGraph)、占用账本与 MA 列控
│
(SSE 实时推流)
│
[SkyPCC] 浏览器 Web 集中调度大屏与道岔鉴权
-
STF(SkyTrainFolia)
实体物理动力学引擎。接管矿车编组、牛顿力学加减速、平滑显示同步、多语言驾驶室HUD及实验性手动列车ATP制动执行。
-
STCS(Skyworld Train Control System)
地面大脑与控制中心。负责全图RailGraph拓扑寻径、空间物理格占用保留账本,以及类似移动闭塞的MA(行车许可)连续计算与下发。
-
STA(SkyworldTrainAPI)
统一契约总线。隔离各模块,保证多线程环境下仅传递不可变数据快照,杜绝跨线程死锁与指针穿透。
-
SkyPCC(Poste de Commande Centralisée)
现代化Web调度大屏。无需任何客户端Mod,浏览器原生访问即可实时追踪全服列车动态、监视应答器与道岔状态,并支持基于Token的道岔远程操作。
Fig.2 PCC后台界面
Fig.3 PCC后台切换道岔
【核心功能亮点】
一、原生Folia多区域并发保障
深度适配Folia区域实体调度器。
STF将各节车厢的位移积分与发包严格收敛在所属的Region线程中,长编组列车跨越多个区域时平稳过渡,全面释放多核算力。
适配层采用动态SPI架构,单JAR同时兼容 Shiroha / Folia 26.2 与 26.3 版本。
二、工业级列控理念:移动闭塞与MA演算
告别传统木牌占道碰撞。
系统沿有向拓扑路径为列车动态计算前方安全余量与制动干预曲线,并提供完整的车载状态机转换:
- SB(Standby,待命)
- FS(Full Supervision,完全监控)
- SH(Shunting,调车)
- SR(Staff Responsible,目视行车)
- TR(Trip,冒进停车)
- PT(Post Trip,冒后恢复)
三、悲观安全哲学:未知绝非空闲
系统运行在“证据保留模型”下。
当列车发生跨区网络延迟、区块卸载或道岔状态未经验证时,控制层绝不假定前方空闲,而是保留物理格占用以阻断后续授权,防止因服务器卡顿造成列车重叠与穿模。
四、机车驾驶台与声效工效学
支持快捷栏(Hotbar)模拟手柄操作,提供四级牵引(P1–P4)、七级常用制动(B1–B7)及紧急制动(EB)。
车载BossBar与计分板整合了多语言HMI界面,并提供基于原版音效的MA变动提示、超速分级预警与滞回保护。
五、零客户端 Mod 与四语言支持
游戏内界面与SkyPCC调度网页原生支持:
Fig.4 英文版HMI界面以及线路两侧的STCS区间信号标志牌(STCS Marker)
网页端采用原生浏览器访问,客户端无需安装任何额外Mod。
【快速上手与基础操作】
1. 编组与创建
在平直测试轨道上放置矿车后,管理员执行:
/st scan 6 # 搜索附近6格内的可编组矿车
/st create demo 6 # 将矿车编入名为"demo"的列车中
/st property demo mode manual # 设定列车为手动驾驶模式
2. 司机接管与驾驶
坐进车内后,执行以下指令取得驾驶权:
/st drive # 取得驾驶权(司机离车自动触发EB)
/st forward # 换向器向前(支持/st backward反向)
随后即可:
- 使用
/p1 至 /p4 提升牵引级位;
- 使用
/b1 至 /b7 施加常用制动;
- 输入
/eb 施加紧急制动;
- 执行
/st hotbar 使用快捷栏 1–9 槽位模拟物理手柄。
3. 申请移动授权(MA)
在线路已完成 RailGraph 登记的前提下,司机在停车状态下执行:
/stcs ma demand
顶部BossBar与计分板将实时显示当前区段的剩余行车授权距离(Credit)及动态限速。
4. 详细操作与高阶配置
关于类似TrainCarts的自动站停(Station 牌)、道岔拓扑扫描及占用账本诊断,请参考项目仓库内的完整文档:
【环境依赖与下载】
【查毒报告与安全性验证】
为保障服务器生产环境的运行安全,套件各组件发布构建均已完成第三方在线反病毒引擎检测(VirusTotal):
【实机演示】
【致谢 / Acknowledgements / Dankwoord】
感谢 bergerkiller / Berger Healer 及 BKCommonLib、TrainCarts 的贡献者,为 Minecraft 插件生态与矿车铁路玩法所做的长期工作。
TrainCarts的牌子接口和运行流程为本项目提供了重要参考。
SkyRail Suite是独立项目,不要求安装BKCommonLib或TrainCarts,也不代表二者的官方版本、认可或完整兼容实现;相关TrainCarts 版权与许可声明继续保留。
Thank you to bergerkiller / Berger Healer and the contributors to BKCommonLib and TrainCarts for their long-standing work on Minecraft plugins and minecart railways.
TrainCarts' sign interfaces and operating workflows have been important references for this project.
SkyRail Suite is an independent project: it does not require either plugin, is not an official or endorsed version of either, and does not claim complete compatibility. The applicable TrainCarts copyright and license notice is retained.
Met dank aan bergerkiller / Berger Healer en de bijdragers aan BKCommonLib en TrainCarts voor hun jarenlange werk aan Minecraft-plugins en spoorwegen met mijnkarretjes.
De bordinterfaces en bedieningsprocedures van TrainCarts waren belangrijke referenties voor dit project.
SkyRail Suite is een onafhankelijk project: geen van beide plugins is vereist, het is geen officiële of door hen onderschreven versie en volledige compatibiliteit wordt niet geclaimd. De toepasselijke copyright- en licentievermelding van TrainCarts blijft behouden.