-
released this
2026-05-20 10:19:43 +09:00 | 12 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 | 13 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 | 14 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 | 15 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 | 16 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 | 17 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 | 18 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 | 19 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 | 20 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
-
released this
2026-05-16 22:57:52 +09:00 | 21 commits to main since this release일반 다운로드 완료 경로의 publish race 닫기 + 헬퍼 추출.
- v0.4.20 까지: 재인덱싱 분기는 post-put 검사를 추가했으나 일반 다운로드 완료 경로는 post-move 검사 후 그냥
READY.put→ 그 사이 clear 가 들어오면 stale 엔트리/완료 채팅. - 수정:
publishIfNotCancelled(url, path, startEpoch)헬퍼 추출 (pre-check → put → post-check → rollback). 양쪽 publish 사이트 (재인덱싱 + 다운로드 완료) 모두 이 헬퍼 경유. - 구조적 이점: 향후 추가될 publish 지점에서 post-check 빼먹기 어려움.
리뷰어 지적 반영.
Downloads
- v0.4.20 까지: 재인덱싱 분기는 post-put 검사를 추가했으나 일반 다운로드 완료 경로는 post-move 검사 후 그냥