シングシート (Thing)
ソーステーブルを作成するときは、必ず公式ソーステーブルの最初の3行をそのままコピーし、4行目以降にデータを入力してください。
列、空行、空セルについて
足りない列はエラーも出さずに空の値で埋められますので、公式テーブルのヘッダー行はまるごとコピーし、列を削らず、列の順序も変更しないでください。
id が空の行があると、そこでシートの読み込みが打ち切られます。 それ以降の行はすべて読み込まれず、警告も出ません。意図的でない限り、データの区切りに空行を使わないでください。
空セルは空の値ではありません。ゲームは3行目のデフォルト値にフォールバックし、components は log、defMat は oak、category は other が既定値です。
3行目のデフォルト値を書き換えれば、それを他のすべての行に適用できます。データは4行目から入力してください。
公式の Thing テーブルには sort 列が2つあり、実際に使われるのは後ろのほうです(同名の列は最後のものが優先されます)。ヘッダーはそのままコピーすれば問題ありません。
シートの列
| 列 | タイプ | 説明 |
|---|---|---|
| id | テキスト | アイテムの一意の識別子。 |
| name_JP | テキスト | 日本語の表示名。 |
| name | テキスト | 英語の表示名。 |
| unknown_JP | テキスト | 未鑑定時のレアリティの高いアイテムの日本語名。#randomBook や #randomPotion のような特殊属性になることもあります。 |
| unit_JP | テキスト | 日本語の助数詞です。下記の Unit JP を参照してください。 |
| unit | テキスト | アイテムの物理的形状です。下記の Unit を参照してください。 |
| unknown | テキスト | 未鑑定時のレアリティの高いアイテムの英語名。#randomBook や #randomPotion のような特殊属性になることもあります。 |
| naming | テキスト | スタック時の名前の組み立て方。m = 「素材名+アイテム名(個数)」、ma = 素材名のみ(個数)で原材料向け、空欄 = アイテム名のみ(個数)。 |
| category | テキスト | アイテムが属するカテゴリ。自動搬入やレシピメニュー(Category シートと連携)に使用されます。 |
| sort | 整数 | ソート順。例:2200 で弓の範囲に配置されます。sort 列は2つあり、実際に使われるのは後ろのほうです(同名の列は最後のものが優先されます)が、どちらも削除しないでください。 |
| _tileType | テキスト | マップ上の表示方法です。下記の Tile Type を参照してください。ゲームが知っているタイプ名である必要があり、綴りを間違えるとソーステーブル全体が読み込めなくなります。 |
| _idRenderData | テキスト | 地面への設置方法とクリッピングの制御です。下記の idRenderData を参照してください。 |
| tiles | 整数[] | 差し替えテクスチャのタイルID。複数ある場合は「正面 → 正面反転 → 背面 → 背面反転」の順。例:123,-123,456,-456。 |
| altTiles | 整数[] | 別状態用のバリアントタイル(例:中身が入った宝箱)。 |
| anime | 整数[] | 2つの値: フレーム数, フレーム継続時間。idRenderData 列で @obj を使用し、かつ Sprite Animation を使用する場合、この列を記入する必要はありません。 |
| skins | 整数[] | スキンバリアントの参照。値の個数がそのまま選べる見た目の数になります(基本の見た目を含めて N+1 種類。建築メニューとクラフトメニューはこれをもとに一覧を出します)。idRenderData 列で @obj を使用し、かつ Sprite Variations を使用する場合、この列を記入する必要はありません。 |
| size | 整数[] | 大型オブジェクトのグリッドサイズ:幅,高さ。 |
| colorMod | 整数 | 色の彩度補正。0 は着色しないという意味です。 |
| colorType | テキスト | 色の参照元:default(クラフトの1番目の素材)、alt(2番目の素材)、または random。 |
| recipeKey | テキスト[] | レシピの入手方法:* = デフォルトで習得済み、- = ランダムレシピの対象外、キャラID = そのキャラが販売。 |
| factory | テキスト[] | クラフトに使用する設備です。下記の Factory を参照してください。 |
| components | テキスト[] | クラフトの材料です。下記の Components を参照してください。 |
| disassemble | テキスト[] | 分解時に得られるアイテム。 |
| defMat | テキスト | デフォルト素材(例:oak)。アイコン/プレビューの色を決定します。先頭に ! を付ける(例:!oak)と素材が固定され、生成時に別の素材へ変わらなくなります。存在しない素材を指定した場合は警告なく granite になります。 |
| tierGroup | テキスト | アップグレード/進行のティアグループ。 |
| value | 整数 | 基本売却価格(オレン)。 |
| LV | 整数 | クラフトに必要なスキルレベル。 |
| chance | 整数 | 生成確率の補正値。 |
| quality | 整数 | アイテムのレアリティ段階:-1 Crude、0 Normal、1 Superior、2 Legendary、3 Mythical、4 Artifact。☆ や ★ はこの列によって決定されます。offense / defense がそのまま使われるかどうかもこの列で決まります(下記の 攻撃力と防御力 を参照)。 |
| weight | 整数 | アイテムの重さ。例:種 = 30、ロッド = 500、ベッド = 4500、ピアノ = 85000。 |
| electricity | 整数 | 消費電力。負の値は電力を消費します(例:モニター = -10)。 |
| trait | テキスト[] | 特殊な動作です。下記の Trait を参照してください。 |
| elements | テキスト | Element シートのエイリアスと /レベル。例:lumberjack/4 はゲーム内で Lumberjack [****] と表示されます。 |
| range | 整数 | 武器の射程(タイル数)。例:ショートボウ = 1、ボウ = 3、レールガン = 5。 |
| attackType | テキスト | ダメージ/武器タイプ:Blunt、Bow、Cane、Claw、Gun、Pierce、Punch、Slash。 |
| offense | 整数[4] | 攻撃ステータス:ダイスの数,ダイスの面,ダメージ補正,命中補正。例:2,8,5,4 は 2d8・ダメージ+5・命中+4 です。下記の 攻撃力と防御力 を参照してください。 |
| substats | 整数[] | サブステータス補正。公式の行ではいずれも値を1つだけ指定しています。 |
| defense | 整数[2] | 防御ステータス:DV,PV。下記の 攻撃力と防御力 を参照してください。 |
| lightData | テキスト | 光源のプリセットです。下記の Light Data を参照してください。 |
| idExtra | テキスト | 追加レンダーデータの参照。 |
| idToggleExtra | テキスト | ON/OFF切り替え可能なレンダーデータ(例:照明)。 |
| idActorEx | テキスト | オブジェクト周辺の環境効果です。下記の Ambient Effects を参照してください。 |
| idSound | テキスト | クラフト時の効果音:glass、money、paper など。 |
| tag | テキスト[] | 組み込みの動作フラグです。下記の Tags を参照してください。 |
| workTag | テキスト | 作業関連のタグ。 |
| filter | テキスト[] | クラフト以外の入手経路:fish、gacha、supply など。CreateFromFilter でランダム生成に使用されます。 |
| roomName_JP | テキスト[] | 部屋タイプの定義(日本語)。カンマ区切りで複数指定可能。 |
| roomName | テキスト[] | 部屋タイプの定義(英語)。例:Bedroom または Kitchen,Dining Room。 |
| detail_JP | テキスト | アイテム説明(日本語)。ゲーム内でステータス情報の上に表示されます。 |
| detail | テキスト | アイテム説明(英語)。ゲーム内でステータス情報の上に表示されます。 |
Unit JP
unit_JP 列は、そのアイテムを数えるときの助数詞を指定します。
| 値 | 値 | 値 |
|---|---|---|
| 塊 | 振り | 対 |
| 台 | 挺 | 発 |
| 本 | 枚 | 粒 |
| 巻 | 冊 | 錠 |
| 隻 | 束 | 体 |
| 袋 | 張 | 杯 |
| 匹 | 品 |
Unit
unit 列はアイテムの物理的形状を定義します。
| 値 | 値 | 値 |
|---|---|---|
| bottle | box | bucket |
| bundle | can | chunk |
| feather | gift box | grand cross |
| grimoire | handful | letter |
| painting | pair | piece |
| pinch | poster | pot |
| rod | set | signboard |
| spellbook | staff | statue |
| syringe | tree | tuft |
| whip | whistle |
Tile Type
_tileType 列はマップ上でのオブジェクトの表示方法を制御します。
| タイプ | 動作 |
|---|---|
| ObjBig | 通行不可。 |
| ObjHuge | 通行不可。 |
| Door | 壁が必要。ドア/開口部として機能。 |
| Slope | 上り下りの移動速度を変化させます。 |
| Stairs | Slope と同様ですが、速度・高さの変化がより顕著です。 |
| Paint | 壁への取り付けが必要。 |
| WallHang | 壁への取り付けが必要。 |
| Window | 壁が必要。窓が非表示になる状況(建物内など)では非表示になります。 |
idRenderData
_idRenderData 列は、オブジェクトの地面への設置方法とクリッピングを制御します。
@obj — カスタムテクスチャ(差し替えなし)
テクスチャ置換を使用しないカスタムアイテム用です:
- ファイル名は
idと完全に一致させる必要があります。 - 拡張子は小文字の
.pngを使用してください(.PNGは動作しません)。 - Modの
Textureフォルダに配置してください。Texture/Item/でも構いません(<id>が見つからない場合、ゲームはItem/<id>も探します)。それ以外のサブフォルダは見つけてもらえません(id自体にそのプレフィックスが含まれている場合を除く)。
@ は、画像の実サイズに合わせて1枚絵全体を中央に配置する、という働きをします。1枚絵のカスタムテクスチャに @ が必要なのはこのためです。@obj#別のアイテムID と書くこともでき、# 以降はそのアイテムの pref(設置・当たり判定まわりの設定)を借りるという意味になります。
obj — テクスチャ差し替え
テクスチャ置換(Texture Replace)を使用するアイテム用です。これはテクスチャビューアー内のタイルスロットを占有するため、他の Mod と競合する可能性があります:
- ファイル名形式:
obj_tileID(例:objS_5032)。 - 拡張子は小文字の
.pngを使用してください。 - Modの
Texture Replaceフォルダに配置してください。
雪バリアント
| 種類 | 差し替えなし (@obj) | 差し替えあり (obj) |
|---|---|---|
| 通常 | ID.png | obj_123.png |
| 雪 | ID_snow.png | objSnow_123.png |
| 小 | — | objS_456.png |
| 小雪 | — | objSSnow_456.png |
Factory
factory 列はアイテムを作成する設備を定義します。プレイヤーがクラフト不可のアイテムの場合は空欄にします。
| ゲーム内名称 | 値 |
|---|---|
| クイッククラフト | self |
| 作業台 | workbench |
| 便利屋の机 | factory_tinker |
| 設計台 | workbench2 |
| 立札工房 | factory_sign |
| 木工の机 | factory_wood |
| 金属工の机 | factory_metal |
| 金床 | anvil |
| 機械工の机 | machinebench |
| 石工の机 | factory_stone |
| 硝子工の机 | factory_glass |
| 調理機 | stove |
Components
components 列はクラフトの材料を定義します。
| 構文 | 意味 | 例 |
|---|---|---|
id | アイテムIDと一致するアイテムが必要。 | log |
/N | N個のアイテムが必要。デフォルトは 1。 | log/2 |
@マテリアル | 指定したマテリアルのアイテムが必要。 | chunk@snow/10 → 雪の塊10個。 |
| | 「または」—選択肢のいずれか。 | rock/2|ingot → 岩2個 または インゴット2個。 |
#カテゴリ | インベントリから一致するカテゴリのアイテムを選択。 | #book → 任意の本を選択。 |
+ | 任意の材料。入れなくてもクラフトできます。 | +rune → ルーンを追加で入れられる。 |
$ | 完成品の色を決める材料。 | $log/2 |
プレフィックスは順不同で組み合わせられます(例:+#book)。
components 列に - だけを書くと「デフォルトの材料リストを使う」という意味になり、「材料なし」ではありません。空欄にした場合は列のデフォルト値 log(丸太1本)が使われます。クラフト不可にしたい場合は factory を空欄にしてください。
例
井戸: rock/10,rope/3,log/2 → 岩素材10個、ロープ3個、丸太2個。
鎌: rock/2|ingot,string/1,stick/1 → 岩2個 または インゴット2個、紐1個、棒1個。
本棚: plank/4,#book,#book → 板材4枚、任意の本2冊。
Trait
trait 列は特殊な動作を定義します。書式は常に「カンマ区切りの並び」で、最初の項目が特性名(ゲームは Trait<この名前> というクラスを探します)、残りがその特性に渡すパラメータです。パラメータの意味は特性ごとに異なります。
コンテナタイプのオブジェクトには以下の形式を使用します:
Container,行数,列数,背景画像,特記事項| 例 | 意味 |
|---|---|
beekeep,2,2,crate,honey | 2×2のコンテナ(木箱背景)、蜂蜜を保管。 |
ChestPractice,7,5,crate | 7×5のコンテナ(木箱背景)。 |
その他のよく使う特性のパラメータ:
| 例 | 意味 |
|---|---|
Workbench,blacksmith | 作業台。必要スキル(省略時は handicraft)。 |
Light,3 | 光源。光の半径。 |
ToolRangeGun,12,4 | 銃。装弾数、リロードターン数。 |
Harvest,gathering,1 | 採取可能。採取スキル、個数。 |
Drink,DrinkWater,10 | 飲用可能。効果ID、値。 |
Altar,ehekatl | 祭壇。神のID。 |
RecipeCat,food | レシピ本。レシピカテゴリ。 |
パラメータはいずれも省略でき、その場合は特性ごとのデフォルト値が使われます。
攻撃力と防御力
offense は4つの値です:ダイスの数,ダイスの面,ダメージ補正,命中補正。2,8,5,4 は「2d8・ダメージ+5・命中+4」と読みます。defense は2つの値:DV,PV です。
これらの数値がそのままゲームに入るのは quality が 4(神器)のときだけです。 それ以外の品質では、素材とレア度に応じて再計算され、さらに多少のランダム性が加わります:
- レア度の基準値:Crude 150、Normal 120、Superior 100、Legendary 以上 80。基準値が小さいほど強くなります。
- ダイスの面 ≈
ダイスの面 × 素材の dice ÷ 基準値、ダメージ補正 ≈ダメージ補正 × 素材の atk × 9 ÷ 基準値(diceとatkは Material シートの列です)。防御も同様に素材によって換算されます。
つまり通常の装備では、シートに書く数値は最終値ではなく基準値です。数値を調整するときは defMat と quality もあわせて確認してください。そうしないと「変えても効かない」ように見えます。
Light Data
lightData 列は光源の外観を定義します。
| 値 |
|---|
altar_machine |
bonfire |
fireplace |
fridge |
gacha |
general |
kiln |
lamp_sun |
lamp_table |
light_floor |
light_spot |
light_stand |
light_wall |
Ambient Effects
idActorEx 列はオブジェクト周辺の環境効果を定義します。
| 値 | 効果 |
|---|---|
amb_boat | 船の環境音。 |
amb_crowd | 群衆の雑音。 |
amb_fire | 火のパチパチ音。 |
amb_fountain | 噴水の音。 |
amb_smelter | 精錬所の音。 |
Tags
tag 列は組み込みの動作フラグを割り当てます。
一部のタグ(すべてではありません):
| タグ | 効果 |
|---|---|
exotic | 珍しいアイテムとして扱われます。 |
godArtifact | 神器。信仰テーブルを参照。 |
noWish | 願い(wish)で入手不可。 |
tourism | 観光アイテムとしてカウントされます。 |
rareResource | レア資源として扱われます。 |
snowTile | 雪タイルを好みます(雪用objバリアント設定時は省略可)。 |
throwWeapon | 投げた後に戻ってきます(ブーメランのように)。 |
noCopy | 複製不可。 |
noShop | 該当ショップに生成されない。 |
fixedElement | 属性エンチャント値を固定。 |
randomElement | 属性エンチャント値を変動。 |
randomSkin | 生成時に skins の中からランダムで見た目を選びます。 |
noSkinRecipe | クラフトメニューで見た目を選べなくします。 |
遠距離武器データのインポート
遠距離武器のデータをカスタマイズしたい場合があります。ガンのデータは、LangMod/**/Data/フォルダー内にあるEffectSetting.guns.jsonという名前のJSONファイルです。
{
"biubiu_gun": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "gunfire",
"IdSprite": "ranged_gun",
"IdSound": "attack_gun",
"IdSoundEject": "bullet_drop",
"Eject": true,
"FirePos": {
"x": 0.23,
"y": 0.04
},
"CaneColor": "",
"CaneColorBlend": false,
"ForceLaser": false,
"ForceRail": false,
}
}これは、遠距離武器のIDと一致するはずのbiubiu_gunという名前のガンデータをインポートします。ゲーム内の既存の武器IDを使用して、それを上書きすることもできます。
ゲーム内の既存のガンデータは次のとおりです。
ガンデータ
{
"gun": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "gunfire",
"IdSprite": "ranged_gun",
"IdSound": "attack_gun",
"IdSoundEject": "bullet_drop",
"Eject": true,
"FirePos": {
"x": 0.23,
"y": 0.04
}
},
"gun_assault": {
"Num": 3,
"Delay": 0.1,
"IdEffect": "gunfire",
"IdSprite": "ranged_gun",
"IdSound": "attack_gun_assault",
"IdSoundEject": "bullet_drop",
"Eject": true,
"FirePos": {
"x": 0.48,
"y": 0.04
}
},
"bow": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_arrow",
"IdSound": "attack_bow",
"Eject": false,
"FirePos": {}
},
"gun_rail": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "",
"IdSound": "attack_gun_rail",
"Eject": false,
"FirePos": {}
},
"cane": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_cane",
"IdSound": "attack_cane",
"Eject": false,
"FirePos": {}
},
"windbow": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_arrow_wind",
"IdSound": "attack_windbow",
"Eject": false,
"FirePos": {}
},
"gun_mani": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_gun",
"IdSound": "attack_gun_shotgun",
"IdSoundEject": "bullet_drop",
"Eject": true,
"FirePos": {
"x": 0.23,
"y": 0.04
}
},
"gun_laser": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "",
"IdSound": "attack_gun_laser",
"Eject": false,
"FirePos": {}
},
"panzerfaust": {
"Num": 1,
"Delay": 0.01,
"IdEffect": "gunfire",
"IdSprite": "ranged_gun_rocket",
"IdSound": "attack_gun_rocket",
"Eject": false,
"FirePos": {}
},
"gun_laser_assault": {
"Num": 3,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_gun_laser",
"IdSound": "attack_gun_laser_assault",
"Eject": false,
"FirePos": {
"x": 0.28,
"y": 0.2
}
},
"shotgun": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_fun",
"IdSound": "attack_gun_shotgun",
"Eject": false,
"FirePos": {
"x": 0.3,
"y": 0.18
}
},
"sling": {
"Num": 1,
"Delay": 0.1,
"IdEffect": "",
"IdSprite": "ranged_stone",
"IdSound": "throw",
"Eject": false,
"FirePos": {}
}
}Numは、バースト(連射)内のショット数です。Delayは、アニメーションの遅延時間を秒単位で指定します。IdEffectは、マズルフラッシュエフェクトのIDです。カスタムエフェクトを使用できます。デフォルト値はgunfireです。レーザーやケイン(杖)タイプの武器ではこの値は使用されません。IdSpriteは、弾丸のテクスチャ名です。ゲーム内の既存のテクスチャ、またはTextureフォルダーに配置したテクスチャである必要があります。レーザーではこの値は使用されません。IdSoundは、発射音のIDです。カスタムサウンドを使用できます。これはすべての種類のガンに設定できます。IdSoundEjectは、排弾丸音のIDです。カスタムサウンドを使用できます。これはすべての種類のガンに設定できます。Ejectは、弾丸排出アニメーションがあるかどうかを決定します。これはすべての種類のガンに設定できます。FirePosは、武器の中心を基準としたマズルフラッシュエフェクトのオフセット位置です。これはすべての種類のガンに設定できます。CaneColorは、ケイン(杖)タイプの武器用のオプションの色合いのオーバーライドです。空白のままにすると、武器のデフォルトの元素の色が使用されます。形式はRRGGBB16 進文字列です。特性ToolRangeCaneを持つガンのみがこの値を使用できます。CaneColorBlendは、ケインタイプ武器のデフォルトカラーとオーバーライドカラーのブレンドを有効にします。特性ToolRangeCaneを持つガンのみがこの値を使用できます。ForceLaserは、ガンにレーザーアニメーションの使用を強制します(23.206 Nightlyで追加)。ガンが特性ToolRangeGunEnergyを持っている場合、これは不要です。ForceRailは、ガンにレールガンアニメーションの使用を強制します。これは、特性ToolRangeGunEnergyを持つガンのデフォルトの動作ではなくなりました。
このファイルには、必要な数のガンデータを追加できます。単純に,コンマで区切ってください。例:
{
"biubiu_gun": {
data
},
"rainbow_wand": {
data
}
}指定スロット
アイテム表(Thing)で addSocket および addSocket(エンチャントalias) タグを使用することで、銃器のスロットを指定できます。例えば、addSocket,addSocket,addSocket(bane_god) と記述すると、空のスロットが2つと、エンチャント「God Bane」が付いたスロットが1つ追加されることが保証されます。
また、noRandomSocket タグを使用すると、カスタムスロットを適用する前にすべてのランダム生成スロットを削除できます。