Fell Seal: Arbiter's Mark

Fell Seal: Arbiter's Mark

30 ratings
Modding 101 (WIP)
By Starsinger
A guide to help people who want to get into modding Fell Seal but aren't sure of how to do it.
   
Award
Favorite
Favorited
Unfavorite
Modding Basics
Alright! So, presumably you're here because you're interested in modding Fell Seal. Otherwise, you probably were looking for one of the useful guides about gameplay and clicked the wrong one. But you're here now, so you might as well give it a read.

Like any endeavor, modding requires some supplies. Here's what you're going to need in order to mod successfully:
  • A copy of Fell Seal
  • A program to edit XML (I use Notepad++ but you can use anything you're comfortable with if it has xml editing capabilities. Regular Notepad DOES NOT work for this.
  • Regular Notepad. I know, I know.... but you need it for other things.
  • At least one idea
  • Snacks are optional, but preferred

So, now that you have your supplies, you're going to want to immediately open up all of the game files and intuitively modify them to suit your needs. let's slow down a little and look at the various game files and what they are.

Important
There are TWO file locations we will be working with. The first is found in the Steam folder itself, generally C:\Program Files\Steam\steamapps\common\Fell Seal\Fell Seal_Data\Streaming Assets\

And the other is the much easier to find Documents\Fell Seal\customdata

I will be referring to the first one generally as "The Main Folder" "Streaming Assets" "Actual Files" "Game Files" or "Fell Seal Data". I'll be referring to the second location almost exclusively as "custom data". Don't make changes to anything in the Streaming Assets folder, as that can screw up the game in ways that are harder to fix.
End of Important Section


So! This is the list of files in the Streaming Assets folder. We'll come back to the languages sub folder in a moment, but going down the list...
  • Abilities.xml - This is where all the abilities in the game are kept. Every active, passive and counter ability for every class and monster is right there in that file.
  • Accessories.xml - This is where Accessories are kept. Any equipment that is not a hat, amor, weapon, or shield goes right here.
  • Armors.xml - This is where Armors and Shields are kept.
  • Encounters.txt - Here you can set up what shows up for various patrols and even story battles on various maps. The names of the maps are things like Plains01 and will be a little hard to figure out*
  • GameOptions.txt - This bad boy has the largest range of changes it can create in your game. You can change variables for certain effects, how many save slots you have, the rate which you gain AP, how long status effects last, all kinds of things. It also has specific functions we'll come back to later which have nothing to do with manipulating actual effects.
  • Jobs.xml - This is where all the classes in the game are kept. PC classes, NPC classes, monster classes, all of them.
  • Weapons.xml - And finally, this is where all the weapons in the game are kept.

Now, let's open that languages sub folder. Oh right, and then the en folder beneath that. Sorry other languages.
  • abilities.txt - This contains description text for the abilities and classes. This is fed directly into the game, to put it in the lovely information window on the ability screens and job change screen.
  • accessories.txt - This contains the descriptions for all of the accessories. Also fed directly into the game, where it becomes a lovely information window, this time when looking at accessories.
  • armors.txt - Like above, but for armors and shields.
  • consumables.txt - A description of the usable items in the game. I don't know why they're called consumables, since you reload them between battles, but that's not my decision.
  • dialogues.xml - An XML file? In languages? This contains the game's script. We won't really be messing with this. But it's here if you want to read it.
  • help.txt - This will not help you with anything outside of the game. Rather, this contains the information that populates help windows when you have help mode on in the game itself.
  • ingredients.txt - The names and descriptions of crafting ingredients and the badges required for special classes are in this file.
  • languagename.txt - If you wanted to translate the game into another language you would need to use this file to help do so.
  • mapnames.txt - Remember the asterisk by Encounters.txt up there in the previous list? This will tell you that Plains01 is Azure Fields.
  • menus - the commands and descriptions for the menu commands are in here.
  • monsters.txt - This is the same as abilities.txt but for monster and bzil classes, whereas abilities is only for human classes.
  • storyterms.txt - This mostly works with the dialogues.xml to provide shortcuts in writing.
  • terms.txt - This file defines and names a bunch of things we take for granted.
  • terms2.txt - The same as terms.txt. Really any file with terms in its name is really not something we need to concern ourselves with, but they might be an interesting read for you.
  • weapons.txt - and finally, the weapons file. All the weapons and their descriptions are here, and like the other description .txts this is fed into the game to become an information window

Alright! So that's a brief introduction of everything. Next up, let's start getting into things.
An indepth look at some stuff
Okay! Let's take a look at the stuff! So, use your handy xml editor and open jobs.xml. You should see something that looks a lot like this.

Looks kind of intimidating. What is all that? You might recognize it a more as the following.

So, let's break down that chunk of text and see how it turns from that, into the beautiful mercenary that we know and love.

ClassName="MERC" - The ClassName part of a Job tells the system what to line it up with for a description in the abilities.txt The ClassName does not have to be related to the actual name of the class, you could call put "GOAT" in the ClassName and have the actual class be Samurai if you wanted.

WeaponsType="kfMaul kfSword kfAxe" - This informs what weapons the class can equip, the kf is important, it's referenced by the game and forgetting to include that will ruin things, trust me.

ArmorType="kfLightArmor kfHeavyArmor kfLightHelmet kfLight kfHeavyHelmet kfHeavy kfShield" - this informs what armors the class can equip. As we can see, Mercenary can wear Heavy Armors, Light Armors, Heavy and Light helmets, and Shields. What about the kfLight and kfHeavy? Those encompass both armor and helmets. Mercs are just thorough in their armor proficiency.

BonusCrit="2" - Classes have an innate bonus to critical hits, Mercenaries get 2.

BaseMove="4" - Again, classes have an innate movement speed.

SpeedGrowth="0.83" - How much your speed stat grows when you level as this class.

BaseSpeed="96.67" - If you start your career as this class, this is your base speed stat.

StatsGrowth Values="4.5 4 3 3.5" - How much, in order, your Attack, Defense, Mind and Resist go up per level in this class.

HealthGrowth Values="8 1.5" How much your max HP and MP go up for each level of Mercenary.

BaseStats Values="44 41 31 35" What your Attack, Defense, Mind and Resist start as if you start your life as a Mercenary.

HealthBase Values="88 11" What your HP and MP start as if you're born as a Mercenary.

All of the above make the picture from the job change screen. The below information everything between <learnables> and </learnables> turns into the beautiful job tree. We'll get back into that when we discuss making things.


Let's take a look at something from Abilities.xml

Alright, so above we have the Field Aid skill. If you've played the game for over five minutes, I'm sure you've seen this ability. Let's break down what everything does.

HashName="MERC-A1" - The game references this in a few places. You'll see it above in the learnables section. It also is referenced by the abilities.txt to provide a description, and in the absence of another indicator, this will tell the game what animation to put with the ability.

Name="Field Aid" - This is the abilty's name in the XML file only. The part between the quotation marks is the only thing in an xml file that is not case sensitive. The actual name the game cares about comes from the abilities.txt

Range="1" - This sets the range to 1 away from you. Since there is not also a following MinRange="1" you can also target less than 1 square, or in this case, yourself.

RangeHeight="1" - The vertical tolerance of the ability, in other words, what is the maximum distance between your terrain height and your target's terrain height before the ability will not work?

Power="0.6" - The coefficient for the ability. The higher this is, the more powerful it is, and the lower this is, the less powerful it is. You can almost always use this to compare abilities to each other to see which is more powerful on a straight 1:1 basis.

Element="kNone" - Which of the 7 damage types does this deal? Physical, Water, Fire, Thunder, Earth, Holy, or Dark. In this case, it is a non-elemental ability which is different than Physical.

DmgType="kHealing" - What kind of damage does the move do? This does Healing damage, which for one thing lets it recover health. For another, kHealing tells the game that if you have Smart Casting, it should ignore enemies instead of ignoring allies. Also, kHealing has 100% accuracy by default.

DmgSource="kMAtk" - This will only have two values, kMAtk or kAtkMixed. If you don't see one, it is Atk. But what does that mean? Simple, does the ability scale with Mind (kMAtk), Attack (neither visible) or Both (kAtkMixed). Note from 6 Eyes Studio: "Technically kAtk is a valid value. But the way the XML is setup, it uses 'default values' and if a field uses the default, it's not written."

SpellType="kSkill" - This will also only have two values, kSkill or kNothing. If you see neither of those then the ability is a Spell. But what do those mean? Skills are stopped by Cripple, and Spells are blocked by Mute. I presume kSpell is the same deal as above and is just a default value.

RemoveNegativeEffects="kfBasic" - This ability will remove basic negative statuses, Poison, Bleed, Mute, Cripple, Sleep and the desire to drink Pumpkin Spice Lattes.

So that's a break down of what Mercenary looks like under a microscope.

Let's Make a Thing!
(Under Construction)

Okay! So now that we've looked at some things, let's try making something for ourselves and get into that. We'll go through the set up steps (you only have to complete those once, unless something catastrophic happens), and then the actual process of creating some things. For this we're going to make a whole new job, some abilities for it, and some equipment.

For the Set Up there are one of two possibilities, please please, please, PLEASE only do the correct one for your situation. I don't want to be responsible for ruining your game in any way.

Option 1. You already have been playing with modded materials, whether mine, your own, or someone elses. You should already have all the necessary files in your custom data folder. Fantastic, make sure your Custom Data has the Abilities.xml, Jobs.xml, and GameOptions.txt. Also make sure there is abilities.txt in your languages > en folder IN CUSTOM DATA.

Option 2. You have never had anything modified OR you have only manipulated values in the GameOptions and/or Encounters.txt files. That's okay! Go to your Streaming Assets folder, and Copy and Paste the Abilities.xml and Jobs.xml over to Custom Data. If you don't have abilities.txt in your Custom Data languages > en folder, copy that too. Now, you have an extra step here. Open up each of those files in your Custom Data folder and... For Abilities.txt just empty the whole file and save the empty file (we'll be back to it). For Jobs.xml and Abilities.xml delete most of the files, you'll want the entire file to look like these.

And now we have some really empty files. Next we'll fill them in with a custom class made for this guide. There's a certain flow I go through when making a class and an order I go through. I'll label which steps are optional and which are more recommended than others.

  • Snacks (technically optional, but don't do that to yourself)
  • Sketch out the idea on paper or in a word document or something. It's handy to have notes to refer to. (optional, but highly recommended)
  • Create the abilities in the Ability.xml (you don't have to do this step first, but it's a good idea to do it first)
  • Set up the class's basic parameters including equipment proficiencies and stat growth in the Job.xml (It's perfectly fine to do this step before creating the abilities. I tend to do it after so I can move right into...)
  • Arrange your abilities into a skill tree in the Job.xml (You can do this step before making the abilities, but it's so much easier to do it the other way around.)
  • Put descriptions in the abilities.txt (You can also do this before the Job.xml steps just fine, but I like to save it for after)
  • Give the class a hat and clothing in the GameOptions.txt (I told you it had other functions! You can do this step at any time, but I save it for last, just because)
  • Test it in the game. (technically optional)
  • Ideally you will have no bugs to troubleshoot.

Alright, let's start making the thing. We're going to be making a Witch class. Witches are going to be casters who specialize in inflicting status effects. I've doodled some notes on paper about the class, so let's get started on the abilities. I'm going to put them in here, go ahead and copy and paste them into yours, or type them on your own and fiddle with values if you'd like. And then I'll break them down like I did for Field Aid.
IMPORTANT!!
In the Ability and Job xml files, everything is Case Sensitive. I can tell you from experience that accidentally capitalizing or not capitalizing the wrong letter will ruin your entire day as you spend hours looking for it, because things won't work correctly.
FAQs
(also under construction)
16 Comments
MTaur Jul 21, 2019 @ 1:17pm 
On the gog build anyway, the base game's xml no longer exists in the install folder. Streaming Assets has stuff, but not the modable files. I think the game's working copy of the base game xml data is hidden because you're not really supposed to have direct access to the "canonical" code base. But anything you see in the examples folder is something you can put in a mod to use at run time.

The "customdata_examples" folder is generated in "Documents/Fell Seal" on Windows by the game install. That's where you look for basic examples and then monkey-see monkey-do for the rest into "customdata". It does not include portraits, but maybe they should add one pair of each category for template purposes.
MTaur Jul 21, 2019 @ 1:17pm 
Update - Getting Started:
=====================

With the change I observed, getting started is actually slightly easier, but following the current edition of the guide will send you on a dead-end detour.

*** TL;DR: Everything is now in Documents/Fell Seal *** The "streaming assets" folder is now inside of "customdata_examples", and I think this is a "non-installed" copy of the base game's data as if it were an inactive "mod". (I don't know if it's always updated with patches)
Conan The Librarian May 14, 2019 @ 2:39pm 
DeNarr-

Yes, as it says in the title says, it's a "Work in Progress", but as of this moment, Starsinger has not resumed making / updating his guide.
DeNarr May 14, 2019 @ 2:35pm 
I'm referring to the last paragraph. The "Let's Make a Thing!" section. It says we'll make a witch class to test things, but nothing is actually noted as how to do this.
Conan The Librarian May 14, 2019 @ 2:33pm 
DeNarr-

I'm not sure what you're referring to as this is a general modding guide (sadly slightly outdated) and not a guide to Starsinger's previous mod (which is presumably outdated as well).
DeNarr May 14, 2019 @ 2:31pm 
I don't actually see the information for the Witch class. Is something missing?
Little Mac May 2, 2019 @ 2:58pm 
Sad since this would take the modding community from 0 to 100
Glad we will be getting more content from them either way atleast
thanks conan
Conan The Librarian May 2, 2019 @ 2:56pm 
To see Developer confirmation of this, see this thread: https://steamcommunity.com/app/699170/discussions/2/3726075043719535110/
Little Mac May 2, 2019 @ 2:54pm 
well shit thats a shame
Conan The Librarian May 2, 2019 @ 2:50pm 
Sidesiron424-

If you are referring to "Visual mods", unfortunately, the way the game is programmed, that is not possible. The only thing in that category which is possible is Custom Portraits.