← 모듈 공장 리스트

🎴 코이코이! 올인원 불법개조 챗사오용 전용 모듈!

risum 모듈 — RISU modules[] — 기능 확장

🗒️ 제작자 게시글

프롬프트원문 보기 ↗

👍 33 · 조회 2011 · 2026-01-14

제작자 의도 — 본문 전문 (814자)
코파일럿 무료모델 쌀먹으로 마조플을 즐기자!
사실 마조플 토글 끄고 료나 토글 켜고 장르태그 조절하면 내가 가해자인 고어도 됨
방금 1120 4o에서 하드고어 아웃풋 받고 어이없어서 재공유함
사실 컨텍은 제로칼로리 짚오일로 쌓았음
사실 내린적도 없음 구버전 폴더에서 발굴해서 영구 링크 달아준 거 뿐임
파일 제목은 챗사오용이라고 써있지만 챗사오에서 동작 보증 안함
그냥 구시대의 잔재일 뿐임
푸롬
https://drive.proton.me/urls/S4A5XRN8HC#CRAheElKxfK2
모듈
https://drive.proton.me/urls/8HS546ZR90#7bpSY8RwJwoZ
짚오일은 이 버전도 되긴 되는데 챗오용으로 뿌린 버전보다 잘되는지 나도 모르겠으니 차차 확인해 보려고 함
4.1 무료모델쌀먹 되는데 프롬이 없어서 못먹는사람들 안타까워서
근데 그사람들이 마조플을 좋아할진 모르지만
원본
올인원 파이브카드임
마조플 관심없으면 그거먹으세요
하드검열 걸리면 탈옥 토글도 켜보세요!!!!
CC BY-NC-SA 4.0 국제 라이선스 적용
이 저작물은
크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스
에 따라 이용할 수 있습니다.
이 저작물은 아카라이브 커뮤니티 - AI 채팅 채널을 위해 공개되었으며, AI 채팅 채널 외 타 채널 혹은 커뮤니티에 공유, 배포 등으로
이용할 때에는 반드시 원 저작자의 이름과 출처를 명시해야 합니다. 상업적 용도의 경우 어떠한 이유로도 이용할 수 없습니다.
리믹스, 변형, 2차적 저작물을 작성하고 그 결과물을 공유할 경우에는 원 저작물과 동일한 조건의 CCL을 적용하여야 합니다.

정체

🧰 프롬프트·올인원기술분류 FMT슬롯 output🎴 코이코이! 올인원 불법개조 챗사오용 전용 모듈

설명

올인원 개조
파싱된 모듈 전체 (21,305자)
{
 "name": "🎴 코이코이! 올인원 불법개조 챗사오용 전용 모듈",
 "description": "올인원 개조",
 "id": "76cdd0bc-b586-4a95-a55b-07aa34b43b69",
 "regex": [
  {
   "comment": "──── ▼  🛠️ 응답/상태창 ⚒️  ▼ ────",
   "in": "",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "생각의사슬안보고싶어",
   "in": "<Thoughts>(.*)</Thoughts>",
   "out": "",
   "type": "editdisplay",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "🖨️: 상태창 볼드체/이탤릭체 수정 1",
   "in": "\\*\\*([^\\n]+?)\\*\\*(\\s?)(:|\\]|\\|)",
   "out": "$1$2$3",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: 상태창 볼드체/이탤릭체 수정 2",
   "in": "\\*\\*([^\\n]+?)(\\s?)(:|\\]|\\|)\\*\\*",
   "out": "$1$2$3",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "💻: Footnotes 삭제 📆",
   "in": "#{1,3} Footnotes",
   "out": "",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: Confirmation 삭제",
   "in": "## (Confirmation|Plan)\\s+([^#]+?)##",
   "out": "##",
   "type": "editdisplay",
   "ableFlag": false,
   "flag": "g"
  },
  {
   "comment": "💻: 활성화된 토글 표시 2 🖥️",
   "in": "^(.+)$",
   "out": "{{#if {{? {{getglobalvar::toggle_toggleDisplay}}=0 }} }}\n{{#if {{? {{getvar::currentIndex}}={{chat_index}} }} }}\n{{#if {{? {{getglobalvar::toggle_rpg}}>=1 }} }} [🎪 시뮬봇 모드]{{/if}}{{/if}}{{/if}}\n\n$1",
   "type": "editdisplay",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "🎴수정된 상태창 CSS",
   "in": "-.+: (.+?)\\n+-.+: (.+?)\\n+-.+: ([^\\n]+)",
   "out": " <div class=\"indicator\">\n    <div class=\"textbox\">\n      <span class=\"text\">\n        $1\n      </span>\n      <span class=\"text\">\n        $2\n      </span>\n      <span class=\"text\">\n        $3\n      </span>\n    </div>\n  </div>\n<br>",
   "type": "disabled",
   "ableFlag": true,
   "flag": "gi<move_top>"
  },
  {
   "comment": "📜: Response 앞부분 삭제",
   "in": "[\\s\\S]*#+ Response\\n+([\\s\\S]*)",
   "out": "## Response\n$1",
   "type": "editprocess",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "📜🔒: Confirmation 삭제",
   "in": "^.*?## (Confirmation|Plan)[^#]+?##",
   "out": "##",
   "type": "disabled",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "📜🔒:  생각의 사슬 삭제",
   "in": "^([^#]*?)##",
   "out": "##",
   "type": "disabled",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "──── ▼ 💭 추론/CoT  💭  ▼ ────",
   "in": "",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "🖨️: 사전 분석 → Pre-analysis",
   "in": "## 사전\\s?분석\\n{1,2}(.)",
   "out": "## Pre-analysis\n$1",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: 추론 과정 → Reasoning Process",
   "in": "## 추론\\s?과정\\n{1,2}(.)",
   "out": "## Reasoning Process\n$1",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: 이전 장면 & 입력 요약 → Previous Scene & Input Summary",
   "in": "## 이전\\s?장면 & 입력\\s?요약\\n{1,2}(.)",
   "out": "## Previous Scene & Input Summary\n$1",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "💻: Pre-analysis 접기",
   "in": "#{1,3} Pre-analysis([^#]+?)##",
   "out": "<details>\n    <summary><strong>💭 Pre-analysis</strong></summary>\n    <div>\n$1\n    <div>\n</details>\n\n##",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: Reasoning Process 접기",
   "in": "#{1,3} Reasoning Process([^#]+?)##",
   "out": "<details>\n    <summary><strong>🧠 Reasoning Process</strong></summary>\n    <div>\n$1\n    <div>\n</details>\n\n##",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻:  Previous Scene & Input Summary 접기",
   "in": "#{1,3} Previous Scene & Input Summary([^#]+?)##",
   "out": "<details>\n    <summary><strong>📝 Previous Scene & Input Summary</strong></summary>\n    <div>\n$1\n    <div>\n</details>\n\n##",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "📜🔒: Pre-analysis 전체 삭제",
   "in": "[^#]+?#{1,3} (Pre-analysis|사전\\s?분석)[^#]+?",
   "out": "",
   "type": "disabled",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "📜🔒: Reasoning Process 전체 삭제",
   "in": "[^#]+?#+ (Reasoning Process|추론\\s?과정)([^#]+?)",
   "out": "",
   "type": "editprocess",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "📜🔒: Previous Scene & Input Summary 선택적 제거",
   "in": "[^#]+?(#+ Previous Scene & Input Summary[^#]+?)\\n{1,3}(#+ Chapter)",
   "out": "{{#if {{? {{getglobalvar::toggle_summaryRequest}}=0 }} }}$1{{/if}}\n\n$2",
   "type": "editprocess",
   "ableFlag": false
  },
  {
   "comment": "──── ▼  ✅ 이전 버전/ 타프롬 호환 🕹️  ▼ ────",
   "in": "",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "챕터->그거",
   "in": "#{1,3} Chapter([^\\n]+)",
   "out": "## Response",
   "type": "editprocess",
   "ableFlag": false
  },
  {
   "comment": "💻: Approved 삭제",
   "in": "#{1,3} Approved.?",
   "out": "",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: Response 삭제",
   "in": "#{1,3} (Response|응답)",
   "out": "",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "📜: Approved 삭제",
   "in": "#{1,3} Approved[\\.:]?",
   "out": "",
   "type": "editprocess",
   "ableFlag": false
  },
  {
   "comment": "──── ▼  🪛 찐빠 보정 🔩 ▼ ────",
   "in": "",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "💻: 가로줄 삭제",
   "in": "---",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "🖨️: 과도한 띄어쓰기 보정",
   "in": "[ ]{2,}",
   "out": " ",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: \"///\" 삭제",
   "in": "\\/\\/\\/",
   "out": "",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: <p> 삭제",
   "in": "<\\/?p>",
   "out": "",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: <hr> 삭제",
   "in": "<\\/?hr>",
   "out": "",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: <br> 삭제",
   "in": "<\\/?br>",
   "out": "",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "🖨️: 코드블럭 삭제",
   "in": "```",
   "out": "",
   "type": "editoutput",
   "ableFlag": false
  },
  {
   "comment": "💻: 코드블럭 삭제",
   "in": "```",
   "out": "",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "📜: 가로줄 삭제",
   "in": "---",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "📜: 코드블럭 삭제",
   "in": "```",
   "out": "",
   "type": "editprocess",
   "ableFlag": false
  },
  {
   "comment": "📜: 과도한 말줄임표 보정",
   "in": "(\\.{4,8}|…{1,2})",
   "out": "...",
   "type": "editprocess",
   "ableFlag": false
  },
  {
   "comment": "📜:  <details></details> 오류 제거",
   "in": "<details>.+?<\\/details>",
   "out": "",
   "type": "editprocess",
   "ableFlag": true,
   "flag": "gs"
  },
  {
   "comment": "──── ▼  📖 가독성 👁️  ▼ ────",
   "in": "",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "💻: 대사 색상 보정",
   "in": "(\\S)(\\\"|”)(\\*{0,2})([가-힣])",
   "out": "$1$2  $3$4",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: 대사 볼드체/이탤릭체 보정 1",
   "in": "(\\S)(\\*{1,2})(\\\"|“)",
   "out": "$1$3$2",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: 대사 볼드체/이탤릭체 보정 2",
   "in": "(\\S)(\\\"|”)(\\s?)(\\*{1,2})",
   "out": "$1$4$3$2",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "────────────────────",
   "in": "<!DOCTYPE html> <html lang=\"ko\"> <head>   <meta charset=\"UTF-8\">   <title>Example</title>   <style>     .second-wrapper {       max-width: 100vw;       padding: 2.5em 2em 1em;       margin: 1em 0;       border: 0.1em solid rgba(255, 180, 180, 0.8); /* 빨간색 테두리 */       border-radius: 0.6em;       background-color: rgba(5, 5, 5, 0.1);       box-shadow: 0 0 1.5em #FF4500, 0 0 1em rgba(255, 69, 0, 0.1); /* 빨간색 그림자 */       text-align: center;       position: relative;       animation: blink 1s infinite alternate; /* 깜박거리는 이펙트 */     }      @keyframes blink {       0% { box-shadow: 0 0 1.5em #FF4500, 0 0 1em rgba(255, 69, 0, 0.1); }       100% { box-shadow: 0 0 2em #FF4500, 0 0 1.5em rgba(255, 69, 0, 0.3); }     }      .special-font {       font-family: 'Courier New', monospace, 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif;       font-weight: bolder;       background: -webkit-linear-gradient(45deg, #ffd3d3, #deb0b0); /* 빨간색 그라디언트 */       -webkit-background-clip: text;       -webkit-text-fill-color: transparent;       text-shadow: 0 0 0.1em rgba(255, 211, 211, 0.5);     }      .courier-font {       font-family: 'Courier New', monospace, 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif;       font-size: 1em;     }      .light-red {       color: #ffd3d3; /* 밝은 빨간색 텍스트 */       text-shadow: 0 0 0.1em #ffd3d3;     }      .title {       position: absolute;       top: -1.25em;       left: 50%;       transform: translateX(-50%);       padding: 0 0.5em;       background-color: rgba(5, 5, 5, 0.1);       font-family: 'Courier New', monospace, 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif;       font-weight: bolder;       color: #FF4500; /* 빨간색 제목 */       text-shadow: 0 0 0.1em rgba(255, 69, 0, 0.8);       font-size: 1.5em; /* $1 텍스트보다 50% 더 큰 폰트 크기 */     }   </style> </head> <body>   <div class=\"second-wrapper\">     <div class=\"title\">인풋 번역</div>     <span class=\"courier-font light-red\">$1</span> <!-- 빨간색 텍스트 -->   </div> </body> </html>",
   "out": "",
   "type": "disabled",
   "ableFlag": false
  },
  {
   "comment": "💻: 속마음 색상 보정",
   "in": "([가-힣])(\\'|’)(\\*{0,2})([가-힣])",
   "out": "$1$2  $3$4",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: 속마음 볼드체/이탤릭체 보정 1",
   "in": "(\\S)(\\*{1,2})(\\'|‘)",
   "out": "$1$3$2",
   "type": "editdisplay",
   "ableFlag": false
  },
  {
   "comment": "💻: 속마음 볼드체/이탤릭체 보정 2",
   "in": "(\\S)(\\'|’)(\\s?)(\\*{1,2})",
   "out": "$1$4$3$2",
   "type": "editdisplay",
   "ableFlag": false
  }
 ],
 "type": "risuModule",
 "trigger": [
  {
   "comment": "",
   "type": "start",
   "conditions": [],
   "effect": [
    {
     "type": "triggerlua",
     "code": "-- From All In One\n-- 본인은 삭제만 했습니다.\n\n--------------------------------------------------\n-- # Utility Functions: Data Manager & Text Trimmer\n--------------------------------------------------\n\n--------------------------------------------------\n-- 1. 재귀적 deep copy 함수 (내부 테이블까지 복사)\n--------------------------------------------------\nfunction copyObjectData(original)\n    local copy = {}\n    for key, value in pairs(original) do\n        if type(value) == \"table\" then\n            copy[key] = copyObjectData(value)\n        else\n            copy[key] = value\n        end\n    end\n    return copy\nend\n\n--------------------------------------------------\n-- 2. 구분자를 기준으로 문자열을 구분하는 함수\n--------------------------------------------------\nfunction string:split(delimiter)\n    local splitTexts = {}\n    local number = 1\n    local starPos, endPos = self:find(delimiter, number)\n\n    while starPos do\n        table.insert(splitTexts, self:sub(number, starPos))\n        number = endPos + 1\n        starPos, endPos = self:find(delimiter, number)\n    end\n\n    table.insert(splitTexts, self:sub(number))\n\n    return splitTexts\nend\n\n--------------------------------------------------\n-- 8. 제목 밑의 과도한 줄바꿈 정돈 함수\n--------------------------------------------------\nfunction normalizeHeaderNewlines(text)\n    local output = text:gsub(\"(#.-\\n)(.-)(\\n#)\", function(header, body, next_header)\n        local cleaned_body = body:gsub(\"\\n\\n+\", \"\\n\")\n        return header .. cleaned_body .. next_header\n    end)\n\n    -- 마지막 제목 이후 텍스트 처리\n    output = output:gsub(\"(#.-\\n)(.+)$\", function(header, body)\n        local cleaned_body = body:gsub(\"\\n\\n+\", \"\\n\")\n        return header .. cleaned_body\n    end)\n\n    return output\nend\n\n--------------------------------------------------\n-- # Send a Chat as System Role Message\n--------------------------------------------------\n\n--------------------------------------------------\n-- 1. \"NewChat\" 메모를 가진 system 메시지를 제거하는 함수\n--------------------------------------------------\nfunction removeNewChatMessage(data)\n    -- 역순 순회하여 table.remove 시 인덱스 오류 방지\n    for i = #data, 1,  - 1 do\n        if data[i].memo == \"NewChat\" and data[i].role == \"system\" then\n            table.remove(data, i)\n        end\n    end\nend\n\n--------------------------------------------------\n-- 2. 메모가 존재하는 마지막 메시지 인덱스 반환 함수\n--------------------------------------------------\nfunction getLastMemoIndex(data, role)\n    for i = #data, 1,  - 1 do\n        if data[i].memo and data[i].role == role then\n            return i\n        end\n    end\n    return nil\nend\n\n--------------------------------------------------\n-- 3. 채팅 포맷 판별 함수\n--------------------------------------------------\nfunction setChatFormat(data)\n    -- 시스템 메세지의 개수는 이전 챗을 기준으로 구분\n    local frontSysCount = 0\n    local backSysCount = 0\n    local backUserCount = 0\n    local backFirstMessageIndex = 0\n    local foundFirst = false\n\n    -- 앞 부분 연속 시스템 메시지 개수 카운트\n    while data[frontSysCount+1] and data[frontSysCount+1].role == \"system\" do\n        frontSysCount = frontSysCount + 1\n    end\n\n    for i = frontSysCount + 1, #data do\n        if not foundFirst and data[i].memo == nil and data[i].role == \"assistant\" then\n            backFirstMessageIndex = frontSysCount + 2\n            foundFirst = true    \n        elseif data[i] and data[i].memo ~= nil and data[i].role == \"user\" then\n            foundFirst = true\n        end\n\n        if data[i].memo ~= nil and i < getLastMemoIndex(data, \"user\") then\n            backFirstMessageIndex = backFirstMessageIndex + 1\n        elseif i < getLastMemoIndex(data, \"user\") and i >= backFirstMessageIndex then\n            if data[i].role == \"system\" then\n                backSysCount = backSysCount + 1\n            elseif data[i].role == \"user\" then\n                backUserCount = backUserCount + 1\n            end\n        end\n    end\n\n   print(\"이후 프롬 첫 인덱스: \" .. backFirstMessageIndex .. \"\\n이후 시스템 프롬 개수: \" .. backSysCount .. \"\\n이후 유저 프롬 개수: \" .. backUserCount)\n   \n   return backFirstMessageIndex, backSysCount, backUserCount\nend\n\n--------------------------------------------------\n-- 4. 수파 메모리를 정돈하는 함수\n--------------------------------------------------\nfunction trimSupaMemory(data)\n    local backFirstMessageIndex, backSysCount, backUserCount = setChatFormat(data)\n\n    for i = 1, #data do\n        if data[i].memo == \"supaMemory\" then\n            data[i].content = data[i].content:gsub(\"<Past Events Summary>%s*\", \"\")\n            data[i].content = data[i].content:gsub(\"%s*</Past Events Summary>\", \"\")\n            data[i].content = data[i].content:gsub(\"<Past Events Details>%s*\", \"\")\n            data[i].content = data[i].content:gsub(\"%s*</Past Events Details>\", \"\")\n        end\n    end\n\n    return data\nend\n\n--------------------------------------------------\n-- 5. 채팅 데이터에 제목 추가 및 역할 변경 함수\n--------------------------------------------------\nfunction addTitlesAndChangeRoles(data)\n    -- 포맷 관련 설정\n    local backFirstMessageIndex, backSysCount, backUserCount = setChatFormat(data)\n    \n    local previousScript = { role = \"system\", content = \"---\\n\\n# Previous Script\\n\\n## Input\\nLet's begin the role-play as instructed.\" }\n    local startRoleplay = { role = \"user\", content = \"## Input\\nLet's begin the role-play as instructed.\" }\n    local foundFirst = false\n\n    -- 전체 메시지 처리\n    for i = 1, #data do\n        -- 퍼스트 메세지 처리\n        if not foundFirst and data[i].memo == nil and data[i].role == \"assistant\" then\n            if getLastMemoIndex(data, \"assistant\") ~= nil then\n                table.insert(data, i, previousScript)\n                data[i+1].role = \"system\"\n                data[i+1].content = \"## Response\\n\" .. data[i+1].content\n\n            else\n                table.insert(data, i, startRoleplay)\n            end\n            foundFirst = true\n            goto continue\n        elseif data[i].memo ~= nil and data[i].role == \"user\" then\n            foundFirst = true\n        end\n\n        -- 메모가 없는 메세지는 건너뛰기\n        if data[i].memo == nil then\n            goto continue\n        end\n        \n        -- 메모가 있는 user 메시지 처리\n        if data[i].role == \"user\" and data[i].memo ~= \"supaMemory\" then\n            if i ~= getLastMemoIndex(data, \"user\") then\n                -- 마지막 메모가 아닌 경우\n                data[i].role = \"system\"\n                data[i].content = \"## Input\\n\" .. data[i].content\n            end\n        -- 메모가 있는 assistant 메시지 처리\n        elseif data[i].role == \"assistant\" then\n            if i ~= getLastMemoIndex(data, \"assistant\") then\n                -- 마지막 메모가 아닌 경우\n                data[i].role = \"system\"\n            else\n                -- 마지막 메모인 경우\n            end\n        end\n\n        ::continue::\n    end\n\n    -- print(\"지시가 시작되는 인덱스: \" .. backFirstMessageIndex .. \"\\n뒤 부분 시스템 개수: \" ..  backSysCount .. \"\\n뒤 부분 사용자 개수: \" .. backUserCount .. \"\\n\")\nend\n\n--------------------------------------------------\n-- 6. 연속된 동일 역할의 메시지 병합 함수\n--------------------------------------------------\nfunction mergeConsecutiveRoleChat(data)\n    local merged = {}\n    local currentChat = nil\n\n    for i, chat in ipairs(data) do\n        -- 각 메시지가 role과 content 필드를 가지고 있는지 검증\n        if currentChat and currentChat.role == chat.role then\n            -- 이전 메시지와 역할이 같으면 content를 두 줄바꿈으로 이어붙임\n            currentChat.content = currentChat.content .. \"\\n\\n\" .. chat.content\n        else\n            -- 다른 역할이면, 현재 메시지를 결과 테이블에 저장한 후 새 메시지 시작\n            if currentChat then\n                table.insert(merged, currentChat)\n            end\n            currentChat = { role = chat.role, content = chat.content }\n        end\n    end\n\n    -- 마지막 남은 메시지 추가\n    if currentChat then\n        table.insert(merged, currentChat)\n    end\n\n    -- 모든 메시지의 content에서 과도한 줄바꿈(\\n\\n\\n 이상)을 2줄로 정리 및 좌우 공백 제거\n    for _, chat in ipairs(merged) do\n        chat.content = chat.content:gsub(\"\\n%s*\\n%s*\\n+\", \"\\n\\n\")\n    end\n\n    -- 기존 테이블을 클리어하고, 병합 결과로 재구성합니다.\n    for i = 1, #data do\n        data[i] = nil\n    end\n    for i, chat in ipairs(merged) do\n        data[i] = chat\n    end\nend\n\n--------------------------------------------------\n-- 7. 편집 요청 시 호출되는 최종 데이터 처리 함수\n--------------------------------------------------\nlistenEdit(\"editRequest\", function(triggerId, data)\n    if not data then return data end\n    -- \"NewChat\" 메시지 제거\n    removeNewChatMessage(data)\n    -- 수파메모리 정돈\n    trimSupaMemory(data)\n    -- 제목 추가 및 역할 변경 처리\n    addTitlesAndChangeRoles(data)\n    -- 연속된 동일 역할 메시지 병합\n    mergeConsecutiveRoleChat(data)\n    -- 처리 결과 디버그 로그 출력\n    -- printRequestLog(data)\n    return data\nend)\n\nfunction printRequestLog(data)\n    for i = 1, #data do\n        local chat = data[i]\n        local role_icon = \"\"\n        if chat.role == \"user\" then\n            role_icon = \"👨‍🦰\"\n        elseif chat.role == \"assistant\" then\n            role_icon = \"🤖\"\n        elseif chat.role == \"system\" then\n            role_icon = \"⚙️\"\n        else\n            role_icon = \"🚫\"\n        end\n        print(string.format(\"<%s %s %s>\\n%s\\n\", role_icon, chat.role, role_icon, chat.content))\n    end\nend\n"
    }
   ],
   "lowLevelAccess": true
  }
 ],
 "lowLevelAccess": true,
 "creator_notes": "",
 "tags": [],
 "license": "CC BY-NC-SA 4.0",
 "rtype": "module",
 "hideIcon": false,
 "lorebook": [],
 "assets": [],
 "backgroundEmbedding": "<style>\n    @import url('https://fonts.googleapis.com/css2?family=Bitter:ital,wght@0,100..900;1,100..900&family=Gowun+Batang&display=swap');\n  \n    .indicator {\n      display: flex;\n      flex-direction: column;\n      border: double #ffffff;\n      border-width: 6px 0;\n      max-width: 400px;\n      margin: 1em auto;\n    }\n  \n    .textbox {\n      display: flex;\n      flex-direction: column;\n      margin: 0.5em auto;\n      width: fit-content;\n    }\n  \n    .text {\n      line-height: 1em;\n      font-size: 1em;\n      font-family: \"Gowun Batang\";\n      font-optical-sizing: auto;\n      font-style: italic;\n      font-weight: 400;\n      color: #ffffff;\n    }\n </style>",
 "customModuleToggle": "nsfw=🔞 섹스 토글(직접적 묘사용)\nsm=유저는 마조입니다\nmoreRape=ㄴ강간해주세요=select=없음,해주세요,반항해도따먹어주세요\nstab=자율적 폭력성 강화 토글\nstab2=유저를 패세요\n=장르/모드 설정=divider\ngenre_text=📚 장르:=text\ntag_text=📚 태그:=text\nreference_text=📚 레퍼런스:=text\nmode=🎮 모드:=select=🎭 역할극, ✒️ 약사칭, 📖 소설\npowerNovel=페르소나 사칭 더 해줘\npov=👁️ 시점:=select=선택 안함, 1️⃣ 1인칭, 3️⃣ 3인칭, 👨‍🦰 페르소나 시점\nutil= 😊 OOC | 로어북 토글\nrpg=🎪 시뮬봇 토글\n=묘사 강화/반복 방지 설정=divider\nfastPace=🚀 빠른 전개 토글\nback= 🏙️ 배경 묘사 토글\nagency=🏃 전개 능동성 향상 토글\noil=🫒올리브오일\nmyOil=🌼시뮬봇 NPC 능동성 강화=select=없음, 그대로, 문법수정\n=분량/언어 설정=divider\nminLength=➖ 최소 문단:=text\nmaxLength=➕ 최대 문단:=text\ninfinity=문단제한없음\nlang=🗣️ 언어:=select=디폴트, 🇬🇧 영어, 🇰🇷 한국어, 🇯🇵 일본어, 🇨🇳 중국어\ndialog=🗨️ 대사:=select=선택 안함, 🇰🇷 한국어, 🇯🇵 일본어, 🇨🇳 중국어\nlangFormat=🔠 응답 언어 강조\n=상태창/커스텀 설정=divider\nstat= 📆 상태창 토글\nlangFootnote=📆 상태창 언어 강조:=select=선택 안함, 🇬🇧 영어, 🇰🇷 한국어, 🇯🇵 일본어, 🇨🇳 중국어, 소설가식\nmemoryPosition=📒기억 로어북 자리 활성화",
 "namespace": "KoikoiGPT"
}

🔗 이것과 비슷한 인기 자산

🍉서리 프롬프트 for Gemini v12.1
🍉서리 프롬프트 for Gemini v12.1
👍162 ·
🍉서리 프롬프트 for Gemini v10-5 bug fixed
🍉서리 프롬프트 for Gemini v10 5 bug fixed
👍159 ·
🍉서리 프롬프트 for Claude v8-1
🍉서리 프롬프트 for Claude 8 1
👍125 ·
🍉서리 프롬프트 for Claude v8-1 alt
🍉서리 프롬프트 for Claude 8 1 alt
👍86 ·
🐞 W2 · /city/asset