Skip to content

Releases: PrismMods/Quartz

v2.0.0-alpha-119 — Level Updates & Rollback

Choose a tag to compare

@kkorenn kkorenn released this 19 Aug 10:44

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


New

  • TUF level updates: every downloaded level gets an Update badge that asks TUF whether the chart has been re-uploaded since you got it, and a library-wide Updates button that checks the whole library at once. When an update is waiting, clicking it downloads the new version over your copy.
  • TUF rollback: updating no longer throws the old chart away. Quartz keeps the last few copies in a rollback folder inside your levels folder, and a Restore button on the level card puts an earlier version back.
  • An Others tab, holding two modules that are still being built: a Discord page (a layout preview — nothing is connected to Discord yet) and a Minecraft page (an empty placeholder). Both are off unless you turn them on in Modules.

Improved

  • The TUF level library now shows how much disk space it is using next to the level count.

Fixed

  • Attempt counts and best progress no longer reset when you edit a level. The play record was keyed off a hash of the entire .adofai, so changing a decoration, a camera trigger, a pause, or any setting made the level read as never played. It is now keyed off the chart's angles alone, and counts you already have carry over.

한국어

신규

  • TUF 레벨 업데이트: 내려받은 레벨마다 업데이트 배지가 붙어, 받은 뒤에 채보가 다시 올라왔는지 TUF에 물어봅니다. 라이브러리 전체를 한 번에 확인하는 업데이트 버튼도 있습니다. 업데이트가 있으면 눌러서 새 버전을 기존 파일 위에 내려받습니다.
  • TUF 롤백: 업데이트해도 이전 채보를 버리지 않습니다. 레벨 폴더 안 rollback 폴더에 최근 사본 몇 개를 보관하며, 레벨 카드의 복원 버튼으로 예전 버전으로 되돌릴 수 있습니다.
  • 기타 탭 추가. 아직 만드는 중인 모듈 두 개가 들어 있습니다. 디스코드 페이지(레이아웃 미리보기일 뿐, 아직 디스코드에 연결되지 않았습니다)와 마인크래프트 페이지(빈 자리 표시)입니다. 둘 다 모듈에서 켜야 보입니다.

개선

  • TUF 레벨 라이브러리에 레벨 개수와 함께 차지하는 용량이 표시됩니다.

수정

  • 레벨을 수정해도 시도 횟수와 최고 진행도가 초기화되지 않습니다. 기록이 .adofai 파일 전체의 해시로 저장되던 탓에, 데코레이션이나 카메라 트리거, 일시정지, 설정을 하나만 바꿔도 처음 하는 레벨로 인식됐습니다. 이제 채보의 각도만으로 기록을 구분하며, 기존 기록도 그대로 이어집니다.

alpha build 119 of 2.0.0. · v2.0.0-alpha-118…v2.0.0-alpha-119

Latest alpha: v2.0.0-alpha-119 — Level Updates & Rollback

Choose a tag to compare

@kkorenn kkorenn released this 15 Jul 10:59

Rolling pointer to the newest alpha build — right now that is v2.0.0-alpha-119 — Level Updates & Rollback.

These links always serve the newest alpha build:


Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


New

  • TUF level updates: every downloaded level gets an Update badge that asks TUF whether the chart has been re-uploaded since you got it, and a library-wide Updates button that checks the whole library at once. When an update is waiting, clicking it downloads the new version over your copy.
  • TUF rollback: updating no longer throws the old chart away. Quartz keeps the last few copies in a rollback folder inside your levels folder, and a Restore button on the level card puts an earlier version back.
  • An Others tab, holding two modules that are still being built: a Discord page (a layout preview — nothing is connected to Discord yet) and a Minecraft page (an empty placeholder). Both are off unless you turn them on in Modules.

Improved

  • The TUF level library now shows how much disk space it is using next to the level count.

Fixed

  • Attempt counts and best progress no longer reset when you edit a level. The play record was keyed off a hash of the entire .adofai, so changing a decoration, a camera trigger, a pause, or any setting made the level read as never played. It is now keyed off the chart's angles alone, and counts you already have carry over.

한국어

신규

  • TUF 레벨 업데이트: 내려받은 레벨마다 업데이트 배지가 붙어, 받은 뒤에 채보가 다시 올라왔는지 TUF에 물어봅니다. 라이브러리 전체를 한 번에 확인하는 업데이트 버튼도 있습니다. 업데이트가 있으면 눌러서 새 버전을 기존 파일 위에 내려받습니다.
  • TUF 롤백: 업데이트해도 이전 채보를 버리지 않습니다. 레벨 폴더 안 rollback 폴더에 최근 사본 몇 개를 보관하며, 레벨 카드의 복원 버튼으로 예전 버전으로 되돌릴 수 있습니다.
  • 기타 탭 추가. 아직 만드는 중인 모듈 두 개가 들어 있습니다. 디스코드 페이지(레이아웃 미리보기일 뿐, 아직 디스코드에 연결되지 않았습니다)와 마인크래프트 페이지(빈 자리 표시)입니다. 둘 다 모듈에서 켜야 보입니다.

개선

  • TUF 레벨 라이브러리에 레벨 개수와 함께 차지하는 용량이 표시됩니다.

수정

  • 레벨을 수정해도 시도 횟수와 최고 진행도가 초기화되지 않습니다. 기록이 .adofai 파일 전체의 해시로 저장되던 탓에, 데코레이션이나 카메라 트리거, 일시정지, 설정을 하나만 바꿔도 처음 하는 레벨로 인식됐습니다. 이제 채보의 각도만으로 기록을 구분하며, 기존 기록도 그대로 이어집니다.

alpha build 119 of 2.0.0. · v2.0.0-alpha-118…v2.0.0-alpha-119

v2.0.0-beta-5 — Self-Updating Install

Pre-release

Choose a tag to compare

@kkorenn kkorenn released this 17 Aug 06:30

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


Beta catches up with ten alpha builds at once. The headline is that Quartz now updates itself — please read the upgrading section, the install layout changed.

Quartz updates itself now

  • When the game starts, Quartz checks for a new release, downloads it, and loads it in the same launch. No more clicking update and restarting to pick up a build.
  • Updates are trial-run before they stick: a new build only becomes your current one after it starts cleanly. A build that fails to start is rolled back automatically and held back until the next release, so a bad update costs one launch instead of a broken install.
  • Launch-time checks follow the update channel and skipped-version choices from Settings, and can be turned off entirely with "Enabled": false in UserData/Quartz/Runtime/update.json.
  • A broken install repairs itself: some installers extract the mod folder without its Runtime/ folder, which used to leave Quartz refusing to load with "no usable runtime — reinstall Quartz". The bootstrap now notices, re-downloads its own release, and restores the missing runtime on its own.

Upgrading from an older beta

  • Update from inside the game as usual, or extract the new zip over your install. After the first restart your previous version runs one last session while the new layout takes over; from the second restart onward you are on the bootstrap and updates happen on their own.
  • Installing by hand: copy Mods/Quartz.Bootstrap.dll and the UserData/Quartz/ folder from the zip. The old Mods/Quartz.dll is removed automatically.
  • Why: Mods/ now carries only a small Quartz.Bootstrap.dll, and the mod itself lives in versioned folders under UserData/Quartz/Runtime/ (for UnityModManager, under the mod folder's Runtime/). Settings, profiles and modules are untouched; shipped files like translations refresh automatically.

New

  • Standalone Key Viewer — install the Key Viewer by itself for MelonLoader or UnityModManager. Its own files, its own updater, opens directly to one focused page, and no longer requires the Key Limiter module.
  • Key Viewer JavaScript plugins — import DM Note-style .js or .mjs plugins. The sandboxed engine supports declarative HTML/CSS/SVG panels, keyboard hooks, live stats, timers, settings, and private plugin storage. JavaScript stays off by default; only import plugins you trust.
  • Key Viewer element images — elements can show a custom image for idle and pressed states, with a cover/contain/fill/none fit. Exports carry those images inside the file (de-duplicated, size-capped) so a shared layout looks the same on someone else's machine.
  • Chart Key Limiter — charts can carry a Key Limiter event in the level editor: cap how many distinct keys may be used from a tile onward, and pick what an extra press does. Levels listing KeyLimiter in requiredMods load normally while the module is on.
  • Addon toolkit — addons can declare dependencies and load order, call each other with no compile-time reference, check GitHub for updates, ship their own translations, take a top-level sidebar entry with an icon, draw a standard header card, and get a whole settings form auto-generated from an attributed settings class and placed in any tab they like. Worked example: examples/AddonExample.
  • Excluded Filters (Effect Remover, Simple mode) — choose filters that survive "Disable Filters".
  • Responsive color picker — colors open in a compact popup with direct hex and channel controls, plus a Wide color picker option for shorter displays.
  • Song Title rich-text stripping — remove formatting tags and line breaks when a chart title should render as plain text.
  • Key Viewer can be driven by an external replay renderer: the capture's timeline replaces the wall clock and injected presses replace the keyboard.

Improved

  • The Release Candidate update channel is gone — the picker now offers Stable, Beta, and Alpha. Installs that had RC selected follow Stable.
  • Panel size is saved proportionally, reclamped when the display changes, and reloaded when a profile is applied. The menu shortcut stays inactive while you type into a text field.
  • Key binding capture is arbitrated by a single owner, so two controls can never fight over the same press, and hook-only keys such as right-side modifiers keep working without Key Limiter.
  • Settings writes interrupted by a crash or power loss are recovered on the next launch.
  • Key Viewer's "Hidden" flag is now "Disabled", and disabled elements stay clickable so you can turn them back on.
  • Korean and Chinese translations updated throughout.

Performance

  • Overlay settings (Song Title, Combo, Judgement, Progress Bar, Practice) batch their saves instead of writing the config file on every keystroke.
  • Menu search reuses result rows while you type instead of rebuilding up to 40 buttons per character.
  • Key Viewer JS plugins no longer allocate per frame, and the layout editor's marquee selection scales to large layouts.
  • Editor: BGA mode no longer re-hides planets every frame through slow reflection, and the floor readout's change detection is throttled.
  • TUF: the installed-level library loads much faster with many levels installed.
  • The color picker reuses its wheel pixel buffer instead of reallocating on every repaint.

Fixed

  • Effect Remover: removing Hall of Mirrors no longer leaves stale frame trails behind.
  • UI Hider: hiding beta-only UI could silently stop working after a scene change; it recovers on its own now.
  • Profile names can no longer escape the profiles folder, and module removal stays confined to the modules folder.
  • A module whose enable step throws is fully unwound instead of leaving its patches installed.
  • Sliders accept direct numeric values, clamp correctly with only one bound set, and fire their completion callback once per gesture. Text inputs no longer send re-entrant change notifications.
  • UI controls ignore delayed callbacks after teardown, and the first-run helper no longer duplicates or survives a menu rebuild.
  • Live panel text no longer wraps and overflows its box.
  • Map time no longer counts the song offset twice.
  • The Discord auto-deafen worker shuts down within a bounded window.
  • Current game release detection and Harmony compatibility work across both supported loaders.

한국어

베타가 알파 10개 빌드를 한 번에 따라잡습니다. 핵심은 Quartz가 스스로 업데이트한다는 점입니다 — 설치 구조가 바뀌었으니 업그레이드 항목을 꼭 읽어 주세요.

Quartz가 스스로 업데이트합니다

  • 게임을 시작하면 새 릴리스를 확인하고 내려받아 같은 실행에서 바로 불러옵니다. 새 빌드를 받으려고 업데이트 버튼을 누르고 재시작할 필요가 없습니다.
  • 업데이트는 먼저 시험 실행됩니다: 새 빌드는 깨끗하게 시작된 뒤에야 현재 버전이 됩니다. 시작에 실패한 빌드는 자동으로 롤백되고 다음 릴리스까지 보류되므로, 잘못된 업데이트의 대가는 망가진 설치가 아니라 한 번의 실행입니다.
  • 실행 시 업데이트 확인은 설정의 업데이트 채널과 건너뛴 버전 선택을 따르며, UserData/Quartz/Runtime/update.json에서 "Enabled": false로 완전히 끌 수 있습니다.
  • 망가진 설치를 스스로 복구합니다. 일부 설치 프로그램이 모드 폴더를 Runtime/ 폴더 없이 풀어 놓아 "no usable runtime — reinstall Quartz" 오류로 로드가 거부되던 문제를, 이제 부트스트랩이 감지해 릴리스를 다시 내려받아 알아서 복원합니다.

이전 베타에서 업그레이드하기

  • 평소처럼 게임 안에서 업데이트하거나 새 zip을 설치 위에 풀면 됩니다. 첫 재시작에서는 이전 버전이 마지막으로 한 번 실행되면서 새 구조가 자리를 잡고, 두 번째 재시작부터는 부트스트랩으로 실행되며 업데이트가 자동으로 이뤄집니다.
  • 수동 설치라면 zip의 Mods/Quartz.Bootstrap.dllUserData/Quartz/ 폴더를 복사하세요. 이전 Mods/Quartz.dll은 자동으로 제거됩니다.
  • 이유: Mods/에는 작은 Quartz.Bootstrap.dll만 남고, 모드 본체는 UserData/Quartz/Runtime/ 아래 버전별 폴더에 들어갑니다(UnityModManager는 모드 폴더의 Runtime/ 아래). 설정·프로필·모듈은 그대로 유지되고, 번역 같은 배포 파일은 자동으로 갱신됩니다.

새 기능

  • 독립형 키 뷰어 — 전체 Quartz를 설치하지 않고 키 뷰어만 MelonLoader 또는 UnityModManager에서 사용할 수 있습니다. 전용 파일과 업데이터를 쓰고, 한 페이지로 바로 열리며, Key Limiter 모듈이 필요 없습니다.
  • 키 뷰어 JavaScript 플러그인 — DM Note 방식의 .js 또는 .mjs 플러그인을 불러올 수 있습니다. 제한된 실행 환경에서 HTML/CSS/SVG 패널, 키 입력 훅, 실시간 통계, 타이머, 설정, 플러그인별 저장소를 지원합니다. JavaScript는 기본적으로 꺼져 있으므로 신뢰하는 플러그인만 불러오세요.
  • 키 뷰어 요소 이미지 — 요소에 대기/누름 상태별 커스텀 이미지를 cover/contain/fill/none 맞춤 방식으로 지정할 수 있습니다. 내보내기에는 그 이미지가 파일 안에 함께 담겨(중복 제거, 용량 제한) 다른 사람의 컴퓨터에서도 똑같이 보입니다.
  • 차트 Key Limiter — 레벨 에디터에서 차트에 Key Limiter 이벤트를 넣어, 특정 타일부터 사용할 수 있는 키 개수를 제한하고 초과 입력 시 동작을 고를 수 있습니다. requiredModsKeyLimiter가 있는 레벨도 모듈이 켜져 있으면 정상적으로 열립니다.
  • 애드온 툴킷 — 애드온이 의존성과 로드 순서를 선언하고, 컴파일 참조 없이 서로 호출하고, GitHub에서 업데이트를 확인하고, 자체 번역을 제공하고, 아이콘과 함께 사이드바 최상단 탭을 가지고, 표준 헤더 카드를 그리고, 속성을 붙인 설정 클래스에서 자동 생성된 설정 폼을 원하는 탭에 배치할 수 있습니다. 예제: examples/AddonExample.
  • 필터 예외(이펙트 리무버, 간단 모드) — "필터 비활성화"를 적용해도 유지할 필터를 고를 수 있습니다.
  • 반응형 색상 선택기 — 색상 설정이 작은 팝업으로 열리고 16진수 값과 각 채널을 직접 조절할 수 있으며, 높이가 낮은 화면을 위한 넓은 색상 선택기 옵션이 있습니다.
  • 노래 제목 서식 제거 — 차트 제목의 리치 텍스트 태그와 줄바꿈을 지워 일반 텍스트로 표시합니다.
  • 외부 리플레이 렌더러가 키 뷰어를 구동할 수 있습니다: 캡처의 타임라인이 실제 시계를, 주입된 입력이 키보드를 대신합니다.

개선

  • 릴리스 후보(RC) 업데이트 채널이 사라졌습니다 — 선택지는 안정판·베타·알파입니다. RC를 선택했던 설치는 안정판을 따릅니다.
  • 패널 크기를 화면 비율에 맞춰 저장하고, 해상도가 바뀌면 화면 안으로 다시 맞추며, 프로필을 적용하면 다시 불러옵니다. 텍스트 입력 중에는 메뉴 단축키가 작동하지 않습니다.
  • 키 바인딩 캡처를 단일 소유자가 중재해 두 컨트롤이 같은 입력을 두고 충돌하지 않으며, Key Limiter 없이도 오른쪽 보조키 같은 훅 전용 키가 계속 동작합니다.
  • 충돌이나 전원 차단으로 중단된 설정 저장을 다음 실행 시 복구합니다.
  • 키 뷰어의 "숨김" 플래그가 "비활성화"로 바뀌었고, 비활성화된 요소도 캔버스에서 계속 선택할 수 있어 다시 켤 수 있습니다.
  • 한국어·중국어 번역을 전반적으로 갱신했습니다.

성능

  • 오버레이 설정(곡 제목, 콤보, 판정, 진행 바, 연습)이 키 입력마다 설정 파일을 쓰지 않고 저장을 모아서 처리합니다.
  • 메뉴 검색이 글자마다 버튼을 최대 40개씩 다시 만드는 대신 결과 줄을 재사용합니다.
  • 키 뷰어 JS 플러그인이 ...
Read more

v2.0.0-alpha-118 — Addon Header & Settings Embed

Choose a tag to compare

@kkorenn kkorenn released this 17 Aug 06:22

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


New

  • Addons can draw a header card: one call renders the name, description, author and icon of an addon as the same card the built-in pages use, so an addon's own tab opens looking like the rest of the menu instead of a bare list. The icon can be passed as a file path or as raw PNG bytes.
  • Addons can embed their settings form anywhere: the auto-generated form built from an addon's settings class is no longer limited to its own settings tab — it can now be dropped into any custom tab, next to whatever else that tab draws.

한국어

신규

  • 애드온에 헤더 카드 추가: 애드온의 이름, 설명, 제작자, 아이콘을 기본 페이지와 똑같은 카드로 한 번에 그릴 수 있습니다. 애드온 전용 탭도 메뉴의 나머지 부분과 같은 모습으로 열립니다. 아이콘은 파일 경로나 PNG 바이트로 넘길 수 있습니다.
  • 애드온 설정 폼을 원하는 곳에 배치: 설정 클래스에서 자동으로 만들어지는 설정 폼이 더 이상 전용 설정 탭에만 묶여 있지 않습니다. 이제 직접 만든 탭 안에, 그 탭의 다른 내용과 나란히 넣을 수 있습니다.

alpha build 118 of 2.0.0. · v2.0.0-alpha-117…v2.0.0-alpha-118

Latest beta: v2.0.0-beta-5 — Self-Updating Install

Choose a tag to compare

@kkorenn kkorenn released this 02 Aug 07:40

Rolling pointer to the newest beta build — right now that is v2.0.0-beta-5 — Self-Updating Install.

These links always serve the newest beta build:


Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


Beta catches up with ten alpha builds at once. The headline is that Quartz now updates itself — please read the upgrading section, the install layout changed.

Quartz updates itself now

  • When the game starts, Quartz checks for a new release, downloads it, and loads it in the same launch. No more clicking update and restarting to pick up a build.
  • Updates are trial-run before they stick: a new build only becomes your current one after it starts cleanly. A build that fails to start is rolled back automatically and held back until the next release, so a bad update costs one launch instead of a broken install.
  • Launch-time checks follow the update channel and skipped-version choices from Settings, and can be turned off entirely with "Enabled": false in UserData/Quartz/Runtime/update.json.
  • A broken install repairs itself: some installers extract the mod folder without its Runtime/ folder, which used to leave Quartz refusing to load with "no usable runtime — reinstall Quartz". The bootstrap now notices, re-downloads its own release, and restores the missing runtime on its own.

Upgrading from an older beta

  • Update from inside the game as usual, or extract the new zip over your install. After the first restart your previous version runs one last session while the new layout takes over; from the second restart onward you are on the bootstrap and updates happen on their own.
  • Installing by hand: copy Mods/Quartz.Bootstrap.dll and the UserData/Quartz/ folder from the zip. The old Mods/Quartz.dll is removed automatically.
  • Why: Mods/ now carries only a small Quartz.Bootstrap.dll, and the mod itself lives in versioned folders under UserData/Quartz/Runtime/ (for UnityModManager, under the mod folder's Runtime/). Settings, profiles and modules are untouched; shipped files like translations refresh automatically.

New

  • Standalone Key Viewer — install the Key Viewer by itself for MelonLoader or UnityModManager. Its own files, its own updater, opens directly to one focused page, and no longer requires the Key Limiter module.
  • Key Viewer JavaScript plugins — import DM Note-style .js or .mjs plugins. The sandboxed engine supports declarative HTML/CSS/SVG panels, keyboard hooks, live stats, timers, settings, and private plugin storage. JavaScript stays off by default; only import plugins you trust.
  • Key Viewer element images — elements can show a custom image for idle and pressed states, with a cover/contain/fill/none fit. Exports carry those images inside the file (de-duplicated, size-capped) so a shared layout looks the same on someone else's machine.
  • Chart Key Limiter — charts can carry a Key Limiter event in the level editor: cap how many distinct keys may be used from a tile onward, and pick what an extra press does. Levels listing KeyLimiter in requiredMods load normally while the module is on.
  • Addon toolkit — addons can declare dependencies and load order, call each other with no compile-time reference, check GitHub for updates, ship their own translations, take a top-level sidebar entry with an icon, draw a standard header card, and get a whole settings form auto-generated from an attributed settings class and placed in any tab they like. Worked example: examples/AddonExample.
  • Excluded Filters (Effect Remover, Simple mode) — choose filters that survive "Disable Filters".
  • Responsive color picker — colors open in a compact popup with direct hex and channel controls, plus a Wide color picker option for shorter displays.
  • Song Title rich-text stripping — remove formatting tags and line breaks when a chart title should render as plain text.
  • Key Viewer can be driven by an external replay renderer: the capture's timeline replaces the wall clock and injected presses replace the keyboard.

Improved

  • The Release Candidate update channel is gone — the picker now offers Stable, Beta, and Alpha. Installs that had RC selected follow Stable.
  • Panel size is saved proportionally, reclamped when the display changes, and reloaded when a profile is applied. The menu shortcut stays inactive while you type into a text field.
  • Key binding capture is arbitrated by a single owner, so two controls can never fight over the same press, and hook-only keys such as right-side modifiers keep working without Key Limiter.
  • Settings writes interrupted by a crash or power loss are recovered on the next launch.
  • Key Viewer's "Hidden" flag is now "Disabled", and disabled elements stay clickable so you can turn them back on.
  • Korean and Chinese translations updated throughout.

Performance

  • Overlay settings (Song Title, Combo, Judgement, Progress Bar, Practice) batch their saves instead of writing the config file on every keystroke.
  • Menu search reuses result rows while you type instead of rebuilding up to 40 buttons per character.
  • Key Viewer JS plugins no longer allocate per frame, and the layout editor's marquee selection scales to large layouts.
  • Editor: BGA mode no longer re-hides planets every frame through slow reflection, and the floor readout's change detection is throttled.
  • TUF: the installed-level library loads much faster with many levels installed.
  • The color picker reuses its wheel pixel buffer instead of reallocating on every repaint.

Fixed

  • Effect Remover: removing Hall of Mirrors no longer leaves stale frame trails behind.
  • UI Hider: hiding beta-only UI could silently stop working after a scene change; it recovers on its own now.
  • Profile names can no longer escape the profiles folder, and module removal stays confined to the modules folder.
  • A module whose enable step throws is fully unwound instead of leaving its patches installed.
  • Sliders accept direct numeric values, clamp correctly with only one bound set, and fire their completion callback once per gesture. Text inputs no longer send re-entrant change notifications.
  • UI controls ignore delayed callbacks after teardown, and the first-run helper no longer duplicates or survives a menu rebuild.
  • Live panel text no longer wraps and overflows its box.
  • Map time no longer counts the song offset twice.
  • The Discord auto-deafen worker shuts down within a bounded window.
  • Current game release detection and Harmony compatibility work across both supported loaders.

한국어

베타가 알파 10개 빌드를 한 번에 따라잡습니다. 핵심은 Quartz가 스스로 업데이트한다는 점입니다 — 설치 구조가 바뀌었으니 업그레이드 항목을 꼭 읽어 주세요.

Quartz가 스스로 업데이트합니다

  • 게임을 시작하면 새 릴리스를 확인하고 내려받아 같은 실행에서 바로 불러옵니다. 새 빌드를 받으려고 업데이트 버튼을 누르고 재시작할 필요가 없습니다.
  • 업데이트는 먼저 시험 실행됩니다: 새 빌드는 깨끗하게 시작된 뒤에야 현재 버전이 됩니다. 시작에 실패한 빌드는 자동으로 롤백되고 다음 릴리스까지 보류되므로, 잘못된 업데이트의 대가는 망가진 설치가 아니라 한 번의 실행입니다.
  • 실행 시 업데이트 확인은 설정의 업데이트 채널과 건너뛴 버전 선택을 따르며, UserData/Quartz/Runtime/update.json에서 "Enabled": false로 완전히 끌 수 있습니다.
  • 망가진 설치를 스스로 복구합니다. 일부 설치 프로그램이 모드 폴더를 Runtime/ 폴더 없이 풀어 놓아 "no usable runtime — reinstall Quartz" 오류로 로드가 거부되던 문제를, 이제 부트스트랩이 감지해 릴리스를 다시 내려받아 알아서 복원합니다.

이전 베타에서 업그레이드하기

  • 평소처럼 게임 안에서 업데이트하거나 새 zip을 설치 위에 풀면 됩니다. 첫 재시작에서는 이전 버전이 마지막으로 한 번 실행되면서 새 구조가 자리를 잡고, 두 번째 재시작부터는 부트스트랩으로 실행되며 업데이트가 자동으로 이뤄집니다.
  • 수동 설치라면 zip의 Mods/Quartz.Bootstrap.dllUserData/Quartz/ 폴더를 복사하세요. 이전 Mods/Quartz.dll은 자동으로 제거됩니다.
  • 이유: Mods/에는 작은 Quartz.Bootstrap.dll만 남고, 모드 본체는 UserData/Quartz/Runtime/ 아래 버전별 폴더에 들어갑니다(UnityModManager는 모드 폴더의 Runtime/ 아래). 설정·프로필·모듈은 그대로 유지되고, 번역 같은 배포 파일은 자동으로 갱신됩니다.

새 기능

  • 독립형 키 뷰어 — 전체 Quartz를 설치하지 않고 키 뷰어만 MelonLoader 또는 UnityModManager에서 사용할 수 있습니다. 전용 파일과 업데이터를 쓰고, 한 페이지로 바로 열리며, Key Limiter 모듈이 필요 없습니다.
  • 키 뷰어 JavaScript 플러그인 — DM Note 방식의 .js 또는 .mjs 플러그인을 불러올 수 있습니다. 제한된 실행 환경에서 HTML/CSS/SVG 패널, 키 입력 훅, 실시간 통계, 타이머, 설정, 플러그인별 저장소를 지원합니다. JavaScript는 기본적으로 꺼져 있으므로 신뢰하는 플러그인만 불러오세요.
  • 키 뷰어 요소 이미지 — 요소에 대기/누름 상태별 커스텀 이미지를 cover/contain/fill/none 맞춤 방식으로 지정할 수 있습니다. 내보내기에는 그 이미지가 파일 안에 함께 담겨(중복 제거, 용량 제한) 다른 사람의 컴퓨터에서도 똑같이 보입니다.
  • 차트 Key Limiter — 레벨 에디터에서 차트에 Key Limiter 이벤트를 넣어, 특정 타일부터 사용할 수 있는 키 개수를 제한하고 초과 입력 시 동작을 고를 수 있습니다. requiredModsKeyLimiter가 있는 레벨도 모듈이 켜져 있으면 정상적으로 열립니다.
  • 애드온 툴킷 — 애드온이 의존성과 로드 순서를 선언하고, 컴파일 참조 없이 서로 호출하고, G...
Read more

v2.0.0-alpha-117 — Portable Exports

Pre-release

Choose a tag to compare

@kkorenn kkorenn released this 15 Aug 12:11

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


New

  • Key Viewer exports embed local images: a layout that references image files on your disk now carries them inside the export itself (de-duplicated, size-capped), so it looks the same on someone else's machine. Web URLs still travel as links, unreadable paths are left as-is and reported, and unused embedded images are pruned from the export.

한국어

신규

  • 키뷰어 내보내기에 로컬 이미지 포함: 디스크의 이미지 파일을 참조하는 레이아웃을 내보내면 이제 이미지가 내보내기 파일 안에 함께 담겨(중복 제거, 용량 제한) 다른 사람의 컴퓨터에서도 똑같이 보입니다. 웹 URL은 그대로 링크로 유지되고, 읽을 수 없는 경로는 그대로 두고 알려주며, 사용되지 않는 포함 이미지는 내보내기에서 정리됩니다.

alpha build 117 of 2.0.0. · v2.0.0-alpha-116…v2.0.0-alpha-117

v2.0.0-alpha-116 — Key Viewer Element Images

Choose a tag to compare

@kkorenn kkorenn released this 15 Aug 11:55

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


New

  • Addon top-level tabs: your addon can now get its own sidebar entry (with an optional icon) instead of only living under Modules.
  • Addon restart flag: addons that can't toggle cleanly at runtime can mark themselves so the Addons page shows a "restart needed" notice.
  • Key Viewer element images: elements can show a custom image for idle and pressed states, with a cover/contain/fill/none fit.

Improved

  • Addon Harmony patches now apply after Quartz's own patches on the same method, so addon prefixes/transpilers see Quartz's setup reliably.
  • Addon numeric settings support nullable types (int?/float?/double?) — clear the field to unset them.
  • Key Viewer's "Hidden" flag is renamed to "Disabled", and disabled elements stay clickable on the canvas so you can turn them back on.

Fixed

  • Live panel text no longer wraps and overflows its box.

한국어

신규

  • 애드온 최상단 탭: 애드온이 이제 Modules 아래가 아니라 사이드바에 자신만의(아이콘 지정 가능) 항목을 등록할 수 있습니다.
  • 애드온 재시작 플래그: 런타임에 깔끔하게 켜고 끌 수 없는 애드온은 이를 표시할 수 있으며, Addons 페이지에 "재시작 필요" 안내가 표시됩니다.
  • 키뷰어 요소 이미지: 요소에 대기/누름 상태별 커스텀 이미지를 cover/contain/fill/none 맞춤 방식으로 지정할 수 있습니다.

개선

  • 애드온 Harmony 패치가 이제 같은 메서드에서 Quartz 자체 패치 이후에 적용되어, 애드온의 prefix/transpiler가 Quartz의 설정을 안정적으로 볼 수 있습니다.
  • 애드온 숫자 설정이 nullable 타입(int?/float?/double?)을 지원합니다 — 필드를 비우면 값이 비워집니다.
  • 키뷰어의 "숨김" 플래그가 "비활성화"로 이름이 바뀌었고, 비활성화된 요소는 캔버스에서 계속 선택 가능해 다시 켤 수 있습니다.

수정

  • 라이브 패널 텍스트가 더 이상 줄바꿈되어 패널 밖으로 넘치지 않습니다.

alpha build 116 of 2.0.0. · v2.0.0-alpha-115…v2.0.0-alpha-116

v2.0.0-alpha-115 — Runtime Recovery

Pre-release

Choose a tag to compare

@kkorenn kkorenn released this 15 Aug 06:17

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


Fixed

  • A broken install now repairs itself. Some installers extract the mod folder without its Runtime/ folder, which left Quartz refusing to load with "no usable runtime — reinstall Quartz". The bootstrap now notices that, re-downloads its own release from GitHub, and restores the missing runtime by itself — the game just starts with Quartz working. If you hit that error on an earlier build, installing this release once by hand fixes it for good.

한국어

수정

  • 망가진 설치를 이제 스스로 복구합니다. 일부 설치 프로그램이 모드 폴더를 Runtime/ 폴더 없이 풀어 놓아 Quartz가 "no usable runtime — reinstall Quartz" 오류와 함께 로드를 거부하는 문제가 있었습니다. 이제 부트스트랩이 이를 감지하면 자신의 릴리스를 GitHub에서 다시 내려받아 빠진 런타임을 알아서 복원합니다 — 게임을 켜면 Quartz가 그대로 동작합니다. 이전 빌드에서 이 오류를 겪었다면 이번 릴리스를 한 번만 수동 설치하면 이후로는 재발하지 않습니다.

alpha build 115 of 2.0.0. · v2.0.0-alpha-114…v2.0.0-alpha-115

v2.0.0-alpha-114 — Performance Sweep

Pre-release

Choose a tag to compare

@kkorenn kkorenn released this 15 Aug 03:04

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


Improved

  • The Release Candidate update channel is gone — the channel picker now offers Stable, Beta, and Alpha. Installs that had RC selected automatically follow Stable.

Performance

  • Overlay settings (Song Title, Combo, Judgement, Progress Bar, Practice) no longer write their config file on every keystroke or toggle — saves are batched like the rest of the mod.
  • Menu search reuses its result rows while you type instead of destroying and rebuilding up to 40 buttons per character.
  • Key Viewer JS plugins: per-frame timer and event handling plus panel layout no longer allocate garbage, and plugin storage calls skip a repeated regex scan.
  • Key Viewer layout editor: marquee drag selection now scales to large layouts.
  • Editor: BGA mode no longer re-hides planets every frame through slow reflection, and the floor readout's change detection is throttled — selecting thousands of tiles no longer costs a per-frame hash of every one of them.
  • TUF: the installed-level library loads much faster with many levels installed (indexed lookups, one sort per scan instead of one per level).

한국어

개선

  • 릴리스 후보(RC) 업데이트 채널이 사라졌습니다 — 채널 선택지는 이제 안정판·베타·알파입니다. RC를 선택했던 설치는 자동으로 안정판을 따릅니다.

성능

  • 오버레이 설정(곡 제목, 콤보, 판정, 진행 바, 연습)이 더 이상 키 입력이나 토글마다 설정 파일을 쓰지 않습니다 — 다른 모듈처럼 저장이 모아서 처리됩니다.
  • 메뉴 검색이 글자를 입력할 때마다 버튼을 최대 40개씩 부수고 다시 만드는 대신 결과 줄을 재사용합니다.
  • 키 뷰어 JS 플러그인: 프레임마다 돌아가는 타이머·이벤트 처리와 패널 레이아웃이 더 이상 가비지를 만들지 않고, 플러그인 저장소 호출이 반복적인 정규식 검사를 건너뜁니다.
  • 키 뷰어 레이아웃 편집기: 드래그 범위 선택이 큰 레이아웃에서도 부드럽게 동작합니다.
  • 에디터: BGA 모드가 더 이상 매 프레임 느린 리플렉션으로 행성을 다시 숨기지 않고, 타일 정보 표시의 변경 감지가 조절되어 수천 개 타일을 선택해도 프레임마다 전부 해시하지 않습니다.
  • TUF: 설치된 레벨이 많아도 라이브러리를 훨씬 빠르게 불러옵니다(색인 조회, 레벨마다가 아니라 스캔당 한 번만 정렬).

alpha build 114 of 2.0.0. · v2.0.0-alpha-113…v2.0.0-alpha-114

v2.0.0-alpha-113 — Self-Updating Bootstrap

Choose a tag to compare

@kkorenn kkorenn released this 15 Aug 00:43

Download

Quartz.zip MelonLoader — start here
QuartzUmm.zip UnityModManager
QuartzKeyViewer.zip Standalone Key Viewer — MelonLoader
QuartzKeyViewerUmm.zip Standalone Key Viewer — UnityModManager

Every feature is included; you pick what to turn on from Modules inside the game. Step-by-step instructions are in the install guide.

The other files below are for the mod itself — you don't need to download them.


New

  • Quartz now updates itself. When the game starts, it checks for a new release, downloads it, and loads it in the same launch — no more clicking update and restarting to get new builds. Your settings, profiles, and modules are untouched; shipped files like translations refresh automatically.
  • Updates are trial-run before they stick: a new build only becomes your current one after it starts cleanly. A build that fails to start is rolled back automatically and held back until the next release, so a bad update costs one launch instead of a broken install.
  • Launch-time checks follow your update channel and skipped-version choices from Settings, and can be switched off entirely by setting "Enabled": false in UserData/Quartz/Runtime/update.json.

Improved

  • The install layout changed to make this possible: Mods/ now carries only a small Quartz.Bootstrap.dll, and the mod itself lives in versioned folders under UserData/Quartz/Runtime/ (for UnityModManager, under the mod folder's Runtime/). The install zips, the in-game updater, and the new launch-time updater all use this same layout.

Upgrading from an older build

  • Update from inside the game as usual, or extract the new zip over your install. After the first restart your previous version runs one last session while the new layout takes over; from the second restart onward you are on the bootstrap and updates happen on their own.
  • If you install manually: copy Mods/Quartz.Bootstrap.dll and the UserData/Quartz/ folder from the zip. The old Mods/Quartz.dll is removed automatically.

한국어

새 기능

  • Quartz가 이제 스스로 업데이트합니다. 게임을 시작하면 새 릴리스를 확인하고 내려받아 같은 실행에서 바로 불러옵니다 — 새 빌드를 받으려고 업데이트 버튼을 누르고 재시작할 필요가 없습니다. 설정·프로필·모듈은 그대로 유지되고, 번역 같은 배포 파일은 자동으로 갱신됩니다.
  • 업데이트는 먼저 시험 실행됩니다: 새 빌드는 깨끗하게 시작된 뒤에야 현재 버전이 됩니다. 시작에 실패한 빌드는 자동으로 롤백되고 다음 릴리스가 나올 때까지 보류되므로, 잘못된 업데이트의 대가는 망가진 설치가 아니라 한 번의 실행입니다.
  • 실행 시 업데이트 확인은 설정의 업데이트 채널과 건너뛴 버전 선택을 따르며, UserData/Quartz/Runtime/update.json에서 "Enabled": false로 완전히 끌 수 있습니다.

개선

  • 이를 위해 설치 구조가 바뀌었습니다: Mods/에는 작은 Quartz.Bootstrap.dll만 남고, 모드 본체는 UserData/Quartz/Runtime/ 아래 버전별 폴더에 들어갑니다(UnityModManager는 모드 폴더의 Runtime/ 아래). 설치 zip, 게임 내 업데이터, 새 실행 시 업데이터가 모두 같은 구조를 사용합니다.

이전 빌드에서 업그레이드하기

  • 평소처럼 게임 안에서 업데이트하거나 새 zip을 설치 위에 풀면 됩니다. 첫 재시작에서는 이전 버전이 마지막으로 한 번 실행되면서 새 구조가 자리를 잡고, 두 번째 재시작부터는 부트스트랩으로 실행되며 업데이트가 자동으로 이뤄집니다.
  • 수동 설치라면 zip의 Mods/Quartz.Bootstrap.dllUserData/Quartz/ 폴더를 복사하세요. 이전 Mods/Quartz.dll은 자동으로 제거됩니다.

alpha build 113 of 2.0.0. · v2.0.0-alpha-112…v2.0.0-alpha-113