2838 字
14 分钟
头伸过来我给你上个BUFF——FVTT中如何在DND5e系统中自定义效应之公式篇

前言#

在FVTT的DND5e系统中,你会发现有一个叫做“效应”的元素,那么这个效应到底是什么作用呢?简单来说它就是一个BUFF,它可以在持续时间内对你的属性做出一些改变(如加值等)。

TIP

本文基于FVTTDnD5e的官方wiki书写,本文否保证在未来由于更新等原因导致下文的元素或操作语法产生改变,请以最新页面为准。

foundryvtt
/
dnd5e
Waiting for api.github.com...
00K
0K
0K
Waiting...

那么在此之前,你应该知道一些前置知识。

前置知识之掷骰公式/命令#

请读:

效应的使用#

在此文中,我们重点只关注效应的修改内容。正如前面所说,效应就是个BUFF,无论正面负面,它都应该对你的角色的某些属性做出改变。

接下来的公式中,将会出现如下的符号:

  • [number]:这代表着:将其替换为方括号内的值
  • [formula]:这代表着将其替换为方括号内的公式

那么我们来观察一下一个效应的修改页面都有什么属性。

image-20250809000451841

我们先从最简单的改变方式说起

改变方式#

改变方式的介绍如下表

改变方式描述
将提供的值添加到指定的属性。
将定义的属性乘以“数值”字段中的数值。
覆盖将定义的属性替换为“数值”字段中提供的值。如果应用于文本值(例如名称或描述),则可以使用一对大括号(例如){}奥术推进胸甲{}在最终输出中包含被覆盖的值。因此,将“胸甲”的名称覆盖将导致物品名称为“奥术推进胸甲”。
降级仅在该属性的当前值大于“数值”字段中指定的值的情况下,才减少该属性。
升级仅在该属性的当前值小于“数值”字段中指定的值的情况下,才增加该属性。
自定义自定义改变方式应用由游戏系统或附加模块定义的逻辑。dnd5e 系统否使用自定义改变方式

接下来便是左边的属性名了。

属性#

在DND中一个角色的属性实在是太多了,这里我们基于分类去讲解,同时也算提供一个速查表。

角色属性#

角色属性的属性节点如下:

system.abilities.[abbreviation].value
bonuses.check
save
  • [abbreviation]指属性名,是可选内容,如否填写则为全局属性
  • value: 指属性本身的值,如果非覆盖否要使用value属性
  • bonuses: 指属性的加值,这并否是一个属性值,在下有着两个分类:
    • check:指检定加值
    • save:指豁免加值

属性的[abbreviation]可以填写的内容如下:

属性缩写
力量str
敏捷dex
体质con
智力wis
感知int
魅力cha

修改示例#

覆盖#

属性名(Attribute Key)改变方式数值掷骰用?
system.abilities.[abbreviation].value覆盖[number]

升级#

属性键(Attribute Key)改变方式数值掷骰用?
system.abilities.[abbreviation].value升级[number]

豁免检定加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.abilities.[abbreviation].bonuses.save[formula]

属性检定加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.abilities.[abbreviation].bonuses.check[formula]

全局属性检定加值#

这里的加值会应用到全局的属性检定场景

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.abilities.check[formula]

全局豁免检定加值#

这里的加值会应用到全局的豁免检定场景

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.abilities.save[formula]

先攻加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.attributes.init.bonus[formula]

专注豁免加值#

为专注豁免检定加值。

属性键(Attribute Key)改变方式数值掷骰用?
system.attributes.concentration.bonuses.save[formula]

修改专注维持极限#

更改可以同时保持多少个专注的量。

属性键(Attribute Key)改变方式数值掷骰用?
system.attributes.concentration.limit覆盖[number]

技能#

技能属性#

技能的属性节点如下:

system.skills.[abbreviation].value
bonuses.check
passive
  • [abbreviation]指属性名,是可选内容,如不填写则为全局属性
  • value: 指技能的被动值,如果非覆盖不要使用value属性
  • bonuses: 指属性的加值,这并非是一个属性值,在其下有着两个分类:
    • check:指检定加值
    • save:指豁免加值

属性的[abbreviation]可以填写的内容如下

技能缩写
体操acr
驯兽ani
奥秘arc
运动ath
欺瞒dec
历史his
洞悉ins
调查inv
威吓itm
医疗med
自然nat
游说per
察觉prc
表演prf
宗教rel
巧手slt
隐匿ste
求生sur

修改示例#

特定技能检定加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.skills.[abbreviation].bonuses.check[formula]

特定技能被动加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.skills.[abbreviation].bonuses.passive[number]

修改技能熟练#

该数字必须是 0、0.5、1 和 2 之一。(代表无熟练、1/2熟练、熟练、专精)

属性键(Attribute Key)改变方式数值掷骰用?
system.skills.[abbreviation].value升级[number]

全局技能检定加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.abilities.skill[formula]

负重#

负重因为没有过多需要介绍的点,因此在这里直接展开介绍。

负重的属性节点如下

system.attributes.encumbrance.multipliers.encumbered
.heavilyEncumbered
.maximum
.overall
.bonuses.encumbered
.heavilyEncumbered
.maximum
.overall

这里直接一起来讲,正常的DND负重规则是:

  • 当承载大于5倍自身力量值的重量时,你将进入重载encumbered状态,此时你的速度减少10尺。
  • 当承载大于10倍自身力量值的重量时,你将进入超载heavily encumbered状态,此时你的速度减少20尺,并且你的力量、敏捷、体质相关的属性检定、攻击检定、豁免检定都将具有劣势。
  • 你无法承载大于15倍自身力量值的重量。

上图的四个节点的前三便是重载、超载和最大承载值。而overall则代表着全局的属性值,你在此应用的值会一起按照比例应用到所有节点。

加值很好理解,你只需要在bonuses下的节点应用加值即可,那multipliers呢?这个节点下的属性值是直接应用乘的修改,它会将当前的基准值乘以你新加的属性值。

运动#

运动属性#

运动属性的节点非常简单:

system.attributes.movement.[movementType]
  • movementType:运动类型,如下表
运动类型
掘穴burrow
攀爬climb
飞行fly
游泳swim
步行walk
悬浮hover

修改示例#

乘以修饰符的速度#

例如,将角色速度加倍/减半/等的物品或法术。

属性键(Attribute Key)改变方式数值掷骰用?
system.attributes.movement.[movementType][number]

添加不同的速度#

例如,赋予角色飞行或游泳速度的物品或法术。

属性键(Attribute Key)改变方式数值掷骰用?
system.attributes.movement.[movementType]覆盖[number]

护甲等级(AC)#

AC属性#

角色AC的属性节点如下:

system.attributes.ac.bonus
formula
calc
cover
flat
min
  • bonus: 加值
  • formula: 计算公式,只有当calc属性为custom时才起效
  • calc:AC计算方法,只有此属性为custom时formula才起效
关于计算方法

好消息是你否需要再去绞尽脑汁去记忆每一个AC计算方法了:

image-20250809063852348

它提供了很多计算方式的模板。

同时如果你无聊去看WSZ出的PHB合集包,你会发现一个很好玩的事情:

image-20250809064044793 读者可以多试试,理解每一个计算方式的工作方式

  • cover:掩护加值

  • flat:AC固定加值,只有当calc为flat时此值起效

  • min:AC最小值,当计算的AC小于此值时将自动替换为此值

扩展

实际上,在系统中还有如下的属性节点:

  • armor:护甲加值,只有无甲的时候这个值才会起效,换言之,这个值会被护甲自带的AC替代掉,或者这个效应在护甲上。
  • shield:盾牌加值,一般这个加值只在盾牌上的效应体现。

法术豁免DC加值#

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.spell.dc[number]

修改示例#

将 AC 计算覆盖为自定义公式#

例如,将角色的AC设置为12+智力调整值

属性键(Attribute Key)改变方式数值
system.attributes.ac.calc覆盖custom
system.attributes.ac.formula覆盖12 + @abilities.int.mod
@abilities.int.mod是什么?

正如每个文档有一个自己的UUID供引用,每个角色的一些值也提供了这样的引用,让你可以快速调用这些值。这些内容会在下一篇文章中提及。

攻击检定#

检定属性#

system.bonuses.msak.attack
mwak
rsak
rwak

其中:

  • msak:近战法术攻击(克敌先机!启动!)
  • mwak:近战武器攻击
  • rsak:远程法术攻击(你知道我要干什么,火球术!)
  • rwak:远程武器攻击

修改示例#

所有近战攻击检定的加成(包括法术和武器)#

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.mwak.attack[formula]
system.bonuses.msak.attack[formula]

所有远程攻击检定(法术和武器)的加成#

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.rwak.attack[formula]
system.bonuses.rsak.attack[formula]

伤害判定#

和攻击检定差否多啦……

检定属性#

system.bonuses.msak.damage
mwak
rsak
rwak

其中:

  • msak:近战法术攻击
  • mwak:近战武器攻击
  • rsak:远程法术攻击
  • rwak:远程武器攻击

修改示例#

所有近战攻击伤害检定的加成(法术和武器)#

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.mwak.damage[formula]
system.bonuses.msak.damage[formula]

所有远程攻击伤害检定的加成(包括法术和武器)#

属性键(Attribute Key)改变方式数值掷骰用?
system.bonuses.rwak.damage[formula]
system.bonuses.rsak.damage[formula]

免疫/抗性/易伤/伤害调整#

由于这些在系统中归于一体,因此笔者在这里集中介绍

检定属性#

system.traits.ci.value
di
dr
dv
dm.amount.[damageType]

这些属性将在下文介绍

修改示例#

添加状态免疫#

首先,我们要确定每一个状态的值应该是什么

状态
目盲blinded
魅惑charmed
耳聋deafened
疾病diseased
力竭exhaustion
恐慌frightened
受擒grappled
失能incapacitated
隐形invisible
麻痹paralyzed
石化petrified
中毒poisoned
倒地prone
束缚restrained
震慑stunned
昏迷unconscious

然后我们在属性上加入即可。

属性键(Attribute Key)改变方式数值
system.traits.ci.value[conditionType]

添加伤害抗性/免疫/易伤#

我们也要先确定伤害类型:

损坏类型价值
强酸acid
钝击bludgeoning
寒冷cold
火焰fire
力场force
闪电lightning
暗蚀necrotic
穿刺piercing
毒素poison
心灵psychic
光耀radiant
挥砍slashing
雷鸣thunder

接下来我们来看如何给予伤害的抗性/免疫/易伤:

伤害抗性#
属性键(Attribute Key)改变方式数值
system.traits.dr.value[damageType]
伤害免疫#
属性键(Attribute Key)改变方式数值
system.traits.di.value[damageType]
伤害易伤#
属性键(Attribute Key)改变方式数值
system.traits.dv.value[damageType]
伤害调整值#

这些属性会导致角色从某些伤害类型中受到增加或减少的伤害。

属性键(Attribute Key)改变方式数值掷骰用?
system.traits.dm.amount.[damageType][number]
提示

这里已经帮你直接把对应的伤害属性翻译出来了,你可以直接选取。

image-20250809174720360

头伸过来我给你上个BUFF——FVTT中如何在DND5e系统中自定义效应之公式篇
https://leave-time.me/posts/头伸过来我给你上个bufffvtt中如何在dnd5e系统中自定义效应之公式篇/
作者
Leave_Time
发布于
2025-08-08
许可协议
CC BY-NC-SA 4.0
上次更新时间:2025年08月09日-17:52:37

部分信息可能已经过时