← 모듈 공장 리스트

파르마 상태창

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

🗒️ 제작자 게시글

자료원문 보기 ↗

조회 247 · 2026-08-02

제작자 의도 — 본문 전문 (455자)
파르마 기사단 먹다가 상태창이 맘에들어서
제작자분께 모듈로 분리해서 사용할방법 여쭤봤는데 친절히 알려주셔서
안되는실력으로 일단 분리해봄
일단 파르마 기사단은 고유의 루멘력달력을 사용하고 표기하게되있는데 범용성을위해 일반달력으로 수정함
그외에 호감도 출력기능은 과감히 삭제했어요.
대충 내 페소의 능력에따라서
알아서 레벨과  스탯을 정해줍니다.
강할경우 Lv400이상도 찍힌적있음
(루미나마을과 무림속으로 봇으로 테스트)
백그라운드 임베딩 디스플레이 설정은 그냥 복붙함 딱히 찐빠는 없길래 ..
사용하실분은
사용  봇의 글노덮에
{{position::PI}}
만 넣어주면 됩니다.
모듈다운
https://drive.proton.me/urls/8VZ2GT0G60#9o4ZenD6NEgU
파르마기사단 원본봇
https://arca.live/b/characterai/175177642
제작자님 수정허락해주셔서 감사합니다.

정체

📊 상태창·UI기술분류 FMT슬롯 output파르마 상태창

설명

Converted from risu regex
파싱된 모듈 전체 (28,719자)
{
 "name": "파르마 상태창",
 "description": "Converted from risu regex",
 "regex": [
  {
   "comment": "== 시간/장소 표시 ==",
   "type": "editdisplay",
   "in": "<pk-time>\\s*(.+?)\\s*\\|\\s*(.+?)\\s*</pk-time>",
   "out": "<div class=\"pk-sec pk-sec-sm pk-time-sec\"><span class=\"pk-time-date\">&#128339; $1</span><span class=\"pk-time-loc\">&#128205; $2</span></div>",
   "ableFlag": false
  },
  {
   "comment": "== 패널 지우개 ==",
   "type": "editdisplay",
   "in": "<pk-panel>([\\s\\S]*?)</pk-panel>",
   "out": "{{#if {{greater_equal::{{chat_index}}::{{? {{lastmessageid}}-2}}}}}}\n$&\n{{/if}}",
   "ableFlag": false
  },
  {
   "comment": "패널 래퍼",
   "type": "editdisplay",
   "in": "<pk-panel>([\\s\\S]*?)</pk-panel>",
   "out": "<div class=\"pk-card\">$1</div>",
   "ableFlag": false
  },
  {
   "comment": "스탯 표시",
   "type": "editdisplay",
   "in": "<pk-stats>\\s*HP:\\s*([^|]+?)\\s*\\|\\s*MP:\\s*([^|]+?)\\s*\\|\\s*STR:\\s*([^|]+?)\\s*\\|\\s*INT:\\s*([^|]+?)\\s*\\|\\s*DEX:\\s*([^|]+?)\\s*\\|\\s*FAI:\\s*([^|]+?)\\s*\\|\\s*LV:\\s*(\\S+)\\s*</pk-stats>",
   "out": "<div class=\"pk-sec\"><div class=\"pk-sec-head\"><span class=\"pk-sec-title\">STATS</span><span class=\"pk-lv\">LV $7</span></div><div class=\"pk-stats-grid\"><div class=\"pk-stat pk-hp\"><span class=\"pk-stat-l\">HP</span><span class=\"pk-stat-v\">$1</span></div><div class=\"pk-stat pk-mp\"><span class=\"pk-stat-l\">MP</span><span class=\"pk-stat-v\">$2</span></div><div class=\"pk-stat\"><span class=\"pk-stat-l\">STR</span><span class=\"pk-stat-v\">$3</span></div><div class=\"pk-stat\"><span class=\"pk-stat-l\">INT</span><span class=\"pk-stat-v\">$4</span></div><div class=\"pk-stat\"><span class=\"pk-stat-l\">DEX</span><span class=\"pk-stat-v\">$5</span></div><div class=\"pk-stat\"><span class=\"pk-stat-l\">FAI</span><span class=\"pk-stat-v\">$6</span></div></div></div>",
   "ableFlag": false
  },
  {
   "comment": "장비 표시",
   "type": "editdisplay",
   "in": "<pk-equip>\\s*Weapon:\\s*([^|]+?)\\s*\\|\\s*Armor:\\s*([^|]+?)\\s*\\|\\s*Acc:\\s*([^<]+?)\\s*</pk-equip>",
   "out": "<div class=\"pk-sec pk-sec-sm\"><div class=\"pk-sec-head\"><span class=\"pk-sec-title\">EQUIP. & INVENTORY</span></div><div class=\"pk-equip-row\"><span class=\"pk-eslot\"><span class=\"pk-etype\">Weapon</span><span class=\"pk-ename\">$1</span></span><span class=\"pk-eslot\"><span class=\"pk-etype\">Armor</span><span class=\"pk-ename\">$2</span></span><span class=\"pk-eslot\"><span class=\"pk-etype\">Acc</span><span class=\"pk-ename\">$3</span></span></div>",
   "ableFlag": false
  },
  {
   "comment": "소지금 표시",
   "type": "editdisplay",
   "in": "<pk-gold>\\s*(.+?)\\s*</pk-gold>",
   "out": "<div class=\"pk-gold-val\">&#128176; $1</div>",
   "ableFlag": false
  },
  {
   "comment": "인벤토리 (None)",
   "type": "editdisplay",
   "in": "<pk-inv>\\s*None\\s*</pk-inv>",
   "out": "<div class=\"pk-inv-content pk-inv-none\">&#127890; No items</div></div>",
   "ableFlag": false
  },
  {
   "comment": "인벤토리 표시",
   "type": "editdisplay",
   "in": "<pk-inv>\\s*([\\s\\S]*?)\\s*</pk-inv>",
   "out": "<div class=\"pk-inv-content\">&#127890; $1</div></div>",
   "ableFlag": false
  },
  {
   "comment": "스킬 표시",
   "type": "editdisplay",
   "in": "<pk-skill>\\s*([\\s\\S]*?)\\s*</pk-skill>",
   "out": "<div class=\"pk-sec pk-sec-sm\"><div class=\"pk-sec-head\"><span class=\"pk-sec-title\">SKILLS</span></div><div class=\"pk-skill-content\">$1</div></div>",
   "ableFlag": false
  },
  {
   "comment": "퀘스트 표시",
   "type": "editdisplay",
   "in": "<pk-quest>\\s*([\\s\\S]*?)\\s*</pk-quest>",
   "out": "<div class=\"pk-sec pk-sec-sm\"><details class=\"pk-quest-details\"><summary><span class=\"pk-sec-title\">QUESTS</span></summary><div class=\"pk-quest-list\">$1</div></details></div>",
   "ableFlag": false
  },
  {
   "comment": "퀘스트: new",
   "type": "editdisplay",
   "in": "- new: (.+)",
   "out": "<div class=\"pk-q\"><span class=\"pk-qb pk-qb-new\">NEW</span><span class=\"pk-qt\">$1</span></div>",
   "ableFlag": false
  },
  {
   "comment": "퀘스트: ongoing",
   "type": "editdisplay",
   "in": "- ongoing: (.+)",
   "out": "<div class=\"pk-q\"><span class=\"pk-qb pk-qb-on\">ONGOING</span><span class=\"pk-qt\">$1</span></div>",
   "ableFlag": false
  },
  {
   "comment": "퀘스트: done",
   "type": "editdisplay",
   "in": "- done: (.+)",
   "out": "<div class=\"pk-q\"><span class=\"pk-qb pk-qb-done\">DONE</span><span class=\"pk-qt pk-qt-done\">$1</span></div>",
   "ableFlag": false
  },
  {
   "comment": "퀘스트: deleted",
   "type": "editdisplay",
   "in": "- deleted: (.+)",
   "out": "<div class=\"pk-q\"><span class=\"pk-qb pk-qb-del\">DEL</span><span class=\"pk-qt pk-qt-done\">$1</span></div>",
   "ableFlag": false
  },
  {
   "comment": "== UUID 태그 숨김 ==",
   "type": "editdisplay",
   "in": "\\s*<pk-uid>[^<]*</pk-uid>\\s*",
   "out": "",
   "ableFlag": false
  },
  {
   "comment": "== 스테이지 태그 숨김 ==",
   "type": "editdisplay",
   "in": "\\s*<pk-stage>[^<]*</pk-stage>\\s*",
   "out": "",
   "ableFlag": false
  },
  {
   "comment": "퀘스트 ID 숨김",
   "type": "editdisplay",
   "in": "\\[([A-Z]{2,4}\\d+)\\]\\s*",
   "out": "",
   "ableFlag": false
  }
 ],
 "id": "424f7d4e-da4a-4dad-8ca7-5cefd86e12f2",
 "assets": [],
 "hideIcon": false,
 "lorebook": [
  {
   "key": "",
   "comment": "상태",
   "content": "@@position pt_PI\n### Stat System\n[Stats] Range 1~999 each.\n- HP (damage capacity), MP (miracle/ability resource)\n- STR (melee), INT (tactics/pattern recognition), DEX (speed/evasion), FAI (miracles/wards/corruption resistance)\n[LV Benchmarks]\n- 1~10: civilian. 11~30: trained soldier ({{user}} starts here). 31~50: experienced knight, Parma Knights level (human practical limit). 50+: exceptional talent, witch-era knowledge, or non-human.\n\n[Combat]\n- Party power = sum of members' LV vs enemy power rating.\n- Gap 20+: insurmountable without ambush/terrain/retreat. Even match: tactics decide. Minor advantage: winnable with cost.\n- Stats inform narration: STR→melee, DEX→speed, INT→tactics, FAI→miracles.\n- HP 0 = incapacitation. MP 0 = no miracles until rest.\n- Current HP/MP loss never lowers LV — LV is computed from MAX HP/MP, not current (see [Display Rules]).\n\n[Monster Threat Scale]\n- Minor (1~10): wolves → city guard. Moderate (10~100): basilisks → knight party.\n- Major (100~300): demon-contracted → full order. Catastrophic (300+): elder dragons → insufficient.\n\n\n[Equipment & Inventory]\n- Weapon / Armor / Accessory: 1 slot each.\n- Inventory: max 20 items. Track acquisitions and usage.\n\n",
   "mode": "normal",
   "insertorder": 10000,
   "alwaysActive": true,
   "secondkey": "",
   "selective": false,
   "useRegex": false,
   "bookVersion": 2
  },
  {
   "key": "",
   "comment": "테그 아웃풋",
   "content": "@@position pt_PI\nTag Output\n[Output Format — MANDATORY EVERY TURN]\nEnd EVERY response with the status panel. Never skip. Never omit any section.\n\n<pk-panel>\n<pk-time>YYYY-MM-DD(Weekday) HH:MM AM/PM | Current Location</pk-time>\n\n<pk-stats>HP: X/X | MP: X/X | STR: X | INT: X | DEX: X | FAI: X | LV: X</pk-stats>\n<pk-equip>Weapon: X | Armor: X | Acc: X</pk-equip>\n<pk-gold>X Ducato(금화), X Soldo(은화)</pk-gold>\n<pk-inv>Item1 x1, Item2 x3</pk-inv>\n<pk-skill>Skill1, Skill2, ...</pk-skill>\n<pk-quest>\n• new: [POL1] quest from Quest List\n• ongoing: quest description (AI-generated, no ID)\n• done: [SHD1] completed predefined quest\n• deleted: failed or abandoned quest\n</pk-quest>\n</pk-panel>\n\n[System Notice — CONDITIONAL, NOT every turn]\nBy default this is a meta-UI channel with no persona: it states factual, mechanical outcomes that the in-world narrative cannot deliver without breaking immersion (the default system narrator has no personality and never uses character voice). Place it INLINE at the narrative beat where the outcome lands — it may appear in the MIDDLE of the prose, right after the decisive moment (e.g., the instant a boss falls or a quest resolves), and the scene then continues around it. Do not pin it mechanically to the end; only keep it OUTSIDE the <pk-panel> block. Omit entirely on ordinary turns — overuse destroys its weight.\nTrigger ONLY on: quest completion, battle/boss victory, a crisis overcome, or a level/stat increase.\n\n<pk-sys>\n• notice: 'XXXX 퀘스트를 완료했습니다.' / 'XXXX와의 전투에서 승리했습니다.'\n• reward: 희귀재료 '바실리스크 비늘' ×2, 은화 50 Soldo\n• stat: STR +3, INT +1\n</pk-sys>\n\n[Narrator persona — when the prompt gives the system a named voice]\nIf the active prompt/preset establishes a named third-party narrator with a personality (e.g., \"너는 이야기를 만드는 '헬레나'이다\" / \"You are 'Helena', who weaves this tale\"), the System Notice is voiced BY that narrator instead of the faceless SYSTEM:\n• Write the wrapper as <pk-sys by=\"화자 이름\"> — the header then shows that name (e.g. 헬레나) in place of SYSTEM.\n• Color the notice/reward/stat lines with that persona's tone, diction, and attitude (playful, solemn, mocking, etc.), while keeping every factual value (reward items, stat changes, quest names) exact and unchanged.\n• Apply this ONLY when such a narrator persona is actually defined in the prompt. With no narrator persona, use the plain <pk-sys> (renders SYSTEM — impersonal and factual).\n\nExample (narrator persona \"헬레나\"):\n<pk-sys by=\"헬레나\">\n• notice: 누오오오오오옹! 의뢰인씨, 바실리스크가 드디어 무릎을 꿇었어.\n• reward: 희귀재료 '바실리스크 비늘' ×2, 은화 50 Soldo\n• stat: STR +3, INT +1\n</pk-sys>\n\n• notice: REQUIRED, one or more lines. Plain and factual (or in the narrator persona's voice when one is defined).\n• reward: OPTIONAL — only with meaningful loot. Monsters/bosses → rare materials & items; a defeated person → money/equipment. MUST also be reflected in <pk-inv>/<pk-gold>/<pk-equip>.\n• stat: OPTIONAL — only when stats actually rise. MUST match the change shown in <pk-stats>; follow [Stat System] growth rules.\n• A notice does NOT replace quest tags: completing a gate quest still requires - done: [ID] inside <pk-quest>.\n• Values follow the current output language.\n\n[Weekday Rules]\n• MUST use EXACTLY one Korean character for the day of the week: 월, 화, 수, 목, 금, 토, 일.\n• STRICTLY PROHIBITED to add the suffix \"요일\". (e.g., Output \"(월)\", do NOT output \"(월요일)\").\n• STRICTLY PROHIBITED to use English abbreviations or words (e.g., do NOT use Mon, Monday).\n\n[Currency]\n• Ducato(금화): gold coin, primary unit. Soldo(은화): silver coin. 1 Ducato = 100 Soldo.\n\n[First Response — Initialization]\n• Opening message displays stats/skills/equipment as \"?\".\n• On the FIRST response, read {{user}}'s persona and assign: initial stats, equipment, and skills.\n• Full LV 1~999 range valid — powerful persona starts strong, ordinary commoner starts low.\n• From the second response onward, output concrete values every turn.\n\n[Display Rules]\n• HP and MP: current/max (e.g., HP: 45/50). LV = average of the 6 stats (HP, MP, STR, INT, DEX, FAI), rounded down — but HP and MP always count their MAX value, never the current value. Taking damage or spending MP must NEVER lower LV; only a rise in max HP/MP (or another stat) changes it.\n• Affection: + or - prefix. Zero = 0.\n• Empty equipment/inventory: \"None\".\n• Tag keys (HP, MP, STR, Weapon, etc.) stay in English. Values (item names, quest descriptions, skill names, location) follow the current output language.\n\n[Skills]\n• Max 10. Update as the narrative progresses — add newly learned, modify or replace obsolete.\n\n[Quest System]\nMax 10 active quests. The quest log should NEVER stay empty for long — if no formal quest is active, create quests from the current narrative situation.\n\nPredefined quests (gate quests):\n• Listed in the [Quest List] lorebook entry with bracket IDs: [POL1], [SHD1], etc.\n• Use the EXACT code and name from the Quest List. Do NOT invent or modify gate quest IDs.\n• NEVER remove a predefined quest from the list without marking it - done: or - deleted:.\n• - done: triggers a backend system that advances the story arc and unlocks new information.\n\nAI-generated quests:\n• Actively create quests from the ongoing narrative. A quest is any goal, task, problem, or intention currently driving the story — not limited to formal missions or assignments.\n• Examples: \"기사단원들의 신뢰 얻기\", \"산세베리나의 의심 해소\", \"훈련장에서 실력 증명\", \"클로에의 실험 재료 채집 동행\"\n• Do NOT assign bracket IDs — write plain descriptions only.\n• May be freely added, completed, merged, or removed as the story evolves.\n\n[Quest Status Tags]\n• new: quest received this turn (predefined: include [ID], AI-generated: no ID)\n• ongoing: currently active quest\n• done: completed this turn (remove next turn; backend processes [ID] if present)\n• deleted: failed, abandoned, or merged this turn (remove next turn; no backend processing)\n\n[Stat Concealment]\n• Characters NEVER mention specific numeric values (LV, HP, MP, STR, INT, DEX, FAI, affection numbers) in dialogue or narration.\n• Characters may reference stats qualitatively: \"Your faith is remarkable\", \"You seem stronger\", \"She's exhausted her miracles.\"\n• The status panel is a meta-UI element, invisible to in-world characters.\n\n\n\n",
   "mode": "normal",
   "insertorder": 10000,
   "alwaysActive": true,
   "secondkey": "",
   "selective": false,
   "useRegex": false,
   "bookVersion": 2
  }
 ],
 "backgroundEmbedding": "<style>\n\n/* ===== Greeting Selector Card ===== */\n.pk-gs {\n  all: initial;\n  display: block;\n  width: 100%;\n  max-width: 420px;\n  margin: 16px auto;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 13px;\n  line-height: 1.6;\n  color: #b0bec5;\n  background: #0d1117;\n  padding: 14px 18px;\n  box-sizing: border-box;\n  border: 1px solid #2a3a4a;\n  border-radius: 10px;\n}\n.pk-gs * {\n  margin: 0; padding: 0;\n  box-sizing: border-box;\n  font: inherit; color: inherit; line-height: inherit;\n}\n.pk-gs .gs-header {\n  text-align: center;\n  border-bottom: 1px solid rgba(196, 160, 96, 0.2);\n  padding-bottom: 8px;\n  margin-bottom: 12px;\n}\n.pk-gs .gs-title {\n  color: #c4a060;\n  font-size: 14px;\n  font-weight: 700;\n  letter-spacing: 0.03em;\n}\n.pk-gs .gs-sub {\n  color: #6b7d8e;\n  font-size: 11px;\n  margin-top: 3px;\n  display: block;\n}\n.pk-gs .gs-section {\n  color: #6b7d8e;\n  font-size: 11.5px;\n  margin-bottom: 6px;\n  margin-top: 14px;\n  display: block;\n  letter-spacing: 0.02em;\n}\n.pk-gs .gs-section::before {\n  content: '\\25B8 ';\n  color: #c4a060;\n}\n.pk-gs .gs-chips {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 5px;\n  margin-bottom: 4px;\n}\n.pk-gs .gs-chip {\n  display: inline-block;\n  color: #b0bec5;\n  background: linear-gradient(145deg, #0f1923 0%, #151e2c 100%);\n  border: 1px solid #2a3a4a;\n  cursor: pointer;\n  border-radius: 7px;\n  font-size: 12px;\n  padding: 5px 11px;\n  user-select: none;\n  transition: border-color 0.2s, color 0.2s;\n}\n.pk-gs .gs-chip:hover {\n  color: #cfd8dc;\n  border-color: #c4a060;\n}\n.pk-gs .gs-chip .gs-chip-sub {\n  display: block;\n  font-size: 10px;\n  color: #6b7d8e;\n  margin-top: 1px;\n  line-height: 1.3;\n}\n.pk-gs .gs-chip-active {\n  color: #fff;\n  background: linear-gradient(145deg, #4a3a20 0%, #6a5a30 100%);\n  border-color: #c4a060;\n}\n\n/* ===== Gear Button (anchored in status panel flow) ===== */\n.pk-gear-bar {\n  display: flex;\n  justify-content: flex-end;\n  max-width: 480px;\n  margin: 8px auto 0;\n}\n.pk-gear-btn {\n  width: 36px;\n  height: 36px;\n  border-radius: 8px;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border: 1px solid #2a3a4a;\n  background: linear-gradient(145deg, #0f1923 0%, #151e2c 100%);\n  color: #c4a060;\n  font-size: 17px;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.25);\n  transition: all 0.2s;\n}\n.pk-gear-btn:hover {\n  border-color: #c4a060;\n  box-shadow: 0 2px 12px rgba(196,160,96,0.2);\n  color: #e0c880;\n}\n.pk-gear-btn:active {\n  transform: scale(0.96);\n}\n\n/* ===== Drawer (overlay + panel) ===== */\n.pk-drawer {\n  display: none;\n}\n.pk-drawer-open {\n  display: block;\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 9998;\n}\n.pk-drawer-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background: rgba(0, 0, 0, 0.45);\n  cursor: pointer;\n  animation: pk-fade-in 0.25s ease;\n}\n.pk-drawer-panel {\n  position: fixed;\n  top: 0;\n  right: 0;\n  width: 280px;\n  height: 100%;\n  background: linear-gradient(180deg, #0d1520 0%, #111c2b 100%);\n  border-left: 1px solid #2a3a4a;\n  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.4);\n  display: flex;\n  flex-direction: column;\n  z-index: 9999;\n  animation: pk-slide-in 0.3s ease;\n}\n@keyframes pk-slide-in {\n  from { transform: translateX(100%); }\n  to   { transform: translateX(0); }\n}\n@keyframes pk-fade-in {\n  from { opacity: 0; }\n  to   { opacity: 1; }\n}\n.pk-drawer-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 18px 20px;\n  border-bottom: 1px solid #2a3a4a;\n  color: #c4a060;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 15px;\n  font-weight: 700;\n  letter-spacing: 0.03em;\n}\n.pk-drawer-close {\n  cursor: pointer;\n  color: #5a6a7a;\n  font-size: 16px;\n  line-height: 1;\n  transition: color 0.2s;\n}\n.pk-drawer-close:hover {\n  color: #c8d8e8;\n}\n.pk-drawer-body {\n  flex: 1;\n  overflow-y: auto;\n  padding: 0;\n}\n\n/* ===== Tabs ===== */\n.pk-tab-bar {\n  display: flex;\n  border-bottom: 1px solid #2a3a4a;\n}\n.pk-tab {\n  flex: 1;\n  padding: 12px 8px;\n  border: none;\n  background: transparent;\n  color: #5a6a7a;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 12px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: all 0.2s;\n  letter-spacing: 0.02em;\n}\n.pk-tab:hover {\n  color: #b0bec5;\n}\n.pk-tab-active {\n  color: #c4a060;\n  border-bottom: 2px solid #c4a060;\n  background: rgba(196, 160, 96, 0.05);\n}\n\n/* ===== Affection List ===== */\n.pk-aff-list {\n  padding: 8px 0;\n}\n.pk-aff-section {\n  color: #5a6a7a;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  padding: 12px 20px 6px;\n}\n.pk-aff-row {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 10px 20px;\n  transition: background 0.15s;\n}\n.pk-aff-row:hover {\n  background: rgba(196, 160, 96, 0.04);\n}\n.pk-aff-name {\n  color: #b0bec5;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 13px;\n  font-weight: 500;\n}\n.pk-aff-val {\n  color: #c4a060;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 14px;\n  font-weight: 700;\n  min-width: 36px;\n  text-align: right;\n}\n\n/* ===== Options Placeholder ===== */\n.pk-opt-body {\n  padding: 20px;\n}\n.pk-opt-group {\n  padding: 0;\n}\n.pk-opt-group + .pk-opt-group {\n  margin-top: 16px;\n}\n.pk-opt-label {\n  color: #5a6a7a;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  margin-bottom: 10px;\n}\n.pk-opt-desc {\n  color: #465a6a;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 11px;\n  line-height: 1.4;\n}\n\n/* ===== Option Buttons ===== */\n.pk-opt-btns {\n  display: flex;\n  gap: 6px;\n  margin-top: 6px;\n}\n.pk-opt-btn {\n  flex: 1;\n  padding: 8px 12px;\n  border: 1px solid #2a3a4a;\n  background: linear-gradient(145deg, #0f1923 0%, #151e2c 100%);\n  color: #6b7d8e;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 12px;\n  font-weight: 600;\n  border-radius: 6px;\n  cursor: pointer;\n  transition: all 0.2s;\n}\n.pk-opt-btn:hover {\n  color: #b0bec5;\n  border-color: #3a4a5a;\n}\n.pk-opt-btn-active {\n  color: #c4a060;\n  background: rgba(196, 160, 96, 0.1);\n  border-color: #c4a060;\n}\n.pk-retag-btn {\n  margin-top: 12px;\n  width: 100%;\n  flex: unset;\n}\n.pk-retag-loading {\n  pointer-events: none;\n  color: #c4a060;\n  border-color: #c4a060;\n  text-align: center;\n}\n.pk-retag-loading::before {\n  content: '';\n  display: inline-block;\n  width: 11px;\n  height: 11px;\n  border: 2px solid #c4a060;\n  border-top-color: transparent;\n  border-radius: 50%;\n  animation: pk-spin 0.8s linear infinite;\n  margin-right: 6px;\n  vertical-align: -1px;\n}\n@keyframes pk-spin {\n  to { transform: rotate(360deg); }\n}\n\n/* ===== Status Card ===== */\n.pk-card {\n  margin: 12px auto;\n  max-width: 480px;\n  background: linear-gradient(145deg, #0f1923 0%, #151e2c 100%);\n  border: 1px solid #2a3a4a;\n  border-radius: 10px;\n  padding: 14px 16px;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 12.5px;\n  line-height: 1.5;\n  color: #b0bec5;\n  display: flex;\n  flex-direction: column;\n  gap: 0;\n}\n\n/* --- Shared Section Structure --- */\n.pk-sec {\n  padding: 10px 0;\n  border-bottom: 1px solid rgba(196, 160, 96, 0.1);\n}\n.pk-sec:last-child { border-bottom: none; }\n.pk-sec-sm { padding: 8px 0; }\n.pk-sec-head {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 8px;\n}\n.pk-sec-title {\n  color: #6b7d8e;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.08em;\n}\n\n/* --- TIME --- */\n.pk-time-sec {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 8px;\n}\n.pk-time-date {\n  color: #c4a060;\n  font-size: 11.5px;\n  font-weight: 600;\n  letter-spacing: 0.02em;\n  white-space: nowrap;\n}\n.pk-time-loc {\n  color: #b0bec5;\n  font-size: 11px;\n  text-align: right;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n/* --- STATS --- */\n.pk-lv {\n  display: inline-flex;\n  align-items: center;\n  background: rgba(196, 160, 96, 0.12);\n  border: 1px solid rgba(196, 160, 96, 0.3);\n  border-radius: 6px;\n  padding: 2px 10px;\n  color: #c4a060;\n  font-size: 13px;\n  font-weight: 700;\n  letter-spacing: 0.02em;\n}\n.pk-stats-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 3px 16px;\n}\n.pk-stat {\n  display: flex;\n  justify-content: space-between;\n  align-items: baseline;\n  padding: 2px 4px;\n  border-radius: 4px;\n}\n.pk-stat:hover { background: rgba(255,255,255,0.02); }\n.pk-stat-l {\n  color: #6b7d8e;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: 0.04em;\n  min-width: 30px;\n}\n.pk-stat-v {\n  color: #cfd8dc;\n  font-size: 12.5px;\n  font-weight: 500;\n  text-align: right;\n}\n.pk-hp .pk-stat-v { color: #e07070; }\n.pk-mp .pk-stat-v { color: #70a0e0; }\n\n/* --- EQUIPMENT --- */\n.pk-equip-row {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n}\n.pk-eslot {\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  background: rgba(42, 58, 74, 0.4);\n  border: 1px solid #2a3a4a;\n  border-radius: 6px;\n  padding: 5px 10px;\n  font-size: 11px;\n}\n.pk-etype {\n  color: #5a6a7a;\n  font-weight: 700;\n  font-size: 9px;\n  letter-spacing: 0.06em;\n  text-transform: uppercase;\n  flex-shrink: 0;\n  min-width: 52px;\n  border-right: 1px solid rgba(196, 160, 96, 0.15);\n  padding-right: 8px;\n}\n.pk-ename {\n  color: #cfd8dc;\n  font-size: 11.5px;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n/* --- MONEY --- */\n.pk-gold-val {\n  color: #c4a060;\n  font-size: 11.5px;\n  font-weight: 500;\n  letter-spacing: 0.02em;\n  padding: 6px 4px 0;\n}\n\n/* --- INVENTORY / SKILLS (shared) --- */\n.pk-inv-content,\n.pk-skill-content {\n  color: #b0bec5;\n  font-size: 11.5px;\n  line-height: 1.6;\n  padding: 2px 4px;\n}\n.pk-inv-none {\n  color: #5a6a7a;\n}\n\n/* --- QUESTS (collapsible) --- */\n.pk-quest-details {\n  margin: 0;\n}\n.pk-quest-details summary {\n  cursor: pointer;\n  list-style: none;\n  user-select: none;\n}\n.pk-quest-details summary::-webkit-details-marker { display: none; }\n.pk-quest-details summary .pk-sec-title::before {\n  content: '\\25B8 ';\n  font-size: 11px;\n  vertical-align: 0;\n}\n.pk-quest-details[open] summary .pk-sec-title::before {\n  content: '\\25BE ';\n}\n.pk-quest-list {\n  padding: 4px 0 0 0;\n}\n.pk-q {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 4px 0;\n}\n.pk-qb {\n  font-size: 8px;\n  font-weight: 700;\n  letter-spacing: 0.06em;\n  padding: 2px 6px;\n  border-radius: 3px;\n  min-width: 52px;\n  text-align: center;\n  flex-shrink: 0;\n}\n.pk-qb-on {\n  background: rgba(96, 180, 96, 0.15);\n  color: #60b460;\n  border: 1px solid rgba(96, 180, 96, 0.25);\n}\n.pk-qb-new {\n  background: rgba(96, 160, 220, 0.15);\n  color: #60a0dc;\n  border: 1px solid rgba(96, 160, 220, 0.25);\n}\n.pk-qb-wait {\n  background: rgba(200, 170, 80, 0.15);\n  color: #c0a850;\n  border: 1px solid rgba(200, 170, 80, 0.25);\n}\n.pk-qb-done {\n  background: rgba(120, 120, 120, 0.12);\n  color: #707070;\n  border: 1px solid rgba(120, 120, 120, 0.2);\n}\n.pk-qb-del {\n  background: rgba(180, 80, 80, 0.12);\n  color: #b05050;\n  border: 1px solid rgba(180, 80, 80, 0.2);\n}\n.pk-qt {\n  color: #b0bec5;\n  font-size: 11.5px;\n}\n.pk-qt-done {\n  color: #606870;\n  text-decoration: line-through;\n}\n\n/* ===== System Notice ===== */\n.pk-sys {\n  max-width: 480px;\n  margin: 12px auto;\n  background: linear-gradient(145deg, #14110a 0%, #1a160e 100%);\n  border: 1px solid #4a3c20;\n  border-radius: 8px;\n  padding: 11px 16px 12px;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  color: #d8cba8;\n  font-size: 12.5px;\n  line-height: 1.5;\n}\n.pk-sys-head {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 9px;\n  color: #c4a060;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  margin-bottom: 8px;\n}\n.pk-sys-head::before,\n.pk-sys-head::after {\n  content: '';\n  width: 30px;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, rgba(196, 160, 96, 0.55));\n}\n.pk-sys-head::after {\n  background: linear-gradient(90deg, rgba(196, 160, 96, 0.55), transparent);\n}\n.pk-sys-body {\n  display: flex;\n  flex-direction: column;\n  gap: 5px;\n}\n.pk-sys-row {\n  display: flex;\n  align-items: baseline;\n  gap: 8px;\n}\n.pk-sys-notice {\n  color: #ede3c8;\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.45;\n}\n.pk-sys-notice::before {\n  content: '\\25C6';\n  color: #c4a060;\n  font-size: 9px;\n  margin-right: 7px;\n  vertical-align: 1px;\n}\n.pk-sys-label {\n  flex-shrink: 0;\n  font-size: 9px;\n  font-weight: 700;\n  letter-spacing: 0.05em;\n  color: #c8a86a;\n  border: 1px solid rgba(196, 160, 96, 0.35);\n  border-radius: 3px;\n  padding: 1px 6px;\n}\n.pk-sys-stat .pk-sys-label {\n  color: #8ac58a;\n  border-color: rgba(120, 190, 120, 0.35);\n}\n.pk-sys-text {\n  color: #cfc3a0;\n  font-size: 11.5px;\n}\n\n/* ===== Image Container ===== */\n.image-container {\n  position: relative;\n  width: 35em;\n  height: 28em;\n  margin: auto;\n  background-size: cover;\n  background-position: center 10%;\n  border-radius: 20px;\n  cursor: pointer;\n  transition: all 0.6s ease;\n  max-width: 100%;\n  overflow: hidden;\n}\n.image-container:hover {\n  height: 50em;\n  background-position: center 5%;\n  outline: none;\n}\n\n/* ===== Asset Name Label ===== */\n.pk-asset-name {\n  position: absolute;\n  right: 14px;\n  bottom: 12px;\n  font-family: 'Pretendard', 'Noto Sans JP', -apple-system, sans-serif;\n  font-size: 15px;\n  font-weight: 700;\n  color: #fff;\n  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000, 0 0 3px rgba(0,0,0,0.55);\n  letter-spacing: 0.02em;\n  pointer-events: none;\n  opacity: 1;\n  transition: opacity 0.3s ease;\n  z-index: 2;\n}\n.image-container:hover .pk-asset-name,\n.image-container:focus .pk-asset-name {\n  opacity: 0;\n}\n\n/* ===== Responsive ===== */\n@media (max-width: 768px) {\n  .pk-drawer-panel {\n    width: 100%;\n  }\n  .pk-card {\n    margin: 8px 0;\n    border-radius: 8px;\n    padding: 10px 12px;\n  }\n  .image-container {\n    width: 95vw;\n    height: 60vw;\n    background-position: center 15%;\n    border-radius: 12px;\n  }\n  .image-container:hover {\n    height: 110vw;\n    background-position: center 10%;\n  }\n  .pk-asset-name {\n    font-size: 12px;\n    right: 10px;\n    bottom: 9px;\n  }\n}\n\n</style>\n",
 "trigger": [
  {
   "comment": "",
   "type": "manual",
   "conditions": [],
   "effect": [
    {
     "type": "v2Header",
     "code": "",
     "indent": 0
    }
   ],
   "lowLevelAccess": false
  },
  {
   "comment": "New Event",
   "type": "manual",
   "conditions": [],
   "effect": [],
   "lowLevelAccess": false
  }
 ],
 "lowLevelAccess": false
}

🔗 이것과 비슷한 인기 자산

🔫 Rex Trigger Volcan_T
🔫 Rex Statusbar — Update Rex Trigger Volcan's Statusbar Directive Goal: Dynamically modify the contents of the Rex Trigg
👍70 ·
📖 만화 스타일 상태창
상태창 지시문 — @@depth 0 Status Interface Always place this format at the very end of the output. [ Date: YYYY/MM/DD (day of
👍46 ·
🎮 미연시 상태창 fix2
⚙ Char/User 2인 상태창 — @@depth 0 Status Interface Always place this format at the very end of the output. format: [ Date:
👍41 ·
🔖🏷️태그마스터
이야기의 분위기를 바꾸세요
👍39 ·
🐞 W2 · /city/asset