• Welcome to the Fable Community Forum!

    We're a group of fans who are passionate about the Fable series and video gaming.

    Register Log in

New levels! And a new project.

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
I'm making a strategic retreat from the randomizer. I hit a few roadblocks that I'm just not going to be able to overcome for a while.

It's not all bad though. In my work and in my reading I have developed a way to produce new, fully functional levels! Kinda.

The restrictions are as follows:
1. It can only be a copy/pasted map onto an existing map. Luckily, half of the maps are unused, so no shortage.
2. The map you're pasting to has to be the same size or larger than the map you're copying from. Same size is better, some workaround is required otherwise.
3. The heightmap of the destination map must remain the same to respect the terrain, elements being copied to the map must be adjusted to the different terrain... an in-depth mod using this would require new graphical elements to make the new map feel like a different map and not something cheaply glued together.

As a proof of concept, I copied the guild onto to the prison island, making it its own region. We can't make custom landscapes or navdata for completely new maps, but we can take navdata from one map and put it onto the landscape of an unused map, producing this:

TLh697c.jpg

Obviously it still needs a lot of tuning, but it's just to test if it works and it does. The new guild is a fully functional village with shopkeepers and villagers. They have working navdata, which means they go to work, eat and sleep at the right places at the right times and the guards patrol and hunt down the player as they're supposed to.

My end goal for this is to produce a metropolitan area, copying all of the major residential/village areas into walled parts of the same city, and move minor quests, demon doors, sword in the stone, silver key chests and more into this new city.


To help with this project I created a resource that shows the X by Y dimensions and area of the maps and whether or not they're used by the game and in what capacity.

Notes: Nonvital or interior maps can be "moved" to allow their landscapes and heightmaps to be recycled in a more useful way. The chamber of fate for example has 96x96 square meters of unused and unseen landscape. Moving the map over an imaginary area using a less desirable landscape holds no bearing on gameplay, since the player won't even be able to tell, but allows the flat and uniform space to be populated by navdata from 10 other maps of the same size: ArenaExterior, ArenaHallOfHeroes, Darkwood_8, GraveyardCircle, GuildWoods, HobbeCaveNymphFocal, KnotholeGlade, StartOakvaleMemorialGarden, Witchwood_2, Witchwood_7.

Other transfers from used to unused of the same size are much more straightforward.

For maps of a different size, like the guild and prison island, shown in the image, the heightmap must be serialized and sorted by x and y cells and the excess data must be removed before pasting into the target map. Tedious but not difficult.

Code:
LEV Name                                   MapX MapY Area  Used Notes
NorthernWastes3_Filler_08.lev              0320 0288 92160 No
SnowspireVillage_Filler_01.lev             0384 0192 73728 No
SnowspireVillage_Filler_02.lev             0192 0384 73728 No
PrisonIsland.lev                           0256 0256 65536 Yes  Nonvital
HeroGuildComplexInside.lev                 0256 0224 57344 Yes
PicnicArea_Filler_01.lev                   0160 0352 56320 No
GraveyardPathFiller01.lev                  0192 0288 55296 No
GraveyardPathFiller03.lev                  0192 0288 55296 No
NorthernWastes2.lev                        0288 0160 46080 Yes
PrisonCourtyard.lev                        0224 0192 43008 Yes
SnowspireVillage.lev                       0192 0224 43008 Yes
BowerstoneSlums_v2.lev                     0256 0160 40960 Yes
Hookcoast_Filler_02.lev                    0160 0256 40960 No
HookCoast.lev                              0160 0256 40960 Yes
NorthernWastes3_Filler_06.lev              0128 0320 40960 No
HookCoast_Filler_03.lev                    0416 0096 39936 No
GuildExterior.lev                          0160 0224 35840 Yes
NorthernWastes3_Filler_09.lev              0256 0128 32768 No
Hookcoast_Filler_01.lev                    0128 0256 32768 No
GraveyardPathFiller02.lev                  0480 0064 30720 No
Bowerstone_Filler_05.lev                   0192 0160 30720 No
KnotholeGladeMainTown.lev                  0192 0160 30720 Yes
BowerstoneSlums_Filler_03.lev              0160 0192 30720 No
BanditCampPath_Filler_13.lev               0096 0320 30720 No
NorthernWastes1_Filler_02.lev              0224 0128 28672 No
SnowspireVillage_Filler_03.lev             0224 0128 28672 No
OakValeWest_v2.lev                         0128 0224 28672 Yes
StartOakValeWest.lev                       0128 0224 28672 Yes
KnotholeGlade_Filler_03.lev                0096 0288 27648 No
Witchwood_Filler_27.lev                    0160 0160 25600 No
BowerstoneJail.lev                         0160 0160 25600 Yes
BowerstoneSlumsWarehouses.lev              0160 0160 25600 Yes
Greatwood_3.lev                            0160 0160 25600 Yes
FrescoCaves.lev                            0192 0128 24576 Yes  Interior
Bowerstone_Filler_06.lev                   0128 0192 24576 No
DesertedFarm_Filler_03.lev                 0128 0192 24576 No
LostBay_Filler_04.lev                      0128 0192 24576 No
NorthernWastes3.lev                        0128 0192 24576 Yes
Bordello_Filler_01.lev                     0224 0096 21504 No
DragonCliff_Filler_01.lev                  0224 0096 21504 No
DragonCliff_Filler_03.lev                  0224 0096 21504 No
Graveyard_1.lev                            0224 0096 21504 Yes
GibbetWoodsFiller01.lev                    0096 0224 21504 No
LostBay_Filler_01.lev                      0096 0224 21504 No
LostBay_Filler_02.lev                      0096 0224 21504 No
BanditCampPath_Filler_09.lev               0160 0128 20480 No
LookoutPoint_Filler_01.lev                 0160 0128 20480 No
LookoutPoint_Filler_06.lev                 0160 0128 20480 No
BanditCampResidential.lev                  0160 0128 20480 Yes
PrisonPath.lev                             0160 0128 20480 Yes
SnowspireVillage_Vista_01.lev              0160 0128 20480 Yes  Nonvital
Bowerstone_Filler_01.lev                   0128 0160 20480 No
BowerstoneJail_Filler_01.lev               0128 0160 20480 No
OakVale_Filler_02.lev                      0128 0160 20480 No
StartOakVale_Filler_02.lev                 0128 0160 20480 No
BowerstonePosh.lev                         0128 0160 20480 Yes
OakvaleMemorialGarden_v2.lev               0128 0160 20480 Yes
PrisonSecretPassage.lev                    0128 0160 20480 Yes  Interior
BanditCamp_Filler_05.lev                   0192 0096 18432 No
BanditCampPath_Filler_01.lev               0096 0192 18432 No
DesertedFarm_Filler_01.lev                 0096 0192 18432 No
DesertedFarm_Filler_02.lev                 0096 0192 18432 No
HeroGuild_Filler_01.lev                    0096 0192 18432 No
LookoutPoint_Filler_05.lev                 0096 0192 18432 No
OakVale_Filler_01.lev                      0096 0192 18432 No
StartOakVale_Filler_01.lev                 0096 0192 18432 No
GraveyardPath.lev                          0096 0192 18432 Yes
Greatwood_1.lev                            0096 0192 18432 Yes
Greatwood_2.lev                            0096 0192 18432 Yes
NorthernWastes1.lev                        0096 0192 18432 Yes
BanditCampPath_Filler_08.lev               0256 0064 16384 No
BanditCampPath_1.lev                       0256 0064 16384 Yes
BarrowFields_Filler_01.lev                 0128 0128 16384 No
BowerstoneSlums_Filler_01.lev              0128 0128 16384 No
BowerstoneSlums_Filler_02.lev              0128 0128 16384 No
ExecutionTree_Filler_01.lev                0128 0128 16384 No
HeroGuild_Filler_03.lev                    0128 0128 16384 No
LookoutPoint_Filler_04.lev                 0128 0128 16384 No
LookoutPoint_Filler_07.lev                 0128 0128 16384 No
PicnicArea_Filler_02.lev                   0128 0128 16384 No
BanditCampBoss.lev                         0128 0128 16384 Yes
BanditCampMain.lev                         0128 0128 16384 Yes
BarrowFields.lev                           0128 0128 16384 Yes
BowerstoneBridge.lev                       0128 0128 16384 Yes
DesertedFarm.lev                           0128 0128 16384 Yes
DragonCliff_02.lev                         0128 0128 16384 Yes
GraveyardSecretPassage_1.lev               0128 0128 16384 Yes
KrakenChamber.lev                          0128 0128 16384 Yes  Interior
LookoutPoint.lev                           0128 0128 16384 Yes
OrchardFarmEast.lev                        0128 0128 16384 Yes
OrchardFarm_Filler_02.lev                  0064 0256 16384 No
BanditCamp_Filler_02.lev                   0160 0096 15360 No
BanditCamp_Filler_04.lev                   0160 0096 15360 No
OakVale_Sea_04.lev                         0160 0096 15360 No
StartOakVale_Sea_04.lev                    0160 0096 15360 No
Bowerstone_Filler_02.lev                   0096 0160 15360 No
Bowerstone_Filler_03.lev                   0096 0160 15360 No
Bowerstone_Filler_04.lev                   0096 0160 15360 No
BowerstoneJail_Filler_02.lev               0096 0160 15360 No
Greatwood_Filler_01.lev                    0096 0160 15360 No
LostBay.lev                                0096 0160 15360 Yes
OakValeEast_v2.lev                         0096 0160 15360 Yes
BanditCamp_Filler_06.lev                   0064 0224 14336 No
OrchardFarm_Filler_01.lev                  0192 0064 12288 No
BanditCamp_Filler_01.lev                   0128 0096 12288 No
BanditCamp_Filler_03.lev                   0128 0096 12288 No
BanditCampPath_Filler_02.lev               0128 0096 12288 No
BanditCampPath_Filler_03.lev               0128 0096 12288 No
BanditCampPath_Filler_04.lev               0128 0096 12288 No
BanditCampPath_Filler_05.lev               0128 0096 12288 No
BanditCampPath_Filler_10.lev               0128 0096 12288 No
Darkwood_Filler_04.lev                     0128 0096 12288 No
Darkwood_Filler_17.lev                     0128 0096 12288 No
Darkwood_Filler_25.lev                     0128 0096 12288 No
HookCoast_Sea_01.lev                       0128 0096 12288 No
HookCoast_Sea_02.lev                       0128 0096 12288 No
NorthernWastes3_Filler_03.lev              0128 0096 12288 No
OakVale_Sea_02.lev                         0128 0096 12288 No
OakVale_Sea_03.lev                         0128 0096 12288 No
StartOakVale_Sea_02.lev                    0128 0096 12288 No
StartOakVale_Sea_03.lev                    0128 0096 12288 No
Witchwood_Filler_07.lev                    0128 0096 12288 No
Witchwood_Filler_15.lev                    0128 0096 12288 No
Greatwood_4.lev                            0128 0096 12288 Yes
GreatwoodTeleport.lev                      0128 0096 12288 Yes
PicnicArea.lev                             0128 0096 12288 Yes
PrisonSecretPassageExterior.lev            0128 0096 12288 Yes
BarrowFields_Filler_05.lev                 0096 0128 12288 No
Darkwood_Filler_26.lev                     0096 0128 12288 No
Darkwood_Filler_32.lev                     0096 0128 12288 No
Greatwood_Filler_02.lev                    0096 0128 12288 No
HeroGuild_Filler_05.lev                    0096 0128 12288 No
LookoutPoint_Filler_03.lev                 0096 0128 12288 No
OakVale_Sea_01.lev                         0096 0128 12288 No
OakVale_Sea_05.lev                         0096 0128 12288 No
OakVale_Sea_06.lev                         0096 0128 12288 No
StartOakVale_Sea_01.lev                    0096 0128 12288 No
DragonCliff_Vista_01.lev                   0096 0128 12288 Yes  Nonvital
DragonCliff_Vista_02.lev                   0096 0128 12288 Yes  Nonvital
GibbetWoods.lev                            0096 0128 12288 Yes
HauntedHouse.lev                           0096 0128 12288 Yes
OrchardFarm.lev                            0096 0128 12288 Yes
StartOakValeEast.lev                       0096 0128 12288 Yes
Greatwood_Filler_09.lev                    0064 0192 12288 No
OakVale_Filler_04.lev                      0064 0192 12288 No
StartOakVale_Filler_05.lev                 0064 0192 12288 No
Witchwood_Filler_12.lev                    0064 0192 12288 No
Bordello_Filler_03.lev                     0160 0064 10240 No
Greatwood_Filler_04.lev                    0064 0160 10240 No
KnotholeGlade_Filler_01.lev                0064 0160 10240 No
NorthernWastes1_Filler_03.lev              0064 0160 10240 No
NorthernWastes1_Filler_04.lev              0064 0160 10240 No
BanditCampPath_Filler_06.lev               0096 0096 09216 No
BanditCampPath_Filler_07.lev               0096 0096 09216 No
Darkwood_Filler_03.lev                     0096 0096 09216 No
Darkwood_Filler_06.lev                     0096 0096 09216 No
Darkwood_Filler_07.lev                     0096 0096 09216 No
Darkwood_Filler_15.lev                     0096 0096 09216 No
Darkwood_Filler_18.lev                     0096 0096 09216 No
Darkwood_Filler_20.lev                     0096 0096 09216 No
Darkwood_Filler_23.lev                     0096 0096 09216 No
Darkwood_Filler_24.lev                     0096 0096 09216 No
Darkwood_Filler_27.lev                     0096 0096 09216 No
Darkwood_Filler_31.lev                     0096 0096 09216 No
DragonCliff_Filler_02.lev                  0096 0096 09216 No
DragonCliff_Filler_04.lev                  0096 0096 09216 No
GibbetWoodsFiller02.lev                    0096 0096 09216 No
HeroGuild_Filler_06.lev                    0096 0096 09216 No
LostBay_Filler_06.lev                      0096 0096 09216 No
Witchwood_Filler_30.lev                    0096 0096 09216 No
ArenaExterior.lev                          0096 0096 09216 Yes
ArenaHallOfHeroes.lev                      0096 0096 09216 Yes  Interior
Darkwood_8.lev                             0096 0096 09216 Yes
FrescoDome.lev                             0096 0096 09216 Yes  Interior
GraveyardCircle.lev                        0096 0096 09216 Yes
GuildWoods.lev                             0096 0096 09216 Yes
HobbeCaveNymphFocal.lev                    0096 0096 09216 Yes  Interior
KnotholeGlade.lev                          0096 0096 09216 Yes
StartOakvaleMemorialGarden.lev             0096 0096 09216 Yes  Nonvital
Witchwood_2.lev                            0096 0096 09216 Yes
Witchwood_7.lev                            0096 0096 09216 Yes
GraveyardFiller01.lev                      0256 0032 08192 No
Witchwood_Filler_14.lev                    0256 0032 08192 No
BanditCampPath_Filler_11.lev               0128 0064 08192 No
BanditCampPath_Filler_12.lev               0128 0064 08192 No
BarrowFields_Filler_07.lev                 0128 0064 08192 No
Darkwood_Filler_09.lev                     0128 0064 08192 No
Darkwood_Filler_16.lev                     0128 0064 08192 No
Greatwood_Filler_05.lev                    0128 0064 08192 No
Greatwood_Filler_07.lev                    0128 0064 08192 No
HauntedHouse_Filler_01.lev                 0128 0064 08192 No
PrisonSecretPassageExterior_Filler_01.lev  0128 0064 08192 No
Witchwood_Filler_05.lev                    0128 0064 08192 No
Witchwood_Filler_28.lev                    0128 0064 08192 No
DemonDoor_BanditCampPath_Filler_01.lev     0128 0064 08192 Yes  Nonvital
DemonDoor_BanditCampPath_Filler_03.lev     0128 0064 08192 Yes  Nonvital
DemonDoor_Barrowfields_Filler_01.lev       0128 0064 08192 Yes  Nonvital
DemonDoor_Barrowfields_Filler_03.lev       0128 0064 08192 Yes  Nonvital
DemonDoor_Bordello_Filler_02.lev           0128 0064 08192 Yes  Nonvital
DemonDoor_Bordello_Filler_03.lev           0128 0064 08192 Yes  Nonvital
DemonDoor_DarkwoodSporeSwamp_Filler_01.lev 0128 0064 08192 Yes  Nonvital
DemonDoor_DarkwoodSporeSwamp_Filler_03.lev 0128 0064 08192 Yes  Nonvital
DemonDoor_GreatwoodBanditTol_Filler_01.lev 0128 0064 08192 Yes  Nonvital
DemonDoor_GreatwoodBanditTol_Filler_03.lev 0128 0064 08192 Yes  Nonvital
DemonDoor_GreatwoodCaves_Filler_01.lev     0128 0064 08192 Yes  Nonvital
DemonDoor_GreatwoodCaves_Filler_03.lev     0128 0064 08192 Yes  Nonvital
DemonDoor_Guild_Filler_01.lev              0128 0064 08192 Yes  Nonvital
DemonDoor_Guild_Filler_03.lev              0128 0064 08192 Yes  Nonvital
DemonDoor_HauntedHouse_Filler_01.lev       0128 0064 08192 Yes  Nonvital
DemonDoor_HauntedHouse_Filler_03.lev       0128 0064 08192 Yes  Nonvital
DemonDoor_KnotholeGlade_Filler_01.lev      0128 0064 08192 Yes  Nonvital
DemonDoor_KnotholeGlade_Filler_03.lev      0128 0064 08192 Yes  Nonvital
DemonDoor_Necropolis_Filler_02.lev         0128 0064 08192 Yes  Nonvital
DemonDoor_Necropolis_Filler_04.lev         0128 0064 08192 Yes  Nonvital
Arena_Filler_02.lev                        0064 0128 08192 No
BarrowFields_Filler_03.lev                 0064 0128 08192 No
Bordello_Filler_02.lev                     0064 0128 08192 No
Darkwood_Filler_01.lev                     0064 0128 08192 No
ExecutionTree_Filler_02.lev                0064 0128 08192 No
Greatwood_Filler_08.lev                    0064 0128 08192 No
LookoutPoint_Filler_02.lev                 0064 0128 08192 No
LostBay_Filler_07.lev                      0064 0128 08192 No
NorthernWastes1_Filler_01.lev              0064 0128 08192 No
Witchwood_Filler_21.lev                    0064 0128 08192 No
DemonDoor_BanditCampPath_Filler_02.lev     0064 0128 08192 Yes  Nonvital
DemonDoor_BanditCampPath_Filler_04.lev     0064 0128 08192 Yes  Nonvital
DemonDoor_Barrowfields_Filler_02.lev       0064 0128 08192 Yes  Nonvital
DemonDoor_Barrowfields_Filler_04.lev       0064 0128 08192 Yes  Nonvital
DemonDoor_Bordello_Filler_01.lev           0064 0128 08192 Yes  Nonvital
DemonDoor_Bordello_Filler_04.lev           0064 0128 08192 Yes  Nonvital
DemonDoor_DarkwoodSporeSwamp_Filler_02.lev 0064 0128 08192 Yes  Nonvital
DemonDoor_DarkwoodSporeSwamp_Filler_04.lev 0064 0128 08192 Yes  Nonvital
DemonDoor_GreatwoodBanditTol_Filler_02.lev 0064 0128 08192 Yes  Nonvital
DemonDoor_GreatwoodBanditTol_Filler_04.lev 0064 0128 08192 Yes  Nonvital
DemonDoor_GreatwoodCaves_Filler_02.lev     0064 0128 08192 Yes  Nonvital
DemonDoor_GreatwoodCaves_Filler_04.lev     0064 0128 08192 Yes  Nonvital
DemonDoor_Guild_Filler_02.lev              0064 0128 08192 Yes  Nonvital
DemonDoor_Guild_Filler_04.lev              0064 0128 08192 Yes  Nonvital
DemonDoor_HauntedHouse_Filler_02.lev       0064 0128 08192 Yes  Nonvital
DemonDoor_HauntedHouse_Filler_04.lev       0064 0128 08192 Yes  Nonvital
DemonDoor_KnotholeGlade_Filler_02.lev      0064 0128 08192 Yes  Nonvital
DemonDoor_KnotholeGlade_Filler_04.lev      0064 0128 08192 Yes  Nonvital
DemonDoor_Necropolis_Filler_01.lev         0064 0128 08192 Yes  Nonvital
DemonDoor_Necropolis_Filler_03.lev         0064 0128 08192 Yes  Nonvital
ExecutionTree.lev                          0064 0128 08192 Yes
NorthernWastes1_Filler_06.lev              0224 0032 07168 No
GraveyardFiller02.lev                      0192 0032 06144 No
BarrowFields_Filler_04.lev                 0096 0064 06144 No
Darkwood_Filler_19.lev                     0096 0064 06144 No
Darkwood_Filler_21.lev                     0096 0064 06144 No
GraveyardFiller03.lev                      0096 0064 06144 No
GraveyardPathFiller04.lev                  0096 0064 06144 No
HeroGuild_Filler_04.lev                    0096 0064 06144 No
OakvaleFiller_07.lev                       0096 0064 06144 No
StartOakVale_Filler_04.lev                 0096 0064 06144 No
Witchwood_Filler_09.lev                    0096 0064 06144 No
Witchwood_Filler_29.lev                    0096 0064 06144 No
BanditCampPathEntrance.lev                 0096 0064 06144 Yes
Bordello.lev                               0096 0064 06144 Yes
Darkwood.lev                               0096 0064 06144 Yes
Darkwood_10.lev                            0096 0064 06144 Yes
Darkwood_11.lev                            0096 0064 06144 Yes
GrannysHouse.lev                           0096 0064 06144 Yes
HobbeCaveEntranceTunnel.lev                0096 0064 06144 Yes  Interior
Witchwood_4.lev                            0096 0064 06144 Yes
Darkwood_Filler_10.lev                     0064 0096 06144 No
Darkwood_Filler_11.lev                     0064 0096 06144 No
Darkwood_Filler_12.lev                     0064 0096 06144 No
Darkwood_Filler_29.lev                     0064 0096 06144 No
Darkwood_Filler_30.lev                     0064 0096 06144 No
DesertedFarm_Filler_04.lev                 0064 0096 06144 No
PrisonPathFiller01.lev                     0064 0096 06144 No
Witchwood_Filler_11.lev                    0064 0096 06144 No
Fisherman.lev                              0064 0096 06144 Yes
Witchwood_5.lev                            0064 0096 06144 Yes
WitchwoodCavern.lev                        0064 0096 06144 Yes  Interior
GreatwoodLakeFiller_01.lev                 0160 0032 05120 No
Darkwood_Filler_14.lev                     0128 0032 04096 No
Darkwood_Filler_22.lev                     0128 0032 04096 No
PicnicArea_Filler_03.lev                   0128 0032 04096 No
DesertedFarm_Leadout_01.lev                0128 0032 04096 Yes  Nonvital
GibbetWoods_Leadout_01.lev                 0128 0032 04096 Yes  Nonvital
BanditTollFiller_01.lev                    0064 0064 04096 No
Bordello_Filler_04.lev                     0064 0064 04096 No
Darkwood_Filler_05.lev                     0064 0064 04096 No
Darkwood_Filler_13.lev                     0064 0064 04096 No
Filler_GrannysHouse_01.lev                 0064 0064 04096 No
Filler_GrannysHouse_02.lev                 0064 0064 04096 No
Greatwood_Filler_06.lev                    0064 0064 04096 No
KnotholeGlade_Filler_02.lev                0064 0064 04096 No
PrisonPathFiller02.lev                     0064 0064 04096 No
Witchwood_Filler_22.lev                    0064 0064 04096 No
Arena.lev                                  0064 0064 04096 Yes
Darkwood_3.lev                             0064 0064 04096 Yes
Darkwood_4.lev                             0064 0064 04096 Yes
Darkwood_5.lev                             0064 0064 04096 Yes
Darkwood_6.lev                             0064 0064 04096 Yes
Darkwood_7.lev                             0064 0064 04096 Yes
Darkwood_9.lev                             0064 0064 04096 Yes
DarkwoodChapel.lev                         0064 0064 04096 Yes
DemonDoor_BanditCampPath.lev               0064 0064 04096 Yes
DemonDoor_Barrowfields.lev                 0064 0064 04096 Yes
DemonDoor_Bordello.lev                     0064 0064 04096 Yes
DemonDoor_DarkwoodSporeSwamp.lev           0064 0064 04096 Yes
DemonDoor_GreatwoodBanditToll.lev          0064 0064 04096 Yes
DemonDoor_GreatwoodCaves.lev               0064 0064 04096 Yes
DemonDoor_GreatwoodGrannysHouse.lev        0064 0064 04096 Yes  Interior
DemonDoor_Guild.lev                        0064 0064 04096 Yes
DemonDoor_HauntedHouse.lev                 0064 0064 04096 Yes
DemonDoor_KnotholeGlade.lev                0064 0064 04096 Yes
DemonDoor_LookoutPoint.lev                 0064 0064 04096 Yes  Interior
DemonDoor_Necropolis.lev                   0064 0064 04096 Yes
GraveyardEntrance.lev                      0064 0064 04096 Yes
GreatwoodBanditToll.lev                    0064 0064 04096 Yes
GreatwoodHobbeCave.lev                     0064 0064 04096 Yes
HeroDualAreaCave.lev                       0064 0064 04096 Yes  Interior
HobbeCaveNymphChamber.lev                  0064 0064 04096 Yes  Interior
PrisonCells_1.lev                          0064 0064 04096 Yes  Interior
PrisonCells_2.lev                          0064 0064 04096 Yes  Interior
PrisonCells_3.lev                          0064 0064 04096 Yes  Interior
TeleporterGreatwood.lev                    0064 0064 04096 Yes
Witchwood.lev                              0064 0064 04096 Yes
Witchwood_3.lev                            0064 0064 04096 Yes
Witchwood_6.lev                            0064 0064 04096 Yes
Witchwood_9.lev                            0064 0064 04096 Yes
BarrowFields_Filler_02.lev                 0032 0128 04096 No
HauntedHouse_Filler_02.lev                 0032 0128 04096 No
OrchardFarmFiller_01.lev                   0032 0128 04096 Yes  Nonvital
Arena_Filler_01.lev                        0096 0032 03072 No
OakVale_Filler_03.lev                      0096 0032 03072 No
StartOakVale_Filler_03.lev                 0096 0032 03072 No
Witchwood_Filler_06.lev                    0096 0032 03072 No
Witchwood_Filler_16.lev                    0096 0032 03072 No
KnotholeGlade_Leadout_01.lev               0096 0032 03072 Yes  Nonvital
MayorsHouseHallway.lev                     0096 0032 03072 Yes  Interior
NorthernWastes3_Filler_01.lev              0032 0096 03072 No
Witchwood_Filler_01.lev                    0032 0096 03072 No
Witchwood_Filler_25.lev                    0032 0096 03072 No
ArenaCells.lev                             0032 0096 03072 Yes  Interior
PrisonPath_Leadout_01.lev                  0032 0096 03072 Yes  Nonvital
NorthernWastes1_Filler_05.lev              0064 0032 02048 No
NorthernWastes3_Filler_04.lev              0064 0032 02048 No
NorthernWastes3_Filler_05.lev              0064 0032 02048 No
Witchwood_Filler_03.lev                    0064 0032 02048 No
Witchwood_Filler_10.lev                    0064 0032 02048 No
Witchwood_Filler_13.lev                    0064 0032 02048 No
Witchwood_Filler_31.lev                    0064 0032 02048 No
Arena_Leadout_01.lev                       0064 0032 02048 Yes  Nonvital
Darkwood3_Leadout_01.lev                   0064 0032 02048 Yes  Nonvital
KnotholeGlade_Leadout_02.lev               0064 0032 02048 Yes  Nonvital
NorthernWastes1_Leadout_01.lev             0064 0032 02048 Yes  Nonvital
Witchwood_Leadout_08.lev                   0064 0032 02048 Yes  Nonvital
HeroGuild_Filler_02.lev                    0032 0064 02048 No
NorthernWastes3_Filler_02.lev              0032 0064 02048 No
NorthernWastes3_Filler_07.lev              0032 0064 02048 No
Witchwood_Filler_04.lev                    0032 0064 02048 No
Witchwood_Filler_26.lev                    0032 0064 02048 No
Filler01.lev                               0032 0064 02048 Yes  Nonvital
HauntedHouseCellar.lev                     0032 0064 02048 Yes  Interior
Witchwood_Leadout_02.lev                   0032 0064 02048 Yes  Nonvital
creature_hub.lev                           0032 0032 01024 No
Darkwood_Filler_02.lev                     0032 0032 01024 No
Darkwood_Filler_08.lev                     0032 0032 01024 No
Darkwood_Filler_28.lev                     0032 0032 01024 No
Greatwood_Filler_03.lev                    0032 0032 01024 No
LostBay_Filler_03.lev                      0032 0032 01024 No
LostBay_Filler_05.lev                      0032 0032 01024 No
Witchwood_Filler_18.lev                    0032 0032 01024 No
Witchwood_Filler_24.lev                    0032 0032 01024 No
BowerstoneTavernCellar.lev                 0032 0032 01024 Yes  Interior
Darkwood_Leadout_01.lev                    0032 0032 01024 Yes  Nonvital
Darkwood_Leadout_02.lev                    0032 0032 01024 Yes  Nonvital
Darkwood10_Leadout_01.lev                  0032 0032 01024 Yes  Nonvital
Darkwood4_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
Darkwood5_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
Darkwood6_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
Darkwood7_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
Darkwood7_Leadout_02.lev                   0032 0032 01024 Yes  Nonvital
Darkwood7_Leadout_03.lev                   0032 0032 01024 Yes  Nonvital
Darkwood8_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
Darkwood9_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
DarkwoodChapel_Leadout_01.lev              0032 0032 01024 Yes  Nonvital
HobbeCaveLarder.lev                        0032 0032 01024 Yes  Interior
HobbeCaveMainChamber.lev                   0032 0032 01024 Yes  Interior
HobbeCaveSideRoom.lev                      0032 0032 01024 Yes  Interior
LostBay_Leadout_01.lev                     0032 0032 01024 Yes  Nonvital
MayorsHouseBedroom.lev                     0032 0032 01024 Yes  Interior
NorthernWastes3_Leadout_01.lev             0032 0032 01024 Yes  Nonvital
NorthernWastes3_Leadout_02.lev             0032 0032 01024 Yes  Nonvital
NorthernWastes3_Leadout_03.lev             0032 0032 01024 Yes  Nonvital
PrisonBarracks.lev                         0032 0032 01024 Yes  Interior
PrisonOffice.lev                           0032 0032 01024 Yes  Interior
PrisonTortureChamber.lev                   0032 0032 01024 Yes  Interior
Witchwood_Leadout_01.lev                   0032 0032 01024 Yes  Nonvital
Witchwood_Leadout_03.lev                   0032 0032 01024 Yes  Nonvital
Witchwood_Leadout_04.lev                   0032 0032 01024 Yes  Nonvital
Witchwood_Leadout_05.lev                   0032 0032 01024 Yes  Nonvital
Witchwood_Leadout_06.lev                   0032 0032 01024 Yes  Nonvital


This is the project I'll be working on until I can overcome the obstacles with the randomizer.
 

Dark Drakan

Well-Known Member
Guildmaster
Town Guard
Premium
Joined
Feb 6, 2006
Messages
18,655
Reaction score
2,305
Points
365
Age
38
Some nice work there and good to see you learning as you go, been very interesting seeing the progress.
 

lee

-Hero of Knowledge-
Joined
Oct 24, 2017
Messages
145
Reaction score
126
Points
120
Age
42
Impressive stuff VinDiesel, glad that people are still being creative with Fable after so long.
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Thanks for your support lee.

A quick update on this is that I'm studying the navdata format to figure out how to implement custom navdata. It's not 100% known and understood by the modding community but understood well enough that Chocolate Box can edit it (but not save it, unfortunately) and the format spec left on the modding wiki has been extremely helpful in this endeavor. The plan is the same, use unused maps to make new maps. But copying and pasting is very limited and not practical, forcing my hand to get more involved.

In other news I'm working on combat redesign for a rebalance of Fable that would integrate existing mechanics more fully. So axes and pickhammers might have very similar base damages but will perform better or worse depending on if the opponent is armored. This gives incentive to switch weapons around instead of just packing the strongest weapons. People might argue that it's a pain going back and forth through the inventory, but people will do it in TES games. Still, I had an idea for that too. :)
 

lee

-Hero of Knowledge-
Joined
Oct 24, 2017
Messages
145
Reaction score
126
Points
120
Age
42
The modding on Fable has always been extremely challenging and only a few very talented individuals have ever got something decent out of it. I respect anyone who can delve into it to get something working. I love your ideas of rebalancing the weapons and creating new areas. I have seen a fantastic mod called Dragon Temple that uses an unused area and cut weapons to produce some brilliant new content. Good luck VinDiesel :thumbsup: .
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Ran into some issues with my original combat revamp idea.

Before we get started, here is a quick data dump of the armour entries in tab-delimited format. It can be copy/pasted into a spreadsheet for readability.

Code:
ID    Sharpening Multiplier    Silver Multiplier    Fire Multiplier    Lightning Multiplier    Piercing Multiplier    Health Multiplier    Will Multiplier    Experience Multiplier    Hobbe Killer Multiplier    Bandit Slayer Multiplier    Unused Multiplier    Base Multiplier    Melee Multiplier    Lightning Multiplier    Fire Multiplier    Projectile Multiplier    Explosion Multiplier    Drain Life Multiplier    Heal Life Multiplier    Force Push Multiplier    Unholy Multiplier    Divine Multiplier    Armor Threshold    Knockdown    Invulnerable    Decapitate?    Damage Material    Block Material
ARMOUR_BALVERINE    1    1.5    1    1    1    1    1    1    1    1    1    0.33    0.33    0.75    1    1    0.5    0.5    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_BANDIT    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0.5    0    0    0    2776    2777
ARMOUR_BEETLE    1    1    1    1    1.1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2778    2767
ARMOUR_BRIAR_ROSE_IMPOSTER    1    1    1    1    1    1    1    1    1    1    1    1    1    0    1    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_CHILD    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2793    2777
ARMOUR_DEMON_DOOR    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2761    2761
ARMOUR_DRAGON_BELLY    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2782    2761
ARMOUR_EARTH_TROLL_BODY    1    1    1    1.1    1.1    1    1    1    1    1    1    0.75    0    0.5    0.5    0.75    1    0.5    1    1    1    1    0    0    0    0    2763    2763
ARMOUR_EARTH_TROLL_HEAD    1    1    1    1.1    1.1    1    1    1    1    1    1    0.75    0    0.5    0.5    1.5    1    0.5    1    1    1    1    0    0    0    0    2763    2763
ARMOUR_GHOST_SWORD    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2785    2785
ARMOUR_HERO_BANDIT    1    1    1    1    1    1    1    1    1    1    1    0.95    0.95    1    1    0.95    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_CHAINMAIL    1    1    1    1    1    1    1    1    1    1    1    0.6    0.45    1.1    0.9    0.5    0.8    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_DRESS    1    1    1    1    1    1    1    1    1    1    1    1.2    1.2    1    1    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_GENERAL_CLOTHES    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_GUARD    1    1    1    1    1    1    1    1    1    1    1    0.85    0.85    1    1    0.85    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_LEATHER_ARMOUR    1    1    1    1    1    1    1    1    1    1    1    0.75    0.65    0.9    0.95    0.75    0.9    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_NAKED    1    1    1    1    1    1    1    1    1    1    1    1.3    1.3    1    1    1.1    1.2    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_PLATE_ARMOUR    1    1    1    1    1    1    1    1    1    1    1    0.5    0.3    1.1    0.8    0.6    0.75    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_PLATINUM_ARMOUR    1    1    1    1    1    1    1    1    1    1    1    0.45    0.25    1.1    0.75    0.55    0.7    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_STEALTH    1    1    1    1    1    1    1    1    1    1    1    1    0.8    1    1    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_HERO_WILL_ROBE    1    1    1    1    1    1    1    1    1    1    1    1    1    0.6    0.6    1    0.6    0.6    1    0.6    1    1    0    0    0    0    2776    2777
ARMOUR_HOBBE    1    1    1.25    1.25    1    1    1    1    1.75    1    1    1    1    1.2    1.2    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_ICE_HORDE    1    1.25    1.25    1    1    1    1    1    1    1    1    1    0    0.75    1.6    1.1    0.5    0.1    1    1    1    1    0    0    0    0    2793    2777
ARMOUR_INVULNERABLE    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    0    0    1    1    1    1    1    0    0    1    0    2776    2777
ARMOUR_JACK_DRAGON    1    1    1    1    1.1    1    1    1    1    1    1    1    0.2    1.1    0.25    1    0    0.1    1    1    1    1    0    0    0    0    2782    2782
ARMOUR_JACK_OF_BLADES_ARMOUR    1    1    1    1    1    1    1    1    1    1    1    1    0.3    0.33    0.8    1    0.75    0    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_KRAKEN    1    1    1    1    1    1    1    1    1    1    1    1    1    0.3    1.1    1    1    1    1    1    1    1    0    0    0    0    2787    2787
ARMOUR_MAZE    1    1    1    1    1    1    1    1    1    1    1    0.5    0.1    0    0.5    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_MINION_DREADWINGS    1    1    1    1    1.25    1    1    1    1    1    1    1    1    1.1    1.1    1    1    0.5    1    1    1    1    0    0    0    0    2781    2785
ARMOUR_MINION_SUMMONER    1    1    1.2    1    1.25    1    1    1    1    1    1    1    1    0.25    1.1    1    1    0.5    1    1    1    1    0    0    0    0    2780    2785
ARMOUR_MINION_WARDOG    1    1    1    1    1.25    1    1    1    1    1    1    1    1    1.1    1.1    1    1    0.5    1    1    1    1    0    0    0    0    2780    2785
ARMOUR_NONE    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0.5    0    0    0    2776    2777
ARMOUR_NOSTRO    1    1.25    1    1    1    1    1    1    1    1    1    1    0    0.75    1.1    1.1    0.5    0.1    1    1    1    1    0    0    0    0    2798    2798
ARMOUR_NW_BALVERINE    1    1.5    1.25    1    1    1    1    1    1    1    1    0.33    0.33    0.75    1.5    0.33    0.5    0.5    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_NYMPH    1    1    1.1    1.1    1    1    1    1    1    1    1    1.1    1    1    1    1.1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_NYMPH_SUCCUBUS    1    1    1.1    1.1    1    1    1    1    1    1    1    1.1    1    1    1    1.1    1    1    1    1    1    1    0    0    0    0    2783    2783
ARMOUR_PLATE    1    1    1    2    1.1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_ROCK_TROLL_BODY    1    1    1    1    1.25    1    1    1    1    1    1    0.33    0    0.75    0.75    0.5    1    0.25    1    1    1    1    0    0    0    0    2762    2762
ARMOUR_ROCK_TROLL_HEAD    1    1    1    1    1.25    1    1    1    1    1    1    0.33    0    0.75    0.75    1.5    1    0.25    1    1    1    1    0    0    0    0    2762    2762
ARMOUR_SCARLET_ROBE    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0.25    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_SCORPION    1    1    1    1    1.1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2778    2767
ARMOUR_SCORPION_KING    1    1    1    1    1.1    1    1    1    1    1    1    0.4    0    0.1    0.3    0.4    0    0.1    1    1    1    1    0    0    0    0    2778    2767
ARMOUR_SCORPION_KING_EYE    1    1    1    1    1    1    1    1    1    1    1    1    0.1    0.1    0.3    0.7    0.2    0.1    1    1    1    1    0    0    0    0    2778    2767
ARMOUR_SCREAMER    5    5    5    5    5    1    1    1    1    1    1    0.75    0.1    1    1    0.75    3    0    1    3    1    1    0    0    0    0    2788    2761
ARMOUR_SNOW_TROLL_BODY    1    1    1.25    1    1.25    1    1    1    1    1    1    0.33    0    0.75    1.3    0.5    1    0.5    1    1    1    1    0    0    0    0    2764    2764
ARMOUR_SNOW_TROLL_HEAD    1    1    1.25    1    1.25    1    1    1    1    1    1    0.33    0    0.75    1.3    1.5    1    0.5    1    1    1    1    0    0    0    0    2764    2764
ARMOUR_SPARROW    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2792    2792
ARMOUR_TEMPLATE    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_THUNDER    1    1    1    1    1.1    1    1    1    1    1    1    1    0    0.1    0.5    0.5    0.5    0.7    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_TWINBLADE    1    1    1    1    1    1    1    1    1    1    1    0.1    0.1    0    0    0    0    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_TWINBLADE_STUCK    1    1    1    1    1    1    1    1    1    1    1    2    1.5    0.5    0.5    1    0.5    1    1    1    1    1    0    0    0    0    2776    2777
ARMOUR_UNDEAD    1    1.25    1    1    1    1    1    1    1    1    1    1    0    0.75    1.1    1.1    0.5    0.1    1    1    1    1    0    0    0    0    2793    2777
ARMOUR_WASP    1    1    1    2    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2778    2767
ARMOUR_WASP_QUEEN    1    1    1    1    1    1    1    1    1    1    1    1.5    1    1    1    1    1    1    1    1    1    1    0    0    0    0    2778    2767
ARMOUR_WHITE_BALVERINE    1    6    1    1    1    1    1    1    1    1    1    0.2    0    0.15    0.75    0.33    0.33    0.33    1    1    1    1    0    0    0    0    2776    2777
NULLDEF_ARMOUR    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    0    0    0    0    0    0

The original idea was to create dummy augment types and assign them to weapon types, allowing me to program weaknesses/resistances according to "augment" types that boost specific weapons. I was aiming at something like the perk system in Skyrim where axes can be made to do extra damage to unarmored enemies while maces can be made to ignore armor ratings.

The problem is a limitation on the number of allowed augment types. Augments are programmed bitwise. This is how it breaks down:

0 - Base
1 - Sharpening
2 - Silver
4 - Fire
8 - Lightning
16 - Piercing
32 - Health
64 - Will
128 - Experience
256 - Hobbe Killer
512 - Bandit Slayer
1024 - Unimplemented

This is done for multiple reasons, but basically it gives the game an easy way to understand how to handle a weapon with multiple augment types. For example, if I have fire and lightning, you just add up those bits and you get 12.

So the idea was to just make additional augment types following the same bitwise patter: 1024, 2048, 4096 and so on. While it works for the first one, anything after that crashes. So my next idea was to hijack augment combinations: 3, 5, 12, etc. Instant crash. So I'm limited to 11 augment types, 12 if you count none (which incidentally can be made to have an effect).

I'm looking at it from a few different angles and coming up with different ideas. An interesting thing I noticed was that Hobbe Killer, Bandit Slayer are unimplemented. Health, Will and Experience augments don't have a direct impact on combat and with the exception of screamers, neither does Sharpening. The one instance where Bandit Slayer is used (even if it were implemented) has a multiplier of 1, giving it no effect*. Piercing augments will be outmoded by my idea. Silver, Fire, and Lightning augments, while used, are not very widely used and when they are, usually have minimal effect that would be outweighed by the same weapon using 3 sharpening augments (weapon damage x 1.331 against any enemy instead of weapon damage x 1.25 against undead, for example)

Additionally, multiple augments of the same type can exist. While they'll behave the same in armour entries, their individual augment properties can be altered. This affects sharpening, health, mana and experience augments.

Let me break down what all that means in terms of possibilities.

Option A: Existing augments can be enhanced and thoroughly integrated across all armour classes, making them matter for every encounter. Multiple classes of the same augment can exist, conferring different bonuses: Piercing I can be base piercing, Piercing II can add a damage bonus, Piercing H can also regenerate health, Piercing IV HME can do 40% more damage universally, grant extra experience and regenerate health and will while still doing extra damage to armour types weak to piercing augments. Of course better augments will be made extremely expensive and extremely rare or hard to find/get.

Option B: Only some existing augments are enhanced and integrated, while the rest of the slots are used for a perk system that gives advantage/disadvantage based on weapon type. Something like:

1 - Silver
2 - Fire
4 - Lightning
8 - Axes & Katanas
16 - Swords & Cutlasses
32 - Maces & Pickhammers
64 - Greataxes & Greatswords
128 - Greatmaces & Greathammers
256 - Longbows
512 - *Special, changes/adds a few melee combat animations, maybe used for a legendary?
1024 - Crossbows

Upgrading from iron to steel to obsidian to master to legendary will offer a similar Axe I, Axe II, Axe III, Axe IV, Axe V type bonus as in option A.

While investigating the armour entries, I found also that you can globally change how much damage enemies take from melee damage, ranged damage, damage from specific spells and incidental damage like explosions which is better integrated but not extensively or in a balanced manner, so I also want to go through that.

Edit: And on top of that, it appears to also be possible to add augment combinations in armour ratings. So if fire (4) has a 1.2 multiplier and lightning (8) has a 1.5 multiplier, the standard is that having both would do 1.8x more damage. But you can have an entry in there with a 12 property (being both) that could override that with a different number, say 2. I haven't tested this in game, so it might crash, but it could work. Or it could stack, doing 3.6x damage. In that case it would just need some math tweaking to get it right. I definitely feel like it's worth the time investment to get this figured out right.

I feel that doing this, in combination with changing weapon damages, health ratings, combat styles, attack patterns, enemy counts, enemy weapons, potion/food bonuses, spell mana cost, skill upgrade cost, weapon prices and availability, is going to completely reinvent the way Fable feels to play.
 
Last edited:

lee

-Hero of Knowledge-
Joined
Oct 24, 2017
Messages
145
Reaction score
126
Points
120
Age
42
I love your ideas and although some people have attempted something similar I think that what you plan to accomplish will really change the way Fable plays and sounds brilliant. Good luck VinDiesel. Keep us all posted on your project.
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
I left out the cool part!

To prevent the need from going into the inventory every thirty seconds to reselect the optimal weapon, I'm changing melee and ranged weapon inventories to extra damage/armor piercing weapons. So you'll be able to have a katana as primary and a mace as secondary. One or two handed, doesn't matter. It might look weird when they're both sheathed, I'll be looking at that and seeing what it looks like and if any adjustments are required. Longbows will do extra damage, crossbows will pierce armor and so they'll be in separate inventories, which means you can also have two ranged weapons out if you're playing as a ranger type.

The other thing also is that I'll be changing strength requirements for heavier melee weapons. Instead of the requirement limiting use of two handed weapons, it'll be for stronger classes of weapons. Looking into the skills stuff, I can't implement a requirement per tier, like 0 for iron, 1 for steel etc., I can only have one. I was thinking about blocking obsidian until strength is at level 4, but I may push it to master at level 6.

Sorry I left that out. :D

Edit: And I forgot another thing!

No more holding down the mouse button with ranged weapons for 20 minutes and taking out the ice troll in one hit. I've found how to change the damage buildup and I'm debating between changing it to 0 so that it'll be like melee weapons, can't really charge up your melee attack. OR. It starts doing less and less damage the longer you hold it down, rewarding perfectly timed, perfectly aimed shots. Can't do it too early or arrows bounce off targets. Can't hold it down too long or arrows do no damage.

It helps if I get all the ideas thrown out there so I can reference them later. I forget stuff. :)
 
Last edited:

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Another data dump and new information gathered from that data dump. Linking to it instead this time as it's 167kb and that's just a mess of text to go through. Google Sheets!

So what we're looking at is every entry with a CWeaponDef. A CWeaponDef defines how a creature or object (weapon) does damage and what type of weapon it is. There are other things that go into weapons and damage but this is a huge part of it. While most weapons use unique CWeaponDefs, most creatures use the same ones, so the CWeaponDef data lines are duplicated per entry. This way you can just look for the weapon or creature you want to know about and see the data there.

What I've gathered here is the following:

Weapon Type
0 - Unarmed and melee (can decapitate and stab)
1 - Melee (capable of decapitation but cannot stab)
2 - Melee (does not normally decapitate and cannot stab)
3 - Longbows
4 - Crossbows and pumpaction crossbows
5 - Crossbow bolt
6 - Projectile dummies
7 - Throwing Objects

Weapon Class
0 - Unarmed
1 - Light Melee Weapons and special creature attacks (dragon, balverines, kraken)
2 - Heavy Melee Weapons
3 - Ranged Weapons

Animation Group
(Pretty self explanatory so here's a list)
Sword
Heavy Weapon
Staff
Bow
Crossbow
Throwing Things

Sheathe Object
-1 - Stays on back when sheathed
0 - Disappears when sheathed
5606 - Quiver

** The data after that is a binary that determines if the sheathe object is always visible. This is set to true for quivers, but could very well mean that sheathes for swords is possible too. This excites me because I've read multiple times that it is not possible. **

Damage Type
0 - Weapons and special creatures
1 - Unarmed

Notes
A separate data sheet is required for ranged weapons and anything with explosions as the data on damage isn't reflected in the CWeaponDef but in the Shot entries.
Changing the attributes of two-handed weapons into those for one-handed weapons is insufficient to make them one-handed. The other data for that is in the CCarryableDef.
Either Weapon Class or Animation Group also deals in grouping of items in inventories, but which inventory a weapon ends up in is determined by the CInventoryItemDef.
Damage shown in spreadsheet is divided by 10 for some reason (that's how it is in the data) and does not reflect augments. So 28.5 for Solus greatsword is actually 313.5.

Edit: Other notes.

I've been looking at damage multipliers. As you level your strength, melee weapon damage scales from 1x to 2x.

0 - 1
1 - 1.142857143
2 - 1.285714286
3 - 1.428571429
4 - 1.571428571
5 - 1.714285714
6 - 1.857142857
7 - 2

Berserk multiplies damage as well

1 - 1.25
2 - 1.5
3 - 2
4 - 2.5

Flourish has a 1.25 multiplier.

So 2x2.5x1.25 with the souls greatsword, which now does 300 damage for easier math, is 1800 damage.
Berserk also has a damage modifier of 0.1*(strength level multiplier) per hit, so that's an extra 60 damage each hit, which are less likely to be flourishes so we'll start at 1560. If a boss has 10000 health, you can take him out in 6 hits, which is about what I wanted for ordinary fights. That's not counting multistrike or multiarrow.

Sure, you're not going to use berserk all the time and you won't have the strongest weapon until later in the game, but what I'm getting from this is that I not only need to tweak health/weapon damages but these damage multipliers as well. It's hard to make a game balanced when it has a super saiyan mode.

On the mentioning of multistrike, I was considering changing it into a kind of bleeding damage spell. Something that deals 0.1 (for example) damage once a second for x seconds, depending on level. This will turn it from a lawnmower into something more regulated. You've upset a guy, you just have to survive long enough for him to bleed to death. Sound good?
 
Last edited:

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Coming back around to this. I have time off of work, like many others, and I have a revived desire to mod Fable thanks to an extremely generous charity from a former modder, I have been gifted a PC with licensed copies of the 3d editing software compatible with the fan-made Fable modding tools! I've swung back around to looking at the theory and academia of map editing in Fable and came across an interesting article written by our Russian friends over at fablegame.info:
Edit: Perhaps have Chrome translate it to English. :thumbsup:

While it doesn't seem to help in my particular ventures, it gives me a few ideas I haven't played around with yet.
 

Zarkes

i7 gtx 3080
Premium Legend
Premium
Joined
Oct 24, 2006
Messages
2,840
Reaction score
359
Points
245
Age
31
I understand that FA is on the unreal engine, there was a port of our legendaries over to Skyrim on the nexus as well. Would it be possible to modify Fable on the unreal engine? It is currently free under 100,000 dollars of sales.
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
I don't see why not. I don't know Anniversary or Unreal. I know Fable. But any game would reasonably have an archive or directory system for graphics and I'm sure Anniversary has one. It's just a matter of reverse engineering the archive format, decompressing and extracting data, editing (and having the correct software), injecting, recompiling.

I don't know how to do any of that though. I'm not sure what tools or progress has been made on that front. Keshire has written a Blender plugin for Anniversary, but I think it specifically deals with helpers. He'd be a good contact for most anything graphics-related.
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Now that I'm able to create landscapes, here's a quick test run.
U4IWwCf.jpg
Nevermind that it looks like grassy breasts coming out of the ground, it's a good start. Collision can be added via CBox, but I don't think I'd be able to walk on top of these mounds the same way with regular collision as I could with actual landscape/heightmaps. Or I can implement a kind of collision via the heightmap and keep the benefits of both. Still working that out in my mind.

Edit: Worth mentioning that in frescodome.lev (STB archive, not WAD), the 512x512 textures are stretched across 8x8 meters, or 800x800 in 3DS Max. Other, more detailed maps may have these textures used in smaller spaces, i.e. same size texture in a 4x4 meter space, but it's most assuredly a guarantee that it'll be a 2^n up to 32.

Previously I wondered if it was matched from texture to mesh, 512x512 textures on a 512x512 (5.12 meters) space on the mesh, but in hindsight that wouldn't be very efficient when the building blocks of all maps are done in 32 meter squares.
 
Last edited:

Dark Drakan

Well-Known Member
Guildmaster
Town Guard
Premium
Joined
Feb 6, 2006
Messages
18,655
Reaction score
2,305
Points
365
Age
38
Always interesting to see someone testing things and working on parts to see what is possible after all this time.
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Made good progress today. Put the theory into implementation and got results.

The Before
An unused hook coast filler map. You can see it from hook coast, but there's nothing there, you can't walk on it in retail Fable and making it so you can causes problems, there's no navdata, the heightmap is wonky, it's really not worth using as is.
nBk0RC1.jpg


The After
Prepared landscape and walls, going to turn it into Bowerstone West (there's a text asset referencing such a place!). It now has a duplicate of hook coast's navdata, so it can be made into a town that kinda resembles hook coast in regards to layout, and with some creativity even that can be overcome. :) Heightmap is flattened out for now because it's just easier to work with that way.
Z4bhFk0.jpg


Notes
The walls are necessary. If other maps were made visible from this one, it would be looking down at the whole of hook coast. If no maps are made visible, you get the great void. Luckily Bowerstone is a walled city, so no problem there. This does not affect the view from the rest of hook coast or anywhere else in the game. Everything appears exactly as it would in the default retail version of the game. This is an almost no-compromise solution to new maps and now that I have a more practical way of tackling the navdata, it's just going to get better. :)
VSrYmdr.jpg
 

Zarkes

i7 gtx 3080
Premium Legend
Premium
Joined
Oct 24, 2006
Messages
2,840
Reaction score
359
Points
245
Age
31
I don't mean to detract, have you heard of the enemy test spawn chunk? It's a square landmass. I know it's a demon door because it has the same pink sand. A bandit spawns there and attacks you on site. I used to use it to spawn chests and what not. Would you be able to see the height map from it? I was using chocolate box at the time:wat:
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
I don't mean to detract, have you heard of the enemy test spawn chunk? It's a square landmass. I know it's a demon door because it has the same pink sand. A bandit spawns there and attacks you on site. I used to use it to spawn chests and what not. Would you be able to see the height map from it? I was using chocolate box at the time:wat:
Creature_hub. It's a 32x32 map with very little navdata, I've used it to study the format. Would I be able to see the heightmap? The data? I can see all the data, just have to look at it. I'm not sure I understand what you mean.
 

Zarkes

i7 gtx 3080
Premium Legend
Premium
Joined
Oct 24, 2006
Messages
2,840
Reaction score
359
Points
245
Age
31
Creature_hub. It's a 32x32 map with very little navdata, I've used it to study the format. Would I be able to see the heightmap? The data? I can see all the data, just have to look at it. I'm not sure I understand what you mean.
Is there anything special about it like that of dragon cliff?
 

VinDiesel

Living Necromonger
Joined
Feb 10, 2019
Messages
79
Reaction score
85
Points
75
Is there anything special about it like that of dragon cliff?
Let me answer that with a question: what makes dragon cliff special to you?

There are nearly 400 maps across 140 regions, they're all collections of data. This project is about finding maps that serve little purpose and giving them purpose by making them usable maps that can contain villages, enemies, treasures, and fun things to see and do.

Any map that's unused but big enough to accommodate a data transplant from more used maps (like in my previous post, where a filler map off of hook coast has data from hook coast and Bowerstone South) can be made special in the sense that I can use it.
 

Zarkes

i7 gtx 3080
Premium Legend
Premium
Joined
Oct 24, 2006
Messages
2,840
Reaction score
359
Points
245
Age
31
Let me answer that with a question: what makes dragon cliff special to you?
Can you save the bandit in creature hub and place him in your village?
 
Top