跳转到内容

物品表 (Thing)

制作源表时,必须完整复制官方源表的前三行,并将你的数据从第四行开始录入。

关于列、空行和空格子

缺少的列会被静默填成空值,不会有任何报错——所以请把官方表的表头整行复制过来,不要删列,也不要改变列的顺序。

id 留空的那一行会中止整张表的读取,它之后的所有行都不会被载入,同样没有提示。除非你是有意为之,否则不要用空行给数据分组。

空格子不等于空值——游戏会回落到第 3 行的默认值,components 默认是 logdefMat 默认是 oakcategory 默认是 other

你也可以改第 3 行的默认值,让它作用到其余所有行。你的数据应从第 4 行开始录入。

官方 Thing 表里有两个 sort,实际生效的是靠后的那一个(同名列以最后一个为准)。原样复制表头即可,不要精简。

表格列

类型描述
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 列,实际生效的是靠后的那一个(同名列以最后一个为准),但请注意,你不应删除其中任何一列。
_tileType文本地图上的显示方式。参见下方 Tile Type。必须是游戏认识的类型名——写错会让整张源表加载失败
_idRenderData文本物品在地面的放置方式与裁剪。参见下方 idRenderData
tiles整数[]替换纹理的图块 ID。多个图块遵循:正面 → 正面翻转 → 背面 → 背面翻转。例如:123,-123,456,-456
altTiles整数[]替代状态的变体图块(例如装有物品的关闭宝箱)。
anime整数[]两个值:帧数,每帧持续时间。当 idRenderData列使用@obj 且使用动画贴图时,不需要填写此列。
skins整数[]皮肤变体引用。填几个值就有几种可选外观(加上基础外观共 N+1 种,建造菜单与配方菜单据此列出)。当 idRenderData列使用@obj 且使用贴图变体时,不需要填写此列。
size整数[]大型物体的网格尺寸:宽度,高度
colorMod整数颜色饱和度修正。0 表示不着色。
colorType文本颜色来源:default(第一个合成材料)、alt(第二个材料)、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文本伤害/武器类型:BluntBowCaneClawGunPiercePunchSlash
offense整数[4]攻击属性:骰子数,骰面,伤害加成,命中加成。例如 2,8,5,4 即 2d8、+5 伤害、+4 命中。参见下方 攻击与防御数值
substats整数[]副属性修正。本体源表里都只填了一个数值。
defense整数[2]防御属性:DV,PV。参见下方 攻击与防御数值
lightData文本发光预设。参见下方 Light Data
idExtra文本额外渲染数据引用。
idToggleExtra文本可切换的渲染数据(例如开关灯)。
idActorEx文本物体周围的环境效果。参见下方 Ambient Effects
idSound文本制作时的音效:glassmoneypaper 等。
tag文本[]内置行为标志。参见下方 Tags
workTag文本工作相关标签。
filter文本[]合成以外的获取途径:fishgachasupply 等。游戏通过 CreateFromFilter 随机生成物品。
roomName_JP文本[]房间类型定义(日文)。多个条目用逗号分隔。
roomName文本[]房间类型定义(英文)。例如:BedroomKitchen,Dining Room
detail_JP文本物品描述(日文)。在游戏中显示于属性信息上方。
detail文本物品描述(英文)。在游戏中显示于属性信息上方。

Unit JP

unit_JP 列定义了该物品的日文量词(助数词)。这些不直接影响英语版本。

汉字罗马音含义
katamari块、团
振りfuri手持、近战
tai一对(如手套)
dai台、底座、竖琴
tei细长物体(枪、剪刀、锄头等)
hatsu弹药
hon本体、基础物体
mai薄片
tsubu颗粒
maki卷状物
saku册子
jou药片
seki船只
taba捆、束
karada形态、雕像
fukuro袋装
chou / hari张、拉紧
hai
biki(小)动物
hin物品

Unit

unit 列定义物品的物理形态。

bottleboxbucket
bundlecanchunk
feathergift boxgrand cross
grimoirehandfulletter
paintingpairpiece
pinchposterpot
rodsetsignboard
spellbookstaffstatue
syringetreetuft
whipwhistle

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 本身就带那个前缀。

@ 的作用是让游戏按图片的实际尺寸把整张图居中摆放,所以自定义的一整张贴图才需要它。还可以写成 @obj#其他物品ID# 后面那段表示借用该物品的 pref(放置、碰撞那组属性)。

obj — 纹理替换

用于使用纹理替换的物品。这会占用纹理查看器内的一个槽位,可能与其他 Mod 冲突:

  • 文件名格式:obj_tileID(例如 objS_5032)。
  • 使用小写 .png 扩展名。
  • 放置在 Mod 的 Texture Replace 文件夹中。

雪地变体

类型非替换 (@obj)替换 (obj)
普通ID.pngobj_123.png
雪地ID_snow.pngobjSnow_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 个物品。默认为 1log/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,honey2×2 容器(木箱背景),存放蜂蜜。
ChestPractice,7,5,crate7×5 容器(木箱背景)。

其他常见特性的参数:

示例含义
Workbench,blacksmith工作台,所需技能(留空为 handicraft)。
Light,3光源,发光半径。
ToolRangeGun,12,4枪械,弹匣容量、装填回合数。
Harvest,gathering,1可采集,采集技能、数量。
Drink,DrinkWater,10可饮用,效果 ID、数值。
Altar,ehekatl祭坛,所属神明 ID。
RecipeCat,food配方书,配方类别。

参数一律可以省略,省略时用该特性自己的默认值。

攻击与防御数值

offense 是四个值:骰子数,骰面,伤害加成,命中加成2,8,5,4 读作「2d8,+5 伤害,+4 命中」。defense 是两个值:DV,PV

这两列填的数字,只有 quality = 4(神器)时才会原样进入游戏。 其余品质下,游戏会按材质稀有度重新换算,还带一点随机:

  • 稀有度基准:Crude 150、Normal 120、Superior 100、Legendary 及以上 80,数值越低成品越强;
  • 骰面 ≈ 骰面 × 材质的 dice ÷ 基准值,伤害加成 ≈ 伤害加成 × 材质的 atk × 9 ÷ 基准值diceatk 都是 Material 表里的列),防御同理按材质换算。

也就是说,普通装备在表里填的是基准值而不是最终值——调数值时要连 defMatquality 一起看,否则会觉得「填了没用」。

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无法通过许愿获得。
tourism计入观光物品。
rareResource视为稀有资源。
snowTile偏好雪地地块(如已设置雪地 obj 变体则可省略)。
throwWeapon投掷后飞回(类似回旋镖)。
noCopy不能复制。
noShop在对应类型的商店中不生成。
fixedElement固定elements附魔数值。
randomElement浮动elements附魔数值。
randomSkin生成时从 skins 里随机挑一种外观。
noSkinRecipe配方菜单里不提供外观选择。

导入远程武器数据

有时您希望自定义您的远程武器的一些数据。枪械数据是一个 JSON 文件,位于您的 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,
    }
}

这将导入一个名为 biubiu_gun 的枪械数据,它应该与您的远程武器 ID 匹配。您也可以使用游戏中现有的武器 ID 来覆盖它。

这里是游戏中现有的枪械数据:

Gun Data
json
{
    "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法杖类武器可选的颜色覆盖,留空则使用武器默认元素的颜色。格式为 RRGGBB 十六进制字符串。只有带有 ToolRangeCane 特性的枪械才能使用此值。
  • CaneColorBlend 启用法杖类武器的默认颜色和覆盖颜色混合。只有带有 ToolRangeCane 特性的枪械才能使用此值。
  • ForceLaser 强制枪械使用激光动画(在 23.206 Nightly 版本中添加)。如果枪械带有 ToolRangeGunEnergy 特性,则不需要此项。
  • ForceRail 强制枪械使用电磁炮动画对于带有 ToolRangeGunEnergy 特性的枪械来说,这不再是默认行为。

任何您希望使用默认值的属性都可以省略。

您可以在此文件中添加任意数量的枪械数据,只需用 , 半角逗号将它们分开,例如:

json
{
    "biubiu_gun": { 
        data 
    },
    "rainbow_wand": {
        data
    }
}

指定插槽

您可以通过在物品表 Thing 中使用标签 addSocketaddSocket(附魔alias) 来指定枪械插槽。例如,addSocket,addSocket,addSocket(bane_god) 将确保添加两个空插槽和一个带有附魔 God Bane 的插槽。

您还可以使用 noRandomSocket 标签,在应用自定义插槽之前移除所有随机生成的插槽。

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.