Fable III
0 of 0

File information

Last updated

Original upload

Created by

Humanist1996

Uploaded by

Humanist1996

Virus scan

Safe to use

Tags for this mod

53 comments

  1. Humanist1996
    Humanist1996
    • member
    • 1 kudos
    Sticky
    Here is a file posted by Keshire with some other functions http://fable3mod.com/forums/index.php?t=getfile&id=13&
    IF YOU FIND NEW USEFUL SCRIPTS PLEASE MENTION IT HERE FOR OTHERS
    1. Humanist1996
      Humanist1996
      • member
      • 1 kudos
      Please look at other scripts posted by @catgogo5 and @roxas191115234 that I have not been added to description but might be interesting to you! :)
  2. TonyStarkIND
    TonyStarkIND
    • member
    • 0 kudos
    !WARNING GAMEBREAKING BUG!

    Hi there! Just came to warn you that there is a potentially very fatal glitch/bug you can experience when you use theGameflow.HerosParent = '_mother'
    Gameflow.Fable2HeroEndGender = '_mother'

    Scripts, while it does work normally for most of the game and does as it's told do so, which is to unlock the cut dialogue, even in quests it works, showing the right quest, like in the "The Reliquary" showing the prompt to "Find your mother's music box" instead of "Find your father's music box" etc

    However issue arrises after you get crowned, while you can play through most of the "Weight of the World" questline, your run will hit a dead end after you have to decide on Albion's drinking laws, as once you are done with that, no matter the choice btw, you'll be prompted to enter the the throne rooom to judge on the future of Brightwall Academy.

    There the scene starts normally, Walter greets your presence and you'll be teleported to sit on the throne, Walter presents the case and after your Hero gives permission for them to speak, normally now Samuel starts his intro 

    Ahem, your majesty, it was your mother who opened the doors to Albion's greatest seed of learning, under her rule, knowledge and culture flourished and so did the people of Brightwall

    But this never happeens, instead the following does, your hero says

    
    You may speak



    After this, the camera slowly starts to zoom out, Samuel never starts his dialogue, your hero is stuck in an idle sitting animation, you can still hear the crowd mumbling and the clothes shifting from the NPCs around you (Due to their own idle animations) and you remain softlocked forever here's also a link to showcase this



    You can't fast travel since you can't access the Santuary, you also can't by default travel to the road of rules, you can only really either ALT + F4, Quit out via Go Back to Windows or load a new save or reload the same save, however reloading the same safe will simply put you back before you entered the throne room, meaning you can't progress and the save is doomed, here are some solutions attempted, I did many more, those just come from the back of my head, all without a merit of success


    • Restart the Game
    • Restart the Computer
    • Try to let it play out and see if the game catches itself (7+ hours)
    • Play another save (This safe was already crowned, starting with the last quest of day 365, however the hero still got softlocked at the same spot)
    • Attempt to reload the area by fast travelling to to Aurora and Bowerstone, then teleport to the Sanctuary, enter the Road to Rule, teleport back to the castle
    • Play another save, same as before, but this time, I didn't skip dialague, didn't fast travel unless needed, still the same issue
    • Removed all gold from both the treasury and the Santuary
    • Attempted to revert the command by replaying the same save but using the commands Gameflow.HerosParent = '_father'
      Gameflow.Fable2HeroEndGender = '_father'


            9. Went to the 'The Pen is Mightier' Quest before entering the throne room, delivering a single book to Samuel,                  then returned to the castle, softlock still happens
          10. Used the Fable 3 Save Editor to attempt to fix the entityuid and saveuid, however it wasn't shown as broken                   and still didn't work
          11. Used the Fable 3 Save Editor to extract the save and insert it back into the game, no results, still gets                            softlocked
          12. Used the Fable 3 Save Editor to manually edit the raw Hero data values with the HeroEditor, mostly I                              attempted to edit those portions beneath

    TEXT_QUEST_QC160_OBJECTIVE_20 / TEXT_QUEST_QC160_OBJECTIVE_70  TEXT_QUEST_QC160_OBJECTIVE_90
                 those have 'values' that determine the dialogue used, I changed those values to match a save from an                           untouched Vanilla game to match the default 'values' for the Hero father instead, still nothing, Samuel                           however does have the dialogue needed, I even pulled the voice line from the game files, here's a link! 





               Now as you can see, while the game does have the files it needs, it still gets confused, causing the softlock,                 but here I is what I found digging, by comparing files between the scripted save that has the Hero_Mother and
               the vanilla one that has the default Hero_Father, there is a field missing, looking at the Hero Data with the                   HeroEditor reveals a field, a field that seemingly gets added after you get crowned queen/king

    AfterCoronation_Father
      1
      0 : 05a0
               This field, simply doesn't exist in any of my saves that got crowned while still having the fable2hero_mother                 script activated, but given it's name, it could possibly imply that this is the field that causes the game to get                 confused and softlock itself, Samuel as far as I know also is the only person during the Weight of the                             World questline that uses a different dialgue depending on the hero parent gender, I will do some further                       testing, starting with a new save that didn't yet get crowned, see if this field gets added as normally with the                 mother hero script deactivated, I will then see if reactivating the script causes issues. but sadly, even if it                       works, it means at least this quest is irreversibly broken and cannot be saved, I suggest anyone using the                     script to be careful and use the Save Room to make backups! I will later add more once I find out more about               this weird gamebreaking bug.
    1. catgogo5
      catgogo5
      • member
      • 0 kudos
      This kind of information is interesting to know. It makes me wonder if the mother dialogue was not perfectly ported to PC, when it worked on the Xbox, on release. That softlock could probably have been prevented if you make the change before obtaining the throne. At some point, if you reach a certain area, that area remembers your character state, meaning you're softlocked the moment you return.

      It's fortunate that a small change in dialogue isn't more destructive to a save.
    2. LadyOfTheFairies
      LadyOfTheFairies
      • premium
      • 0 kudos
      My game broke right after the hollow man battle in Mourningwood. Like catgogo said, I think the dialogue doesn't fully exist in PC port, so the game breaks wherever the game struggles to substitute mother for father and queen for king. I had to start over
  3. catgogo5
    catgogo5
    • member
    • 0 kudos
    Here are some honorable mentions from the forums.

    A script that changes a flag or two, determining the player's hero parent.

    ScriptActivation[ScriptCode.QU000].AbleToRun = function ()Gameflow.HerosParent = '_Mother'
    Gameflow.Fable2HeroEndGender = '_Mother'

    return nil
    end

    A script that allows a player to drag villagers around. Used with the assumption that you'll force them to work, before you make the decree that defaults behavior to this.

    if JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_BSI010.AvailableFromChapter ~= "BowerstoneAndBalverines_Part_1_RenownBreak" thenJobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_BSI010.AvailableFromChapter = "BowerstoneAndBalverines_Part_1_RenownBreak"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_NMF010.AvailableFromChapter ~= "BowerstoneAndBalverines_Part_2" then
    JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_NMF010.AvailableFromChapter = "BowerstoneAndBalverines_Part_2"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BSI010.AvailableFromChapter ~= "BowerstoneAndBalverines_Part_1_RenownBreak" then
    JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BSI010.AvailableFromChapter = "BowerstoneAndBalverines_Part_1_RenownBreak"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BLD010.AvailableFromChapter ~= "Ruling_Part1" then
    JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BLD010.AvailableFromChapter = "Ruling_Part1"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_NMF010.AvailableFromChapter ~= "Ruling_Part1" then
    JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_NMF010.AvailableFromChapter = "Ruling_Part1"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_MPV010.AvailableFromChapter ~= "Ruling_Part1" then
    JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_MPV010.AvailableFromChapter = "Ruling_Part1"
    end
    if tostring(Layers.GetActiveScenarioForLevel("Fable3", "Albion\\newmillfields")) == "Scenario_LakeDrainedPinesCut" then
    Layers.DeactivateLayer("QDRAG_CRIMINAL_NMF010_Main")
    end

    The last script I'll include is more of an inherent cheat, but can be convenient in some ways. It's used to reset a player's disposition towards the player.
    Besides "LOVE", I assume "HATE" is another example. Experimenting works.

    OpinionReaction.ResetCurrentRelationshipStage(Targeting.GetTarget(GetLocalHero()), GetLocalHero(), ERelationshipStages.ERS_LOVE)

    I would change the 'ALL WEAPONS' scripting, because of the way the debug mechanics work. It can actually softlock the game during its tutorial, if you enter any cutscene on the Road to Rule, with a force-equipped weapon. I believe this could also softlock the game, generally speaking, when it executes the script and causes the player model to force-equip during a cutscene, like the part where you play the music box, the game doesn't know what to do, so it freezes/crashes.

    local allLegendaryWeapons = {'ObjectInventoryLegendaryHammerAbsolver',
    'ObjectInventoryLegendaryHammerAnwarGlory',
    'ObjectInventoryLegendaryHammerAuroraShield',
    'ObjectInventoryLegendaryHammerBloodstoneBludgeon',
    'ObjectInventoryLegendaryHammerChampion',
    'ObjectInventoryLegendaryHammerDragonboneHammer',
    'ObjectInventoryLegendaryHammerFaerie',
    'ObjectInventoryLegendaryHammerHammerOfTheWhale',
    'ObjectInventoryLegendaryHammerJackHammer',
    'ObjectInventoryLegendaryHammerLunariumPounder',
    'ObjectInventoryLegendaryHammerMalletsMallet',
    'ObjectInventoryLegendaryHammerScytheHammer',
    'ObjectInventoryLegendaryHammerSorrowsFist',
    'ObjectInventoryLegendaryHammerTenderiser',
    'ObjectInventoryLegendaryHammerTenderiser',
    'ObjectInventoryLegendaryHammerTrollblight',
    'ObjectInventoryLegendaryHammerTwatter',
    'ObjectInventoryLegendaryHammerWillmageddon',
    'ObjectInventoryLegendaryPistolBarnumificator',
    'ObjectInventoryLegendaryPistolBlackDragon',
    'ObjectInventoryLegendaryPistolBloodcraver',
    'ObjectInventoryLegendaryPistolBonesmasher',
    'ObjectInventoryLegendaryPistolBriarsBlaster',
    'ObjectInventoryLegendaryPistolChickenbane',
    'ObjectInventoryLegendaryPistolDeadNed',
    'ObjectInventoryLegendaryPistolDesertFury',
    'ObjectInventoryLegendaryPistolDragonstomper',
    'ObjectInventoryLegendaryPistolFullMonty',
    'ObjectInventoryLegendaryPistolGnomewrecker',
    'ObjectInventoryLegendaryPistolHolyVengeance',
    'ObjectInventoryLegendaryPistolIceMaiden',
    'ObjectInventoryLegendaryPistolMiriansMutilatogeorge r',
    'ObjectInventoryLegendaryPistolPerforator',
    'ObjectInventoryLegendaryPistolSailorGeriShooter',
    'ObjectInventoryLegendaryRifleArkwrightFlintlock',
    'ObjectInventoryLegendaryRifleDefender',
    'ObjectInventoryLegendaryRifleDirtyHarriet',
    'ObjectInventoryLegendaryRifleEqualiser',
    'ObjectInventoryLegendaryRifleEthelbertBoner',
    'ObjectInventoryLegendaryRifleFacemelter',
    'ObjectInventoryLegendaryRifleGusketMusket',
    'ObjectInventoryLegendaryRifleHeroCompanion',
    'ObjectInventoryLegendaryRifleMarksman',
    'ObjectInventoryLegendaryRifleMolynator',
    'ObjectInventoryLegendaryRifleMoneyShot',
    'ObjectInventoryLegendaryRifleSakerFlintlock',
    'ObjectInventoryLegendaryRifleScattershot',
    'ObjectInventoryLegendaryRifleSimmonsShotgun',
    'ObjectInventoryLegendaryRifleSkormJustice',
    'ObjectInventoryLegendaryRifleSwiftIrregular',
    'ObjectInventoryLegendarySwordAvoLamentation',
    'ObjectInventoryLegendarySwordBaronSlayer',
    'ObjectInventoryLegendarySwordBeadleCutlass',
    'ObjectInventoryLegendarySwordCasanova',
    'ObjectInventoryLegendarySwordChanneler',
    'ObjectInventoryLegendarySwordDonorKebab',
    'ObjectInventoryLegendarySwordFishknife',
    'ObjectInventoryLegendarySwordInquisitor',
    'ObjectInventoryLegendarySwordMerchantsBodyguard',
    'ObjectInventoryLegendarySwordMogoShafter',
    'ObjectInventoryLegendarySwordMrStabby',
    'ObjectInventoryLegendarySwordPorkSword',
    'ObjectInventoryLegendarySwordShardborne',
    'ObjectInventoryLegendarySwordSlimquick',
    'ObjectInventoryLegendarySwordSouldrinker',
    'ObjectInventoryLegendarySwordSwingingSword',
    'ObjectInventoryLegendarySwordThundaraga',
    'ObjectInventoryLegendarySwordThunderblade',
    'ObjectInventoryLegendarySwordWolfsbane'
    }

    for key,value in pairs(allLegendaryWeapons) do
    if Inventory.GetNumberOfItemsOfType(GetLocalHero(), value) == 0 then
    Inventory.AddItemOfType(GetLocalHero(), value)
    GUI.DisplayReceivedItem(value)
    end
    end

    That said, my personal 'build' of the injector involves three key factors that ensure it's stable during all expected situations, doesn't cause many issues, and doesn't always need to be touched.

    My build always has weapons turned on, so I never touch it, even during cutscenes. No freezes during tutorial. Music box doesn't crash.

    There's a script that skips the Co-Op demon door, which I also don't touch, among other scripts that makes the game possible to 100% without all weapons[Though the demon doors are interesting, the Microsoft servers are down, this script is mandatory.]

    The build succeeds in accomplishing most of what another mod on the nexus already accomplishes, minus the weapon rebalancing, without debug. The other mod is unfriendly to the classic dummy, since anyone who doesn't follow basic instructions on mod installation will crash their game. My build adds the weapons and clothes to the inventory, in a none-intrusive way, which is an important distinction. That's why it never crashes.

    [Aside from starting a new game, being bombarded by several messages, telling you that you won the inventory lottery. But that's still not a crash.]

    I should actually start up this game again, testing for my optimized script[It's the second, which doesn't loop every other second, but every other screen.]
    1. Humanist1996
      Humanist1996
      • member
      • 1 kudos
      Wow! Thank you @catgogo5

      1) I'll add the first code to description since it does unlock the cut dialogue about female mother hero
      2) I have seen that code on another forum but does it have any benefits other than you can simply do it?
      3) Great points I'll add it as a v2 version in the description since your code seems much better :)
    2. catgogo5
      catgogo5
      • member
      • 0 kudos
      I believe the code is used to drag workers out of workplaces, in theory, but is intended to drag workers, forcibly, into work. It's mainly for evil characters, but I've had it and never really took advantage.

      I have purposefully excluded other scripts from the final compendium of code, such as the sex-change one. That code doesn't really do anything productive, but can be used for joke playthroughs. Notably, it can dramatically alter the body of the MC, and maybe their voice, while also keeping the original gender's head. It's funny, it alters in-game dialogue, and it's possible to break the game in a way where you can get hooked up with the male-romance as a male, or the female-romance as a woman. It is in fact a good satire, but one I'll let people find on their own. The forum post is pretty easy to find. Narrowing down important searches, there's only like... three posts that don't break anything.

      One that fixes the automaton dog skin. One for gender-swapping. One for adding cut animations back into the game.
      My script is pretty definitive and I genuinely applaud the community, however small, for such a useful forum.
    3. Tykes23
      Tykes23
      • member
      • 0 kudos
      Sorry, but I have a question, will this create duplicates of the weapons? Like this will give the player "Avo's Lamentation" and if I open a chest that has that same weapon later, will it be duplicated or just ignore it?
    4. catgogo5
      catgogo5
      • member
      • 0 kudos
      My updated, full code prevents duplicates. The code tends to execute several times, which, even without obtaining a weapon normally, would fill entire weapon slots. With proper coding, you also instantly remove all excess, reducing the quantity to 1 of everything, with no exceptions.

      This won't stop independent cases of a code being executed outside of "if" conditions, such as weapon codes, giving duplicates that are removed in vain, since they'll still be re-added, unconditionally, if they're not given one.
  4. catgogo5
    catgogo5
    • member
    • 0 kudos


    Willy Wonka Has Returned!
    Is what I would say... if I was as carefree as Reaver.

    I'm actually here to give a definitive guide on how to use the injector without outright BREAKING the scripts. I'll provide five simple rules, and provide both the scripts I have, every code, every juicy line, for reference[Also, to provide a working, very capable list that I can confirm works. Literally just copy the string and paste it.]. It's easier to keep the idea in mind, as it just makes things easier.

    Rule 1: For beginners, blindly copy-pasting every line of script you find is a guarantee for the game to crash beyond a hope of recovery... that is, if you don't read the lines carefully.
    Many of the errors that come from building your own script comes down to the SMALLEST and most DESTRUCTIVE typos in the script. ONE typo, beginning or end of the script, is enough to break the code. In most cases, the script will NOT run at all, which is an expectation. In the case of other coding errors, you WILL crash your client. Point is, you should avoid typos in the first place; You don't need to be told twice, you can skip straight to my built script, to skip the hard part of building.

    Rule 2: If you add the "Love" code to the script, to make everybody in the game love you, but try to modify it in any way, you WILL crash, because the code works, despite what its source has implied.

    Rule 3: In the attempt of using debug commands, you'll find some commands will either NOT work, or they WILL work, but will also softlock your game, if used early on.

    I make it a point that you do NOT need debug commands for "All weapons" or "All clothing," as my script goes above and beyond, providing you BOTH of those. You get potions, you get gifts, you even get free EXP. You can remove or just 'disable' lines of code, so you tailor your enjoyment the way you feel. For the love of Albion, don't punish yourself unnecessarily.

    Rule 4: Understanding Code.
    I won't pretend that EVERY person is brilliant to a hundred faults, so I'll put it in simple words:

    DO NOT delete any script you plan to eventually use later on. You can safely 'turn off' a certain, let's say, mod from executing, by including "--" at the start of the command. Example:

    SCRIPT ACTIVATED: Debug.Follow()

    SCRIPT NOT ACTIVATED: --Debug.Follow()

    Rule 5: Some scripts work better than others(TL;DR, how my script loadout works)

    The first script plays repeatedly, while the second script repeats every time the game transitions between scenes. Enter-Exiting the guild will prompt the second script, but in practice, the second script executes a command EVERY time something happens at all, cutscene or not. Pausing, clicking out-of-game, etc, etc. My FIRST script is empty, as I simply think the first script lags the game if it's heavy, whereas, Script2 could stand on its own, while bearing the entire load.

    Without debug, it's possible to obtain every item in the game. The way my code works, as I am sure one could guess, or has already found out, the weapons can be owned by the player from the beginning of the game, to the end. There is zero risk of the game crashing, unless your script is full of typos, and no risk of the script breaking, based on that same logic.

    Owning clothing does NOTHING to break the game. The only notable story instances are numbered two, and they're "Buy the Dweller Outfit" and "Buy the Mercenary Disguise," in BOTH cases, the game INSTANTLY skip the "Buy" step, and sends you to put the outfits on. Debug commands that FORCE you to wear clothes, of course, are not true softlocks,  as they only require you to disable the debug command and change your clothes to the story-appropriate attire. You can wear the royal outfit, and its respective crown, before you enter Brightwall, and so long as you're not required to wear a specific outfit, you can keep wearing it. You can finish your business, and put it back on, with no bugs or repercussions. The game isn't designed such that you sequence break, so you literally CANNOT break the game unless you decide to script your story outfits OUT of your inventory, and NEVER disable that code, so you lose the outfits, even if you buy them.

    Owning WEAPONS, however.... DOES break the game, but ONLY in the few "Road to Rule" scenes. When you first obtain the Fire Ball spell, the game suspects you do not actually own a weapon, but that is actually NOT what causes the softlock. Debug commands are synonymous with softlocks, because in important cutscenes, the script executes a function, forcing your character to EQUIP something, and during real-time cutscenes, it causes the character to enter a draw animation, whether than finish the animation of the scene.

    Music Box: Debug weapon scripts WILL softlock you, because it WILL trigger an "Equip" call, breaking the cutscene. I forget whether it breaks DURING the opening, or AFTER you've opened the music box. My script loadout DOESN'T have this issue, but then, I'd unironically added debug commands for experimentation, and I ended up softlocking every part of my game EXCEPT the parts where I'd've softlocked[Silly me!]


    My script currently has disabled code, such as the aptly named "DEBUG ROAD TO RULE," section, which, unless you are REALLY curious about what the code does... don't. Just, don't. Delete it. Forget it exists, it gives you NOTHING that you need to worry about, as I am positive you can discover your OWN workaround for what it's supposed to do. Or just not look for a workaround, as you don't miss out on ANYTHING you won't get very quickly.

    My script DOES have the bypass for the Co-Op Demon Door, so, yes, you also have access to anywhere in the game you want.

    My script DOES have a string of code, allowing one to play an evil character and drag people into forced labor.

    Yes, the script has "Black Dragon" and "Swinging Sword," as well as "Jack" and "Scythe's" weapons. Yes, of course, it took time to compile, test[Post-Music-Box was the criteria I use to measure scripts. If the code can survive New Game, and survive up to the first story milestone, the signed agreement, then it VERY likely won't hurt in the long-term. Your personal ego not included. Not that you can normally get EVERY weapon in the game in a single playthrough, legitimate or not, without co-op.] and build the script, so I suspect people can skip the hassle.

    Extra Mentions:
    You can spawn a BUTTLOAD of Elise characters if you don't turn the first lines of code off in the whole script.
    You can SKIP the many... many... dig quests from strangers, and go straight to "Love" and "Hate" dispositions.
    You can force ANY NPC to FOLLOW you, this includes Jasper[New Game, Castle] and Walter[Every time his face pops up. Lol.]

    You can also... well... force some others to enter caverns with you. Yaaaas!

    You can change the character's gender[Their HEAD is hardcoded. You cannot full-transition, which, who can really say that's a bad thing?]

    You can FORCE the game to mass-marry entire maps of people, if they're ABLE to be married.

    You can also... force the game to allow everybody to know that you banged the entire country.

    I purposefully have 'Silver Keys' turned off. It doesn't seem to work for me, as chests refuse to acknowledge that I have 50[Most, if not every] keys. This means that some things must be farmed by hand. The code just fucks with the dog AI, and I hate being told "Oh hey, here's a chest. OPEN IT!" when the game won't even let me do that. Gold keys seem to work, however, and that is what matters. You can open the first gold door, on your escape from the castle.

    You can MODIFY EVERY LEGENDARY WEAPON'S APPEARANCE. UNLIMITED CUSTOMIZATION! BWAHAHAHAHA!

    Anyway. Script:

    --Debug.CreateEntityByHero('CreatureVillagerElise',1) --Elise or Elliot
    Gender.Set(Targeting.GetTarget(GetLocalHero()),EGender.EG_ANDROGYNOUS)
    --OpinionReaction.ResetCurrentRelationshipStage(Targeting.GetTarget(GetLocalHero()), GetLocalHero(), ERelationshipStages.ERS_LOVE)
    --Debug.Follow()
    Gender.Set(GetLocalHero(), EGender.EG_FEMALE) --MALE, FEMALE, ANDROGYNOUS
    --Debug.ChangePlayerEntity('CreatureHeroFemale')
    Debug.MarryEveryone()
    Debug.ToggleCanCatchBigamist()
    --while Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventorySilverKey') < 50 do
    --Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventorySilverKey')
    --end
    while Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryGoldKey') < 5 do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryGoldKey')
    end
    Gameflow.RoadToRule.ADD_NUMBER_OF_GUILD_SEALS_TO_HERO(1000, GetLocalHero())
    Debug.SpawnExperienceOrbs(100)
    ScriptFunction.SetWealthValueForAllVillagesOnLevel(100)
    Gameflow.AllowFakePreOrderTemplates = true
    --Gameflow.weapon MeshOverride = true
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshAuroran"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshCrystal"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshEvil1"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshEvil2"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshGood1"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshGood2"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshIntricate"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshOrganic"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshReaver"
    --Gameflow.PrimaryMeshOverride = "PrimaryMeshBase"
    --Gameflow.Secondary MeshOverride = "SecondaryMeshAuroran"
    --Gameflow.Secondary MeshOverride = "SecondaryMeshSpell"
    --Gameflow.Secondary MeshOverride = "SecondaryMeshBone"
    --Gameflow.Secondary MeshOverride = "SecondaryMeshRoyal"
    --Gameflow.Secondary MeshOverride = "SecondaryMeshBase"
    --Gameflow.PrimaryMeshSize = "SizeSmall"
    --Gameflow.PrimaryMeshSize = "SizeMedium"
    --Gameflow.PrimaryMeshSize = "SizeLarge"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourMetallicRed"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourSilver"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourMetallicBlack"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourMetallicGreen"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourSteel"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourGold"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourMetallicPurple"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourCopper"
    --Gameflow.PrimaryColour = "PrimaryBackgroundColourMetallicBronze"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourMetallicRed"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourSilver"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourMetallicBlack"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourMetallicGreen"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourSteel"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourGold"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourMetallicPurple"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourCopper"
    --Gameflow.ForegroundColour = "PrimaryForegroundColourMetallicBronze"
    --Gameflow.ParticleEffect = "LIGHTNING"
    --Gameflow.ParticleEffect = "FIRE"
    --Gameflow.ParticleEffect = "SHADOW"
    --Gameflow.ParticleEffect = "HOLY"
    --Gameflow.ParticleEffect = "BLOOD"
    --Gameflow.ParticleEffect = "ETHEREAL"
    --Gameflow.ParticleEffect = "GOLDEN"
    --Gameflow.ParticleEffect = "POISON"
    Gameflow.WeaponMeshOverride = true
    Gameflow.PrimaryMeshOverride = "PrimaryMeshGood2"
    Gameflow.SecondaryMeshOverride = "SecondaryMeshBase"
    Gameflow.PrimaryMeshSize = "SizeSmall"
    Gameflow.PrimaryColor = "PrimaryBackgroundColourSilver"
    Gameflow.ForegroundColor = "PrimaryForegroundColourGold"
    Gameflow.ParticleEffect = "HOLY"
    --DEBUG ROAD TO RULE
    --Gameflow.RoadToRule.UNLOCK_EVERYTHING(GetLocalHero())
    --Gameflow.RoadToRule.HIDE_MELEE_WEAPONS()
    --Gameflow.RoadToRule.HIDE_RANGED_WEAPONS() 
    --Gameflow.RoadToRule.HIDE_GAUNTLET_WEAPONS()
    --Gameflow.RoadToRule.HIDE_ALL_WEAPONS()
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupBeauty1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupBeauty2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupEgyptian1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupEgyptian2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupGeisha1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupGeisha2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupGoth')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupGypsy')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupHarlequin')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupMarcelM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupMoulinRouge')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupOutOfAfrica')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupProstitute')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupRenegade1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupRenegade2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupRenegade3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupRorscharch')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupStandard1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectMakeupStandard2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightAuroran')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightDweller')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightGuild')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackGuild2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightMilitary')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightNature')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightOldKingdom')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightRoyal')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceSE6')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE1')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE2')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE3')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE4')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE4')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE4')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE4')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE4')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE4')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceSE5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceSE7')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectHairF3Long')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeOrange')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeGreen')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeBlue')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeCream')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyePurple')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeWhite')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyePink')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeBlack')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeRed')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeBrown')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeGrey')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeTurquoise')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeKhaki')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeHotPink')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeYellow')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryDyeLime')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogSetter')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectHairF3Pixie')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectHairF3Afro')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectHairF3Cornrows')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogStatsLevel5')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogAlsatian')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogDoberman')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogPoodleWhite')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogPoodlePink')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopScotF')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatScotF')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersScotF')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesScotF')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsScotF')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopScotM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatScotM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersScotM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesScotM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsScotM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBubblePipe')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmLeftHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooArmRightHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooBackHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooFaceHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooChestHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegLeftHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectTattooLegRightHighlander')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsReaverIndM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesReaverIndM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatReaverIndM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopReaverIndM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersReaverIndM')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsPrisoner')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesPrisoner')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatPrisoner')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopPrisoner')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersPrisoner')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsPrisonGuard')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesPrisonGuard')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatPrisonGuard')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopPrisonGuard')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersPrisonGuard')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsSoldier')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatSoldier')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopSoldier')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersSoldier')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsSandFury')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesSandFury')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatSandFury')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopSandFury')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersSandFury')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsProstitute')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesProstitute')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopProstitute')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTrousersProstitute')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDogClockwork')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatSanta')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingBootsDog')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingGlovesDog')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingHatDog')
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectClothingTopDog')
    local fillExpendableItems = {
    'ObjectInventoryGiftChessboard',
    'ObjectInventoryGiftChocolates',
    'ObjectInventoryGiftFlowers',
    'ObjectInventoryGiftGoblet',
    'ObjectInventoryGiftHandMirror',
    'ObjectInventoryGiftJewellery',
    'ObjectInventoryGiftPerfume',
    'ObjectInventoryGiftFruitBowlSilver',
    'ObjectInventoryGiftRing',
    'ObjectInventoryGiftToyBow',
    'ObjectInventoryGiftToyGun',
    'ObjectInventoryGiftToyHorse',
    'ObjectInventoryGiftToyPorcelainDoll',
    'ObjectInventoryGiftToyRagDoll',
    'ObjectInventoryGiftToySword',
    'ObjectInventoryGiftToyTeddyBear',
    'ObjectInventoryGiftGemAmethyst',
    'ObjectInventoryGiftGemDiamond',
    'ObjectInventoryGiftGemEmerald',
    'ObjectInventoryGiftGemJet',
    'ObjectInventoryGiftGemRuby',
    'ObjectInventoryGiftGemPearl',
    'ObjectInventoryGiftGemTopaz',
    'DoubleBedLevel1',
    'DoubleBedLevel2',
    'DoubleBedLevel3',
    'DoubleBedLevel4',
    'DoubleBedLevel5',
    'BedsideTableLevel1',
    'BedsideTableLevel2',
    'BedsideTableLevel3',
    'BedsideTableLevel4',
    'BedsideTableLevel5',
    'ComfyChairLevel1',
    'ComfyChairLevel2',
    'ComfyChairLevel3',
    'ComfyChairLevel4',
    'ComfyChairLevel5',
    'DeskTableLevel1',
    'DeskTableLevel2',
    'DeskTableLevel3',
    'DeskTableLevel4',
    'DeskTableLevel5',
    'LightFixingLevel1',
    'LightFixingLevel2',
    'LightFixingLevel3',
    'LightFixingLevel4',
    'LightFixingLevel5',
    'CollectablePainting_Ben',
    'CollectablePainting_Elise',
    'CollectablePainting_Elliot',
    'CollectablePainting_Logan',
    'CollectablePainting_Page',
    'CollectablePainting_Sabine',
    'CollectablePainting_Saker',
    'CollectablePainting_Swift',
    'CollectablePainting_Theresa',
    'CollectablePainting_Walter'}
    for key,value in pairs(fillExpendableItems) do
        while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), value)) < 5)
    do
    Inventory.AddItemOfType(GetLocalHero(), value)
    end
    end
    while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryPotionHealth')) < 99)
    do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionHealth')
    end
    while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryPotionSlowTime')) < 99)
    do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionSlowTime')
    end
    while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryPotionDeadRising')) < 99)
    do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDeadRising')
    end
    if not Layers.IsLayerActive("QD030_MistpeakValleyDemonDoorTransition") then
    QuestTracker.SetAsCompleted(GetLocalHero(), "QD030_MistpeakValleyDemonDoor")
    Layers.ActivateLayer("QD030_MistpeakValleyDemonDoorTransition")
    end
    if JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_BSI010.AvailableFromChapter ~= "BowerstoneAndBalverines_Part_1_RenownBreak" then
        JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_BSI010.AvailableFromChapter = "BowerstoneAndBalverines_Part_1_RenownBreak"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_NMF010.AvailableFromChapter ~= "BowerstoneAndBalverines_Part_2" then
        JobCoordinator.JobManagerThreads.QDRAG_CriminalManager.JobData.QDRAG_CRIMINAL_NMF010.AvailableFromChapter = "BowerstoneAndBalverines_Part_2"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BSI010.AvailableFromChapter ~= "BowerstoneAndBalverines_Part_1_RenownBreak" then
        JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BSI010.AvailableFromChapter = "BowerstoneAndBalverines_Part_1_RenownBreak"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BLD010.AvailableFromChapter ~= "Ruling_Part1" then
        JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_BLD010.AvailableFromChapter = "Ruling_Part1"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_NMF010.AvailableFromChapter ~= "Ruling_Part1" then
        JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_NMF010.AvailableFromChapter = "Ruling_Part1"
    end
    if JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_MPV010.AvailableFromChapter ~= "Ruling_Part1" then
        JobCoordinator.JobManagerThreads.QDRAG_SlaveManager.JobData.QDRAG_SLAVE_MPV010.AvailableFromChapter = "Ruling_Part1"
    end
    if tostring(Layers.GetActiveScenarioForLevel("Fable3", "Albion\\newmillfields")) == "Scenario_LakeDrainedPinesCut" then
        Layers.DeactivateLayer("QDRAG_CRIMINAL_NMF010_Main")
    end
    --Weapons Will Not Duplicate indefinitely. Script-2 ensures it doesn't execute too often, but when it does execute,
    --that it only adds a weapon you do not have[Usually playing multiple times, to give multiple instances of a weapon.]
    --The script is meant to delete copies, which, once it does so, will no longer add weapons you still own, nor remove any.
    while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryPotionHealth')) < 100)
    do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionHealth')
    end
    while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryPotionSlowTime')) < 100)
    do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionSlowTime')
    end
    while ((Inventory.GetNumberOfItemsOfType(GetLocalHero(), 'ObjectInventoryPotionDeadRising')) < 100)
    do
    Inventory.AddItemOfType(GetLocalHero(), 'ObjectInventoryPotionDeadRising')
    end
    local allLegendaryWeapons = {
    'ObjectInventoryLegendaryHammerAnwarGlory',
    'ObjectInventoryLegendaryHammerAuroraShield',
    'ObjectInventoryLegendaryHammerBloodstoneBludgeon',
    'ObjectInventoryLegendaryHammerChampion',
    'ObjectInventoryLegendaryHammerDragonboneHammer',
    'ObjectInventoryLegendaryHammerFaerie',
    'ObjectInventoryLegendaryHammerHammerOfTheWhale',
    'ObjectInventoryLegendaryHammerJackHammer',
    'ObjectInventoryLegendaryHammerLunariumPounder',
    'ObjectInventoryLegendaryHammerMalletsMallet',
    'ObjectInventoryLegendaryHammerScytheHammer',
    'ObjectInventoryLegendaryHammerSorrowsFist',
    'ObjectInventoryLegendaryHammerTenderiser',
    'ObjectInventoryLegendaryHammerTenderiser',
    'ObjectInventoryLegendaryHammerTrollblight',
    'ObjectInventoryLegendaryHammerTwatter',
    'ObjectInventoryLegendaryHammerWillmageddon',
    'ObjectInventoryLegendaryPistolBarnumificator',
    'ObjectInventoryLegendaryPistolBlackDragon',
    'ObjectInventoryLegendaryPistolBloodcraver',
    'ObjectInventoryLegendaryPistolBonesmasher',
    'ObjectInventoryLegendaryPistolBriarsBlaster',
    'ObjectInventoryLegendaryPistolChickenbane',
    'ObjectInventoryLegendaryPistolDeadNed',
    'ObjectInventoryLegendaryPistolDesertFury',
    'ObjectInventoryLegendaryPistolDragonstomper',
    'ObjectInventoryLegendaryPistolFullMonty',
    'ObjectInventoryLegendaryPistolGnomewrecker',
    'ObjectInventoryLegendaryPistolHolyVengeance',
    'ObjectInventoryLegendaryPistolIceMaiden',
    'ObjectInventoryLegendaryPistolMiriansMutilatogeorge r',
    'ObjectInventoryLegendaryPistolPerforator',
    'ObjectInventoryLegendaryPistolSailorGeriShooter',
    'ObjectInventoryLegendaryRifleArkwrightFlintlock',
    'ObjectInventoryLegendaryRifleDefender',
    'ObjectInventoryLegendaryRifleDirtyHarriet',
    'ObjectInventoryLegendaryRifleEqualiser',
    'ObjectInventoryLegendaryRifleEthelbertBoner',
    'ObjectInventoryLegendaryRifleFacemelter',
    'ObjectInventoryLegendaryRifleGusketMusket',
    'ObjectInventoryLegendaryRifleHeroCompanion',
    'ObjectInventoryLegendaryRifleMarksman',
    'ObjectInventoryLegendaryRifleMolynator',
    'ObjectInventoryLegendaryRifleMoneyShot',
    'ObjectInventoryLegendaryRifleSakerFlintlock',
    'ObjectInventoryLegendaryRifleScattershot',
    'ObjectInventoryLegendaryRifleSimmonsShotgun',
    'ObjectInventoryLegendaryRifleSkormJustice',
    'ObjectInventoryLegendaryRifleSwiftIrregular',
    'ObjectInventoryLegendarySwordAvoLamentation',
    'ObjectInventoryLegendarySwordBaronSlayer',
    'ObjectInventoryLegendarySwordBeadleCutlass',
    'ObjectInventoryLegendarySwordCasanova',
    'ObjectInventoryLegendarySwordChanneler',
    'ObjectInventoryLegendarySwordDonorKebab',
    'ObjectInventoryLegendarySwordFishknife',
    'ObjectInventoryLegendarySwordInquisitor',
    'ObjectInventoryLegendarySwordMerchantsBodyguard',
    'ObjectInventoryLegendarySwordMogoShafter',
    'ObjectInventoryLegendarySwordMrStabby',
    'ObjectInventoryLegendarySwordPorkSword',
    'ObjectInventoryLegendarySwordShardborne',
    'ObjectInventoryLegendarySwordSlimquick',
    'ObjectInventoryLegendarySwordSouldrinker',
    'ObjectInventoryLegendarySwordSwingingSword',
    'ObjectInventoryLegendarySwordThundaraga',
    'ObjectInventoryLegendarySwordThunderblade',
    'ObjectInventoryLegendarySwordWolfsbane'
    }
    for key,value in pairs(allLegendaryWeapons) do
    if Inventory.GetNumberOfItemsOfType(GetLocalHero(), value) == 0 then
    Inventory.AddItemOfType(GetLocalHero(), value)
    end

    for key,value in pairs(allLegendaryWeapons) do
    if Inventory.GetNumberOfItemsOfType(GetLocalHero(), value) > 1 then
    Inventory.RemoveItemOfType(GetLocalHero(), value)
    end
    end
    end
    1. catgogo5
      catgogo5
      • member
      • 0 kudos
      Addendum: Now I am off to remove ALL my potions and try to handicap myself. Angel sword is awesome.
  5. deichmannnw
    deichmannnw
    • member
    • 0 kudos
    I am trying to use this but anytime i try to save and update the table it tells me that i dont have permission, I am the system admin for my computer, I dont know why it wont let me save. Any ideas?
    I created a new document and have renamed that with the same name, saved it as a .lua file, and it still loads with the morphs on my weapons, but i am not unlocking anything, ive tried sleeping, getting married, fast traveling, nothing is happening.
  6. 24karatgoldfork
    24karatgoldfork
    • member
    • 0 kudos
    Not sure if anyone else ran into the Mistpeak Demon Door script not working, but I think the issue was with the name written in the script here.
    ("QD030_MistpeakValleyDemondoor" vs "QD030_MistpeakValleyDemonDoor")

    When I changed every instance of "Demondoor" to "DemonDoor" it finally registered progress to the "Set them Free!" quest. The door doesn't start the opening animation and keeps talking, but you can go up to it and the prompt to enter appears as normal. You can open the chest inside without problem as well.

    Corrected would be:

    if not Layers.IsLayerActive("QD030_MistpeakValleyDemonDoorTransition") then
    QuestTracker.SetAsCompleted(GetLocalHero(), "QD030_MistpeakValleyDemonDoor")
    Layers.ActivateLayer("QD030_MistpeakValleyDemonDoorTransition")
    end

    I put it into "MyScript01.lua" to see if it worked immediately, but I'm sure it would work fine on "MyScript02.lua", you'd just need to exit and enter Sanctuary (if you're currently in front of it), teleport or walk to Mistpeak, etc.

    Edit: Looking at the forum linked in the description (http://fable3mod.com/forums/index.php?t=msg&th=225&start=0&) yeah it seems that the script was not copied correctly (honest typo to make tbh). Also copy pasting directly from here created an unidentified character in the lua file right before the if statement, not sure if it affects anything (as I'd been erasing it from the beginning), but just erasing it should be fine.
  7. QuentinStyger
    QuentinStyger
    • member
    • 0 kudos
    Myst Valley Demon Door script not working.
  8. dioxyde0
    dioxyde0
    • supporter
    • 4 kudos
    your weapon script works for me, but not the mistpeak door one
  9. vixenfinder
    vixenfinder
    • member
    • 3 kudos
    I'm looking for a command that manipulates Morality as well as setting a fixed amount of guild seals. If anyone knows of some please share
    1. Humanist1996
      Humanist1996
      • member
      • 1 kudos
      Have you searched the file I linked to in the sticky post? I'm fairly confident you might find what you are looking for. Guild seals, I have provided a code for adding them have you tried that?
  10. Pedophilehunter
    Pedophilehunter
    • member
    • 0 kudos
    Where do I put the data folder?
    1. Humanist1996
      Humanist1996
      • member
      • 1 kudos
      Where exactly are you stuck @pedophilehunter?
  11. RadicalRaif
    RadicalRaif
    • member
    • 0 kudos
    Is there a script to open gates early on the Road to Rule? Or to obtain/open the chests early if we can't open the gates? Thanks!
    1. RadicalRaif
      RadicalRaif
      • member
      • 0 kudos
      This was just posted, and it has what I am looking for: https://www.reddit.com/user/The_Architect_032/comments/189pax6/fable_3_road_to_rule_debug/

      Here is the advice provided by the poster of the code: "Here are all of the commands for road to rule, some of them won't work. If the unlock all command doesn't work, you may have to do it for each  individual one. I've never done unlock all, but I know that the individual ones I've done have worked. Also, I'm sorry for the formatting, Reddit feels the need to make it look that way for some reason. I'd recommend copying it all into a txt file so that it's easier to read and use."

    2. RadicalRaif
      RadicalRaif
      • member
      • 0 kudos
      And I just realized the code was in fact in the document provided at the top, near the bottom of the document. Now I feel silly. Either way, the link is there too.
    3. Humanist1996
      Humanist1996
      • member
      • 1 kudos
      @RadicalRaif glad to hear you found the code. Feel free to mention why you wanted to do it and how you did it! Maybe other will want to do the same thing you did