Fable - The Lost Chapters

Fable - The Lost Chapters

评价数不足
A (somewhat) comprehensive Fable TLC Modding Guide
由 Alexander The Alright 制作
This guide is an abridged version of my full Fable TLC Modding Guide, "The Alright Library of Alexander(ia)" and aims to give enough information to get the average would-be-modder started with their modding journey!
   
奖励
收藏
已收藏
取消收藏
Table of Contents
1) How to install modding tools
2) Existing Tutorials
3) CInventoryItemDef and CStockItemDef Editing
4) Editing Food and Potions
5) Editing Augmentations
6) Editing Armour
7) Retexturing an item
8) ChocolateBox's Object Builder
9) Basic Map Editing and Quest-Dependent Events
10) Useful resources and ID lists
11) Miscellaneous Modding Tutorials
12) Epilogue
CHAPTER 1 - Installing Mod Tools
This section will be short, because there are already some really good tutorials out there that cover the installation of modding tools. Avarice (another Fable modder and all round nice fella) has a good YouTube playlist that goes through the installation and setup of FableExplorer, ChocolateBox and the Freeroam tool.

FableExplorer (also referred to as ShadowNet):

ChocolateBox:

Freeroam (not needed for making mods, but for installing certain mods):
CHAPTER 2 - Existing Tutorials
Over the years, many people (including me) have made various tutorials for modding Fable. A lot of these live on FableTLCMod.com and can be hard to find for people who don't know where to look. This chapter will highlight the tutorials I think are good and are easy enough for a beginner to follow!

The Alright Library of Alexander(ia) - FULL VERSION. This is the full, 27-page version of this guide that I wrote a few months ago.
https://docs.google.com/document/d/1ODjpkoo_wSMFJuoPgCmICMmfDzXrgJNmMLeq5ylHg38/edit?usp=sharing

“New to Modding Fable?” by Oldboy. A general modding guide very similar to (and in some ways better than) this one! The only issue with this one is some of the links are dead, but it's still worth a read through. I've made to cover some things this guide doesn't, and his guide will naturally mention some things mine doesn't.
http://fabletlcmod.com/forum/index.php?t=msg&th=7218&start=0&

Nesdude’s Modding Guide, by Nesdude. Another good, comprehensive modding guide that, like the one above, helped me enormously when I started modding Fable back as a wee nipper.
http://fabletlcmod.com/forum/index.php?t=msg&th=3978&start=0&

Weapon Editing tutorial, made by an incredibly cool, handsome and funny guy (me). This covers most if not all you’ll need to know about weapon editing, and is the reason why this guide doesn’t contain a weapon editing section!
CHAPTER 3 - CInventoryItemDef and CStockItemDef Editing
Every item in Fable is made up of a series of def entries that dictate certain aspects of the item. For examples, weapons will always have a CWeaponDef and a CObjectAugmentationsDef; creatures will always have a CCreatureDef.

This chapter will cover two defs that are part of EVERY item in the game, be it armour, weapons, consumables, augmentations or gifts: CInventoryItemDef and CStockItemDef!

When covering defs, I will be going through each value in a def and giving a short explanation of what each one means, what type of value it is and how to change the values to get the result you want. If I don't mention a certain part of a def entry, it either does nothing or can't be changed without breaking the game.

*Quick Disclaimer: The name for the entries might be different based on whether you’re using FableExplorer or ChocolateBox; the alphanumeric name is what really matters!*

CInventoryItemDef values:
C8636B2E - Texture - Graphic: The texture for the item’s icon. The second number in the box (usually a 4 digit one) is the number you need to change to change icons. You’ll need to know the ID of your preferred HUD texture, which can be found in textures.big
FA2A946A - Item Description: The text used here is misleading. This entry actually represents the title of the item.
619E4A2F - ItemDetails: The item’s description.
51FF3A2D - InventoryCategory: Self-explanatory! This controls where in your inventory the item will appear and what type it’s registered as in game. You shouldn’t need to change this, unless you use ChocolateBox’s object builder and clone an item of a different type to the one you want.
A73045D5 - MaxNumberItems: Controls how many of the item you can stack. Resurrection Phials have this set to 9 and weapons will have it set to 1.
242F0BB6 - IsSellable: Self explanatory! Controls whether traders can buy the item from you. Items that traders will accept also depends on their CShopDef entry, but there are some traders who will take everything of a certain type (e.g. the Snowspire Blacksmith will buy ALL of your weapons) This is a bool value, so 1 is true and 0 is false.
E7670E10 - IsBuyable: Controls whether you can buy an item. This is a bool.
C96EBF35 - IsConfiscatable: Controls whether an item can be removed from your inventory either by a guard or during the Bargate Prison quest. This is a bool.

CStockItemDef values:
575B3970 - DefaultPrice: The default price of an item. This value is multiplied/divided in-game depending on the Trader’s CShopDef values.
782B1D3 - DefaultIsStealable: Controls whether the item can be stolen from a shop’s display. This is a bool.
140193AF - CanBeDisplayedInShop: Controls whether an item can be displayed in a shop’s display. This is a bool.
CHAPTER 4 - Food, Potions and other Consumables
Okay, so before we start this chapter, here’s a list of each food and potion object in an unmodded version of Fable TLC:

OBJECT_APPLE_GREEN_01 - Green Apple
OBJECT_APPLE_RED_01 - Cooking Apple
OBJECT_PIE_APPLE_01 - Apple Pie
OBJECT_PIE_BLUEBERRY_01 - Blueberry Pie
OBJECT_PIE_STRAWBERRY_01 - Strawberry Pie (unused in game and seems to crash when loaded in. Aeon Edition uses a custom OBJECT for its Strawberry Pies)
OBJECT_FISH_CARP_XX (XX being 01-04) - Fish, of varying colours. I think only one type is ever used in-game, but I’ve not played vanilla Fable for ages so I may be wrong!)
OBJECT_CARROT - Carrot
OBJECT_RED_MEAT_01 - Red Meat
OBJECT_RED_MEAT_02 - Leg of Lamb (unused in game)
OBJECT_MOONFISH - Moonfish
OBJECT_GOLDEN_CARROT - Golden Carrot
OBJECT_TOFU - Tofu
OBJECT_CRUNCHY_CHICK - Crunchy Chick
OBJECT_DYNAMIC_POTION_DUMMY/RESURRECTION_DUMMY - Not sure, actually - guessing they’re templates or used in some scripts? You don’t need to know about or use these!
OBJECT_HEALTH_POTION - Health Potion
OBJECT_MANA_POTION - Will Potion
OBJECT_SUPER_HEALTH_POTION - Elixir of Life
OBJECT_SUPER_MANA_POTION - Will Master’s Elixir
OBJECT_WILL_POTION - Ages of Will Potion
OBJECT_STRENGTH_POTION - Ages of Strength Potion
OBJECT_SKILL_POTION - Ages of Skill Potion
OBJECT_ADRENALINE_POTION - Adrenaline Potion (unused in game, gives a temporary speed boost to attacking, rolling, bow-drawing and spellcasting animations)
OBJECT_BEER_TANKARD - Beer

There’s a few things about these items that you can edit, such as the CInventoryItemDef and CBonusItemDef entries. The most important def for food and potions is its CBonusItemDef, which controls the effects you get from eating/drinking them. I will now list all of the values in this def and explain what they mean!

CBonusItemDef values:
8EC6F7A7 - HealthModifier: Controls how much health is restored when consuming an item.
57D405C - AddsFatness: Controls whether consuming an item can make you gain weight. This is a bool value, so you can’t change how much weight you gain, only whether an item is fattening or not.
73B1FB91 - StaminaModifier: Controls how much Will Energy is restored when consuming an item. Despite the sizes of the bar, the amount of Will you have is always significantly larger than the amount of health, so set this to a high number. Use the Will Potion’s value for comparison.
E501B4CC - SecondsToApplyHealth: Controls how long your health increases for. Food items use this to give you delayed healing.
383E7115 - WillExperience
EA65B60B - SkillExperience
4814B110 - StrengthExperience: These three entries control how much base exp of each type you gain when consuming an item. These values are multiplied by your combat multiplier. So setting this to 200 and then drinking a potion with a mult of 10 would give you 2000 strength/skill/will exp. You can set each of these values to more than 0, to make an item give you exp of more than one type!
745D231A - MoralityChange: Changes how much positive or negative alignment consuming an item gives. Set this value to a negative value to gain evil points or positive for good points.
E8B73CBD - AgreeablenessChange: Changes how many agreeableness points an item gives you. Agreeableness is an invisible stat that partially controls how much villagers like you. The value you enter here is multiplied by (I think) 50 in game, so set this value low!
2C1DF67 - AttractivenessChange
EC66698F - ScarinessChange: These two values represent how many attractiveness and scariness points an item gives you. Like agreeableness, these values are multiplied by 50 in game. So set these low! Fun fact: Books are the only vanilla items that use these values, but because books aren’t consumed in-game, they don’t actually change anything!
7657161D - MaxHealthIncrease: Controls how much your health is permanently increased by when consuming an item.
C0E30E2B - MaxStaminaIncrease: Controls how much your Will Energy is permanently increased by when consuming an item. Set this value higher than you would for health!
ABD1337 - ChangeTimeOfDayToDay
16FACF2C - ChangeToNight: These two bool values control whether an item changes the time of day. Don’t set both of these to 1!
1C68E63E: SpeedMultiplier: Controls how much your animation speed is multiplied by when consuming an item. A value of 1 means it’s unchanged, a value of 2 doubles your speed and a value of 0.5 halves it. Setting this to 0 will either freeze your character or the game itself - haven’t tried it!
24A7A793 - SecondsForSpeedMultiplier: Controls how long your speed change lasts, in seconds.
56873C64 - ParticleEffect: Changes which particle effect applies around the player when consuming an item. You’ll need to know the ID number of your effect to change this.
2284E63F - AddsDrunkenness: Controls whether an item gives you the drunk effect or not. This is a bool.
34D4809B - AlcoholicStrength: Controls the strength of the alcoholic effect. I’ve tested this a bit, and I’m not sure how much of a difference it makes, but feel free to play around with the numbers here!


CHAPTER 5 - Augmentation Editing
The effects of Augmentations are controlled by one def (besides the CStockItemDef and CInventoryItemDef): CAugmentationDef. A lot of the values are self-explanatory, so I’ll go through them in order, like I did with the CBonusItemDef.

CAugmentationDef values:
240E55DF - Name: Another value that controls the title of the Augmentation. Make sure that, like with the augment’s CInventoryItemDef, make sure to set this as the text entry you want for the title.
B27A80D - Type: This controls the damage type of the Augmentation. This value is used in ARMOUR entries, that controls damage type weaknesses and resistances. This value should always be a power of 2 if you want to create new augmentation types.
B6F76CB1 - InventoryGraphic: The Augmentation’s icon.
DFA5CC9C - DamageMultiplier: Self-explanatory; this controls how much your base damage is increased by. If you set this to 2 and put the augment on a weapon with 100 damage, it’ll deal 200 damage. This also works the other way around; if you set it to 0.5, the 100 damage weapon will only deal 50 damage!
5356DDC7 - ExperienceMultiplier: Same as the entry above, but with experience. This includes ALL sources of experience: green orbs, strength, skill and will experience, and potions/food.
6FBD733 - FrequencyToAddHealthInSeconds: How often the augment increases your health.
12C34935 - HealthToAddPerIncrease: How much health is added per tick (the time of which is set in the above entry).
ABEECD0A - FrequencyToAddStaminaInSeconds
71A14B21 - StaminaToAddPerIncrease: The same as the Health entries, but for will.

As for applying augments to weapons, this is covered in my Weapon Editing tutorial on YouTube. But to quickly sum up, you’ll need to go to your weapon’s CObjectAugmentationsDef, where you can edit the amount of augment slots, as well as the initial augments that are applied to it.
CHAPTER 6 PART 1 - Editing Armour with CAppearanceModifierDef
Armour pieces are balanced in two different ways in Fable. Firstly, the stats of the armour piece itself, which include a base armour value and other cosmetic stats (e.g. attractiveness, alignment). Secondly, all armour types have inherent weaknesses and resistances. The armour’s base stats are controlled by its CAppearanceModifierDef, whereas the resistances/weaknesses are controlled by the armour type’s ARMOUR entry.

If you’re using FableExplorer with the latest def.xml file, and you try to edit a CAppearanceModifierDef entry, you’ll get a “Control Bytes Mismatch” error. This isn’t a big issue, you’ll just need to use ChocolateBox instead.

CAppearanceModifierDef values:
**Quick Disclaimer: These values won’t have alphanumeric IDs, because unlike before, I’m using ChocolateBox to catalogue them! If you’re using an older version of ChocolateBox or an older def.xml, your text may be different. The values are the same!**
Clipping Prevention: Self-explanatory, and you shouldn’t need to worry too much about this! The Clipping Prevention list is made up of predefined strings (for example, L_foot corresponds to the hero’s left foot).
Appearance Clothing Model: The mesh of the armour when worn. Unlike with other objects, you don’t set the mesh of an armour piece in its OBJECT entry. Instead, you use the armour’s “folded mesh”. Horns and some other character changes also have CAppearanceModifierDefs, which is why “Rank to Appear” and “Rank to DisAppear” are there.
Unknown - Clothing/Tattoo body Placement - An integer value which tells the game where on your body the armour is, and what things to hide (e.g. facial hair).
Removable - A bool which determines whether you can remove a piece of armour or not. 1 means it’s removable, 0 means it isn’t (like JoB’s mask).
HeroSuit - Determines which suit your armour is part of. To make a new suit, you also need to assign the armour piece to the suit’s CHeroSuitDef, which can be found in the THING entries.
SuitPart - Like above, this is also one part of what determines which part of the suit your armour piece is. 1 is headgear, 2 is shirt, 3 is gloves, 4 is trousers, 5 is boots.
AppearanceType - No idea. Don’t change this!
Scariness/Attractiveness/Alignment - Float values that determine the armour’s cosmetic ratings. These are multiplied by 50 in game, so if you set scariness to 1, the armour will give 50 scariness. These values can also be negative.
SoundRadiusMultiplier/VisibilityMultiplier - Float values that determine how loud/visible an armour piece is. The lower these values are, the harder you’ll be to detect when wearing the armour.
ArmourDefIndex - Controls which ARMOUR type your armour is. This changes your resistances/weaknesses when wearing the armour.
ArmourPercentage - This float value is what controls the base stat for your armour. If you set this to 0, you’ll be invincible. The way the in-game value is calculated is a bit of a faff, so I’ll explain! There are three values you need to know about, which we’ll call X, Y and Z.

X = The number you want to put into ChocolateBox (a very small decimal number)
Y = The Armour Type Value (this depends on the type of armour. All ATVs can be found in CHAPTER 10)
Z = The in-game value of the armour

Start by deciding how much you want your armour’s in-game stat to be. For this example, I’ll use the Amethyst Chainmail Helmet from my overhaul mod, Fable: Aeon Edition. In-game, it has 98 base armour. The ATV for Chainmail is 833.3. So, we need to divide 98 (Z) by 833.3 (Y). This gives us a value of roughly 0.118, which is the number you need to enter into ChocolateBox (X).

So, to sum up:
Z / Y = X (In-game / ATV = Cbox Value)
X * Y = Z (Cbox Value * ATV = In-game)
CHAPTER 6 PART 2 - Editing Armour with its ARMOUR entries
For the ARMOUR entry, you can use either FableExplorer or ChocolateBox to edit the values. It’s also worth knowing that enemies and bosses ALSO have an ARMOUR entry, so you can edit their resistances as well as your own.

ARMOUR values:
4F1221A7 - AugmentationResponse - Controls the damage added/subtracted by augmentations. If an augmentation isn’t listed, then its value is 1 (which means the armour isn’t weak or resistant to it). By pressing Add, you can add more augmentations. Just remember to change the “Armour Array 1” value to the amount of augmentations you have in the list.

The amount of resistance is controlled by the (float) value underneath the (uint)_ value. Setting this to 0 makes the armour invincible to the augmentation. 1 means it does no more or less damage, and 2 means the armour has a 2x weakness to the augment.

Augmentation ID numbers
Remember “B27A80D - Type” from the augmentation chapter? This is where it becomes relevant! In the (uint)_ box at the top of the array entry, you need to put the corresponding augment type number here.
1 = Sharpening
2 = Silver
4 = Fire
8 = Lightning
16 = Piercing
Now, I’ve not experimented with this, but in theory if you write “6” as the augment type, you should be able to combine the augmentations to create custom weaknesses/resistances. Say for example, you give a bandit 2x weakness to this, then your weapon will need to have both Fire AND Silver augments. I’m just speculating here, so don’t take this as fact.

E8DCE48C - DamageTypeResponse - Similar to the AugmentationResponse, this value determines the armour’s resistance to all forms of damage besides augmentations. This works the same as AugmentationResponse, but you just need to know what numbers correspond to which damage type.

Damage Type ID numbers
0 = Melee Weapons
1 = Unarmed
2 = Lightning (This can be enemy lightning attacks or the Hero’s lightning spell)
3 = Fire (Same as above but with fire. This includes Enflame but NOT Infernal Wrath)
4 = Projectile (Arrows and most NPC projectiles, such as troll rocks)
5 = Explosion (Barrels and Whisper’s Bombs)
6 = Drain Life (Hero or enemy variants)
8 = Force Push (Hero or enemy variants)
9/10 = Infernal Wrath/Divine Fury. For some reason, these have two separate ID numbers. I’ve not tested which is which, sorry!

6F099188 - ArmourThresholds - No idea. Leave it!
DF96499 - AllHitsKnockdown - A bool that determines whether hits automatically knock down the armour wearer. 1 is true, 0 is false.
C8D6664E - AllHitsNegated - Same as above, but whether the creature is invulnerable to damage or not.
B33E7C99 - AllHitsCauseRecoil - Same as above, but determines whether attacks bounce off or not.
674CF269 - DamageMaterial - Controls the sfx and visual effect you get when the armour is hit.
370FA937 - BlockMaterial - Same as above, but for when a hit is blocked.
CHAPTER 7 - Retexturing
Retextures are a very popular type of mod, and are a good way to get started in the modding world! So I’ll quickly explain how you can make a retexture of your own, step-by-step! This tutorial will assume you’re using FableExplorer.

1) Open textures.big and find the texture you want to change.
2) Click “Save as”. If your image has no transparency/alpha, save it as a bmp. Otherwise, save it as a png!
3) Open your image editor of choice (GIMP and PhotoScape X are good) and do your thing.
4) Go back into FableExplorer and find the texture again.
5) Click “Open New”. If your texture has no transparency/alpha, select DXT1. If it does, then select DXT3.
6) If your texture is a DXT1, make sure to set Alpha to 0. If it’s a DXT3 one, keep Alpha as 1.
Click “Apply Changes” and then save and run Fable.

If you’d like to make a retexture, but have it as a new texture instead of overwriting it, then here’s how you can do it without ChocolateBox’s Object Builder.

1) Open textures.big and find the texture you want to change.
2) Click “Save as”. If your image has no transparency/alpha, save it as a bmp. Otherwise, save it as a png!
3) Rename the Symbol Name to something easy to find (e.g. TEXTURE_HERO_CHAINMAIL_GLOVES_NEW) and click Apply Changes.
4) Go to File > Create Fable Mod Package and drag the new texture entry into it.
5) Save the fmp.
6) Close FableExplorer WITHOUT clicking “Save Mods and Run Fable”
7) After editing your texture and opening FableExplorer, go to File > Load Fable Mod Package and load the fmp you made.
8) Follow steps 4-7 of the previous guide with your new Texture Entry.

The second guide is also useful for if you want to duplicate meshes or any other entries without using ChocolateBox’s Object Builder.

On the subject of the Object Builder…
CHAPTER 8 - ChocolateBox's Object Builder
ChocolateBox has a very useful tool that allows you to create new entries from scratch: the Object Builder. It’s quite straightforward to use, so I’ll give you a quick step-by-step guide. For this tutorial, we’ll be creating a new OBJECT entry.

1) Go to Editors > Object Builder.
2) Where it says DefinitionType, click the dropdown menu and pick OBJECT (you can pick any def you like if you just want to make a CWhateverYouWantDef).
3) Where it says Template, click the dropdown menu and find an entry most similar to the one you want. We’ll make a new weapon, so I’ll pick OBJECT_LEGENDARY_AXE (Ronok The Axe). Once you’ve done this, a bunch of defs and tick boxes will load up.
4) Untick the defs you want to have duplicated. I’ll be unticking CInventoryItemDef, CInventoryItemDef.TEXT_TITLE, CInventoryItemDef.TEXT_DESCRIPTION, CObjectAugmentationsDef, CWeaponDef and CStockItemDef.
5) Change the Base Name to whatever you want. You don’t need to add OBJECT_ at the start, the new object will automatically be called OBJECT_NEW_ITEM
6) Hit Create!

Now you have a new object, find its OBJECT entry. You’ll notice that the new defs have been added to the object and can now be edited. Once you’re done editing, your object is ready to be added to the game, whether it’s via a chest, enemy drop or spawned in with FableMenu.
CHAPTER 9 - Basic Map Editing and Quest-Dependent Events
As well as having the handy Object Builder, ChocolateBox also comes with a map editor. To get it up and running, go to Editors > Region Editor, and then in the Region Editor, go to File > Load Region and select the map you want to edit. There are quite a few things you can do and change, so I’ll go through some of them below!

You can spawn in items and creatures by going to Things > New and searching for an OBJECT or CREATURE entry in the Regex Name text box. Once you have the thing you want, highlight it and press OK. After that, click somewhere in the level to place it in the world. You can move it around by clicking it and then adjusting the XYZ arrows with the Left Mouse. Use the Right Mouse instead to rotate the object.

You can edit creatures and objects with a series of tick boxes, text boxes and values on the left side of the Region Editor.

ScriptName and ScriptData can be changed to create unique items/creatures like Bodyguards.
ThingGamePersistent and ThingLevelPersistent will make sure that items are baked into your save and don’t respawn when killed or destroyed.
ObjectScale changes how big or small an item/creature is.
The CTC values will change depending on what type of thing your spawned creature/item is.

You can create teleporters by going to Things > Create Teleporter. You can choose to use the default Guild pedestal as a teleporter, but it can be any item you like. Once you have it selected, click where you want the teleporter to be. Then, it’ll ask you where you want the teleporter to take you to. Choose the Destination map, and then click on the spot you’d like the Hero to teleport to. Once done, you’ll have the option to create a two-way teleporter (so basically a 2nd teleporter at the teleport destination), followed by the option to make a visual teleporter effect. This is optional.

You can also do a lot of these things by directly editing the game’s .tng files, but this way is a lot easier and more expedient.

You can also make objects and NPCs spawn only while certain quests are active. You may have noticed that when you highlight some objects in ChocolateBox’s Region Editor, the “Section” part shows some text, maybe something like Q_HobbeCave or Q_TraderEscort. Items with tags like these will only spawn during certain quests or when certain quests have been completed. Using the Wasp Menace as an example, I’ll explain below how to make your very own "Optional Encounter"!

1) Using ChocolateBox, go to a map that you know is used in a quest. I’ll be going to the Picnic Area for this.
2) Click the dropdown menu under Section and find the quest name. For the Wasp Menace, it’s Q_WaspBoss.
3) In your game’s FinalAlbion folder, find the name of the map that you want the Optional Encounter to be in. I’ll use Bowerstone South, which is called BowerstoneSlums_v2.tng
4) At the bottom of the page, type:
XXXSectionStart Q_WaspBoss;
XXXSectionEnd;
5) Save and exit. Go back into ChocolateBox and open up Bowerstone South in the Region Editor.
6) Place the creature/item you want to have spawn in the map. Click on it and change the Section from NULL to the new Q_WaspBoss one.
7) Press Change to make sure it applies.
8) Do the same for any new items/creatures you’d like to have spawn.
9) Save your changes and test the quest!

As well as making these Optional Encounters, you can also use this method to make postgame content! The four quest names you can use are:

DummyQuestForScarletRoseStatue: Post-Human Jack
Hook_Fresco_12_KilledDragon: Post-Dragon Jack
Hook_Fresco_01_EvilEpilogue: Post-Human Jack, but if you choose to kill Theresa
Hook_Fresco_02_GoodEpilogue: Post Human-Jack, but if you choose to cast away the SoA

Some more useful quest names are:

Q_BowerstoneTownLifeIntro: Pre-Arena. This quest ends after you beat the Arena, so you could use this quest to make limited-time items/enemies
Hook_Fresco_13_KilledScorpion: Post-Arena
Hook_Fresco_06_Prison: Post-Bargate
V_SickChild_Activate: The Sick Child quest. This quest triggers after meeting Maze at Bowerstone South and leaving the region once. This quest could also be used for limited time items/enemies.
CHAPTER 10 - Miscellaneous Modding Tutorials
How to edit some of the game’s Demon Doors
Open up script.bin. Make sure to click the plus afterwards and not the CScriptDef itself, otherwise odds are good FableExplorer will crash.
Scroll down to the bottom to find several Demon Door entries. You can edit the Lamp DD, the unused Renown DD, the Greatwood Caves DD, the Darkwood Marshes DD, the Greatwood Gorge DD, the Knothole Glade DD and the Barrow Fields DD.

script.bin Demon Door values:
C508358D - DemonDoor_ShineLight_TriggerDistance - How far away you need to be from the DD with the lamp on to trigger it opening.
65906DE3 - DemonDoor_HighRenown_TriggerLevel - I’m assuming this controls how much renown you need to open the door. The default value is 90, so it could be a percentage value?
F0B3C67 - DemonDoor_CombatMult_TriggerLevel - How high your combat multiplier needs to be to open the DD.
5AAA86EB - DemonDoor_SummonCreature_NumCreatureTypes - How many waves of enemies the DD will spawn.
A08010B6 - DemonDoor_SummonCreature_CreatureType - Which enemy types will spawn. To change this, enter the enemy’s CREATURE entry name.
685CDBF5 - DemonDoor_BeEvil_EvilnessNeeded - How evil you need to be to open the door. The default value is 0.0125, so I assume this is multiplied in-game.
BE55DD1 - DemonDoor_DoDamage_DamageLimit - How much damage is needed to open the DD. I’m assuming that, like weapons, this number is multiplied by 10 in-game.
EEACDB48 - DemonDoor-EatPies_FatnessLevel - How fat the player needs to be to open the DD. The default value is 0.9, and the maximum value is 1, 1 being 100% fatness.

How to edit Spouses, Sex and Dowry
To edit the amount of Dowry you get for marriage, find the CWifeDef entries and change the number. It’s not multiplied or divided in-game, so setting it to 10000 will make the Dowry 10000 gold in-game.

For sex and gifts, you need to edit the CHeroMarriageDef. Before I explain some more, here’s a fun fact about gifts: Spouses can only gift you items that are sold by traders in the town or village they live in. So, in vanilla Fable, a wife in Bowerstone South cannot gift you a Master weapon, as the Blacksmith doesn’t sell one.

CHeroMarriageDef values:
C1592D04 - HeroStatRenownIncreasePerMarriage - Controls how much renown the Hero is given for marrying someone.
19348C3E - FatnessChangeThresholdForComment - Controls how much fatter (and possibly thinner?) the Hero can get before the spouse comments on it.
983CEC2E - SecondsBetweenGiftGivingOpportunities - Controls how much time, in seconds, will pass before the spouse can possibly give the Hero a gift. In theory, changing this to 1 will make the spouse have a chance to give the Hero a gift every second.
CDA80E4B - ChanceThatGiftWillBeGiven - Self-explanatory. The value here is multiplied by 10 in-game.
The three values below seem to dictate how much gold a gift is worth, and the value increase of future gifts. Sorry, I can’t be bothered to type them all out!
8DC42225 - SecsInLoveAndHusbandPresentBeforeSexOffered - Controls how long it takes the spouse to want sex when with the Hero. Set this number to a small one and the spouse will almost instantly want to make whoopee.
CA0D09D3 - SecsInLoveAndHusbandPresentBetweenSexOffers - Controls how quickly after making love that the spouse will want to go at it again.

How to stop expressions from sheathing your weapon
Find the EXPRESSION entry of the expression you want to change. Scroll down to 1740FCAE - SheatheWeapons and change the bool value from 1 to 0.

How to make a new tattoo
0) Make sure your texture is set up properly and works when it's replacing an existing tattoo texture entry
1) Using ChocolateBox's Object Builder, select OBJECT as the template and pick an existing Tattoo Card to overwrite. Make sure you replace a tattoo of the same body part.
2) Untick CTattooDef, CTattooDef Tattoo Texture (unless you've already created a new texture entry), CInventoryItemDef, and CStockItemDef (unless you're happy with the tat price).
3) Edit every def besides CTattooDef to whatever you want.
4) In CTattooDef, make sure the tattoo texture is linked to your new texture.
5) If your texture works properly, you now have a new tattoo + tat card. You can spawn this the same way you'd spawn any other object!
CHAPTER 11 - Useful Resources and ID Lists
Some of these things may mean nothing to you now, but will be a godsend when you start to get more into modding!

List of CShopDef IDs
Guild General Shop 9467
Guild Tavern 9463
Lookout Point Title Vendor 9446
Bowerstone South General Store 9420
Bowerstone South Tailor 9360
Bowerstone South Tavern 9371
Bowerstone South Blacksmith 9411
Darkwood General Shop 11390
Darkwood Tailor 11392
Darkwood Armory 11393
Bordello Tavern 9438
Barrow Fields General Shop 9634
Barrow Fields Armory 9635
Oakvale Blacksmith 9570
Oakvale General Shop 9575
Oakvale Tavern 9565
Twinblade’s General Shop 11394
Twinblade’s Armory 11395
Twinblade’s Tailor 11396
Knothole Glade Blacksmith 9539
Knothole Glade Tavern 9522
Knothole Glade General Shop 9535
Arena Title Vendor 9304
Arena General Shop 9319
Bowerstone North 9392
Hook Coast General Shop 9502
Hook Coast Armory 9507
Hook Coast Tavern 9499
Snowspire Tailor 9619
Snowspire Tavern 9629
Snowspire Armory 9614
Snowspire General Shop 9630

Any number that isn't on here is either a Barber, Tattoo Shop, a Traveling Trader, or is unused in the final game (or it’s from a mod)!

List of Augmentation IDs
2877 - Sharpening Augmentation
2878 - Piercing Augmentation
2879 - Silver Augmentation
2880 - Fire Augmentation
2882 - Lightning Augmentation
2883 - Experience Augmentation
2884 - Health Augmentation
2885 - Mana Augmentation

Armour Type Values
Naked - 384.5
Dress - 416
Villager/Apprentice/Will User/Assassin - 500
Bandit (Hero) - 526
Leather - 666
Guard (Hero) - 588
Chainmail - 833.3
Platemail - 1000
Platinum (Archon’s Battle Armour) - 1110

Clothing/Tattoo Body Placement [INT] values
Add these values together to calculate what slots are occupied by an armour piece
None = 0
Feet = 1
Legs = 2
Hips = 4
Torso = 8
Head = 16
Arms = 32
Hands = 64
Lower Face = 128
Middle Face = 256
Upper Face = 512

Melee weapon template (for mesh editing/importing custom meshes via Blender)
http://fabletlcmod.com/forum/index.php?t=msg&th=5619

List of Fable vegetation meshes (good for making level changes if you don’t know how to use debug or can’t get it working for some reason). You’ll need to make the objects yourself, however!
http://fabletlcmod.com/forum/index.php?t=msg&th=11084&start=0&
EPILOGUE
I hope you’ve enjoyed this abridged modding guide and I hope it serves well as an introduction into Fable TLC modding. Now that you’re probably a bit more comfortable navigating Fable’s modding tools and have a bit of knowhow about the game’s logic, your next steps should be to seek out advanced modding tutorials/resources online and see how you get on. The best way to learn something like modding is to just do it, make mistakes and try again. There's also a Discord server for Fable Modding that's very useful no matter your skill level! The link for that is: https://discord.gg/2K6pcSEXxJ

Like with the rest of my projects, this has been an endeavour that I’ve worked on and released for free - and that’ll never change. However, if you would like to chuck a couple of quid my way, I do have a ko-fi you can donate to! The link for that is: https://ko-fi.com/alexanderthealright

If you can’t/don’t want to do that, you can support me in other (free) ways! Checking out my mods, subscribing to my very inactive YouTube channel, and telling your Fable-loving mates about my content all go a long way to helping me out and giving me that nice fuzzy feeling inside.

Nexus Mods link: https://next.nexusmods.com/profile/AlexanderTheAlright98
YouTube link: https://www.youtube.com/@alexanderthealrighty
itch.io link: https://alexanderthealright.itch.io/

Have fun modding Fable!