FURKUP / SCHEMA VERSION 1

MOD
SPECIFICATION
MOD
仕様書

SCHEMA VERSION1

Data, PNG and OGG only.
No executable code.
データ、PNG、OGGのみ。
実行コードは禁止。

MYVOICE

IN-GAME
VOICE RECORDING
ゲーム内
音声録音

Record up to 18 shouts directly inside FURKUP. The game converts them to a normal Voice MOD, uses them immediately, and can export a Workshop-ready ZIP.FURKUPのゲーム内で最大18種類の掛け声を直接録音できます。録音は通常のVoice MODへ変換され、すぐにゲームで使用でき、Workshop向けZIPとして保存できます。

MYVOICE DETAILSMyVOICE詳細 ↓

01

Overview概要

A FURKUP MOD is one Package containing one or more of five content categories. Official content is loaded through the same system.FURKUPのMODは、5種類のコンテンツを1つ以上含むPackageです。公式コンテンツも同じ仕組みで読み込まれます。

WORDTokens and completion imagesトークンと完成画像
VOICEChain and event voices連鎖・イベント音声
SKINBoards, effects and BGM盤面・演出・BGM
CPU CHARACTERSPortraits, names, descriptions画像・名前・解説
PRESETA recommended combinationおすすめの組み合わせ
CANNOT CHANGE変更できないもの

Board size, falling speed, piece generation, clears, scoring, attacks, garbage behavior, win conditions, game modes, fixed UI positions, networking or game code.盤面サイズ、落下速度、ピース生成、消去判定、得点、攻撃、お邪魔、勝敗条件、ゲームモード、固定UI座標、通信、ゲーム本体コード。

02

Package

The Package folder is the install, removal and Workshop unit. Only files listed by manifest.json are loaded as content.Packageフォルダが導入・削除・Workshop公開の単位です。コンテンツとして読み込まれるのはmanifest.jsonに列挙されたものだけです。

Directory structureフォルダ構成

example-mod/
├─ manifest.json
├─ thumbnail.png
├─ presets/
│  └─ default.json
├─ words/
│  └─ my-word/
│     ├─ word.json
│     ├─ token-f.png
│     └─ complete-1.png
├─ voices/
│  └─ my-voice/
│     ├─ voice.json
│     └─ chain-1.ogg
├─ skins/
│  └─ my-skin/
│     ├─ skin.json
│     ├─ background.png
│     └─ game.ogg
└─ cpu-characters/
   └─ my-cast/
      ├─ cpu-characters.json
      └─ adol.png

manifest.json

{
  "schemaVersion": 1,
  "id": "author.example-mod",
  "name": "Example Complete Pack",
  "version": "1.0.0",
  "author": "Author Name",
  "description": "Example package",
  "gameVersion": ">=0.2.9 <1.0.0",
  "license": "CC-BY-4.0",
  "attribution": "Optional rights notice",
  "thumbnail": "thumbnail.png",
  "presets": ["presets/default.json"],
  "words": ["words/my-word/word.json"],
  "voices": ["voices/my-voice/voice.json"],
  "skins": ["skins/my-skin/skin.json"],
  "cpuCharacters": ["cpu-characters/my-cast/cpu-characters.json"]
}
Field項目Rule仕様
schemaVersionRequired integer: 1必須。整数1
id3–64 chars. Lowercase ASCII letters, digits, dot and hyphen. Must contain a dot.3~64文字。小文字ASCII英数字、ピリオド、ハイフン。ピリオドを1つ以上含む。
versionMAJOR.MINOR.PATCH without prerelease suffixprereleaseを含まないMAJOR.MINOR.PATCH
author1–64 chars1~64文字
description0–500 chars0~500文字
licenseSPDX ID or short rights identifier, 1–64 charsSPDX IDまたは短い権利識別子、1~64文字
thumbnailRequired PNG. 1:1 / 1024×1024 recommended.必須PNG。1:1/1024×1024推奨。
category arraysカテゴリ配列Each array may be empty; the Package must list at least one content item in total.各配列は空でもよいが、合計で1件以上のコンテンツが必要。

Content rights metadataコンテンツの権利情報

Every Word, Voice, Skin, CPU Characters and Preset JSON carries its own creator and rights information. Package metadata describes the whole Package and is not inherited by its contents.Word、Voice、Skin、CPU Characters、Presetの各JSONは、それぞれ固有の制作者・権利情報を持ちます。PackageのメタデータはPackage全体を説明するもので、各コンテンツには継承されません。

Field項目Rule仕様
authorRequired, 1–64 chars. The content creator; for Voice, this may be the voice actor or audio producer.必須、1~64文字。コンテンツ制作者。Voiceでは声優または音声制作者を指定できます。
descriptionRequired, 0–500 chars.必須、0~500文字。
licenseRequired, 1–64 chars.必須、1~64文字。
attributionOptional, 1–500 chars. Free-form credits; line breaks are allowed and displayed as text, never HTML.任意、1~500文字。自由形式のクレジット。改行可能で、HTMLではなくテキストとして表示されます。

Customize displays the content Author, License, optional Credits and Description, with the Package name shown separately. Missing required metadata or unknown fields invalidates the entire Package. Schema version 1 has no legacy fallback.CustomizeではコンテンツのAuthor、License、任意のCredits、Descriptionを表示し、Package名は別に表示します。必須メタデータの欠落や未知フィールドがある場合、Package全体が無効になります。schemaVersion 1に旧形式への暗黙フォールバックはありません。

03

Word

Word defines the four ordered token images and the full-screen image shown when the word is completed.Wordは、順番を持つ4種類のトークン画像と、ワード完成時に表示する画像を定義します。

{
  "schemaVersion": 1,
  "id": "my-word",
  "name": "MY WORD",
  "author": "Author Name",
  "description": "Four custom tokens.",
  "license": "CC-BY-4.0",
  "attribution": "Artwork: Author Name.",
  "completedWordLabel": "MY WORD",
  "completionImages": [
    "words/my-word/complete-1.png",
    "words/my-word/complete-2.png"
  ],
  "tokens": [
    { "id": "token0", "image": "words/my-word/token-0.png" },
    { "id": "token1", "image": "words/my-word/token-1.png" },
    { "id": "token2", "image": "words/my-word/token-2.png" },
    { "id": "token3", "image": "words/my-word/token-3.png" }
  ]
}
  • tokens must contain exactly four entries in completion order: token0 → token1 → token2 → token3.tokensは完成順にtoken0 → token1 → token2 → token3の4件固定です。
  • Token art: transparent PNG, 1:1 and 256×256 recommended.トークン画像は透過PNG、1:1、256×256推奨です。
  • completionImages: 1–32 PNG files. Entry 1 is STREAK 1, entry 2 is STREAK 2, and the final image repeats after the list ends.completionImagesは1~32件。先頭からSTREAK 1、2…へ対応し、件数を超えた後は末尾画像を使い続けます。
  • Completion art: transparent 16:9 PNG up to 1920×1080 recommended.完成画像は透過16:9 PNG、1920×1080以下を推奨します。
  • Word cannot contain scoring, speed, attack or rule values.Wordに得点、速度、攻撃、ルール値は指定できません。

04

Voice

Voice defines the shout used for each completed-word STREAK and optional system/result calls.Voiceはワード完成STREAKごとの掛け声と、任意のシステム・結果音声を定義します。

{
  "schemaVersion": 1,
  "id": "my-voice",
  "name": "My Voice",
  "author": "Voice Actor Name",
  "description": "Custom shout set.",
  "license": "All-Rights-Reserved",
  "attribution": "Voice: Voice Actor Name.",
  "systemCues": {
    "ready": "voices/my-voice/ready.ogg",
    "go": "voices/my-voice/go.ogg",
    "hurryUp": "voices/my-voice/hurry-up.ogg",
    "win": "voices/my-voice/win.ogg",
    "lose": "voices/my-voice/lose.ogg"
  },
  "chainCues": [
    "voices/my-voice/chain-1.ogg",
    "voices/my-voice/chain-2.ogg"
  ]
}
  • chainCues: Required, 1–32 OGG files. The last cue repeats when the STREAK exceeds the list.必須。1~32件のOGG。STREAKが件数を超えると末尾を繰り返します。
  • systemCues: ready, go, timeUp, gameOver, win, lose, draw, noGame, gameSet, hurryUp, newRecord.
  • Ogg Vorbis only. 0.4–3 seconds, mono, 44.1 kHz and about -16 LUFS are recommended. One file must be 10 MiB or less.Ogg Vorbisのみ。0.4~3秒、mono、44.1 kHz、約-16 LUFSを推奨。1ファイル10 MiB以下が必須です。
  • Only one Voice plays at a time. A newer cue stops the previous cue.Voiceは同時に1つだけ再生され、新しいcueが古いcueを停止します。

05

MyVOICE

The easy way: record inside the game.いちばん簡単な方法:ゲーム内で録音する。

  1. 1Open MyVOICE from the title screen.タイトル画面からMyVOICEを開く。
  2. 2Press RECORD and shout. Recording stops automatically after 3 seconds.RECORDを押して叫ぶ。3秒で自動停止。
  3. 3Record CHAIN 1. MyVOICE becomes selectable immediately in Customize.CHAIN 1を録音すると、CustomizeでMyVOICEを選択可能。
  4. 4Use SAVE MOD ZIP when you want to share it.共有したい場合はSAVE MOD ZIPで保存。

18 recordable cues録音できる18種類

CHAIN / 7CHAIN 1–7
SYSTEM / 4READY · GO · HURRY UP · NEW RECORD
RESULT 1 / 4WIN · LOSE · DRAW · NO GAME
RESULT 2 / 3GAME OVER · GAME SET · TIME UP
  • Only CHAIN 1 is required. Missing chain stages reuse the most recent recorded stage; STREAK 8+ uses the final available chain cue.必須なのはCHAIN 1だけです。途中が未収録なら直前の音声を使い、STREAK 8以上は最後の収録済みchain cueを使います。
  • Re-recording atomically replaces that cue. PLAY previews the actual saved OGG. DELETE removes one cue; DELETE ALL removes the set.再録音は同じcueを原子的に上書きします。PLAYは保存されたOGGそのものを試聴し、DELETEは1件、DELETE ALLは全件を削除します。
  • The local Package ID is furkup.my-voice and its Voice ID is my-voice. Export uses a stable fu-xxxx-xxxx.my-voice Package ID based on the Public ID at the first ZIP save.端末内Package IDはfurkup.my-voice、Voice IDはmy-voiceです。配布ZIPでは初回保存時のPublic IDを使ったfu-xxxx-xxxx.my-voiceを固定Package IDとして使います。
  • In an exported ZIP, both the Package manifest and Voice JSON use that first-save Public ID as author. The Voice description and attribution identify it as a MyVOICE recording, and its license is User-created.書き出したZIPでは、Package manifestとVoice JSONのauthorに初回保存時のPublic IDを使用します。VoiceのdescriptionとattributionにはMyVOICE録音であることを記載し、licenseはUser-createdになります。
  • The export ID remains stable after DELETE ALL, re-recording or regenerating the profile Public ID.配布用IDはDELETE ALL、再録音、プロフィールのPublic ID再生成を行っても変わりません。
  • Recordings stay in local user data. Nothing is uploaded automatically.録音は端末のユーザーデータ内だけに保存され、自動アップロードされません。
  • MyVOICE works in both the full version and demo. Workshop upload uses the normal MOD submission flow, not the MyVOICE screen.MyVOICEは製品版・体験版の両方で利用可能。Workshop投稿はMyVOICE画面ではなく通常のMOD投稿経路を使います。

06

Skin

Skin changes the playfield, frames, event images, colors and gameplay BGM. It does not own the four normal token images or the word.Skinは背景、盤面、枠、イベント画像、表示色、ゲーム中BGMを変更します。通常トークン4種とワードはSkinではなくWordが所有します。

{
  "schemaVersion": 1,
  "id": "my-skin",
  "name": "My Skin",
  "author": "Author Name",
  "description": "Custom visual skin.",
  "license": "CC-BY-4.0",
  "attribution": "Artwork: Author Name.",
  "gameStartAnimation": "overlay",
  "colors": {
    "gameStatsText": "#171715",
    "scoreText": "#171715",
    "timerText": "#171715",
    "nameText": "#171715"
  },
  "images": {
    "background": "skins/my-skin/background.png",
    "boardBackground": "skins/my-skin/board-background.png",
    "boardFrame": "skins/my-skin/board-frame.png",
    "nextBombBackground": "skins/my-skin/next-bomb-background.png",
    "nextBombFrame": "skins/my-skin/next-bomb-frame.png",
    "bomb": "skins/my-skin/bomb.png",
    "garbage": "skins/my-skin/garbage.png",
    "gameStartImage1": "skins/my-skin/ready.png",
    "gameStartImage2": "skins/my-skin/go.png"
  },
  "audio": { "bgm": "skins/my-skin/game.ogg" }
}
Asset素材Recommended source推奨素材
background1920×1080 PNG / 16:9
boardBackground, boardFrame682×1226 PNG
nextBombBackground, nextBombFrame616×646 PNG
bomb, garbage, settingsButton256×256 transparent PNG
event imagesイベント画像1920×1080 transparent PNG / 16:9
audio.bgmLoopable Ogg Vorbis

Other allowed image slots: playerTwoNextBombBackground, playerTwoNextBombFrame, settingsButton, hurryUp, timeUp, gameOver, win, lose, draw, noGame and gameSet. gameStartAnimation accepts overlay, rightToLeft or bottomToTop.その他の許可画像スロット:playerTwoNextBombBackground、playerTwoNextBombFrame、settingsButton、hurryUp、timeUp、gameOver、win、lose、draw、noGame、gameSet。gameStartAnimationはoverlay、rightToLeft、bottomToTopの3種類です。

07

CPU Characters

CPU Characters replaces portraits, display names and descriptions for all 18 fixed CPU profile IDs. It cannot change AI behavior or Skill.CPU Charactersは固定18種類のCPU Profile IDに対応する画像、表示名、解説を差し替えます。AI挙動やSkillは変更できません。

{
  "schemaVersion": 1,
  "id": "my-cast",
  "name": "My CPU Cast",
  "author": "Author Name",
  "description": "Custom CPU portraits.",
  "license": "CC-BY-4.0",
  "characters": {
    "adol": {
      "image": "cpu-characters/my-cast/adol.png",
      "locales": {
        "en": { "name": "Dragon", "description": "A careful builder." },
        "ja": { "name": "ドラゴン", "description": "慎重な積み手。" }
      }
    }
  }
}

All 18 IDs are required: peter, karen, adol, mira, noel, gantz, rena, lulu, baxter, selma, toma, iris, dante, rook, emma, vincent, yuna and orion. English name and description are required for every character. Square 512×512 or larger portraits are recommended.18 IDすべてが必須:peter、karen、adol、mira、noel、gantz、rena、lulu、baxter、selma、toma、iris、dante、rook、emma、vincent、yuna、orion。全員に英語の名前と解説が必須です。画像は正方形512×512以上を推奨します。

08

Preset

Preset selects a recommended combination. Players can still change each category independently afterward.Presetはおすすめの組み合わせを一度に選択します。適用後も各カテゴリを個別に変更できます。

{
  "schemaVersion": 1,
  "id": "my-default",
  "name": "My Default",
  "author": "Author Name",
  "description": "Recommended combination.",
  "license": "CC-BY-4.0",
  "attribution": "Optional credits.",
  "word": { "contentId": "my-word" },
  "voice": { "contentId": "my-voice" },
  "skin": { "contentId": "my-skin" },
  "cpuCharacters": { "contentId": "my-cast" }
}

word, voice and skin are required. cpuCharacters is optional. Without packageId, the reference points inside the same Package. Only official Packages may be referenced externally.word、voice、skinは必須、cpuCharactersは任意です。packageIdを省略すると同じPackage内を参照します。外部参照できるのは公式Packageだけです。

09

Limits & safety上限と安全性

Target対象Limit上限
Packages per root1読込ルートのPackage数256
Files per Package1Packageのファイル数512
Total Package size1Packageの合計100 MiB
JSON256 KiB / file
PNG8 MiB / 4096×4096 max
OGG10 MiB / file
Items per category arrayカテゴリ配列128
  • Only .json, .png and .ogg files are allowed..json、.png、.oggだけを許可します。
  • Absolute paths, URLs, backslashes, empty path parts, . and .. are rejected.絶対パス、URL、バックスラッシュ、空要素、.、..を拒否します。
  • Symlinks, junctions and Package-external references are rejected.シンボリックリンク、junction、Package外参照を拒否します。
  • One invalid content item invalidates its entire Package, while other Packages continue loading.1件でも不正なコンテンツがあればPackage全体を無効化しますが、他のPackageは読み込みを継続します。
  • JavaScript, DLLs, executables, CSS, HTML and external commands cannot be used.JavaScript、DLL、実行ファイル、CSS、HTML、外部コマンドは使用できません。

10

Install / Workshop

  1. LOCALローカルIn both development and packaged builds, place an unpacked Package at Electron userData/mods/&lt;package&gt;/. Do not use mods/user or generate user Packages inside the source tree watched by Vite.開発版・パッケージ版ともに、展開済みPackageはElectronのuserData/mods/&lt;package&gt;/へ置きます。mods/userは使用せず、Viteが監視するソースツリー内へユーザーPackageを生成しないでください。
  2. INSTALL導入Workshop subscriptions are managed by Steam. FURKUP validates the installed Package before adding it to Customize.Workshop購読はSteamが管理し、FURKUPが導入Packageを検証してからCustomizeへ追加します。
  3. PUBLISH投稿Submit a ZIP whose root contains manifest.json. The game derives Workshop tags from the Package categories.ルートにmanifest.jsonを置いたZIPを投稿します。WorkshopタグはPackageのカテゴリからゲームが自動生成します。
  4. ONLINE対戦MOD files are never sent to the opponent. Both players may use different local presentation while synchronized gameplay uses only rule state and token IDs.MODファイルは相手へ送信されません。表示は各端末で異なってもよく、同期にはルール状態とトークンIDだけを使います。

Workshop rules and moderationWorkshopのルールとモデレーション

Only upload content that follows the Steam rules and that you have the rights and permissions to share. Illegal, hateful, harassing, pornographic, privacy-invasive, stolen or otherwise rights-infringing content is prohibited.Steamのルールに従い、共有する権利と許可を持つコンテンツだけを投稿してください。違法、差別・憎悪、嫌がらせ、ポルノ、プライバシー侵害、盗用、その他の権利侵害コンテンツは禁止です。

Use Report on the Steam Workshop item page to report a MOD. You may also contact FURKUP Support with the item URL or Published File ID. Reported items are reviewed and may be marked incompatible or inappropriate, banned, or removed; repeat or severe violations may also lead to restrictions on the contributor.MODを通報する場合はSteam Workshopのアイテムページにある通報機能を使用してください。アイテムURLまたはPublished File IDを添えてFURKUP Supportへ連絡することもできます。通報されたアイテムは確認のうえ、非互換・不適切の指定、BAN、削除を行う場合があります。重大または反復する違反では投稿者を制限する場合もあります。

OPEN STEAM WORKSHOP ↗STEAM WORKSHOPを開く ↗   REPORTING HELP通報方法 →

DEMO体験版

The demo loads official Packages and the locally generated furkup.my-voice Package. MyVOICE recording and SAVE MOD ZIP remain available, but Workshop browsing and posting are full-version features.体験版は公式Packageと端末内生成のfurkup.my-voiceだけを読み込みます。MyVOICE録音とSAVE MOD ZIPは利用できますが、Workshopの検索・投稿は製品版機能です。