Custom Buff Effects
Video Guide
Timestamps:
- 0:14 Adding a custom buff .txt file
- 0:52 Adding a buf .json and pasting in information
- 1:13 "id"
- 1:21 "iconId"
- 1:35 "buffClass"
- 2:36 "attributeType"
- 2:45 "buffType"
- 2:54 "maxStack" | special mention "maxTurn"
- 3:02 "canBeDespelled" | special mentions "destroyableOnRetreat" & "destroyableOnZero"
- 3:19 "ability"
- 3:56 "categoryKeywordList"
- 4:37 Adding/Inflicting the buff with a skill
- 5:45 Adding locale for the buff (buflist)
- 7:46 Adding locale for the buff (keywordlist)
- 9:11 Adding the buff to skill locales
Text Guide
Now, you might want to add custom buff effects after having made your fancy skills to make your mod stand out and be more unique. Contrary to really popular belief, that isn't very hard to do.
Tutorial
- First off, you need to go to
limbus_data
indumpedData
and find thebuff
folder. - You will find numeral json files; assuming you've been modding for a signifcant amount of time, you're used to this by this point. For our example, go to the first file:
0.json
- Copy the first entry you see (in this circumstance, Nail) and paste the text into the
buff
folder of your mod'scustom_limbus_data
as a .json file. - To properly format your file, you must put the entry inside a list. If this is confusing, your file should look like this:
{
"list": [
{
"id": "NailPersonality",
"iconId": "Nail",
"buffClass": "NonvolatileBuff",
"buffType": "Negative",
"canBeDespelled": true,
"list": [
{
"ability": "GiveBuffOnRoundStart",
"value": 1,
"buffData": {
"buffKeyword": "Laceration",
"target": "Self",
"stack": 1,
"turn": -1,
"activeRound": 0
}
},
{
"ability": "LoseStackOnRoundEndByRatio",
"value": 0.5
}
],
"categoryKeywordList": ["LACERATION"]
}
]
}
For now, lets empty the, "list," section of the buff.
{
"list": [
{
"id": "NailPersonality",
"iconId": "Nail",
"buffClass": "NonvolatileBuff",
"buffType": "Negative",
"canBeDespelled": true,
"list": [],
"categoryKeywordList": ["LACERATION"]
}
]
}
-
To create a new instance of a buff, make a .txt file with the desired id name of the buff in the
custom_buffs
folder residing inlimbus_data
. Make sure you don't use a pre-existing id name, or you will overwrite said buff. -
Afterward, you can change the id of your buff to the name of your .txt file. If I named my file
BeheadShanecliffs.txt
, the idBeheadShanecliffs
becomes valid. You must re-open Limbus Company for the id to be recognized. -
iconId is, what you can guess, the icon of the buff. It typically uses the id of a different buff.
-
NOTE: you can add your own custom buff icons by putting the image in the
custom_sprites
folder and naming itbuffIcon_{ID}.png
similar to how you'd do skill icons. -
buffclass
dictates what the buff is like, there are 4 main types:NonvolatileBuff
means it has only potency and it doesnt expire on turn end,VolatileBuff
means only potency and it expires at turn end,CountableBuff
means it has both potency and count, andsinBuff
is similar toCountableBuff
, but it is primarily used on the 7 main status archetypes. -
buffType
can either beNegative
orPositive
orNeutral
its purpose is to be included in things such as "remove one random negative buff from self" -
canBeDespelled
is a boolean that decides if the buff can be forcefully removed or not, back on that "remove one random negative buff from self" ifcanBeDespelled
is false then it cant be removed by scripts similar to that. -
categoryKeywordList
is used to make it a 'unique' buff of an already used status effect; for example, Dark Flame (DarkFlame
in code) hasCOMBUSTION
in theircatagoryKeywordList
which is why it counts as unique Burn -
Lastly,
list
, the most important part of a buff. This dictates what the buff actually does. In the OG Nail script, it was this:
"list": [
{
"ability": "GiveBuffOnRoundStart",
"value": 1,
"buffData": {
"buffKeyword": "Laceration",
"target": "Self",
"stack": 1,
"turn": -1,
"activeRound": 0
}
},
{
"ability": "LoseStackOnRoundEndByRatio",
"value": 0.5
}
]
Obviously, the ability script will add a buff on round start, and the value divides the buff by one (a number divided by one, is... just the original number),
and it gives Bleed (Laceration
), which is how Nail
gives Bleed count equal to stack on Round Start.
There are many scripts to modify, you can find them easily in the files of the buff
folder similar to how you'd find skill scripts
EXTRAS
"maxStack"
: can be added to set a limit for the potency, ex:"maxStack": 20
otherwise the default is 99"maxTurn"
: can be added to set a limit for the count, ex:"maxTurn": 10
otherwise the default is 99"attributeType"
: unknown what it truly does, thesinBuff
s have it with their respective affinity (Sinking
hasAZURE
whileLaceration
hasSCARLET
)"destroyableOnZero"
: determines if the buff gets removed at zero potency (Boolean)"destroyableOnZeroTurn"
: determines if the buff gets removed at zero count (Boolean)"destroyableOnRetreat"
: determines if the buff gets removed when the unit retreats (Boolean)