Links
Tags
Creators
Details
0.3.5
Compatibility
Changes
2026-09-09 追加 — WebUI 时间头唯一源、独立飞控模块接入、时间轴滚动重构与图标体系
WebUI 时间头唯一源
- 前端
seek / play / pause / stop不再直接写state.time / state.playing,只发送命令,时间头与播放状态统一由游戏端playback.state回推,消除鼠标拖动与回推互相抢时间 CameraManager.setTime立即同步gameTimeSeconds,修复handleSeek后紧接着pushPlaybackState读到旧时间导致的回跳- 移除
ScriptStructure.vue(脚本结构树);左侧面板(脚本/轨道/预设)移入编辑区内部;ScriptList增加「刷新」按钮
独立飞控模块
- 新增
FlightModeManager:飞控会话与EditorScreen解耦,WebUI / 游戏内编辑器 / 键盘中转统一走同一入口,为后续移除游戏内编辑器后 WebUI 飞控独立工作做准备 - 职责内聚:进入(暂停相机 + 启用直控 + 初始化)、退出(返回最终相机数据)、取消(恢复进入前状态)、每帧 tick、键盘/鼠标事件转发、光学 reset(只恢复 FOV/Zoom/Roll,不动位置与朝向)
- WebUI 完整接入飞控:新增
editor.exit_flight_mode/editor.cancel_flight_mode协议;进入飞控改用当前实际相机状态作为初始值(与 Java 编辑器行为一致),前端只传保存模式 WebPreviewScreen每帧驱动飞控并按 100ms 节流回推相机参数;新增飞控 HUD,展示鼠标/移动/升降/慢速/滚转/FOV/Zoom/模式切换/光学重置/保存退出/取消 的键位提示- 前端
Preview增加飞控浮层:实时位置、Yaw/Pitch/Roll、FOV/Zoom,以及「退出并保存 / 取消」按钮 - 修复 RELATIVE 模式落点:世界坐标先减去基准点(玩家位置/触发点)再写入
dx/dy/dz
时间轴
- 拖动会话:拖动中由前端驱动时间头并即时跟手,
seek改为 16ms 高频节流(原为 50ms 尾随防抖),松手后经短暂确认期再交回游戏端唯一源 - 拖动期间忽略游戏端
playback.state的时间回推,避免互相抢;播放头、标尺、画布空白区域均可拖动 - 统一滚动容器:轨道头与画布合并进同一纵向滚动区,删除手动
scrollTop同步;轨道头横向吸左(sticky),播放头改为贯穿标尺与全部轨道行的竖线 - 时间轴默认高度 260 → 320,响应式比例 28% → 34%(最小 280,最大 520)
音频 / 示例脚本
AudioTrackPlayer新增失败 clip 集合:缺失或无法加载的音频只记录一次并跳过该 clip,不再每帧重试刷异常- demo 脚本移除音频轨,避免依赖不存在的示例音频
图标体系
- 模组图标
assets/immersive_cinematics/icon.png(256×256):Fabric 由fabric.mod.json的icon引用,Forge 启用mods.toml的logoFile指向同一路径 - 编辑器应用图标:
editor/build/icon.png(512×512)与icon.ico(16/32/48/64/128/256 六尺寸),electron-builder.yml增加win.icon .gitignore放行editor/build/:该目录是 electron-builder 的图标源文件而非构建产物,否则 clone 后打包会退回 Electron 默认图标- 编辑器标题栏 logo:原本的蓝色文字
IC方块改为引用图标图片(editor/src/assets/icon.png)
2026-09-01 追加 — 虚拟相机中心:完全接入原版 ChunkMap 差集
预加载核心重构
- 新增
ChunkMapCameraMixin:向ChunkMap注入玩家 UUID → 虚拟相机SectionPos,把move/updatePlayerPos的新中心重定向到相机;复用原版DistanceManager方形加载 ticket 与isChunkInRange客户端发送/遗忘差集 - 新增
CameraVirtualCenterAccess(位于trigger.server,避免 Mixin 包引用限制) ChunkPreloadManager改为“设置虚拟中心 → 调用原版ChunkMap.move”,删除自建desired / playerCovered / sentCamera / sentPlayer / resync / forget / sendCenter手工链路- 删除多片段预热:原版虚拟中心在片段激活时按原版规则加载,不再使用冗余
addRegionTicket预热 - 删除自建
CameraEntitySyncManager:原版虚拟中心自动向真实玩家发送相机区实体 - 修复 Mixin 注入:
getBlockX / getBlockZ实际字节码 owner 为ServerPlayer,target 改为ServerPlayer后正常 - 修复接口放入 mixin package 导致
IllegalClassLoadError,移至普通业务包 - 日志去重:仅相机模式或中心变化时才设置虚拟中心并触发
move;移除旧[preload status/diff/send/resync/prewarm]日志 - 清理
ChunkPreloadManager/ServerEventHandler中全部废弃代码与字段
2026-08-31 追加 — 预加载状态边界统一差集、空片段处理、编辑器收尾与 WebUI 预留
预加载 / 相机区域
- 状态边界统一差集:区块预加载不再使用 far/near 距离门控;客户端按“当前视口”上报(活跃镜头=相机位置,空档=玩家位置),服务端在镜头切换、空档进出、脚本结束统一执行
desired - playerCovered - 已持有差集 - 下一片段预热:接近下一个 CAMERA 片段起点时提前加 ticket 预热,镜头切过去后直接晋级到当前相机区,不重复加票
- 释放差集复用:脚本结束时按
playerNeed ∩ sentCameraChunks复用已持有区块,只补发玩家区缺失块;不再强制客户端allChanged()全量重建 - 空片段/尾段空档处理:没有活跃 CAMERA 片段时上报玩家位置,让差集自然切回玩家区;尾段有空档的脚本结束后无需强制刷新
- 无 CAMERA 轨道脚本:客户端/服务端双重判断,不再触发预加载/释放
- 配置精简:移除旧预加载配置项(
preloadWindowRadius、preloadMaxChunks、preloadMaxWorldgenChunks、preloadTimeoutGenerated/Worldgen、旧preloadPrewarm、preloadFarViewCenterThreshold、preloadPlayerZoneRadius、preloadRearRadius)
HUD / 输入 / 兼容
- HUD/手臂行为不再依赖相机轨道;脚本命令标识改为
目录:文件名冒号格式 - Forge/Fabric HUD 白名单工具,补齐 ActionBar/Title/保存提示
- 键鼠屏蔽改用中继层 + 公开 API,移除对私有字段的访问
- 修复相机实体缓存 NPE
触发器 / 测试
- 触发器前置条件改为“播放完成”语义,并支持自定义注册
- 修复
item_use_interrupt松手时未记录物品,导致该触发器永不匹配 - 触发链测试脚本逐个补充“下一步提示 + 准备命令”
编辑器
- 字段控件按
FieldDef类型驱动:bool→开关、tristate→三态、enum≤3→循环切换、enum>3→下拉 - 缺失的 bool/enum 字段直接显示正确控件,不再“添加后控件突变”
- 清理
schema.json残留注释与编辑器cam_tracking_*特判 ScriptPropertiesPanel暴露hud_layers、camera_mob_spawn、camera_mob_radius、camera_mob_ai- 新增
SchemaExporter与FieldControl,为 WebUI 迁移预留 schema 导出与控件决策
文档 / 归档
- 0.3.5 计划文档归档到
plans/complete/0.3.5/ - 0.3.6 文档整理:删除被 WebUI 迁移取代的 UI 缩放布局方案;无假人相机区域方案归档到 0.3.5 并标记已实施
2026-08-22 追加 — 渲染优化模组兼容与 Forge 打包修复
Fixed
- 修复与 Sodium / Rubidium / Embeddium 的
LevelRendererMixin注入冲突:检测到这三类渲染优化模组时跳过LevelRendererMixin,由它们的 Camera/Frustum 管线接管渲染中心;CameraMixin仍驱动虚拟相机,远端画面渲染功能保留 - 修复 Forge 普通 jar 因缺少 MixinExtras 无法启动的问题:Forge
SoundEngineMixin拆分为平台专属实现(Forge 用原版@Redirect,Fabric 保留@WrapOperation),Forge 不再依赖/内置 MixinExtras,普通 jar 可直接运行 - 新增跨平台 Mixin 配置插件
ImmersiveCinematicsMixinPlugin,用于按平台/环境条件跳过冲突 mixin - 新增脚本 meta 开关
suppress_distortion:独立控制是否屏蔽屏幕扭曲(反胃/传送门旋转);未设置时兼容旧行为(跟随suppress_bob→hide_hud) - 移除
GameRendererMixin对Mth.lerp的@Redirect:扭曲屏蔽改为播放期间临时设置原版screenEffectScale为 0,播放结束恢复;同时解决与 SecurityCraftGameRendererMixin的注入冲突 - 安全化三处
@Redirect:SoundManagerMixin→@ModifyArg、LevelRendererMixin→@ModifyVariable、BubbleColumnAmbientSoundHandlerMixin→@ModifyArg,功能不变且降低与其他模组注入冲突的概率 - Mixin 配置插件去反射:
ImmersiveCinematicsMixinPlugin拆分为 Forge / Fabric 平台专属实现,分别直接使用FMLLoader/ModList与FabricLoaderAPI,不再使用 Java 反射
[0.3.5] - 2026-08-20
0.3.5:世界预加载与运镜体系、音频听者重构、编辑器/预设/GIF 增强、去除 Architectury 第三方依赖。
Added
- 脚本文件夹组织:
scripts/支持子文件夹递归加载(深度 ≤ 5),编辑器/命令显示相对路径;id仍全局唯一,子目录仅文件组织 - 触发器前置依赖:
triggers[].requires: string[](AND),全部前置脚本触发过才允许本触发器触发;validator 提示失效引用 - 呼吸扰动 v2:
cam_breath_type(perlin/perlin_axis/sine/trauma)、cam_breath_speed,trauma 新增cam_breath_trauma/cam_breath_decay - look_at 相对目标:
look_at_target对象(绝对/触发点偏移/实体偏移/坐标偏移),兼容旧字段 - 动态 yaw 基准:
yaw_base(world/entity/line)与pitch_base,yaw变为相对偏移,与 look_at 互斥;基准空间系fwd/up/right - 区块预加载统一:
preload-camera-region-unified设计落地——far-view 由隐藏假人驱动原版区块/实体追踪,退出时玩家区对账补发,实体中继与区块同源时序;脚本级meta.preload开关 - 预加载预热与释放复用:下一 CAMERA 片段按
prewarmLeadSeconds提前加 ticket 预热;脚本结束用playerNeed ∩ sentCameraChunks差集复用,只需补发玩家区缺失块,近距离结束不再全量重发 - 预加载配置平台持久化:ForgeConfigSpec / Fabric JSON 接入全部预加载字段(cap/force/prewarm/playerZone 等),配置修改后跨重启生效
- 音频体系重构:
meta.listener(player/camera)听者模式;AUDIO 轨道回归原版 SoundEngine,相对/绝对位置语义 + 默认衰减;环境音(群系/水下/气泡柱/animateTick)在 camera 模式采样到相机;编辑器音频联动重写 - 编辑器飞行取景:F6 + WASD/鼠标操控相机取景,可记录/取消;编辑器模块化 + 面板重构
- Schema Java 元数据化:
schema.json迁移为 JavaFieldDef/TrackSchemas/SchemaRegistry,编辑器/解析器/默认值共用 - GIF Overlay:stbi_load_gif 拆帧 + 单帧 DynamicTexture 轮播,带内存上限与释放
- 预设系统:参数 schema + 生成函数注册,初版预设库(环绕轨道等),生成结果可编辑
- 去除 Architectury:MultiLoader 重构,common/forge/fabric 三模块,无第三方前置依赖
Changed
- README/README_CN 版本更新为 0.3.5;文档补充
meta.preload、目录组织、触发器前置依赖 - 预加载日志节流:高频包按秒聚合,关键包(AddEntity/chunk/center/remove)保留逐条
- Forge 假人就位时序:先
moveTo相机坐标再 bootstrap,初始实体与区块按原版addNewPlayer顺序送达
Fixed
- Forge 远距离实体数量偏少:同一村庄位置下客户端 radius=64 实体数从 ~20 提升到 ~60~66,与 Fabric 同区间
- 修复 Forge 实体中继中
ClientboundBundlePacket解包转发时序 - 清理
ChunkPreloadManager死代码(requestTickets/sendReady/desired/ticketed/sent 残留)### 2026-09-09 追加 — WebUI 时间头唯一源、独立飞控模块接入、时间轴滚动重构与图标体系
WebUI 时间头唯一源
- 前端
seek / play / pause / stop不再直接写state.time / state.playing,只发送命令,时间头与播放状态统一由游戏端playback.state回推,消除鼠标拖动与回推互相抢时间 CameraManager.setTime立即同步gameTimeSeconds,修复handleSeek后紧接着pushPlaybackState读到旧时间导致的回跳- 移除
ScriptStructure.vue(脚本结构树);左侧面板(脚本/轨道/预设)移入编辑区内部;ScriptList增加「刷新」按钮
独立飞控模块
- 新增
FlightModeManager:飞控会话与EditorScreen解耦,WebUI / 游戏内编辑器 / 键盘中转统一走同一入口,为后续移除游戏内编辑器后 WebUI 飞控独立工作做准备 - 职责内聚:进入(暂停相机 + 启用直控 + 初始化)、退出(返回最终相机数据)、取消(恢复进入前状态)、每帧 tick、键盘/鼠标事件转发、光学 reset(只恢复 FOV/Zoom/Roll,不动位置与朝向)
- WebUI 完整接入飞控:新增
editor.exit_flight_mode/editor.cancel_flight_mode协议;进入飞控改用当前实际相机状态作为初始值(与 Java 编辑器行为一致),前端只传保存模式 WebPreviewScreen每帧驱动飞控并按 100ms 节流回推相机参数;新增飞控 HUD,展示鼠标/移动/升降/慢速/滚转/FOV/Zoom/模式切换/光学重置/保存退出/取消 的键位提示- 前端
Preview增加飞控浮层:实时位置、Yaw/Pitch/Roll、FOV/Zoom,以及「退出并保存 / 取消」按钮 - 修复 RELATIVE 模式落点:世界坐标先减去基准点(玩家位置/触发点)再写入
dx/dy/dz
时间轴
- 拖动会话:拖动中由前端驱动时间头并即时跟手,
seek改为 16ms 高频节流(原为 50ms 尾随防抖),松手后经短暂确认期再交回游戏端唯一源 - 拖动期间忽略游戏端
playback.state的时间回推,避免互相抢;播放头、标尺、画布空白区域均可拖动 - 统一滚动容器:轨道头与画布合并进同一纵向滚动区,删除手动
scrollTop同步;轨道头横向吸左(sticky),播放头改为贯穿标尺与全部轨道行的竖线 - 时间轴默认高度 260 → 320,响应式比例 28% → 34%(最小 280,最大 520)
音频 / 示例脚本
AudioTrackPlayer新增失败 clip 集合:缺失或无法加载的音频只记录一次并跳过该 clip,不再每帧重试刷异常- demo 脚本移除音频轨,避免依赖不存在的示例音频
图标体系
- 模组图标
assets/immersive_cinematics/icon.png(256×256):Fabric 由fabric.mod.json的icon引用,Forge 启用mods.toml的logoFile指向同一路径 - 编辑器应用图标:
editor/build/icon.png(512×512)与icon.ico(16/32/48/64/128/256 六尺寸),electron-builder.yml增加win.icon .gitignore放行editor/build/:该目录是 electron-builder 的图标源文件而非构建产物,否则 clone 后打包会退回 Electron 默认图标- 编辑器标题栏 logo:原本的蓝色文字
IC方块改为引用图标图片(editor/src/assets/icon.png)
2026-09-01 追加 — 虚拟相机中心:完全接入原版 ChunkMap 差集
预加载核心重构
- 新增
ChunkMapCameraMixin:向ChunkMap注入玩家 UUID → 虚拟相机SectionPos,把move/updatePlayerPos的新中心重定向到相机;复用原版DistanceManager方形加载 ticket 与isChunkInRange客户端发送/遗忘差集 - 新增
CameraVirtualCenterAccess(位于trigger.server,避免 Mixin 包引用限制) ChunkPreloadManager改为“设置虚拟中心 → 调用原版ChunkMap.move”,删除自建desired / playerCovered / sentCamera / sentPlayer / resync / forget / sendCenter手工链路- 删除多片段预热:原版虚拟中心在片段激活时按原版规则加载,不再使用冗余
addRegionTicket预热 - 删除自建
CameraEntitySyncManager:原版虚拟中心自动向真实玩家发送相机区实体 - 修复 Mixin 注入:
getBlockX / getBlockZ实际字节码 owner 为ServerPlayer,target 改为ServerPlayer后正常 - 修复接口放入 mixin package 导致
IllegalClassLoadError,移至普通业务包 - 日志去重:仅相机模式或中心变化时才设置虚拟中心并触发
move;移除旧[preload status/diff/send/resync/prewarm]日志 - 清理
ChunkPreloadManager/ServerEventHandler中全部废弃代码与字段
2026-08-31 追加 — 预加载状态边界统一差集、空片段处理、编辑器收尾与 WebUI 预留
预加载 / 相机区域
- 状态边界统一差集:区块预加载不再使用 far/near 距离门控;客户端按“当前视口”上报(活跃镜头=相机位置,空档=玩家位置),服务端在镜头切换、空档进出、脚本结束统一执行
desired - playerCovered - 已持有差集 - 下一片段预热:接近下一个 CAMERA 片段起点时提前加 ticket 预热,镜头切过去后直接晋级到当前相机区,不重复加票
- 释放差集复用:脚本结束时按
playerNeed ∩ sentCameraChunks复用已持有区块,只补发玩家区缺失块;不再强制客户端allChanged()全量重建 - 空片段/尾段空档处理:没有活跃 CAMERA 片段时上报玩家位置,让差集自然切回玩家区;尾段有空档的脚本结束后无需强制刷新
- 无 CAMERA 轨道脚本:客户端/服务端双重判断,不再触发预加载/释放
- 配置精简:移除旧预加载配置项(
preloadWindowRadius、preloadMaxChunks、preloadMaxWorldgenChunks、preloadTimeoutGenerated/Worldgen、旧preloadPrewarm、preloadFarViewCenterThreshold、preloadPlayerZoneRadius、preloadRearRadius)
HUD / 输入 / 兼容
- HUD/手臂行为不再依赖相机轨道;脚本命令标识改为
目录:文件名冒号格式 - Forge/Fabric HUD 白名单工具,补齐 ActionBar/Title/保存提示
- 键鼠屏蔽改用中继层 + 公开 API,移除对私有字段的访问
- 修复相机实体缓存 NPE
触发器 / 测试
- 触发器前置条件改为“播放完成”语义,并支持自定义注册
- 修复
item_use_interrupt松手时未记录物品,导致该触发器永不匹配 - 触发链测试脚本逐个补充“下一步提示 + 准备命令”
编辑器
- 字段控件按
FieldDef类型驱动:bool→开关、tristate→三态、enum≤3→循环切换、enum>3→下拉 - 缺失的 bool/enum 字段直接显示正确控件,不再“添加后控件突变”
- 清理
schema.json残留注释与编辑器cam_tracking_*特判 ScriptPropertiesPanel暴露hud_layers、camera_mob_spawn、camera_mob_radius、camera_mob_ai- 新增
SchemaExporter与FieldControl,为 WebUI 迁移预留 schema 导出与控件决策
文档 / 归档
- 0.3.5 计划文档归档到
plans/complete/0.3.5/ - 0.3.6 文档整理:删除被 WebUI 迁移取代的 UI 缩放布局方案;无假人相机区域方案归档到 0.3.5 并标记已实施
2026-08-22 追加 — 渲染优化模组兼容与 Forge 打包修复
Fixed
- 修复与 Sodium / Rubidium / Embeddium 的
LevelRendererMixin注入冲突:检测到这三类渲染优化模组时跳过LevelRendererMixin,由它们的 Camera/Frustum 管线接管渲染中心;CameraMixin仍驱动虚拟相机,远端画面渲染功能保留 - 修复 Forge 普通 jar 因缺少 MixinExtras 无法启动的问题:Forge
SoundEngineMixin拆分为平台专属实现(Forge 用原版@Redirect,Fabric 保留@WrapOperation),Forge 不再依赖/内置 MixinExtras,普通 jar 可直接运行 - 新增跨平台 Mixin 配置插件
ImmersiveCinematicsMixinPlugin,用于按平台/环境条件跳过冲突 mixin - 新增脚本 meta 开关
suppress_distortion:独立控制是否屏蔽屏幕扭曲(反胃/传送门旋转);未设置时兼容旧行为(跟随suppress_bob→hide_hud) - 移除
GameRendererMixin对Mth.lerp的@Redirect:扭曲屏蔽改为播放期间临时设置原版screenEffectScale为 0,播放结束恢复;同时解决与 SecurityCraftGameRendererMixin的注入冲突 - 安全化三处
@Redirect:SoundManagerMixin→@ModifyArg、LevelRendererMixin→@ModifyVariable、BubbleColumnAmbientSoundHandlerMixin→@ModifyArg,功能不变且降低与其他模组注入冲突的概率 - Mixin 配置插件去反射:
ImmersiveCinematicsMixinPlugin拆分为 Forge / Fabric 平台专属实现,分别直接使用FMLLoader/ModList与FabricLoaderAPI,不再使用 Java 反射
[0.3.5] - 2026-08-20
0.3.5:世界预加载与运镜体系、音频听者重构、编辑器/预设/GIF 增强、去除 Architectury 第三方依赖。
Added
- 脚本文件夹组织:
scripts/支持子文件夹递归加载(深度 ≤ 5),编辑器/命令显示相对路径;id仍全局唯一,子目录仅文件组织 - 触发器前置依赖:
triggers[].requires: string[](AND),全部前置脚本触发过才允许本触发器触发;validator 提示失效引用 - 呼吸扰动 v2:
cam_breath_type(perlin/perlin_axis/sine/trauma)、cam_breath_speed,trauma 新增cam_breath_trauma/cam_breath_decay - look_at 相对目标:
look_at_target对象(绝对/触发点偏移/实体偏移/坐标偏移),兼容旧字段 - 动态 yaw 基准:
yaw_base(world/entity/line)与pitch_base,yaw变为相对偏移,与 look_at 互斥;基准空间系fwd/up/right - 区块预加载统一:
preload-camera-region-unified设计落地——far-view 由隐藏假人驱动原版区块/实体追踪,退出时玩家区对账补发,实体中继与区块同源时序;脚本级meta.preload开关 - 预加载预热与释放复用:下一 CAMERA 片段按
prewarmLeadSeconds提前加 ticket 预热;脚本结束用playerNeed ∩ sentCameraChunks差集复用,只需补发玩家区缺失块,近距离结束不再全量重发 - 预加载配置平台持久化:ForgeConfigSpec / Fabric JSON 接入全部预加载字段(cap/force/prewarm/playerZone 等),配置修改后跨重启生效
- 音频体系重构:
meta.listener(player/camera)听者模式;AUDIO 轨道回归原版 SoundEngine,相对/绝对位置语义 + 默认衰减;环境音(群系/水下/气泡柱/animateTick)在 camera 模式采样到相机;编辑器音频联动重写 - 编辑器飞行取景:F6 + WASD/鼠标操控相机取景,可记录/取消;编辑器模块化 + 面板重构
- Schema Java 元数据化:
schema.json迁移为 JavaFieldDef/TrackSchemas/SchemaRegistry,编辑器/解析器/默认值共用 - GIF Overlay:stbi_load_gif 拆帧 + 单帧 DynamicTexture 轮播,带内存上限与释放
- 预设系统:参数 schema + 生成函数注册,初版预设库(环绕轨道等),生成结果可编辑
- 去除 Architectury:MultiLoader 重构,common/forge/fabric 三模块,无第三方前置依赖
Changed
- README/README_CN 版本更新为 0.3.5;文档补充
meta.preload、目录组织、触发器前置依赖 - 预加载日志节流:高频包按秒聚合,关键包(AddEntity/chunk/center/remove)保留逐条
- Forge 假人就位时序:先
moveTo相机坐标再 bootstrap,初始实体与区块按原版addNewPlayer顺序送达
Fixed
- Forge 远距离实体数量偏少:同一村庄位置下客户端 radius=64 实体数从 ~20 提升到 ~60~66,与 Fabric 同区间
- 修复 Forge 实体中继中
ClientboundBundlePacket解包转发时序 - 清理
ChunkPreloadManager死代码(requestTickets/sendReady/desired/ticketed/sent 残留)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:9374fX7L:Arm1yp1a"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:9374fX7L:Arm1yp1a"
}

