[R12 추가 변경]
- 계산 기준/수량 배분 숫자칸을 직접 타이핑할 때 포커스를 잃지 않습니다. 화살표 버튼을 쓰지 않아도 숫자를 연속 입력할 수 있습니다.
- 입력 중 기본 자동 잔여, 다른 대체/상위 재료 배분, 오른쪽 전체 필요 수량이 즉시 갱신됩니다. Enter 또는 다른 곳 클릭 시 최종 화면을 정리합니다.
- 최근/관련 레시피 최대 15개를 오른쪽 아래가 아니라 검색 조건 바로 아래의 상단 고정 가로 목록으로 이동했습니다. 긴 하위 레시피를 보고 있어도 화면 위에 유지되며 가로 스크롤로 선택할 수 있습니다.

검은사막 연금·요리·가공 재료 계산기 R11

[실행]
폴더 맨 위의 "검은사막 재료계산기 실행.bat" 파일만 더블클릭하세요.
Windows에 설정된 기본 브라우저에서 계산기가 열립니다.

[종료]
계산기 브라우저 탭/창을 닫으면 종료 신호를 즉시 보내고 약 1~2초 내에 로컬 PowerShell 도우미와 8765 포트를 정리하도록 조정했습니다.
새로고침은 새 heartbeat가 바로 들어오므로 도우미가 유지됩니다.

[제작 횟수]
상단 검색 영역의 제작 횟수뿐 아니라, 선택한 최상위 레시피 카드 오른쪽의 "선택 제작" 숫자 입력창에서도 바로 바꿀 수 있습니다.

[대체/상위 재료 자동 수량 배분]
추가 재료를 여러 개 넣을 수 있습니다. 마지막으로 수정한 추가 재료를 우선합니다.
예: 밀 5 필요 → 보리 2 입력 = 밀 3 + 보리 2 → 옥수수 4 입력 = 옥수수 4를 우선하고 기존 보리를 1로 자동 조정, 밀은 0.
다시 보리 수량을 수정하면 보리가 우선이 되어 다른 추가 재료와 기본 재료가 자동 조정됩니다.
상위 재료는 환산 배수를 반영하고, 아이템 단위 때문에 정확한 환산이 불가능하면 최소 충족 수량과 환산 잉여를 표시합니다.

[하위 레시피 이동 / 최근 레시피]
- 각 하위 레시피 카드 오른쪽의 "↑ 최상단" 버튼으로 바로 위로 이동할 수 있습니다.
- 하위 레시피 이름 또는 하위 제작 가능한 재료 이름을 클릭하면 그 레시피를 최상위 레시피로 열 수 있습니다.
- 오른쪽 "빠른 이동 · 최근/관련 레시피"에 최대 15개가 표시됩니다.
- 레시피별 제작 횟수와 대체/상위 재료 배분 설정은 저장되어 다시 선택할 때 복원됩니다.

[게임 DB 새로 만들기]
데이터 관리 → "게임 폴더 선택 → JSON 자동 생성 및 불러오기"를 누릅니다.
1) 검은사막 설치 폴더만 선택합니다. (Paz\pad00000.meta가 있는 최상위 폴더)
2) DB 덮어쓰기 경고창에서 확인을 누릅니다.
3) 별도 저장 폴더를 묻지 않고 _program 폴더의 아래 3개 파일을 자동 교체합니다.
   - items.json
   - recipes.json
   - item_names_ko.json
4) 생성이 끝나면 현재 계산기에 바로 불러옵니다.

주의: 압축을 Program Files처럼 일반 사용자에게 쓰기 권한이 없는 위치에 풀면 DB 덮어쓰기가 실패할 수 있습니다. 바탕 화면, 문서, D:\Tools 같은 쓰기 가능한 폴더를 권장합니다.


[R13 변경]
- 제작물 검색 결과에서 같은 제작물 중복 표시 제거
- 전체 필요 수량의 복사/CSV/DB 백업 버튼을 상단으로 이동
- 대체/상위 전용 요약 탭 제거(실제 배분 수량은 최종 원재료 등에 자동 반영)
- CSV 저장 시 최종 원재료/직접 투입/중간재 제작을 한 파일에 모두 저장
- 현재 탭 복사 시 탭 이름 + 재료명/수량만 복사


[R14 변경]
- 게임 폴더 선택 및 DB 덮어쓰기 확인 직후 데이터 관리 창에 '데이터 업데이트 중'과 경과 시간이 표시됩니다.
- 추출 → 한국어 이름 생성 → 프로그램 DB 교체 → 현재 계산기 반영이 모두 끝나면 데이터 관리 창이 자동으로 닫힙니다.
- CSV는 한 파일에 저장되며 '레시피 정보 / 최종 원재료 / 직접 투입 / 중간재 제작' 구역을 큰 구분 제목과 빈 줄로 분리합니다.


[R15 변경]
- 대체/상위 재료를 여러 개 선택한 뒤에도 기본 재료 수량을 다시 직접 입력할 수 있습니다.
- 기본 재료를 마지막으로 수정하면 그 수량을 우선 유지하고 기존 추가 재료들이 자동 조정됩니다.
- 추가 재료를 마지막으로 수정하면 해당 재료를 우선 유지하고 기본 재료가 잔여량을 자동 조정합니다.
- 각 재료 슬롯에 '↺ 이 항목 초기화' 버튼을 추가했습니다. 누르면 해당 슬롯의 대체/상위 재료와 수량 배분을 모두 지우고 기본 재료 100%로 복원합니다.


[R16 최신 패치 보정]
- 추출 recipes.json에 남은 구형 흔적 13종 재료를 자연의 흔적으로 자동 통합합니다.
- 구형 열매류 재료를 자연의 열매로 자동 통합합니다.
- 에다니아의 비약 / 강력한 에다니아의 비약 / [파티] 조화의 영약 - 에다니아 / 불멸 버전 제작식을 추가 보정합니다.
- 열망의 향수 / 관철의 향수 / 불멸 향수, 녹음의 정수, 숨쉬는 녹음의 수정 제작식을 추가 보정합니다.
- 원/본/진/강 어둑한 파멸의 수정 간이 연금 제작식을 추가 보정합니다.
- 이 보정은 DB를 새로 생성하거나 기존 JSON을 다시 불러올 때마다 자동 적용됩니다.


[R17 새 PC 최초 실행 자동 DB 연결]
- 압축을 푼 뒤 '검은사막 재료계산기 실행.bat'만 실행하면 됩니다.
- 새 PC나 새 브라우저라 IndexedDB가 비어 있어도 _program 폴더의 items.json / recipes.json / item_names_ko.json을 자동으로 읽습니다.
- 전체 DB를 최신 패치 보정한 뒤 자동으로 IndexedDB에 저장하고 그 다음 제작물 목록을 표시합니다.
- 따라서 첫 실행 시 데이터 관리에서 JSON을 수동 선택할 필요가 없습니다.
- 저장 DB가 손상되었거나 레시피/아이템 수가 지나치게 적은 경우에도 프로그램 폴더 DB를 자동으로 다시 연결합니다.


[R18 최신 DB / 재료 검색]
- 검색창이 '제작물 / 재료 검색'으로 변경되었습니다.
- 검색어가 있을 때는 제작 결과물뿐 아니라 원재료, 채집물, 거점 재료, 전리품도 검색합니다.
- 띄어쓰기를 무시합니다. 예: 충만한창공의정수 → 충만한 창공의 정수
- 2024년 간소화로 삭제된 구형 흔적/열매/정수는 검색 결과에서 숨기고 현재 재료로 치환합니다.
  · 구형 흔적 → 자연의 흔적
  · 구형 열매 → 자연의 열매
  · 구형 정수(홍염/풍요/태양/매혹/마력/무결/파괴) → 자연의 정수
- 델로티아 정수, 죽은 나무 정수, 툰타의 정수, 카프라스의 정수, 녹음의 정수 등 고유 정수는 통합 대상이 아닙니다.
- 제작식이 없는 원재료를 클릭하면 '재료 정보' 화면에서 해당 재료를 사용하는 레시피를 확인할 수 있습니다.
- 에다니아 채집/거점 재료(카프라스 나무 원목/수액, 수정 원석, 말린 어종 등)도 검색할 수 있습니다.
- 추가 최신 보정: 충만한 창공의 정수, 생명의 정수, 툰타의 정수, 가크투낙 등.


[R19 실행/종료 복구]
- 더 이상 고정 포트 8765를 사용하지 않습니다. 실행할 때마다 Windows가 비어 있는 로컬 포트를 자동으로 선택합니다.
- 이전 실행에서 PowerShell/Console Window Host가 비정상적으로 남아도 새 실행의 포트와 충돌하지 않습니다.
- 시작 시 다른 프로그램은 건드리지 않고 BDO_Calculator_Helper.ps1로 실행된 이전 BDO 계산기 PowerShell 프로세스만 자동 정리합니다.
- 최상위 '검은사막 재료계산기 실행.bat'를 실행하면 BAT 창은 즉시 종료됩니다.
- 실제 도우미는 _program\BDO_Launcher.vbs를 통해 숨김 실행되므로 별도의 Console Window Host 창을 유지할 필요가 없습니다.
- 계산기 브라우저 탭/창을 닫으면 약 0.7초 후 도우미가 종료되도록 조정했습니다.
- Console Window Host를 작업 관리자에서 수동으로 모두 종료할 필요가 없습니다.


[R20 Windows Script Host 오류 수정]
- R19의 BDO_Launcher.vbs가 UTF-8 BOM으로 저장되어 일부 Windows Script Host에서
  '줄 1, 문자 1, 유효하지 않은 문자입니다. 800A0408' 오류가 발생할 수 있었습니다.
- R20은 BDO_Launcher.vbs를 ASCII(무 BOM)로 저장합니다.
- 최상위 '검은사막 재료계산기 실행.bat'만 더블클릭하면 됩니다.


[R21 브라우저가 뜨지 않는 문제 수정]
- R20 메인 PowerShell 시작 줄에 실제 줄바꿈 대신 `r`n 문자열이 들어가 도우미가 즉시 종료되는 오류를 수정했습니다.
- R21은 BDO_Helper_Wrapper.ps1이 메인 도우미를 같은 PowerShell 프로세스 안에서 실행합니다.
- 시작/문법 오류가 생기면 _program\BDO_startup_error.log에 상세 원인을 저장하고 오류창을 띄웁니다.
- 기본 브라우저 URL 실행이 실패하면 Explorer URL handler로 한 번 더 실행합니다.
- 동적 포트 자동 선택은 그대로 유지됩니다.


[R22 제작노트 검색/가공소/획득처]
- 검색 결과는 게임 클라이언트 shownInNote 플래그를 우선 사용합니다.
- 퀘스트/지식/구형 콘텐츠용 아이템은 일반 검색 결과에서 제외됩니다.
- '열매' 검색은 구형 열매와 길드 전용 항목을 제외해 현재 제작노트 항목 위주로 표시합니다.
- '카프라스' 검색은 카프라스의 필서/고서 같은 퀘스트·장비용 항목을 제외하고 제작노트 재료를 우선 표시합니다.
- '야만' 검색은 구형 야만의 흔적 및 [야만] 전용 함정을 제외하고 현재 영약 항목을 우선 표시합니다.
- 한 글자 '피' 검색은 피아자/피쉬/피리 같은 문자열이 아니라 혈액 재료만 표시합니다.
- 사슴 피 등 대체 재료의 사용 레시피도 대체 그룹을 포함해 계산합니다.
- 말린 어종은 말리기 레시피를 자동 보정합니다.
- 포장된 말린 어종은 생선 가공소: 말린 어종 10 + 블랙스톤 가루 1로 보정합니다.
- 카프라스 나무 널빤지/합판/견고한 합판 및 카프라스의 돌 기본 가공식을 보정합니다.
- 기초 재료를 선택하면 아이템 설명의 How to Obtain을 한국어 방식으로 요약해 표시합니다.


[R23 아이템 설명 기반 제작노트 복구]
- recipes.json에 없는 레시피도 현재 items.json의 How to Obtain / Materials 형식을 분석해 자동 복구합니다.
- 야만의 영약: 위니 정령의 비약 3 + 러니 정령의 비약 3 + 나선의 비약 3 + 저무는 달의 눈물 1.
- 불멸 : 야만의 영약 및 [이벤트] 불멸 : 야만의 영약: 타락한 불멸의 오일 1 + 야만의 영약 1 기본 제작식을 아이템 설명에서 복구합니다.
- 2026 대량 간이연금: 불멸 영약/향수의 기존 재료 10배 + 이벨랍의 정수 1, 산출량 10개.
- 결정화된 종말의 기운 사용처를 강 새벽의 수정 제작 / 증폭된 광명석 제작으로 그룹 표시합니다.
- 늑대 고기처럼 'Hunt a wolf and butcher it.' 형식은 '늑대를 수렵한 뒤 도축'으로 표시합니다.
- 획득처 번역 규칙이 없는 영어 문장은 원문을 그대로 출력하지 않고 한국어 안내 문구로 표시합니다.
- 정확히 '결정화된' 검색 시 현재 제작노트 예시에 맞춰 '결정화된 종말의 기운'만 표시합니다.


[R24 검색 성능 / 제작노트 사용처]
- 검색 성능을 위해 DB 로딩 시 검색 인덱스, 출력 레시피 인덱스, 재료 사용처 인덱스를 한 번만 생성합니다.
- 검색할 때마다 recipes 5천여 개를 반복 순회하거나 각 검색 결과별로 사용처를 다시 계산하지 않습니다.
- 키 입력은 90ms 디바운스 처리하며 검색 결과는 최초 120개만 렌더링하고 아래로 스크롤할 때 120개씩 추가합니다.
- 전체 제작물 목록은 계속 접근 가능하지만 한 번에 5천여 DOM 행을 생성하지 않아 CPU/팬 부하를 줄였습니다.
- 재료 상세 화면에서 '획득 방법'과 '사용처 / 제작노트'를 분리합니다.
- 아이템 description의 Usage # / Crafting Method / Materials를 직접 분석하여 사용처를 보여줍니다.
- 결정화된 종말의 기운:
  · 획득 방법: 에다니아 사냥터 및 에다니아 우두머리 토벌 콘텐츠
  · 사용처 1: 강 새벽의 수정 - 진 새벽의 수정(동일 종류) 1 + 결정화된 종말의 기운 100 + 마력의 파편 300 + 마력의 광명석 결정 500
  · 사용처 2: 증폭된 광명석 - 광명석(동일 종류) 1 + 결정화된 종말의 기운 30 + 마력의 파편 50 + 마력의 광명석 결정 100


[R25 제작노트 획득 방법 / 사용처]
- 획득 방법을 한 줄로 덮어쓰지 않고 여러 경로로 표시합니다.
- 다른 아이템의 Usage # / Crafting Method / Material을 분석해 역가공 부산물 획득도 자동 연결합니다.
- 결정화된 종말의 기운: 에다니아 사냥터/우두머리 토벌 + 강 새벽의 수정 5종 가열 획득을 함께 표시합니다.
- 여우 피: 채집(수액 채취) · 여우에게서 혈액 채취.
- 투명한 생명의 정수: 채집(수액 채취) · 나무 수액 또는 동물 혈액 채취 시 낮은 확률로 획득.
- Wise Man's Blood, Elixir of Energy, etc. → 현자의 혈액, 활력의 비약 등으로 변환합니다.
- 제작/사용/획득 정보가 없는 내부 잔존 아이템(예: 결정화된 혈액)은 검색에서 제외합니다.


[R26 요리/가공/연금 제작노트 전체 복구]
- How to Obtain과 Usage를 모두 분석해 요리/가공/연금 레시피를 복구합니다.
- Ingredients / Ingredients #1/#2 / Materials / Crafting Materials 형식을 지원합니다.
- 요리 도구, 연금술 도구, 간이 요리, 간이 연금, 가열, 빻기, 말리기, 흔들어 섞기, 장작 패기를 구분합니다.
- 간편한 차림의 크론 정식은 제작노트의 여러 간이 요리 제작식을 표시합니다.
- 야만의 영약은 위니 정령의 비약 3 + 러니 정령의 비약 3 + 나선의 비약 3 + 저무는 달의 눈물 1을 반영합니다.
- [이벤트] 불멸 : 야만의 영약 등은 일반/이벤트 재료 조합과 이벨랍의 정수 대량 제작 조합을 별도 제작식으로 표시합니다.
- 결과물에 여러 제작식이 있으면 최상위 카드의 '제작노트 제작식 N개' 메뉴에서 전환합니다.
- 소비 효과 'Gain the following effects'는 사용처/제작노트에서 제외합니다.


[R27 제작 재료 #1/#2/#3 선택]
- 같은 제작물의 Ingredients #1 / #2 / #3 또는 Materials #1 / #2를 각각 별도 제작식으로 저장합니다.
- 최상위 레시피 카드에 '제작노트 제작식 N개' 메뉴가 표시됩니다.
- 메뉴에서 다른 제작식을 선택하면 제작 횟수는 그대로 유지하면서 해당 조합으로 하위 재료/전체 필요 수량을 다시 계산합니다.
- 간편한 차림의 크론 정식:
  · 제작 재료 #1 = 기사단의 전투 식량 1 + 메디아 정식 3 + 발렌시아 정식 3 + 고대 크론의 향신료 1
  · 제작 재료 #2 = 드리간 특식 1 + 세렌디아 정식 3 + 메디아 정식 3 + 고대 크론의 향신료 1
- Special Drieghan Meal처럼 제작노트 영문명과 실제 아이템 DB 영문명이 조금 다른 경우 canonical alias로 자동 연결합니다.
- 제작노트 기반 레시피가 존재하면 오래된 extractor 추출 레시피는 제작식 선택 목록에서 제외합니다.


[R28 제작노트 누락 자동 복구]
- recipes.json 기존 레시피와 제작노트 레시피가 같으면 기존 레시피를 제작노트 제작식으로 승격합니다.
  → #1이 기존 DB에 있고 #2만 새로 복구되는 경우에도 선택창에 #1/#2가 모두 표시됩니다.
- 영문 재료명 단어 순서가 다른 경우도 토큰 비교로 자동 매칭합니다.
  → Bracken Stir-Fried Meat = Stir-Fried Bracken and Meat = 고사리 고기 볶음
  → Special Drieghan Meal = Special Drieghanese Meal = 드리간 특식
- How to Obtain 아래에 Ingredients 제목 없이 재료 x수량만 나열된 요리/연금/가공도 연속 재료 행을 읽어 복구합니다.
- 특제 오딜리타 정식처럼 기본 제작 시 확률 획득하는 특제/상위 요리·비약은 기본 레시피와 자동 연결합니다.
- 확률 산출물의 '선택 제작 횟수'는 특제 결과물 목표 수량이 아니라 기본 제작 시도 횟수 기준으로 명확히 표시합니다.
- 데이터 관리 완료 정보에 직접 제작식 / Usage 제작식 / 기존식 승격 / 확률 산출식 / 제작노트 결과물 수를 표시합니다.


[R29 레시피 목록 가나다순]
- 검색창이 비어 있을 때 전체 / 연금 / 요리 / 가공 각 분류의 제작물 목록을 한국어 이름 가나다순으로 정렬합니다.
- 분류를 바꾸어도 해당 분류의 첫 항목부터 가나다순으로 표시됩니다.
- 같은 제작물에 여러 제작식이 있는 경우 목록에는 제작물 이름이 한 번만 나오고, 제작물 선택 후 '제작노트 제작식 N개'에서 세부 제작식을 선택합니다.
- 검색어를 입력했을 때는 검색 정확도와 제작노트 우선순위를 유지하고, 우선순위가 같은 결과끼리 가나다순으로 표시합니다.


[R30 2026-08-14 제작노트 동기화]
- 프로그램에 포함된 2026-08-14 클라이언트 items.json의 shownInNote / How to Obtain / Usage를 연금·요리·가공 제작노트의 우선 데이터로 사용합니다.
- 기존 recipes.json에 없던 Processing(L) - Manufacture(공작) 제작식을 자동 복구합니다.
  · 카란다 조각상
  · 크자카 조각상
  · 누베르 조각상
  · 쿠툼 조명등
  등 현재 제작노트 Materials가 있는 공작 아이템을 동일 방식으로 처리합니다.
- 지원 방식: 공작, 간이 연금, 간이 요리, 가열하기, 빻기, 말리기, 흔들어 섞기, 장작 패기, 솎아내기, 요리 도구, 연금술 도구, 황실 요리/연금, 길드 가공.
- Ingredients / Materials / Crafting Materials, #1/#2 다중 제작식, 괄호형·한 줄형 재료를 분석합니다.
- 제작노트의 10배 대량 가공 + 블랙스톤 가루/이벨랍의 정수 및 명시형 대량 가공식도 별도 제작식으로 추가합니다.
- 제작노트의 일반 재료군:
  · "High-quality" Grain → 고급 밀/보리/옥수수/감자/고구마
  · Yellow-grade Black Magic Crystal → 현재 제작노트의 노란 등급 검은 마력의 수정
  · 광대/신수/죄인/폭군/현자의 혈액 묶음 → 각각 대체 재료로 처리합니다.
- 데이터 관리로 새 클라이언트 DB를 불러오면 R30 제작노트 레이어를 매번 다시 생성합니다.
- 데이터 관리 완료 정보에 '제작노트 점검 N종 / 미연결 N종'을 표시합니다. 미연결이 0이면 파서가 식별한 현행 연금·요리·가공 제작식은 모두 연결된 상태입니다.
