def SpawnRandom():
    mod = Mod('spawn_randomizer.bl3hotfix',
              'Spawn Randomizer',
              'SSpyR',
              ['Mod that randomizes enemies spawns to varying success'],
              lic=Mod.CC_BY_SA_40)

    data = BL3Data()

    dir = os.path.dirname(os.path.realpath(__file__))
    if "\\" in dir:
        dir = dir.replace('\\', '/')
    dir = dir + '/utils/'

    bpchars = open(os.path.join(dir, 'bpchars.txt')).readlines()
    spawnoptions = open(os.path.join(dir, 'spawnoptions.txt')).readlines()

    for spwop in spawnoptions:
        auxchar = bpchars.copy()
        allexports = data.get_data(spwop)
        try:
            optdata = data.get_exports(spwop, 'SpawnOptionData')[0]
            for idx, option in enumerate(optdata['Options']):
                export_idx = option['Factory']['export']
                randchar = random.choice(auxchar)
                bpchar = randchar
                index = auxchar.index(bpchar)
                del auxchar[index]
                cond = bpchar.split('/')
                cond = '.' + cond[len(cond) - 1] + '_C'
                bpchar = bpchar + cond

                factory = allexports[export_idx - 1]
                location = None
                try:
                    location = factory['SpawnExtent']
                except KeyError:
                    print('No Spawn Extent')

                mod.reg_hotfix(
                    Mod.EARLYLEVEL, 'MatchAll', str.rstrip(spwop),
                    'Options.Options[{}].Factory.Object..AIActorClass'.format(
                        idx),
                    Mod.get_full_cond(bpchar, 'BlueprintGeneratedClass'))
                mod.newline()
                #if location != None:
                #    location['z']=900
                #    heightnum=location['z']

                #    mod.reg_hotfix(Mod.EARLYLEVEL, 'MatchAll',
                #    str.rstrip(spwop),
                #    'Options.Options[{}].Factory.Object..SpawnExtent'.format(idx),
                #    location
                #    )
                #    mod.newline()

        except IndexError:
            print('No Exports of Type SpawnOptionData')
예제 #2
0
# Going to try to import only what I need to save on space and calculation time
# My files
from tkinter.constants import BOTTOM, LEFT, RIGHT, TOP
from bl3data import BL3Data
from __info_function__ import Create_HotFix_File, FileChoice, openBL3Hotfixfile
from _global_lists import Mod_Header, Reg_hotfix, DataBase_Results, Queue_Order, Comment_str, Header_lines_str
from _global_lists import List_Info, ListBoxWindow
################################################################################################################################################################
# Libraies
import tkinter as tk
from tkinter import Entry, Button, Label, Tk, StringVar, Frame
from tkinter import DISABLED
################################################################################################################################################################
# Global variables
data = BL3Data()
Stan_Font = ("Times New Roman", 10)
# Stan_Font = ("Wingdings 2", 12)
# Stan_Font = ("Courier New", 12)

################################################################################################################################################################
#Creates a new window for the user to see and for the commands to be used
# test = data.get_refs_from_data("valdof")
# for info in test:
#     print(info)


def SelectionWindow(Func):
    # Global/Window variables
    SelectionWindow = Tk()
    #These are for sotring the feilds of information
    Frame_Left = Frame(SelectionWindow, borderwidth=2)
예제 #3
0
# I have to put the program like this because in order to make hotfixes in the way
# the bl3data/bl3hotfixmod work, it has to be executed in a row in order to work
from bl3hotfixmod import Mod
from bl3data import BL3Data
from _global_lists import Mod_Header, Reg_hotfix, Table_Hotfix, Mesh_Hotfix, Queue_Order, Comment_Queue, Headers_Queue
################################################################################################################################################################
DATA = BL3Data()
#####################################################################################################################################################################################


def Create_HotFix_File():
    # All these are different indexes because they are all going to pull from different queues, and I need to kepp track of them indifidually.
    Queue_Index = 0  # This is a special one. one you add sometihng to a hotfix or call a new line, that command is added a queue list and thats how my program knows what order to go in when creating your hotfix
    Reg_Index = 0
    Table_Index = 0
    Mesh_Index = 0
    Comment_Index = 0
    Header_Index = 0
    # Create hotfix file from information
    # If you don't give it someting, this is what I will replace it with as the program needs to be able to call apon this file later to inset things into it
    # Also its a little bit of an easter egg
    if len(Mod_Header) < 6:
        Mod_Header.extend(
            ["Chadd", "Chadd", "Chadd", "Chadd", "Chadd", "Chadd"])

    # We need this to be the first step, as the rest of the program depends on it
    File_Name, Mod_Title, Author_Name, Description, Version, Catagory = Mod_Header[
        0], Mod_Header[1], Mod_Header[2], Mod_Header[3], Mod_Header[
            4], Mod_Header[5]
    mod = Mod(
        File_Name + '.bl3hotfix',
def SkillRandom():
    mod = Mod(
        'skill_randomizer.bl3hotfix',
        'Skill Randomizer',
        'SSpyR', [
            'A supplement mod to my Gear Randomizer mod that',
            'will randomize skills on your character with skills from all VHs.'
        ],
        lic=Mod.CC_BY_SA_40)

    data = BL3Data()

    skilltrees = [
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Character/ActionSkill/SkillTree/AbilityTree_Branch_Bond',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Character/ActionSkill/SkillTree/AbilityTree_Branch_HitAndRun',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Character/ActionSkill/SkillTree/AbilityTree_Branch_RangedSupport',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Character/Inventory/AbilityTree_Branch_BottomlessMag',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Character/Inventory/AbilityTree_Branch_Explosions',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Character/Inventory/AbilityTree_Branch_Guardian',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Character/Inventory/AbilityTree_Operative_Gadgeteer',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Character/Inventory/AbilityTree_Operative_Hitman',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Character/Inventory/AbilityTree_Operative_Rampart',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Character/Inventory/AbilityTree_Siren_Brawl',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Character/Inventory/AbilityTree_Siren_FistOfTheElements',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Character/Inventory/AbilityTree_Siren_MysticalAssault',
        '/Game/PlayerCharacters/Beastmaster/_DLC/Ixora/Character/AbilityTree_Beastmaster_DLCTree',
        '/Game/PlayerCharacters/Gunner/_DLC/Ixora/Character/AbilityTree_Gunner_DLCTree',
        '/Game/PlayerCharacters/Operative/_DLC/Ixora/Character/AbilityTree_Operative_DLCTree',
        '/Game/PlayerCharacters/SirenBrawler/_DLC/Ixora/Character/AbilityTree_Siren_DLCTree'
    ]

    skills = [
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond1/Passive_Beastmaster_Bond_1',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond10/Passive_Beastmaster_Bond10',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond11/Passive_Beastmaster_Bond11',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond3/Passive_Beastmaster_Bond3',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond4/Passive_Beastmaster_Bond4',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond5/Passive_Beastmaster_Bond5',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond7/Passive_Beastmaster_Bond7',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond8/Passive_Beastmaster_Bond8',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond9/Passive_Beastmaster_Bond9',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond_Frenzy/Passive_Beastmaster_Bond_Frenzy',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun6/Passive_Beastmaster_HitAndRun_6',
        '/Game/PlayerCharacters/Beastmaster/Pet/_Shared/_Design/Abilities/Ability_PetShared_GeneticLink',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Bond2/Passive_Beastmaster_Bond2',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun1/Passive_Beastmaster_HitAndRun_1',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun10/Passive_Beastmaster_HitAndRun10',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun11/Passive_Beastmaster_HitAndRun11',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun2/Passive_Beastmaster_HitAndRun_2',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun3/Passive_Beastmaster_HitAndRun_3',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun4/Passive_Beastmaster_HitAndRun_4',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun5/Passive_Beastmaster_HitAndRun_5',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun7/Passive_Beastmaster_HitAndRun_7',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun8/Passive_Beastmaster_HitAndRun8',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/HitAndRun9/Passive_Beastmaster_HitAndRun9_NotBroken',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged1/Passive_Beastmaster_Ranged1',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged10/Passive_Beastmaster_Ranged10_NEW',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged11/Passive_Beastmaster_Ranged11',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged2/Passive_Beastmaster_Ranged2',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged3/Passive_Beastmaster_Ranged3',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged4/Passive_Beastmaster_Ranged4',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged5/Passive_Beastmaster_Ranged5',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged6/Passive_Beastmaster_Ranged6',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged7/Passive_Beastmaster_Ranged7',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged8/Passive_Beastmaster_Ranged8',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged9/Passive_Beastmaster_Ranged9',
        '/Game/PlayerCharacters/Beastmaster/_Shared/_Design/Passives/Ranged_Capstone/Passive_Beastmaster_Ranged_Capstone',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/AmmoRegen/Passive_Gunner_Forge',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/BotJockBlitz/Passive_Gunner_BotJockBlitz',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/ClickClick/PassiveSkill_Gunner_ClickClick',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/CloudOfLead/PassiveSkill_Gunner_CloudOfLead',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/MatchedSet/Passive_Gunner_MatchedSet',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/Redistribution/Passive_Gunner_Redistribution',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/ScorchingRPMs/PassiveSkill_Gunner_ScorchingRPM',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/Scrappy/PassiveSkill_Gunner_Scrappy',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/SomeForTheRoad/Passive_Gunner_SomeForTheRoad',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/StokeTheEmbers/PassiveSkill_Gunner_StokeTheEmbers',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_BottomlessMags/TheIronBank/PassiveSkill_Gunner_TheIronBank',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/AceUpIronBear/PassiveSkill_Gunner_AceUpIronBear',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/FireInTheSkagDen/PassiveSkill_Gunner_FireInSkagDen',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/FiveYearPlan/Passive_Gunner_ExplosivePuncutation',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/GrenadeCrit/PassiveSkill_Gunner_GrenadeCrit',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/Grizzled/PassiveSkill_Gunnerner_Grizzled',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/MeansOfDestruction/PassiveSkill_Gunner_MeansOfDestruction',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/NewDemoPassive/Passive_Gunner_Vampyr',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/NewDemoPassive2/Passive_Gunner_TorgueCrossPromo',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/ShortFuse/PassiveSkill_IronBear_ShortFuse',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/StainlessSteelBear/PassiveSkill_Gunner_StainlessSteelBear',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/SteelHardpoints/Passive_Gunner_Deadlines',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_DemolitionWoman/WhyCantICarryAllTheseGrenades/PassiveSkill_Gunner_WhyCantICarryAllTheseGrenades',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/ArmoredInfantry/Passive_Gunner_ArmoredInfantry',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/BehindTheIronCurtain/PassiveSkill_Gunner_BehindTheIronCurtain_New',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/DrowningInBrass/PassiveSkill_Gunner_DrowningInBrass',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/ExperimentalMunitions/Passive_Gunner_ExperimentalMunitions',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/ForceFeedback/PassiveSkill_Gunner_ForceFeedback',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/FullCan/Passive_Gunner_FullCan',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/LowHpDamage/PassiveSkill_Gunner_LowHPDamage',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/PhalanxDoctrine/Passive_Gunner_PhalanxDoctrine',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/SelflessVengeance/Passive_Gunner_SelflessVengeance',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/ShieldCapacity/Passive_Gunner_ThinRedLine',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/TenaciousDefense/Passive_Gunner_Tenacious',
        '/Game/PlayerCharacters/Gunner/_Shared/_Design/Passives/_Tree_UrsaCorps/VladofIngenuity/PassiveSkill_Gunner_VladofIngenuity',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/AbstractGrenades/PassiveSkill_Operative_AbstractGrenades',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/BoomEnhance/PassiveSkill_Operative_BoomEnhance',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/BorrowedTime/PassiveSkill_Operative_BorrowedTime',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/Donnybrook/PassiveSkill_Operative_Donnybrook',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/DuctTapeMod/PassiveSkill_Operative_DuctTapeMod',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/LikeAGhost/PassiveSkill_Operative_LikeAGhost',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/MultiTasker/PassiveSkill_Operative_Multitasker',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/PocketFullOfGrenades/PassiveSkill_Operative_PocketFullOfGrenades',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/Praemunitus/PassiveSkill_Operative_Praemunitus',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/SupersonicMan/PassiveSkill_Operative_SupersonicMan',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/CloneTree/TrickOfTheLight/PassiveSkill_Operative_TrickOfTheLight',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/ColdBore/PassiveSkill_Operative_ColdBore',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/CoolHand/PassiveSkill_Operative_CoolHand',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/DeathFollowsClose/PassiveSkill_Operative_DeathFollowsClose',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/GoodMisfortune/PassiveSkill_Operative_GoodMisfortune',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/PlayingDirty/PassiveSkill_Operative_PlayingDirty',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/SeeinRed/PassiveSkill_Operative_SeeinRed',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/Violent_Momentum/PassiveSkill_Operative_Violent_Momentum',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/Violent_Speed/Passive_Operative_Violent_Speed',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/ViolentViolence/PassiveSkill_Operative_ViolentViolence',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/DroneTree/WantVsNeed/PassiveSkill_Operative_WantVsNeed',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/Adrenaline/PassiveSkill_Operative_Adrenaline',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/CalmCoolCollected/PassiveSkill_Operative_CalmCoolCollected',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/Chancer/PassiveSkill_Operative_Chancer',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/ConfidentCompetence/PassiveSkill_Operative_ConfidentCompetence',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/CoolerHeads/PassiveSkill_Operative_CoolerHeads',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/ElementalNullifier/PassiveSkill_Operative_ElementalNullifier',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/ExtraParts/PassiveSkill_Operative_ExtraParts',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/NervesOfSteel/PassiveSkill_Operative_NervesOfSteel',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/NotOrdinaryOrdnance/PassiveSkill_Operative_NotOrdinaryOrdnance',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/ReadyForAction/PassiveSkill_Operative_ReadyForAction',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/ReallyExpensiveJacket/PassiveSkill_Operative_ReallyExpensiveJacket',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/Refreshment/PassiveSkill_Operative_Refreshment',
        '/Game/PlayerCharacters/Operative/_Shared/_Design/Passives/BarrierTree/SelfModulatingShields/PassiveSkill_Operative_SelfModulatingShields',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/ArmsDeal/PassiveSkill_Siren_ArmsDeal',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/BareKnuckle/PassiveSkill_Siren_BareKnuckle',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/Clarity/PassiveSkill_Siren_Clarity',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/DoUntoOthers/PassiveSkill_Siren_DoUntoOthers',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/FindYourCenter/PassiveSkill_Siren_FindYourCenter',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/GuardianAngel/PassiveSkill_Siren_GuardianAngel',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/HelpingHands/PassiveSkill_Siren_HelpingHands',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/Mindfulness/PassiveSkill_Siren_Mindfulness',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/OneWithNature/PassiveSkill_Siren_OneWithNature',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/Overrun/PassiveSkill_Siren_Overrun',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/PersonalSpace/PassiveSkill_Siren_PersonalSpace',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/RootToRise/PassiveSkill_Siren_RootToRise',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/Samsara/PassiveSkill_Siren_Samsara',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/BrawlTree/Vigor/PassiveSkill_Siren_Vigor',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Anima/PassiveSkill_Siren_Anima',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Conflux/PassiveSkill_Siren_Conflux',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/DeepWell/Passive_Siren_DeepWell',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Dread/PassiveSkill_Siren_Dread',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Empowered/PassiveSkill_Siren_Empowered',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/FearPassThroughMe/PassiveSkill_Siren_FearPassThroughMe',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/IlluminatedFist/PassiveSkill_Siren_IlluminatedFist',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Infusion/Passive_Siren_Infusion',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/ShieldOfThought/PassiveSkill_Siren_ShieldOfThought',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/SteadyHands/Passive_Siren_SteadyHands',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Sustainment/Passive_Siren_Sustainment',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Tempest/PassiveSkill_Siren_Tempest',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/ManifestTree/Wildfire/PassiveSkill_Siren_Wildfire',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Alacrity/PassiveSkill_Siren_Alacrity',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Ascendant/PassiveSkill_Siren_Ascendant',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Avatar/PassiveSkill_Siren_Avatar',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Awakening/Passive_Siren_Awakening',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/DoHarm/PassiveSkill_Siren_DoHarm',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/FastHands/PassiveSkill_Siren_FastHands',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/FromRest/PassiveSkill_Siren_FromRest',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/LaidBare/PassiveSkill_Siren_LaidBare',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Remnant/PassiveSkill_Siren_Remnant',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Restless/PassiveSkill_Siren_Restless',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Transcend/Passive_Siren_Transcend',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/ViolentTapestry/PassiveSkill_Siren_ViolentTapestry',
        '/Game/PlayerCharacters/SirenBrawler/_Shared/_Design/Passives/RuinTree/Wrath/Passive_Siren_Wrath',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_02/Passive_Beastmaster_DLCSkill_2',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_03/Passive_Beastmaster_DLCSkill_3',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_04/Passive_Beastmaster_DLCSkill_4',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_05/Passive_Beastmaster_DLCSkill_5',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_07/Passive_Beastmaster_DLCSkill_7',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_08/Passive_Beastmaster_DLCSkill_8',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_09/Passive_Beastmaster_DLCSkill_9',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_11/Passive_Beastmaster_DLCSkill_11',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_12/Passive_Beastmaster_DLCSkill_12',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_13/Passive_Beastmaster_DLCSkill_13',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_15/Passive_Beastmaster_DLCSkill_15',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_16/Passive_Beastmaster_DLCSkill_16',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_17/Passive_Beastmaster_DLCSkill_17',
        '/Game/Beastmaster/_DLC/Ixora/Passives/DLCSkill_18/Passive_Beastmaster_DLCSkill_18',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_01/Passive_Gunner_DLCSkill_1',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_02/Passive_Gunner_DLCSkill_2',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_03/Passive_Gunner_DLCSkill_3',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_04/Passive_Gunner_DLCSkill_4',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_05/Passive_Gunner_DLCSkill_5',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_06/Passive_Gunner_DLCSkill_6',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_07/Passive_Gunner_DLCSkill_7',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_09/Passive_Gunner_DLCSkill_9',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_11/Passive_Gunner_DLCSkill_11',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_12/Passive_Gunner_DLCSkill_12',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_13/Passive_Gunner_DLCSkill_13',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_14/Passive_Gunner_DLCSkill_14',
        '/Game/Gunner/_DLC/Ixora/Passives/DLCSkill_15/Passive_Gunner_DLCSkill_15',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_01/Passive_OperativeDLC_1',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_02/Passive_OperativeDLC_2',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_03/Passive_OperativeDLC_3',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_04/Passive_OperativeDLC_4',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_06/Passive_OperativeDLC_6',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_08/Passive_OperativeDLC_8',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_09/Passive_OperativeDLC_9',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_10/Passive_OperativeDLC_10',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_12/Passive_OperativeDLC_12',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_14/Passive_OperativeDLC_14',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_15/Passive_OperativeDLC_15',
        '/Game/Operative/_DLC/Ixora/Passives/DLCSkill_16/Passive_OperativeDLC_16',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_02/Passive_Siren_DLCSkill_2',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_03/Passive_Siren_DLCSkill_3',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_04/Passive_Siren_DLCSkill_4',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_05/Passive_Siren_DLCSkill_5',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_06/Passive_Siren_DLCSkill_6',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_07/Passive_Siren_DLCSkill_7',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_10/Passive_Siren_DLCSkill_10',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_11/Passive_Siren_DLCSkill_11',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_13/Passive_Siren_DLCSkill_13',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_14/Passive_Siren_DLCSkill_14',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_15/Passive_Siren_DLCSkill_15',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_16/Passive_Siren_DLCSkill_16',
        '/Game/SirenBrawler/_DLC/Ixora/Passives/DLCSkill_17/Passive_Siren_DLCSkill_17'
    ]

    #Basic way of grabbing randomly from a list without duplicates, do a separate instance of this for each VH
    #aux=range(len(data))
    #while aux:
    #    posit=random.randrange(len(aux))
    #    index=aux[posit]
    #    elem=data[index]
    #    #alters the auxiliary list only
    #    del aux[posit]
    #    #elem is the skill in this case

    #Need to do each tree by each tier in order found in the serialized file, due to structures of trees, lots of hotfixes

    for tree in skilltrees:
        aux = skills.copy()
        tier = 1
        while tier <= 6:
            item = 0
            while item <= 2:
                randskill = random.choice(aux)
                skill = randskill
                index = aux.index(skill)
                del aux[index]

                skill_ref = skill.split('/')
                skill_ref = skill_ref[(len(skill_ref) - 1)]
                skill_ref = skill_ref + '.' + skill_ref + '_C'

                mod.reg_hotfix(
                    Mod.PATCH, '', tree,
                    'Tiers.Tiers[{}].Object..Items.Items[{}].Object..AbilityClass'
                    .format(tier, item),
                    Mod.get_full_cond(skill_ref, 'BlueprintGeneratedClass'))

                mod.reg_hotfix(
                    Mod.PATCH, '', tree,
                    'Tiers.Tiers[{}].Object..Items.Items[{}].Object..ItemFrameName'
                    .format(tier, item), '')

                item = item + 1
            tier = tier + 1