Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
OnlyKorean
GPT-6 Luna judges voice, chat and signal messages. Foreign words cause death; uncertain audio is spared. Korean input and font included. Host API key required.
By aaasda
| Last updated | 2 days ago |
| Total downloads | 66 |
| Total rating | 0 |
| Categories | AI Generated |
| Dependency string | aaasda-OnlyKorean-0.3.8 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
OnlyKorean 0.3.8
음성·채팅·신호 발신 내용을 검사하는 모드입니다. 이번에는 방장과 참가자 모두 판정 모드 ZIP을 0.3.8로 업데이트합니다. 기존 API 키는 유지합니다. 언어 모드도 함께 쓴다면 매초 전체 검색을 제거한 PureKorean 0.3.7로 따로 교체하세요.
0.3.8의 받아쓰기와 연속 발화
gpt-4o-transcribe와 gpt-4o-mini-transcribe가 각각 원음을 듣습니다. 첫 판정이 우리말이어도 두 번째 듣기와 판정을 거치며, 두 결과가 엇갈릴 때만 whisper-1로 한 번 더 확인합니다. 받아쓰기 모델에 앞선 결과나 금지 낱말을 주지 않습니다. 한국식 발음의 외래어는 들리는 한글 표기를 유지하도록 안내하며 특정 낱말 전용 사전을 새로 추가하지 않습니다.
서로 다른 받아쓰기 원문에서 같은 완전한 금지 낱말 하나 이상을 확인하고, Luna의 두 판정이 모두 0.98 이상의 확신을 보이며 말소리 검사도 통과해야 처벌합니다. 120~300ms의 짧은 말도 다른 잡음 검사를 통과하면 후보로 남깁니다. 일상 한자어는 허용하고 잡음·해석 불가는 처벌하지 않습니다.
진행 중인 두 판정 때문에 다음 말을 바로 버리지 않고 대기열에 보관합니다. 한 사람당 실행 포함 6개, 전체 대기 8개, API 동시 실행 2개와 분당 한도로 제한합니다. 음성은 시간 간격으로 버리지 않으며 글은 기존 1초 제한을 따릅니다. 한도가 찬 경우 설정창에 처리 보류를 표시하고, 죽음·새 목숨·새 판·이륙으로 무효가 된 대기 작업은 폐기합니다.
하단 판정창이나 말 기록은 추가하지 않습니다. 중앙 경고 1초 후 대상만 폭발하고 사망 사유를 ‘매국노’로 표시하는 동작은 유지합니다. 실제 사용자 마이크의 인식 성공률과 여러 사람이 접속한 실전 환경은 아직 검증하지 못했습니다.
0.3.7의 혼합 문장 판정과 경고
한국어 문장에 한글 외래어가 하나라도 있으면 위반입니다. 예를 들어 ‘저 버튼을 눌러 줘’의 ‘버튼’도 검사합니다. 각 낱말의 어원을 확인하고 두 독립 판정에서 같은 금지 낱말이 확정되면 처벌합니다. 문장의 외국어 비율, 외국말·외래어라는 분류명 차이, 다른 금지 낱말 목록의 차이로 공통 증거를 버리지 않습니다. 일상 한자어는 계속 허용하며, 잡음과 해석 불가는 처벌하지 않습니다.
낮은 평균 신뢰도의 짧은 한글 발화도 분명한 말소리·두 받아쓰기의 전체 어절 일치·두 번의 확실한 판정을 모두 거쳐 재확인합니다. 조사가 겹치거나 괄호와 복수 ‘들’이 붙은 낱말도 검사합니다. 일반 신뢰 기준은 유지합니다.
위반 대상의 화면 가운데에 **주의! 당신은 외국어를 써서 곧 터집니다!**가 뜨고, 1초 뒤 그 플레이어만 폭발해 죽습니다. 다른 플레이어에게 피해를 주지 않으며, 이때 시체의 사망 사유는 매국노입니다. 경고 중 이륙·사망·접속 해제·판정 끄기 등으로 대상이나 유효한 판정이 바뀌면 예약은 취소됩니다.
함께 배포하는 번역 모드 0.3.7
위험도 표기를 S ‘매우 위험함’, A ‘위험함’, B ‘조금 위험함’, C ‘살만함’, D ‘그정도 아님’으로 바꾸고 표시칸을 한글 문구에 맞춥니다. 이 변경은 별도 PureKorean ZIP에 들어 있습니다. 0.3.7에서는 매초 전체 장면을 검색하던 번역 작업을 이벤트와 프레임 예산에 따른 분할 탐색으로 바꿨습니다. 원본 UI 규격은 유지하며 실제 게임의 성능 개선은 아직 측정하지 못했습니다.
0.3.6의 외래어 검사
로봇 등 일부 외래어를 우리말로 허용하는 누락을 줄이도록 어원 참고자료를 제공합니다. 원문에 완전한 낱말로 있는 항목에만 적용하며, 목록에 있다는 이유만으로 처벌하지 않습니다. 첫 허용 판정이 자료와 어긋날 때 새 독립 판정으로 한 번만 재확인합니다. 다시 허용하거나 불확실하면 처벌하지 않습니다. 실제 처벌에는 Luna의 확실한 위반 판정이 두 번 필요합니다. 음성의 ‘오케이·OK·okay’에만 표기 대응을 추가했습니다. 신뢰도가 충분한 두 받아쓰기와 말소리 확인을 거치고, 두 원문을 각각 판정해 모두 위반으로 확인해야 합니다. 임의의 한글 음역과 영어를 서로 바꾸어 맞추지 않습니다. 설치 묶음의 ‘설치와 검증 안내.txt’에 세부 조건과 최종 검증 범위를 기록합니다.
설치와 열쇠
BepInExPack 5.4.2305를 먼저 설치한 뒤 r2modman에서 이 ZIP을 Import local mod로 가져오세요. 게임의 설정을 열고 오른쪽 위 우리말 지킴이 · 고르기를 누르세요. 방장만 자신의 OpenAI API 키를 붙여 넣고 저장합니다. 메인 화면과 놀이 중 설정에서 모두 열 수 있습니다. F8과 자동 팝업은 사용하지 않습니다. 키는 해당 프로필의 BepInEx/config/OnlyKorean.key에 남습니다. 배포 ZIP과 참가자에게 키를 보내지 않습니다. 기존 키 파일도 그대로 읽습니다.
0.3.5의 영어 인식
받아쓰기에서 한국어 대화라고 미리 단정하던 지시를 제거했습니다. 한국어와 영어를 들리는 원어 그대로 적습니다. 짧은 영어의 받아쓰기 신뢰도가 기존 기준에 조금 못 미치는 경우, 곧바로 버리지 않고 재확인 후보로 남깁니다. 후보는 소리 확인을 통과하고, 두 받아쓰기의 전체 낱말이 일치하며, 두 판정이 금지 낱말을 확실히 확인해야 처벌합니다. 잡음이나 엇갈린 판정은 처벌하지 않습니다. 음성의 영문 대소문자 차이는 허용하며, 두 판정이 공통으로 확인한 완전한 낱말만 처벌 근거로 남깁니다. 0.3.5에서는 한글 음역과 영어를 같은 말로 바꾸어 맞추지 않았으며, 0.3.6에서는 위에 적은 오케이 표기만 제한적으로 대조합니다. 글 판정의 증거 집합 일치 기준은 유지합니다. 설정창에서 우리말·잡음·해석 불가·판정 보류·연습 설정을 구별해 표시합니다. 하단 창과 문장 기록은 없습니다.
0.3.4의 응답 처리 수정
실제 게임에서 음성 API 응답을 받은 뒤 같은 요청 내용을 두 번 정리해 정상 받아쓰기 결과를 잃던 오류를 수정했습니다. 처리 단계별 고정 오류 안내를 표시하며 응답 원문이나 키를 로그에 남기지 않습니다. 이번 오류 때문에 API 키를 다시 입력할 필요는 없습니다.
0.3.3의 마이크 연결
각 플레이어가 게임 설정에서 저장·적용한 마이크와 실제 녹음 장치가 일치하는지 확인합니다. 선택한 장치를 찾지 못해도 다른 장치로 임의 연결하지 않습니다. 마이크를 바꾸면 소리 구독과 버퍼를 갱신합니다. 게임 설정에서 마이크를 선택한 뒤 변경 사항을 적용하세요. 말하기 단추를 놓을 때 마지막 말을 버리던 경로를 수정했습니다. 설정창에서는 원본 소리 수신 횟수·설정 적용 대기·마이크 정보를 함께 확인할 수 있습니다. 하단 창이나 문장 기록은 추가하지 않습니다.
규칙
착륙 완료 후부터 이륙 전까지만 검사합니다. 영어·외국어·외래어와 외국어에서 온 고유명사를 금지하고 일상 한자어는 허용합니다. 화면의 플레이어 이름만 보존하며, 이름을 말하거나 입력하면 기존 규칙으로 검사합니다. 위반 후보는 gpt-6-luna가 두 번 확인합니다. 게임의 잡음 제거를 거친 소리를 원래 언어로 받아쓰며, 첫 허용 판정도 다른 모델의 받아쓰기와 판정으로 확인합니다. 실제 처벌에는 분명한 말소리라는 별도 확인도 필요합니다. 잡음과 알아들을 수 없는 말은 처벌하지 않습니다. 오류·시간 초과 또는 금지 낱말을 거듭 확인하지 못한 경우도 처벌하지 않습니다. 신호는 글을 입력해 전송한 사람의 원문으로 검사합니다. 출발·부활·새 판 때 이전 결과를 무효로 합니다. 규칙을 어긴 한 명에게 폭발 효과를 재생하고 그 사람만 폭발 사인으로 즉사합니다. 효과 전용 폭발이므로 주변 플레이어에게 피해나 밀림을 주지 않고 지뢰의 연쇄 폭발도 일으키지 않습니다.
설정과 확인 범위
설정 → 우리말 지킴이 · 고르기 → 외국말 검사에서 켜고 끕니다. 방에 들어온 뒤에는 방장이 방 전체 규칙을 바꿉니다. 끄면 대기 중인 판정도 취소됩니다. 하단 판정창과 말 기록은 없습니다. 위반으로 실제 죽은 것이 확인되면 채팅에 이름과 금지 낱말만 알립니다. 소리 입력 구독에 실패하면 다시 시도합니다. 설정창 안에서만 받은 소리 조각·말·평범한 잡음·해석 불가 횟수, 소리 입력이 다시 시작된 횟수와 미리 정한 연결 오류 안내를 확인할 수 있습니다. 말한 문장이나 외부 응답 원문은 남기지 않습니다. 구독 재시도 보완이 사용자의 인식 실패 원인이었다고 확인된 것은 아닙니다. BepInEx/config/tacal.OnlyKorean.cfg의 ObserveOnly=true는 처벌과 사망 알림을 하지 않는 연습 설정입니다. Voice.Enabled와 OnlyWhileTransmitting으로 음성 검사와 게임의 말하기 상태를 따를지 설정합니다. 판정에 필요한 말과 글은 방장을 거쳐 OpenAI API로 전송되며 이용료는 방장 계정에 청구됩니다. 이 모드는 녹음·대화 기록을 디스크에 남기지 않습니다. 이전 0.3.2의 별도 .NET 9 API 시험에서는 gpt-6-luna, gpt-audio-mini, gpt-4o-transcribe, whisper-1 접근과 합성 음성 처리가 통과했습니다. 이 실행은 게임의 Unity Mono와 동등하지 않았습니다. 이후 실제 게임 실행에서 HTTP 200 응답 뒤 중복 정리 오류를 재현해 0.3.4에서 수정했습니다. 실제 사용자 마이크의 인식 정확도와 멀티플레이 실전은 아직 검증하지 못했습니다.