-
released this
2026-05-20 10:31:45 +09:00 | 0 commits to main since this release플레이어가 아닌 명령어 소스(콘솔, 커맨드블럭, /function)는 권한 레벨 검사를 건너뜁니다. 따라서
functionPermissionLevelgamerule 을 만질 필요 없이 데이터팩 함수에서 /videoPlace 등을 직접 호출할 수 있습니다. 플레이어는 여전히 OP 가 필요합니다.Downloads
-
released this
2026-05-20 10:19:43 +09:00 | 1 commits to main since this releaseOP only: /videoStick now requires permission level 2 (the standard OP cheat threshold), matching the existing /videoCache, /videoPlace, /videoDelete, /videoMute gate.
What changes:
- Plain players (level 0) lose access — /videoStick no longer shows in tab autocomplete and refuses to execute
- OP players (default level 4) still pass
- Console and command blocks (default level 2) still pass
Downloads
-
released this
2026-05-18 19:07:21 +09:00 | 2 commits to main since this releaseFix: delete promoted cache file in publishIfNotCancelled first epoch-mismatch branch.
If
wipeOnShutdownran betweendownload's pre-move epoch check and the atomicFiles.move, the wipe's directory scan missed the just-promoted final file, andpublishIfNotCancelledbailed at the first epoch check without deleting it. Result: leaked cache files across sessions on race. Now both epoch-mismatch branchesFiles.deleteIfExists(path).Downloads
-
released this
2026-05-18 18:59:55 +09:00 | 3 commits to main since this releaseWipe video_player_cache/ on game shutdown so preloaded clips do not accumulate across sessions. Cache repopulation on the next launch is handled by the existing server-side JOIN handler, which auto-broadcasts a PreloadPayload for every preload_urls and cache_entries entry.
Downloads
-
released this
2026-05-17 03:41:03 +09:00 | 4 commits to main since this releaseFix the brief in-game freeze when /videoDelete is run right after /videoPlace. The decoder worker now stops asynchronously, so the client tick thread no longer blocks waiting for the native FFmpeg HTTP probe at the top of decoding.
Downloads
-
released this
2026-05-17 03:36:59 +09:00 | 5 commits to main since this releaseBackward-compatible /videoPlace: legacy 5-arg form (no volume) still works with defaults volume=50%, muted=false. New 6-arg form adds explicit volume (0..100, -1=mute).
Downloads
-
released this
2026-05-17 03:31:13 +09:00 | 6 commits to main since this releaseAdd volume argument to /videoPlace.
New signature:
/videoPlacevolume is int -1..100. 0..100 sets percent and clears mute; -1 is a CLI shortcut that sets muted=true (underlying volume kept at 0.5 so a later /videoMute false restores audible level).
Downloads
-
released this
2026-05-17 03:21:25 +09:00 | 7 commits to main since this releaseFix invisible anchor after /videoPlace and after chunk reload.
Root cause: VideoAnchorBlockEntity did not override getUpdateTag()/getUpdatePacket(), so url/facing/width/height were never carried in vanilla BE sync. The SyncAnchorPayload sent immediately after setBlock could also win the race against the chunk broadcast and get dropped because the BE did not exist yet on the client.
- getUpdateTag(HolderLookup.Provider) → toNbt()
- getUpdatePacket() → ClientboundBlockEntityDataPacket.create(this)
- Also fixes "walk far away, come back" — that path has no SyncAnchorPayload, just vanilla chunk re-sync.
Downloads
-
released this
2026-05-17 00:04:48 +09:00 | 8 commits to main since this releaseFix wall z-fighting and texture flicker at distance.
Reported symptom: with render_distance_blocks=256, the panel shimmered and the wall texture bled through at ~30 blocks. Both are distance-rendering bugs that were previously hidden by the default ~64-block view distance.
- SURFACE_EPSILON 0.001 → 0.02. 24-bit depth + near=0.05 gives ~1mm depth resolution at 30 blocks, so the old 1mm offset sat right at the z-fight boundary. 2cm has ~20× margin and is unnoticeable up close.
- RenderType entityCutout → entitySolid. swscale outputs RGBA with alpha=255 so there is no real cutout; the discard step just adds distance sampling noise on a dynamic non-mipmapped texture.
Downloads
-
released this
2026-05-16 23:46:07 +09:00 | 9 commits to main since this releaseRoute video audio through the Minecraft Players sound category.
- updateDistanceGains now multiplies per-anchor gain by master × players sound option volume
- Players slider in Options → Music & Sounds attenuates video audio like other player sounds
- Master slider still gates everything
- Matches vanilla SoundEngine.calculateVolume pattern (master × category)
- No frequency change: still recomputed at the same 20Hz tick, slider drags take effect within ~50ms
Downloads