博德之门3吧 关注:256,779贴子:3,099,914

【教程】Mod数据修改基础教程-创造你自己的游戏体验

只看楼主收藏回复

鉴于搜遍全cn网都没发现一个关于bg3mod修改的教程,于是想根据我从神界原罪2自己摸索来的一些修改经验。写一个帖子,方便大家修改出属于自己的博德之门3游戏体验。也不算什么教程,纯当分享自己的发现了。
可爱小影心镇楼。


IP属地:广西1楼2023-09-01 19:18回复
    2l留着当提问区


    IP属地:广西2楼2023-09-01 19:18
    收起回复
      2025-07-23 09:25:35
      广告
      不感兴趣
      开通SVIP免广告
      工欲善其事必先利其器。
      我们下载mod的时候,就会发现每个mod大部分都是以pak形式打包好的。
      要修改mod,我们就需要一个解包工具
      那就是LSlib Toolkit
      作者Norbyte在GitHub上发布,地址为 github.com/Norbyte/lslib/releases
      这人也是神界原罪mod的老大佬了。
      这个工具的用途有二:
      1、把下好的mod解包,供我们修改数据。
      2、把修改好的mod打包成pak文件供我们放到mod管理器里运用。


      IP属地:广西3楼2023-09-01 19:25
      收起回复
        界面大概长这样的。只需要按照图中操作即可。

        在pak/Tools页面,也是我们最经常用的一个页面。


        IP属地:广西4楼2023-09-01 19:34
        回复
          然后我们挑选一个自己想要修改的mod,将他解包。我一般直接用我装好的mod进行解包。
          我们所有pak格式的mod通过mod管理器安装之后,都会在拉瑞安的mod文件夹里留下一个pak文件,具体位置在这。C:\Users\用户名\AppData\Local\Larian Studios\Baldur's Gate 3\Mods
          如果找不到记得把隐藏文件夹设置为可见。


          IP属地:广西5楼2023-09-01 19:38
          收起回复
            现在我们有了想修改的mod, 那么我们怎么解包mod呢?回到我们的Lslib解包工具。按照图中所示选择要解包的pak,然后再选择解包出来文件存放的位置。如图:


            IP属地:广西6楼2023-09-01 19:44
            回复
              导出后一般会得到两个文件,一个Mods文件和一个Public文件。Mods文件对我们来说不怎么重要(但不能删)
              要修改的东西都在Public文件夹里面


              IP属地:广西7楼2023-09-01 19:48
              回复
                一、法术类
                本次教程我以一个把所有buff法术修改为Aoe以及持续时间直到长休的mod为例。修改法术效果。我们先把Public文件夹点开到最大。最终会来到这个页面。

                稍微懂点英文的老哥就明白了。
                1、Projectile是投掷,抛射类法术。比如火焰箭,曳光弹等等。
                2、Shout类是呐喊类的法术,一般是上群体buff或者群体debuff的时候会用到。
                3、Target是目标选定型法术,比如治愈,至圣斩这一类需要选定目标的法术。
                4、Wall是墙类法术,比如生成火墙,石墙这些。(我用的比较少)
                5、Zone是区域类法术。比如Sunbeam阳光射线这种能射出一条线来的法术。


                IP属地:广西8楼2023-09-01 20:02
                回复
                  2025-07-23 09:19:35
                  广告
                  不感兴趣
                  开通SVIP免广告
                  好好好,正需要这个。现在还只会捣鼓汉化


                  IP属地:江苏来自Android客户端9楼2023-09-01 20:12
                  收起回复
                    修改法术类的mod解包基本上都会有这些文件中的几种或者一种。
                    现在我们以投射物里的曳光弹为例子,我们打开Projectile文件(推荐使用NotePad++)

                    看着一串串的代码,是不是头晕了。没关系,我们一行一行来。加*号的为常用修改行。
                    第一行:new entry "Projectile_GuidingBolt" 这行不要随意改,一个字都不行,因为改了之后其他文件读不到这个法术内容导致法术失效。会的大佬除外。
                    第二行:type "SpellData" xxxx有很多,比如Weapon代表武器啊,Armor代表护甲啊。等等等等。不建议修改。
                    第三行:data "SpellType" "Projectile" 法术类型-投射 。有的技能可以修改法术类型,但是不建议乱改,这个后面再说。
                    第四行:data "Level" "1" 法术等级。不建议乱改。
                    第五行:data "SpellSchool" "Evocation" 法术学派,不建议乱改
                    第六行:data "TargetFloor" "-1" 目标层级???不太懂,不建议乱改。
                    *第七行:data "TargetRadius" "18" 目标选择范围。18m如果你想扩大技能范围,可以将数字改大或者改小。
                    第八行:data "SpellRoll" "Attack(AttackType.RangedSpellAttack)"法术投掷依据。不建议改
                    *第九行*:data "SpellSuccess" "DealDamage(3d10+Level*12,Radiant,Magical); ApplyStatus(GUIDING_BOLT, 100, 3)"成功命中造成效果,根据这个我们可以看出,成功命中之后,会造成一个3d10加上人物等级*12的魔法伤害,然后会给被击中者施加一个曳光弹的效果(下回合攻击他有优势),持续3回合。
                    1、DealDamage()是伤害的定义式,你可以自己写你想要的伤害。上面这些是我已经修改过的。比方说你可以改成DealDamage(50)那他就是固定50点物理伤害,或者你改成DealDamage(10d10)那他就是10d10点物理伤害,如果想加伤害类型的话,可以在伤害数值后面加个逗号然后写上伤害类型比如(5d10,Acid)意思是命中后造成5d10的酸蚀伤害。
                    2、ApplyStatus()是施加状态的定义式,格式一般为ApplyStatus(buff/debuff的名称大写,100,3)
                    其中的100我暂时不知道是什么意思,可能是概率???但是我翻了好多文件基本上都是100,所以这个100不建议更改。这个3则是为3回合的意思,你可以随意更改。0就是永久。-1则是直到长休。反正这个回合数你可以取-1到任意正整数。
                    *第十行:data "TargetConditions" "not Self() and not Dead()" 目标选择条件,这里的目标条件选择为 不是自己且不是已死亡。这个可以改,一般常用为Character()角色, Ally()友军 等等,记得()括号不能删。两者之间要用and连接,比如 Character() and not Dead()意思是曳光弹可以选择的目标没有死亡的角色。
                    *第十一行:data "ProjectileCount" "1" 抛射物数量,可以根据你的喜好修改抛射物的数量,但是别忘了伤害也会逐提高。比方说一个5d10的曳光弹,你再加一个抛射物,那就是5d10+5d10的总和伤害,因此酌情修改。
                    第十二行:data "Trajectories" "c63c4527-1bdf-4635-ad59-7d7e2f666fa3" 看不懂,不建议修改。
                    第十三行:data "Icon" "Spell_Evocation_GuidingBolt" 图标 不建议修改。
                    第十四行:data "DisplayName" "h790a8834g96c6g4b98g9669g8843e4c0eaa6;1" 显示名称,不建议修改。


                    IP属地:广西10楼2023-09-01 20:45
                    回复

                      15:data "Description" "h8ee169c4gb576g44d2g8d56g3abb23f491e1;6" 技能描述,不建议乱改
                      16:data "ShortDescription" "h3f0ae757ga10cg4bcfgb6fagcfab91f3c661;1" 简短描述,也不建议乱改
                      17:data "TooltipDamageList" "DealDamage(3d10+Level*12,Radiant)" 技能描述上显示的技能效果。一般这 一行直接把第九行的SpellSuccess里的内容复制过来就好了。只是影响你界面上显示的描述技能伤害,实际伤害还是以你修改的为准。
                      18:data "TooltipAttackSave" "RangedSpellAttack" 描述上显示的投掷类型,不建议改
                      19:data "TooltipStatusApply" "ApplyStatus(GUIDING_BOLT, 100, 3)" 技能描述上显示的施加状态及回合数,同样把第九行的SpellSuccess里的施加状态内容复制过来就好了。
                      20:data "TooltipUpcastDescription" "66388a6f-44dd-4c9f-a9e7-910c50e70755" 上层技能描述??看不懂不建议修改。一般这种带一大串数字加字母的代码的都不建议修改。
                      21:data "TooltipUpcastDescriptionParams" "DealDamage(6d10,Radiant)" 技能描述显示伤害数值,一样,复制spellsuccess你设置的那里过来就行,不改也没事,只是展示而已。不影响技能实际伤害。
                      22:data "PrepareSound" "Spell_Prepare_Damage_Radiant_Gen_L1to3" 法术准备音效,别动
                      23:data "PrepareLoopSound" "Spell_Prepare_Damage_Radiant_Gen_L1to3_Loop"法术准备循环音效,别动
                      24:data "CastSound" "Spell_Cast_Damage_Radiant_GuidingBolt_L1to3"法术释放音效,别动
                      25:data "PreviewCursor" "Cast" 预览光标,别动。
                      26:data "CastTextEvent" "Cast" 释放法术信息显示事件,别动
                      27:data "CycleConditions" "Enemy() and not Dead()" 循环条件,我不太清楚这个词条的作用,所以不建议改。大佬除外
                      ***28:data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:1" 法术释放消耗资源 ActionPoint:1意思是消耗行动点数1,后面的则是消耗1环法术栏位1. 消耗2环法术位1则是SpellSlotsGroup:1:1:2,以此类推。
                      29:data "SpellAnimation" "3ff87abfbalabala 施法动画,别动。
                      30:data "VerbalIntent" "Damage" 施法意图:伤害 此外还有Buff Debuff之类,不建议修改。
                      31:data "SpellStyleGroup" "Class" 法术风格组?? 看不懂不建议修改。
                      *****32:data "SpellFlags" "HasSomaticComponent;HasVerbalComponent;IsSpell;HasHighGroundRangeExtension;RangeIgnoreVerticalThreshold;IsHarmful" 法术标签 这里可以添加或修改法术标签,IsHarmful标签定义了是否有害,IsConcerntration为是否专注。IsEnemySpell是否为敌人法术。根据自己的需要删除或增加。
                      下面几个没什么好讲的了。
                      直接跳到34:data "MemoryCost" "1" 消耗记忆栏位1 可以改成0直接不用记忆。


                      IP属地:广西11楼2023-09-01 21:09
                      回复
                        有些眼尖的朋友会发现有的同名法术后面带有一个_2 _3 _4 _5的符号。比如曳光弹
                        new entry "Projectile_GuildingBolt_2" 代表二环施法的曳光弹。
                        _3则为3环 _4则为4环。以此类推。
                        以上提到的这些词条在所有法术词条都通用。接下来讲一些特殊的法术词条。


                        IP属地:广西12楼2023-09-01 21:12
                        回复
                          突然想到一点。关于法术,你肯定有个问题:啊。这么多法术我光记得中文名,又不知道他英文是什么,我怎么找他啊。
                          没关系,搜一下博德之门3wiki就好了,里面有一张完整的法术表,囊括了游戏里的所有戏法和法术。找到你想修改的法术,确认法术类型,是投射物还是 目标型的法术英文名称,回到法表里Ctrl+F直接搜索就完了,记得去掉空格。
                          接下来,我们讲目标型的法术Spell_Target
                          我们以帕拉丁的奶为例子帕拉丁的奶英文名叫LayOnHands,分别有一个小治疗一个大治疗和一个治愈疾病的法术。
                          我们先打开Spell_Target.txt直接搜索LayOnHands可以找到
                          ------------------------
                          new entry "Target_LayOnHands"
                          type "SpellData"
                          data "SpellType" "Target"
                          data "ContainerSpells" "Target_LayOnHands_SmallHeal;Target_LayOnHands_BigHeal;Target_LayOnHands_Cure"
                          data "TargetRadius" "18"
                          data "AreaRadius" "18"
                          data "TargetConditions" "Character() and not Enemy()"
                          data "Icon" "Action_Paladin_LayOnHands_BigHeal"
                          data "DisplayName" "h4afff1a2g3fd3g42a0g9584g4e4956b3e46d;1"
                          data "Description" "hbf2eb0b9ge7f0g459cgb387g194a37596a69;1"
                          data "TooltipDamageList" "RegainHitPoints(60*Level)"
                          data "TooltipPermanentWarnings" "662e013d-e5cb-4669-9a4b-771636b24aa2"
                          data "CastTextEvent" "Cast"
                          data "CycleConditions" "Ally() and not Dead()"
                          data "UseCosts" "ActionPoint:1;LayOnHandsCharge:1"
                          data "SpellAnimation" "83fb0115-57dd-4cce-ac40-87182b2865e2,,;,,;4b27cbbb-6774-4037-a620-80901b11a10f,4b27cbbb-6774-4037-a620-80901b11a10f,4b27cbbb-6774-4037-a620-80901b11a10f;52ffbb9a-a97b-448e-acaf-06344ce9be87,,;42014429-21fb-412d-bba6-0f8216f5e502,,;,,;43fa5e31-ad7e-47a9-9ca2-f6d40ba8e1cf,,;032cf56a-3808-45ad-9991-740431d9c14f,,;4b385541-a3a3-429d-93ae-dffa6da50050,,"
                          data "VerbalIntent" "Healing"
                          data "SpellFlags" "IsMelee;HasSomaticComponent;IsLinkedSpellContainer"
                          data "SpellAnimationType" "Assisting"
                          -----------------
                          这是一个包含几个法术的外壳,比如一环法术幻彩球。懂了吧,里面有好几个球的类型。帕拉丁的奶也一样。
                          data "ContainerSpells" "Target_LayOnHands_SmallHeal;Target_LayOnHands_BigHeal;Target_LayOnHands_Cure"这是三个帕拉丁奶法术的外壳(意思就是帕拉丁的治愈不是一个图标嘛,你点进去一共有3个法术,小奶大奶和治愈。)这个词条就是说明这是一个套壳法术。其他词条上面都讲过了。我要讲的是一个特殊的词条。
                          data "AreaRadius" "18" 这是什么意思呢。是作用范围。他和前面几楼我讲到的TargetRadius不一样的就是。TR是选择目标的范围,在这个范围内我能选择目标。而AR的意思是作用范围,我能在这个范围内起作用。打个比方(火球术)他的TR选择目标范围是18m内。好,选中目标后施法投出,他会有一个爆炸效果,对吧。那么这个爆炸效果的AR是5 那就说明这个爆炸范围是5m.这样说你应该理解了。


                          IP属地:广西13楼2023-09-01 21:27
                          收起回复
                            ------------------------
                            new entry "Target_LayOnHands_SmallHeal"
                            type "SpellData"
                            data "SpellType" "Shout"
                            data "SpellContainerID" "Target_LayOnHands"
                            data "SpellProperties" "TARGET:RegainHitPoints(50*Level)"
                            data "TargetRadius" "18"
                            data "AreaRadius" "18"
                            data "TargetConditions" "Character() and not Enemy()"
                            data "Icon" "Action_Paladin_LayOnHands_SmallHeal"
                            data "DisplayName" "h13826709gf888g4a58gbd2eg44c87eb0a527;1"
                            data "Description" "hae864256g28abg4753gb730g8650d592e226;1"
                            data "TooltipDamageList" "RegainHitPoints(50*Level)"
                            data "TooltipPermanentWarnings" "662e013d-e5cb-4669-9a4b-771636b24aa2"
                            data "CastSound" "Spell_Cast_Healing_LayOnHands_SmallHeal"
                            data "TargetSound" "Spell_Impact_Healing_LayOnHands_SmallHeal"
                            data "CastTextEvent" "Cast"
                            data "CycleConditions" "Ally() and not Dead()"
                            data "UseCosts" "ActionPoint:1;LayOnHandsCharge:1"
                            data "SpellAnimation" "83fb0115-57dd-4cce-ac40-87182b2865e2,,;,,;4b27cbbb-6774-4037-a620-80901b11a10f,4b27cbbb-6774-4037-a620-80901b11a10f,4b27cbbb-6774-4037-a620-80901b11a10f;52ffbb9a-a97b-448e-acaf-06344ce9be87,,;42014429-21fb-412d-bba6-0f8216f5e502,,;,,;43fa5e31-ad7e-47a9-9ca2-f6d40ba8e1cf,,;032cf56a-3808-45ad-9991-740431d9c14f,,;4b385541-a3a3-429d-93ae-dffa6da50050,,"
                            data "VerbalIntent" "Healing"
                            data "SpellFlags" "IsMelee;HasSomaticComponent"
                            data "SpellAnimationType" "Assisting"
                            data "HitAnimationType" "MagicalNonDamage"
                            data "PrepareEffect" "b181c3a9-cbac-4997-9ab3-502ff5fa13e8"
                            data "CastEffect" "bf0ab3b7-c68f-4e8e-a2cb-b02e63bd0e1b"
                            data "TargetEffect" "b730bde9-de9f-4134-9948-94daf4fb9245"
                            ----------------------------------------------
                            这是帕拉丁小奶的法术词条。你可以发现我把SpellType改成了Shout类型。然后AreaRadius作用范围是18。
                            这就意味着我在施放帕拉丁小奶的时候会变成一个呐喊型的法术,所有在我18m范围内的友军包括我自己都会得到data "SpellProperties" "TARGET:RegainHitPoints(50*Level)" (目标回复50*人物等级)的奶。
                            修改法术类型的这个功能在很多buff上都可以用到。
                            只要在buff类的词条下面加一条AreaRadius "你想要的技能范围" 你就可以把这些buff变成aoe


                            IP属地:广西14楼2023-09-01 21:32
                            回复
                              2025-07-23 09:13:35
                              广告
                              不感兴趣
                              开通SVIP免广告
                              由于所有近战攻击都被拉瑞安归到目标指向性法术文件表里面,这里补充一个修改武器近战攻击范围的方法。
                              随意打开一个修改法术的文件,将下面这串分割线内的代码复制上去
                              -------------------------
                              new entry "_BaseWeapon"
                              type "Weapon"
                              data "Level" "1"
                              data "UseCosts" "ActionPoint:1"
                              data "Damage Type" "Bludgeoning"
                              data "Damage" "1d4"
                              data "WeaponRange" "150"
                              data "ValueLevel" "1"
                              data "ValueUUID" "3ae7de83-816a-43e3-a0e1-4d5b78664fc6"
                              data "ValueScale" "1"
                              data "ValueRounding" "1"
                              data "Weight" "1"
                              data "Slot" "Melee Main Weapon"
                              data "PersonalStatusImmunities" "SILENCED;SG_Condition;BLEEDING;BURNING"
                              data "InventoryTab" "Equipment"
                              data "ItemColor" "DefaultGray"
                              data "Weapon Group" "SimpleMeleeWeapon"
                              ---------------------------------------------
                              解释:所有近战武器及相关技能及主手攻击等都会调用Target_MainHandAttack,而这个又调用至_BaseWeapon
                              所以直接修改baseweapon可以修改所有的关于近战武器的范围。
                              data "WeaponRange" "150" 其中150是默认近战距离1.5m 你可以修改成任何你想要的数值,注意,100=1m,推荐250-350
                              上面的damage1d4是最最基础伤害你也可以改,但是影不影响敌人我就不太清楚了。没测试过。


                              IP属地:广西15楼2023-09-01 22:08
                              收起回复