├── .gitignore ├── 02Mods ├── build_files │ ├── un_cooked_raw_ue4_files │ │ └── Content │ │ │ ├── Blueprints │ │ │ └── SoftReset │ │ │ │ └── SoftResetWidget.uasset │ │ │ └── Maps │ │ │ ├── RebellisGameTitle.umap │ │ │ ├── RebellisGameTitle_OG.umap │ │ │ └── SoftReset02.umap │ └── un_packaged_cooked_mod_files │ │ └── SoftReset │ │ └── KINGDOM HEARTS 0.2 Birth by Sleep │ │ └── Content │ │ ├── Blueprints │ │ └── SoftReset │ │ │ ├── SoftResetWidget.uasset │ │ │ └── SoftResetWidget.uexp │ │ └── Maps │ │ ├── RebellisGameTitle.uexp │ │ ├── RebellisGameTitle.umap │ │ ├── RebellisGameTitle_OG.uexp │ │ ├── RebellisGameTitle_OG.umap │ │ ├── SoftReset02.uexp │ │ └── SoftReset02.umap ├── readme.md └── scripts │ └── SoftReset.pak ├── 1FMMods ├── randofiles │ ├── french.txt │ ├── german.txt │ └── spanish.txt ├── readme.md └── scripts │ ├── 1fm1HP.lua │ ├── 1fm4By3.lua │ ├── 1fmAchievements.lua │ ├── 1fmAutoattack.lua │ ├── 1fmBeepHack.lua │ ├── 1fmChaos.lua │ ├── 1fmConsistentFinishers.lua │ ├── 1fmEarlySkip.lua │ ├── 1fmEnemyRando.lua │ ├── 1fmFastCamera.lua │ ├── 1fmFasterAnims.lua │ ├── 1fmFasterDialogue.lua │ ├── 1fmHookShip.lua │ ├── 1fmInstantGummi.lua │ ├── 1fmRandoSomeLogic.lua │ ├── 1fmSaveAnywhere.lua │ ├── 1fmUnlock0Volume.lua │ ├── 1fmUnskippable.lua │ └── io_packages │ ├── EGSGlobal_1_0_0_10.lua │ ├── EGSGlobal_1_0_0_8.lua │ ├── EGSGlobal_1_0_0_9.lua │ ├── EGSJP_1_0_0_10.lua │ ├── EGSJP_1_0_0_8.lua │ ├── EGSJP_1_0_0_9.lua │ ├── Rando │ ├── chests.lua │ ├── enemyTables.lua │ ├── itemNames.lua │ ├── rewards.lua │ └── settings.lua │ ├── SteamGlobal_1_0_0_1.lua │ ├── SteamGlobal_1_0_0_2.lua │ ├── SteamJP_1_0_0_1.lua │ ├── SteamJP_1_0_0_2.lua │ └── VersionCheck.lua ├── 2FMMods ├── readme.md └── scripts │ ├── 2fmAutoAttack.lua │ ├── 2fmAutosave.lua │ ├── 2fmCreditSkip.lua │ ├── 2fmGummiSkip.lua │ ├── 2fmLaserDomeSkip.lua │ ├── 2fmLoadSaveMenu.lua │ ├── 2fmQuickHP0.lua │ ├── 2fmSaveAnywhere.lua │ ├── 2fmSoftReset.lua │ └── io_packages │ ├── EGSGlobal_1_0_0_10.lua │ ├── EGSGlobal_1_0_0_9.lua │ ├── EGSJP_1_0_0_10.lua │ ├── EGSJP_1_0_0_9.lua │ ├── SteamGlobal_1_0_0_1.lua │ ├── SteamGlobal_1_0_0_2.lua │ ├── SteamJP_1_0_0_1.lua │ ├── SteamJP_1_0_0_2.lua │ └── VersionCheck.lua ├── BBSMods ├── readme.md └── scripts │ ├── bbsSoftReset.lua │ ├── bbsUnlockCharacterSelect.lua │ └── io_packages │ ├── EpicGamesGlobal.lua │ ├── EpicGamesJP.lua │ ├── SteamGlobal.lua │ ├── SteamJP.lua │ └── VersionCheck.lua ├── DDDMods ├── readme.md └── scripts │ ├── 3dOvercast.lua │ ├── 3dSoftReset.lua │ ├── 3dUnlockCrit.lua │ └── io_packages │ ├── EpicGamesGlobal.lua │ ├── EpicGamesJP.lua │ ├── SteamGlobal.lua │ ├── SteamJP.lua │ └── VersionCheck.lua ├── GLOSSARY.md ├── LICENSE ├── LUA.md ├── LUA_DDD.md ├── LoadRemovers ├── KH02.asl ├── KH1.asl ├── KH2.asl ├── KH3.asl ├── KHBBS.asl ├── KHDDD.asl ├── KHMoM.asl ├── KHReCoM.asl └── readme.md ├── RANDO.md ├── README.md ├── ReCoMMods ├── readme.md └── scripts │ ├── io_packages │ ├── EpicGamesGlobal.lua │ ├── EpicGamesJP.lua │ ├── SteamGlobal.lua │ ├── SteamJP.lua │ └── VersionCheck.lua │ ├── recomRebirthUnlock.lua │ └── recomSoftReset.lua ├── images ├── backend_epic_io_packages.png ├── backend_steam_io_packages.png ├── backend_terminal.png ├── backend_terminal_ddd.png ├── epic_docs.png ├── epic_install.png ├── epic_install_ddd.png ├── epic_toml.png ├── epic_toml_ddd.png ├── frontend_io_packages.png ├── game_scripts.png ├── io_packages.png ├── live_split_activate.png ├── live_split_browse.png ├── live_split_layout.png ├── lua_frontend_randofiles.png ├── luafrontend_config.png ├── luafrontend_folders.png ├── luafrontend_test.png ├── omm_scripts_folder.png ├── openkh_mod_manager.png ├── rando_files.png ├── rando_lua.png ├── repo_install.png ├── scripts_folder.png ├── scripts_folder_ddd.png ├── steam_docs.png ├── steam_install.png ├── steam_install_ddd.png ├── steam_toml.png ├── steam_toml_ddd.png └── versioned_io_packages.png ├── mod.yml └── test_lua ├── test_bbs.lua ├── test_ddd.lua ├── test_kh1.lua ├── test_kh2.lua └── test_recom.lua /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.exe 3 | *.zip 4 | 1FMMods/seed.txt 5 | 1FMMods/itemdata 6 | *.dll 7 | *.save 8 | 1FMMods/randofiles/seed.txt 9 | 1FMMods/randofiles/spoilers.txt 10 | KH1MdlsListings.rtf 11 | -------------------------------------------------------------------------------- /02Mods/build_files/un_cooked_raw_ue4_files/Content/Blueprints/SoftReset/SoftResetWidget.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_cooked_raw_ue4_files/Content/Blueprints/SoftReset/SoftResetWidget.uasset -------------------------------------------------------------------------------- /02Mods/build_files/un_cooked_raw_ue4_files/Content/Maps/RebellisGameTitle.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_cooked_raw_ue4_files/Content/Maps/RebellisGameTitle.umap -------------------------------------------------------------------------------- /02Mods/build_files/un_cooked_raw_ue4_files/Content/Maps/RebellisGameTitle_OG.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_cooked_raw_ue4_files/Content/Maps/RebellisGameTitle_OG.umap -------------------------------------------------------------------------------- /02Mods/build_files/un_cooked_raw_ue4_files/Content/Maps/SoftReset02.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_cooked_raw_ue4_files/Content/Maps/SoftReset02.umap -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Blueprints/SoftReset/SoftResetWidget.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Blueprints/SoftReset/SoftResetWidget.uasset -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Blueprints/SoftReset/SoftResetWidget.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Blueprints/SoftReset/SoftResetWidget.uexp -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle.uexp -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle.umap -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle_OG.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle_OG.uexp -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle_OG.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/RebellisGameTitle_OG.umap -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/SoftReset02.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/SoftReset02.uexp -------------------------------------------------------------------------------- /02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/SoftReset02.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/build_files/un_packaged_cooked_mod_files/SoftReset/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Maps/SoftReset02.umap -------------------------------------------------------------------------------- /02Mods/readme.md: -------------------------------------------------------------------------------- 1 | ## Update status 2 | All mods have been updated to work with the following versions: 3 | - Epic Games: 1.0.0.9 (Global + JP) 4 | - Steam: 1.0.0.1 (Global + JP) 5 | 6 | This is not the current version of the game and thus will not work unless patched down or this is updated 7 | 8 | ## Note for Steam version 9 | Unless the mods are updated for Steam version, you must get rid of the pak files with a `_0_P` at the end of the filename in the Content folder 10 | 11 | ## How to use: 12 | - Copy SoftReset.pak to /KH_2.8/KINGDOM HEARTS 0.2 Birth by Sleep/Content/Paks 13 | 14 | ### SoftReset 15 | - Press "]" key to open reset prompt and "Y" to confirm 16 | -------------------------------------------------------------------------------- /02Mods/scripts/SoftReset.pak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/02Mods/scripts/SoftReset.pak -------------------------------------------------------------------------------- /1FMMods/scripts/1fm1HP.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fm1HP" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Forces Sora's max HP to 1 and removes beeping noise" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | if canExecute then 9 | WriteByte(beepHack, 1) 10 | end 11 | else 12 | ConsolePrint("KH1 not detected, not running script") 13 | end 14 | end 15 | 16 | function _OnFrame() 17 | if canExecute then 18 | WriteByte(maxHP, 1) 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fm4By3.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fm4By3" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Changes aspect ratio. Visit display settings to apply" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH1 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | WriteFloat(height, 12.0) -- Sets aspect ratio to 16:12 = 4:3 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmAchievements.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmAchievements" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Achievement tracker for plat% speedruns" 4 | 5 | local prevAch = {0,0} 6 | local curAch = {0,0} 7 | 8 | local achievementList = { 9 | "Proud Player ", 10 | "Final Mix Master ", 11 | "Novice Player ", 12 | "Unchanging Armor ", 13 | "Undefeated ", 14 | "Speedster ", 15 | "He Who Doesn't Exist ", 16 | "The Cloaked Shadow ", 17 | "The Sandy Blade ", 18 | "Novice Hero ", 19 | "Artisan Hero ", 20 | "Hero of the Coliseum ", 21 | "Coliseum Champion ", 22 | "The Frosty Giant ", 23 | "One-Winged Angel ", 24 | "Supreme Soloist ", 25 | "Time Attacker ", 26 | "Level Master ", 27 | "Treasure Hunter ", 28 | "From Rags to Riches ", 29 | "Heartless Hunter ", 30 | "Where the Bells Toll ", 31 | "The Rabbit Hole ", 32 | "Junior Hero ", 33 | "Member of the Tribe ", 34 | "Magic Lamp ", 35 | "Honest Soul ", 36 | "Master of the Seas ", 37 | "Pumpkin Prince ", 38 | "Pixie Dust ", 39 | "End of the World ", 40 | "Pooh's Friend ", 41 | "Record Keeper ", 42 | "Storyteller ", 43 | "Searcher ", 44 | "Professor ", 45 | "Top Dog ", 46 | "Best Friend ", 47 | "Mini-game Maniac ", 48 | "Synthesis Master ", 49 | "First Synthesis ", 50 | "Synthesis Novice ", 51 | "Synthesis Amateur ", 52 | "Synthesis Vet ", 53 | "Gummi Ship Collector ", 54 | "Flying Ace ", 55 | "Customizer ", 56 | "Top Gun ", 57 | "Test Pilot ", 58 | "Veteran Pilot ", 59 | "Ace Pilot ", 60 | "Oathkeeper ", 61 | "Blade Master ", 62 | "Master Magician ", 63 | "Master Defender " 64 | } 65 | 66 | function _OnInit() 67 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 68 | Track(-1) 69 | require("VersionCheck") 70 | else 71 | ConsolePrint("KH1 not detected, not running script") 72 | end 73 | end 74 | 75 | local function Track(achID) 76 | local f = io.open("achievements.txt") 77 | if not f then 78 | local fw = io.open("achievements.txt", "w") 79 | fw:close() 80 | f = io.open("achievements.txt") 81 | end 82 | local contents = f:read("*a"):gsub("-", " ") 83 | f:close() 84 | local achCount = 0 85 | for j=1,#achievementList do 86 | if string.find(contents, achievementList[j]:gsub("-", " ")) ~= nil then 87 | achCount = achCount + 1 88 | --ConsolePrint(achievementList[j] .. " found") 89 | elseif j == achID then 90 | --ConsolePrint(achievementList[j] .. " added") 91 | achCount = achCount + 1 92 | ConsolePrint(string.format("%s Achievement get: %s", os.date('%Y-%m-%d %H:%M:%S'), achievementList[achID])) 93 | f = io.open("achievements.txt", "a") 94 | f:write(string.format("%s %s\n", os.date('%Y-%m-%d %H:%M:%S'), achievementList[achID])) 95 | f:close() 96 | end 97 | end 98 | ConsolePrint(string.format("Progress: %d/%d", achCount, #achievementList)) 99 | end 100 | 101 | function _OnFrame() 102 | if canExecute then 103 | curAch[1] = ReadInt(ach) 104 | curAch[2] = ReadInt(ach+4) 105 | 106 | for i=1,2 do 107 | local dif = curAch[i] - prevAch[i] 108 | local achID = i*32 109 | while dif >= 1 do 110 | if dif & 1 == 1 then 111 | Track(achID) 112 | end 113 | dif = dif >> 1 114 | --ConsolePrint(string.format("%x", dif)) 115 | achID = achID - 1 116 | end 117 | prevAch[i] = curAch[i] 118 | end 119 | end 120 | end 121 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmAutoattack.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmAutoattack" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Hold attack to combo" 4 | 5 | local cooldown = 0 6 | 7 | function _OnInit() 8 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 9 | require("VersionCheck") 10 | else 11 | ConsolePrint("KH1 not detected, not running script") 12 | end 13 | end 14 | 15 | function _OnFrame() 16 | if canExecute then 17 | attackInput = (ReadByte(attInp) // (64 - (32 * ReadByte(swapped)))) % 2 == 1 18 | if ReadInt(menu) == 1 or ReadInt(dialog) == 0 then 19 | cooldown = 20 20 | elseif cooldown > 0 then 21 | cooldown = cooldown - 1 22 | end 23 | autofireState = (attackInput and ReadByte(attackCommand) and cooldown == 0) and 1 or 0 24 | WriteInt(fireState1, autofireState) 25 | WriteInt(fireState2, autofireState) 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmBeepHack.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmBeepHack" 2 | LUAGUI_AUTH = "deathofall84" 3 | LUAGUI_DESC = "Removes low health beeping noise, works up to max health of 41" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | if canExecute then 9 | WriteByte(beepHack, 1) 10 | end 11 | else 12 | ConsolePrint("KH1 not detected, not running script") 13 | end 14 | end 15 | 16 | function _OnFrame() 17 | end 18 | 19 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmChaos.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmChaos" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Randomizes many things in a chaotic way" 4 | 5 | local lastBlack = 0 6 | local airStatuses = {0, 8, 24} 7 | local validCommands = { 8 | [75] = true, [87] = true, [88] = true, [90] = true, 9 | [94] = true, [98] = true, [99] = true 10 | } 11 | local musics = {184} 12 | local musicExists = {[184] = true} 13 | local animsData = {} 14 | local commandData = {} 15 | local lastRoom = 99 16 | local baseSeed = 0 17 | 18 | function _OnInit() 19 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 20 | require("VersionCheck") 21 | if canExecute then 22 | for off = 0, 511 do 23 | local anim = ReadArray(anims + (off * 20), 20) 24 | if anim[1] >= 200 and anim[1] < 221 and anim[1] ~= 219 then 25 | animsData[off + 1] = anim 26 | end 27 | end 28 | 29 | for i = 7, 52 do 30 | if (i < 28) or (i > 30 and i < 39) or (i > 46) then 31 | validCommands[i] = true 32 | end 33 | end 34 | 35 | local commsA = ReadLong(commandMenuPointer) 36 | for i = 0, 99 do 37 | if validCommands[i] then 38 | commandData[i + 1] = ReadArray(commsA + (i * 16), 16, true) 39 | end 40 | end 41 | 42 | for i = 100, 157 do 43 | if not ((i >= 106 and i <= 109) or (i >= 113 and i <= 115) 44 | or (i >= 132 and i <= 139) or i == 126 or i == 142 45 | or i == 145 or i == 150 or i == 151 or i == 156) then 46 | musics[(#musics) + 1] = i 47 | musicExists[i] = true 48 | end 49 | end 50 | 51 | lastBlack = ReadByte(blackFade) 52 | end 53 | else 54 | ConsolePrint("KH1 not detected, not running script") 55 | end 56 | end 57 | 58 | local function Randomize() 59 | local pool = {} 60 | for i = 0, 511 do 61 | pool[(#pool) + 1] = animsData[i + 1] 62 | end 63 | 64 | for i = 0, 511 do 65 | if animsData[i+1] and #pool > 0 then 66 | WriteByte(anims + (i * 20), table.remove(pool, math.random(#pool))[1]) 67 | end 68 | end 69 | 70 | for i = 0, 9 do 71 | WriteByte(attackElement + 4 + (i * 112), math.random(5)) 72 | end 73 | 74 | pool = {} 75 | for i = 0, 99 do 76 | if commandData[i + 1] then 77 | pool[(#pool) + 1] = commandData[i + 1] 78 | end 79 | end 80 | 81 | local commsA = ReadLong(commandMenuPointer) 82 | for i = 0, 99 do 83 | if commandData[i + 1] then 84 | local command = table.remove(pool, math.random(#pool)) 85 | WriteArray(commsA + (i * 16), command, true) 86 | end 87 | end 88 | 89 | r = math.random(60) * 0.1 90 | r = r > 5 and 1 or r < 0.5 and 1 or r 91 | s = math.random(10) * 0.1 + 0.4 92 | d = math.random(10) * 0.1 + 0.4 93 | g = math.random(10) * 0.1 + 0.4 94 | for i = 0, 2 do 95 | WriteFloat(ReadLong(soraPointer) + 64 + (i * 4), s, true) 96 | WriteFloat(ReadLong(donaldPointer) + 64 + (i * 4), d, true) 97 | WriteFloat(ReadLong(goofyPointer) + 64 + (i * 4), g, true) 98 | WriteFloat(weaponSize + (i * 4), r) 99 | end 100 | 101 | math.randomseed(baseSeed + ReadByte(world)) 102 | local musicA = ReadLong(musicPointer) + 8 103 | local music1 = musics[math.random(#musics)] 104 | local music2 = musics[math.random(#musics)] 105 | for _=1, 40 do 106 | if musicExists[ReadInt(musicA, true)] then 107 | WriteByte(musicA, music1, true) 108 | end 109 | if musicExists[ReadInt(musicA + 4, true)] then 110 | WriteByte(musicA + 4, music2, true) 111 | end 112 | musicA = musicA + 32 113 | end 114 | 115 | math.randomseed(baseSeed + ReadByte(room) + ReadByte(world) * 256 + ReadByte(soraStats) * 65536) 116 | if ReadByte(musicSpeedHack) == 243 then 117 | r = math.random(10) 118 | n = r == 10 and 12 or r == 1 and -32 or 0 119 | if musicBaseSpeed == 0 then 120 | musicBaseSpeed = ReadShort(musicSpeedHack + 4) 121 | end 122 | WriteShort(musicSpeedHack + 4, musicBaseSpeed + n) 123 | end 124 | 125 | -- Movement speed 126 | WriteFloat(moveSpeed, math.random(11) + 5) 127 | 128 | for i = 0, 5 do 129 | resist = soraResist + i * 4 130 | WriteFloat(resist, ReadFloat(resist) + (math.random(20) * 0.1) - 1.0) 131 | end 132 | 133 | WriteFloat(ReadLong(soraPointer) + 644, 0.7 + math.random(6) * 0.1, true) 134 | 135 | local soraAirA = ReadLong(soraPointer) + 112 136 | local soraAir = ReadByte(soraAirA, true) 137 | if math.random(10) == 10 and (soraAir == 0 or soraAir == 8 or soraAir == 24) then 138 | WriteByte(soraAirA, airStatuses[math.random(3)], true) 139 | end 140 | end 141 | 142 | local function Revert() 143 | local commsA = ReadLong(commandMenuPointer) 144 | for i = 0, 511 do 145 | if i < 3 then 146 | WriteFloat(ReadLong(soraPointer) + 64 + (i * 4), 1, true) 147 | WriteFloat(ReadLong(donaldPointer) + 64 + (i * 4), 1, true) 148 | WriteFloat(ReadLong(goofyPointer) + 64 + (i * 4), 1, true) 149 | WriteFloat(weaponSize + (i * 4), 1) 150 | end 151 | if i < 6 then 152 | WriteFloat(soraResist + i * 4, 1) 153 | end 154 | if i < 10 then 155 | WriteByte(attackElement + 4 + (i * 112), math.random(5)) 156 | end 157 | if i < 100 and commandData[i + 1] then 158 | WriteArray(commsA + (i * 16), commandData[i + 1], true) 159 | end 160 | if animsData[i + 1] then 161 | WriteByte(anims + (i * 20), animsData[i + 1]) 162 | end 163 | end 164 | 165 | if ReadByte(musicSpeedHack) == 243 then 166 | if musicBaseSpeed == 0 then 167 | musicBaseSpeed = ReadShort(musicSpeedHack + 4) 168 | end 169 | WriteShort(musicSpeedHack + 4, musicBaseSpeed) 170 | end 171 | 172 | -- Movement speed 173 | WriteFloat(moveSpeed, 8) 174 | 175 | WriteFloat(ReadLong(soraPointer) + 644, 1.0, true) 176 | end 177 | 178 | function _OnFrame() 179 | if canExecute then 180 | local nowRoom = ReadByte(room) 181 | 182 | if ReadFloat(soraHUD) > 0 and ReadFloat(soraResist) == 1.0 then 183 | math.randomseed(baseSeed + nowRoom + ReadByte(world) * 256 + ReadByte(soraStats) * 65536) 184 | if nowRoom ~= lastRoom then 185 | Randomize() 186 | lastRoom = nowRoom 187 | ConsolePrint("Chaos! Randomized animations among other things") 188 | end 189 | end 190 | 191 | -- if ReadByte(blackFade) < 128 and lastBlack == 128 then 192 | -- Revert() 193 | -- ConsolePrint("Reverted chaos to avoid crashes") 194 | -- end 195 | 196 | lastBlack = ReadByte(blackFade) 197 | end 198 | end 199 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmConsistentFinishers.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmConsistentFinishers" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "30% chance finishers are now 100%" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH1 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if zantValue == 0 then 16 | zantValue = ReadShort(zantHack) + 78 17 | end 18 | if ReadShort(zantHack) ~= zantValue then 19 | WriteFloat(gravBreak, -1.0) 20 | WriteShort(zantHack, zantValue) 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmEarlySkip.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmEarlySkip" 2 | LUAGUI_AUTH = "denhonator/TopazTK (edited by deathofall84)" 3 | LUAGUI_DESC = "Allows skipping cutscenes without waiting for them." 4 | 5 | local lastFade = 0 6 | 7 | function _OnInit() 8 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 9 | require("VersionCheck") 10 | if canExecute then 11 | WriteInt(skipArray1, 3284180495) 12 | WriteInt(skipArray2, 3682930804) 13 | end 14 | else 15 | ConsolePrint("KH1 not detected, not running script") 16 | end 17 | end 18 | 19 | function _OnFrame() 20 | if canExecute and ReadInt(cutscene) == 1 then 21 | curFade = math.min(ReadInt(fadeBase) + 20, 128) 22 | if curFade - 30 > 0 and lastFade < curFade then 23 | WriteInt(white, 0) --white screen off 24 | for i=0,3 do 25 | WriteInt(fadeBase + (i * 4), curFade) --canskip 26 | end 27 | WriteInt(skipFlag1, 0) --canskip 28 | WriteInt(skipFlag2, 0) --canskip 29 | WriteInt(skipFlag2 + 4, 0) --canskip 30 | end 31 | lastFade = curFade 32 | end 33 | end 34 | 35 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmFastCamera.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmFastCamera" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Speeds up camera movement and camera centering" 4 | 5 | local centerSpeed = 2 6 | local overallSpeed = 1.2 7 | local accelerationSpeed = 0.001 8 | local accelerationSpeedV = 0.0014 9 | local deaccelerationSpeedV = -0.001 10 | local deaccelerationSpeed = -0.0016 11 | 12 | function _OnInit() 13 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 14 | require("VersionCheck") 15 | else 16 | ConsolePrint("KH1 not detected, not running script") 17 | end 18 | end 19 | 20 | function _OnFrame() 21 | if canExecute and ReadByte(menu) == 0 then 22 | local currentSpeedH = ReadFloat(curSpeedH) 23 | local currentSpeedV = ReadFloat(curSpeedV) 24 | 25 | if ReadFloat(cameraCenter) > 1 then 26 | WriteFloat(cameraCenter, ReadFloat(cameraCenter)-centerSpeed) 27 | end 28 | 29 | if math.abs(ReadFloat(speed)) == 1.0 then -- This way it works for inverted camera 30 | WriteFloat(speed, ReadFloat(speed) * overallSpeed) 31 | WriteFloat(speed - 4, ReadFloat(speed - 4) * overallSpeed) 32 | end 33 | 34 | if ReadFloat(curSpeedH) ~= 0 then 35 | if math.abs(ReadFloat(cameraInputH)) > 0.05 then 36 | maxH = math.max(currentSpeedH + ReadFloat(cameraInputH) * accelerationSpeed, -0.44) 37 | WriteFloat(curSpeedH, math.min(maxH, 0.44)) 38 | else 39 | WriteFloat(curSpeedH, currentSpeedH * (1.0 - deaccelerationSpeed * 10)) 40 | end 41 | end 42 | if ReadFloat(curSpeedV) ~= 0 then 43 | if math.abs(ReadFloat(cameraInputV)) > 0.05 then 44 | maxV = math.max(currentSpeedV - ReadFloat(cameraInputV) * accelerationSpeedV, -0.44) 45 | WriteFloat(curSpeedV, math.min(maxV, 0.44)) 46 | else 47 | WriteFloat(curSpeedV, currentSpeedV * (1.0 - deaccelerationSpeedV * 10)) 48 | end 49 | end 50 | end 51 | end 52 | 53 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmFasterAnims.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmFasterAnims" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Speeds up animations during which you can't play" 4 | 5 | local summonSpeedup = true 6 | local speedMult = 2.0 7 | 8 | function _OnInit() 9 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 10 | require("VersionCheck") 11 | else 12 | ConsolePrint("KH1 not detected, not running script") 13 | end 14 | end 15 | 16 | function _OnFrame() 17 | if canExecute then 18 | if ReadFloat(soraHUD) < 1 and ReadInt(inCutscene) > 0 19 | and ReadInt(inCutscene) ~= 8 and ReadInt(skippable) ~= 1025 20 | and (ReadInt(summoning) == 0 or summonSpeedup) 21 | and not ( 22 | ReadByte(world) == 6 and ReadByte(room) == 8 23 | and ReadInt(minitimer) >= 9000.0 24 | ) 25 | and not ( 26 | ReadByte(world) == 1 and ReadByte(room) == 2 27 | and (ReadByte(dialog) >= 1 and ReadByte(dialog) <= 5) 28 | ) then 29 | WriteFloat(animSpeed, speedMult) 30 | else 31 | WriteFloat(animSpeed, 1.0) 32 | end 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmFasterDialogue.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmFasterDialog" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Speeds up text boxes" 4 | 5 | local lastProg = 0 6 | local textSpeedup = false 7 | local turbo = false 8 | 9 | function _OnInit() 10 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 11 | require("VersionCheck") 12 | else 13 | ConsolePrint("KH1 not detected, not running script") 14 | end 15 | end 16 | 17 | function _OnFrame() 18 | if canExecute then 19 | WriteFloat(textTrans, 0) --finishes box transitions 20 | if ReadShort(textProg) > lastProg and lastProg > 0 and textSpeedup then --1 frame turbo 21 | WriteFloat(textSpeed, 100.0) 22 | turbo = true 23 | elseif turbo then 24 | WriteFloat(textSpeed, 1.0) 25 | end 26 | lastProg = ReadShort(textProg) 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmHookShip.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmHookShip" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Makes Hook Ship always appear when conditions are met" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH1 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | ship_check = ReadByte(hookship) == 1 or ReadByte(hookship) == 255 16 | dest_check = ReadByte(dest) == 13 and ReadByte(neverland) == 2 17 | if ship_check and dest_check then 18 | WriteByte(hookship, 0) 19 | WriteString(posDebugString, " Hook ship 100%%! ") 20 | end 21 | 22 | if dest_check and ReadByte(posDebug1) == 0 and ReadInt(inGummi) == 0 then 23 | WriteByte(posDebug1, debug1Value) 24 | WriteByte(posDebug2, 1) 25 | WriteString(posDebugString, " Hook ship 100%% ") 26 | end 27 | 28 | if not dest_check and ReadByte(posDebug1) == debug1Value then 29 | WriteByte(posDebug1, 0) 30 | WriteByte(posDebug2, 0) 31 | WriteString(posDebugString, "X : %4.2f Y : %4.2f Z : %4.2f Dir : %4.2f") 32 | end 33 | end 34 | end 35 | 36 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmInstantGummi.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmInstantGummi" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Instantly arrive at gummi destination" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH1 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | local selection = ReadInt(gummiSelect) 16 | local curDest = ReadInt(dest) 17 | if curDest >= 40 then 18 | WriteInt(gummiStart, selection) 19 | else 20 | 21 | deepJungleState = ReadByte(cutsceneFlagBase) < 16 22 | neverlandState = ReadByte(cutsceneFlagBase + 8) < 20 23 | 24 | WriteByte(worldWarpBase, deepJungleState and 0 or 14) 25 | WriteByte(worldWarpBase + 2, deepJungleState and 0 or 45) 26 | WriteByte(worldWarpBase2, neverlandState and 6 or 7) 27 | WriteByte(worldWarpBase2 + 2, neverlandState and 24 or 37) 28 | 29 | -- Replace HT and Atlantica with Monstro at first 30 | if ReadByte(monstro) < 2 and (selection == 10 or selection == 9) then 31 | selection = selection == 9 and 18 or 17 32 | end 33 | 34 | -- Change warp to Hollow Bastion 35 | if selection == 25 then 36 | selection = 15 37 | WriteInt(gummiSelect, selection) 38 | end 39 | 40 | -- Change warp to Agrabah 41 | if selection == 21 then 42 | selection = 8 43 | WriteInt(gummiSelect, selection) 44 | end 45 | 46 | selection = selection > 20 and 0 or selection 47 | WriteInt(dest, selection) 48 | WriteInt(gummiStart, selection) 49 | WriteInt(normalDrive, 0) 50 | end 51 | end 52 | end 53 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmSaveAnywhere.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmSaveAnywhere" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Read readme for button combinations" 4 | 5 | local addgummi = 0 6 | local lastInput = 0 7 | local prevHUD = 0 8 | local revertCode = false 9 | local removeWhite = 0 10 | local lastDeathPointer = 0 11 | local bossRush = false 12 | 13 | function _OnInit() 14 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 15 | require("VersionCheck") 16 | else 17 | ConsolePrint("KH1 not detected, not running script") 18 | end 19 | 20 | lastDeathPointer = ReadLong(deathPointer) 21 | end 22 | 23 | local function InstantContinue() 24 | if ReadByte(warpTrigger) == 0 then 25 | ConsolePrint("Instant continue trigger") 26 | WriteByte(warpType1, 5) 27 | WriteByte(warpType2, 12) 28 | WriteByte(warpTrigger, 2) 29 | end 30 | end 31 | 32 | local function SoftReset() 33 | ConsolePrint("Soft reset") 34 | WriteByte(warpType1, 0) 35 | WriteByte(warpType2, 0) 36 | WriteByte(cutSceneAspect, 127) 37 | if ReadByte(title) == 0 then 38 | WriteByte(title, 1) 39 | WriteInt(titlescreenamvtimer, 0) 40 | end 41 | WriteByte(warpTrigger, 2) 42 | WriteLong(closeMenu, 0) 43 | WriteInt(titlescreenamvtimer, 0) 44 | end 45 | 46 | function _OnFrame() 47 | if canExecute then 48 | if ReadByte(titlescreenpicture) == 0 then 49 | WriteByte(title, 1) 50 | end 51 | 52 | local input = ReadInt(inputAddress) 53 | local savemenuopen = ReadByte(saveOpenAddress) 54 | 55 | if input == 1793 and lastInput ~= 1793 and savemenuopen ~=4 and ReadByte(saveAnywhere) == 0 then 56 | WriteByte(saveAnywhere, 1) 57 | addgummi = 5 58 | elseif input == 1793 and ReadByte(saveAnywhere) == 1 then 59 | WriteLong(closeMenu, 0) 60 | end 61 | 62 | if input == 3968 and lastInput ~= 3968 and ReadLong(closeMenu) == 0 then 63 | InstantContinue() 64 | end 65 | 66 | if input == 3872 and lastInput ~= 3872 and ReadLong(closeMenu) == 0 then 67 | local f = io.open("autosave.dat", "rb") 68 | if f ~= nil then 69 | WriteString(continue, f:read("*a")) 70 | f:close() 71 | ConsolePrint("Loaded autosave") 72 | WriteByte(closeMenu, 0) 73 | InstantContinue() 74 | WriteFloat(cam, -1.0 + ReadByte(config + 20) * 2) 75 | WriteFloat(cam + 4, 1.0 - ReadByte(config + 24) * 2) 76 | end 77 | end 78 | 79 | if input == 3848 and lastInput ~= 3848 then 80 | SoftReset() 81 | end 82 | 83 | -- Remove white screen on death (it bugs out this way normally) 84 | if removeWhite > 0 then 85 | removeWhite = removeWhite - 1 86 | if ReadByte(white) == 128 then 87 | WriteByte(white, 0) 88 | end 89 | end 90 | 91 | -- Reverts disabling death condition check (or it crashes) 92 | if revertCode and ReadLong(deathPointer) ~= lastDeathPointer then 93 | WriteShort(deathCheck, 11892) 94 | removeWhite = 1000 95 | revertCode = false 96 | end 97 | 98 | -- R1 R2 L2 Select 99 | -- Sora HP to 0 (not necessary) 100 | -- State to combat 101 | -- Death condition check disable 102 | if input == 2817 and ReadFloat(soraHUD) > 0 and ReadByte(soraHP) > 0 103 | and ReadByte(blackFade) == 128 and ReadShort(deathCheck) == 11892 then 104 | WriteByte(soraHP, 0) 105 | WriteByte(stateFlag, 1) 106 | WriteShort(deathCheck, 37008) 107 | revertCode = true 108 | end 109 | 110 | if savemenuopen == 4 and addgummi==1 then 111 | WriteByte(menuFunction, 3) --Unlock gummi 112 | WriteByte(menuButtonCount, 5) --Set 5 buttons to save menu 113 | WriteByte(menuMaxButtonCount, 5) --Set 5 buttons to save menu 114 | WriteByte(menuItemSlotCount, 5) --Set 5 buttons to save menu 115 | for i=0,4 do 116 | WriteByte(buttonTypes + i * 4, i) --Set button types 117 | end 118 | end 119 | 120 | addgummi = addgummi > 0 and addgummi-1 or addgummi 121 | 122 | lastInput = input 123 | lastDeathPointer = ReadLong(deathPointer) 124 | 125 | -- For boss rush comment this if block out as it writes to the auto save files as well 126 | if ReadFloat(soraHUD) == 1 and prevHUD < 1 and not bossRush then 127 | local f = io.open("autosave.dat", "wb") 128 | f:write(ReadString(continue, 93184)) 129 | f:close() 130 | ConsolePrint("Wrote autosave") 131 | end 132 | prevHUD = ReadFloat(soraHUD) 133 | end 134 | end 135 | 136 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmUnlock0Volume.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fm0Volume" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Volume 1 mutes the audio channel" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | if canExecute then 9 | WriteFloat(volumeZero, 0) 10 | end 11 | else 12 | ConsolePrint("KH1 not detected, not running script") 13 | end 14 | end 15 | 16 | function _OnFrame() 17 | end 18 | 19 | -------------------------------------------------------------------------------- /1FMMods/scripts/1fmUnskippable.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmUnskippable" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Makes unskippable cutscenes skippable" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH1 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadInt(cutscene) > 0 and (ReadByte(world) == 4 or ReadByte(world) == 15) and ReadInt(summoning) == 0 then 16 | WriteByte(skippable, 1) 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/EGSGlobal_1_0_0_10.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x23405CC 4 | beepHack = 0x26C09C 5 | blackFade = 0x4DD3F8 6 | buttonTypes = 0x2E20F20 7 | closeMenu = 0x2E94BA0 8 | cutscene = 0x233F1F4 9 | cutsceneFlagBase = 0x2DEB265 10 | deathPointer = 0x2398838 11 | dest = 0x508280 12 | dialog = 0x299C508 13 | fadeBase = 0x23407D0 14 | gummiSelect = 0x507D7C 15 | gummiStart = 0x507C90 16 | hookship = 0xED751E 17 | inCutscene = 0x237CEE0 18 | inGummi = 0x50832D 19 | inputAddress = 0x23413B4 20 | maxHP = 0x2DE9D66 21 | menu = 0x232E980 22 | menuButtonCount = 0x2E20F1C 23 | menuFunction = 0x2E20FA8 24 | menuItemSlotCount = 0x2E937D2 25 | menuMaxButtonCount = 0x2E937D0 26 | minitimer = 0x232EA04 27 | reports = 0x2DEB720 28 | room = 0x2340EC4 29 | saveOpenAddress = 0x232E984 30 | skippable = 0x2398864 31 | soraHP = 0x2D5D64C 32 | soraHUD = 0x2812E9C 33 | stateFlag = 0x2867CD8 34 | summoning = 0x2D619AC 35 | textProg = 0x232E974 36 | warpTrigger = 0x22ECA8C 37 | warpType1 = 0x23405C0 38 | warpType2 = 0x22ECA90 39 | white = 0x234081C 40 | world = 0x2340ECC 41 | 42 | -- rando shared 43 | ardOff = 0x2398F30 44 | khamaActive = 0x2D38AB0 45 | OCseed = 0x238D800 46 | roomWarp = 0x2340EF4 47 | soraPointer = 0x2538A10 48 | soraStats = 0x2DE9D96 49 | theonActive = 0x2D3A220 50 | worldFlagBase = 0x2DEBEB0 51 | worldWarp = 0x2340EF0 52 | 53 | -- 4:3 54 | height = 0x3B45A4 55 | 56 | -- achievements 57 | ach = 0x21AB928 58 | 59 | -- auto attack 60 | attackCommand = 0x52960C 61 | attInp = 0x23413B5 62 | fireState1 = 0x23D4980 63 | fireState2 = 0x232E7C4 64 | swapped = 0x22DB02E 65 | 66 | -- rando chaos 67 | anims = 0x2D2E130 68 | attackElement = 0x2D282B8 69 | commandMenuPointer = 0x2D37750 70 | donaldPointer = 0x2D37C88 71 | goofyPointer = 0x2D37C90 72 | moveSpeed = 0x2D5D518 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232E910 75 | musicSpeedHack = 0xA778B 76 | soraResist = 0x2D5D588 77 | weaponSize = 0xD2EFA0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3ED3E8 81 | zantHack = 0x2A4E48 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x1786FC 86 | skipArray2 = 0x17D543 87 | skipFlag1 = 0x2340938 88 | skipFlag2 = 0x2340E20 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DC674, 0x70E304, 0x2340F14, 0x2D37CA0, 0x2D38150, 93 | 0x2D38600, 0x2D38F74, 0x2D398C0, 0x2D398D4, 0x2D3B030, 94 | 0x2D3B4E0, 0x2D3B990, 0x2D3BE40, 0x2D3D100, 0x2D3DA60, 95 | 0x2D3E3C0, 0x2D42EC0, 0x2D46BB0, 0x2D5D74C, 0x2D5D94C, 96 | 0x2D5DA4C, 0x2D5DE4C 97 | } 98 | enemyAddresses = { 99 | 0x7E53C0, 0x839AC0, 0x8561C0, 0x8A9140, 0x8A9180, 100 | 0x8A91C0, 0x8CB400, 0x8D3CC0, 0x8D5400, 0x8E5140, 101 | 0x918E40, 0x91EEC0, 0x927080, 0x952000, 0x954940, 102 | 0x957C40, 0x95DD40, 0x95DF40, 0x9605C0, 0x9610C0, 103 | 0x961180, 0x971140, 0x976F40, 0x97FEC0, 0x97FF00, 104 | 0x9843C0, 0x98CC80, 0x98CCC0, 0x98CD00, 0x997200, 105 | 0x997240, 0x997280, 0x997E00, 0x9A06C0, 0x9A8E20, 106 | 0x9A9500, 0x9A9580, 0x9AC740, 0x9B0F40, 0x9B75C0, 107 | 0x9BCDC0, 0x9C4C00, 0x9C86C0, 0x9C8740, 0x9C8780, 108 | 0x9C87C0, 0x9CEB40, 0x9CEE80, 0x9CFA00, 0x9D3600, 109 | 0x9D3740, 0x9D5880, 0x9D5BE0, 0x9D6EC0, 0x9DBBC0, 110 | 0x9E29A0, 0x9E4480, 0x9E4540, 0x9E7B20, 0x9F76C0, 111 | 0x9F8900, 0x9FC400, 0x9FEA00, 0xA062C0, 0xA0B340, 112 | 0xA24700, 0xA24780, 0xA26800, 0xA2EDC0, 0xA4CA40, 113 | 0xA58840, 0xA66EC0, 0xA869C0, 0xA91280, 0xA913C0, 114 | 0xA9BB00, 0xA9BB40, 0xAC4B00, 0xAC4B40, 0xAC4C00, 115 | 0xAC4C40, 0xAC4C80, 0xAD4840, 0xAD4880, 0xAD48C0, 116 | 0xAD4900, 0xAD4940, 0xAD4980, 0xAD49C0, 0xAD4B00, 117 | 0xAD4BA0, 0xAE9F80, 0xB0EEC0, 0xB0EF00, 0xB0EFA0, 118 | 0xB1B080, 0xB1B540, 0xB1D8C0, 0xB5EDC0, 0xB60540, 119 | 0xB60800, 0xBB4EC0 120 | } 121 | bittestRender = 0x232E7F0 122 | combo = 0x2DE6834 123 | cutsceneFlags = 0x2DEB260 124 | floorStatus = 0x52997C 125 | glideBarrier = 0x5079D8 126 | inTournament = 0x238D7F8 127 | wall = 0x6DC694 128 | 129 | -- fast camera 130 | cameraCenter = 0x2538AB4 131 | cameraInputH = 0x23413E0 132 | cameraInputV = 0x23413E4 133 | curSpeedH = 0x2538854 134 | curSpeedV = 0x2538850 135 | speed = 0x507AAC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x23405DC 139 | textTrans = 0x22ECB74 140 | 141 | -- hook ship 142 | debug1Value = 1 143 | neverland = 0x2DEBC57 144 | posDebug1 = 0x232E720 145 | posDebug2 = 0x25389E4 146 | posDebugString = 0x3EB1C8 147 | 148 | -- instant gummi 149 | monstro = 0x2DEBC5A 150 | normalDrive = 0x268A26C 151 | worldWarpBase = 0x50F9FA 152 | worldWarpBase2 = 0x50FA6A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x286A818 156 | ardoffsetClock = 0x2399290 157 | battleLevel = 0x2DEB724 158 | characters = 0x2DEB444 159 | chestTable = 0x529A60 160 | chestsOpened = 0x2DEA378 161 | chronicles = 0x2DEB6FB 162 | collectedFruits = 0x232EA08 163 | currentTerminus = 0x2396CE4 164 | donaldAbilityTable = 0x2D27660 165 | donaldStatTable = 0x2D275F8 166 | emblemCount = 0x2DEBC0D 167 | emblemDoor = 0x2DEBC1C 168 | enableRC = 0x2DEA5D4 169 | evidence = 0x2DEAB68 170 | evidenceActiveBizarre = 0x2D3D5B0 171 | evidenceActiveForest = 0x2D3DF10 172 | experienceMult = 0x2D5D500 173 | goofyAbilityTable = 0x2D277F8 174 | goofyStatTable = 0x2D27790 175 | gummiFlagBase = 0x2DEBC50 176 | halfPointersAddress = 0x2EE4730 177 | infoBoxNotVisible = 0x23D4C10 178 | instantGummiFix = 0x25389C8 179 | inventory = 0x2DEA1FA 180 | itemDropID = 0x284E348 181 | itemTable = 0x2D25198 182 | jumpHeights = 0x2D237EC 183 | language = 0x2E1BF2B 184 | libraryFlag = 0x2DEBE83 185 | lockMenu = 0x232E98C 186 | magicFlags = 0x2DEB97E 187 | magicLevels = 0x2DEA1F2 188 | menuCheck = 0x2E93218 189 | mermaidKickSpeed = 0x3F088C 190 | OCCupDialog = 0x239AA30 191 | OCCupUnlock = 0x2DEBB60 192 | oppositeState = 0x2DEBA18 193 | oppositeTrigger = 0x2DEAA7D 194 | party2 = 0x2E20F65 195 | poohProgress = 0x2DEBAA8 196 | poohProgress2 = 0x2DEB180 197 | randoInitCheck = 0x7AD1E8 198 | RCName = 0x2867710 199 | report1 = 0x1D07884 200 | rewardTable = 0x2D2FDE8 201 | roomWarpRead = 0x232E908 202 | savedFruits = 0x2DEBA9E 203 | sharedAbilities = 0x2DEA2F9 204 | shopTableBase = 0x4FF3C4 205 | shortcuts = 0x2DEA5A4 206 | slideActive = 0x2D40490 207 | sliderProgress = 0x2DEBA99 208 | soraAbilityTable = 0x2D27338 209 | soraAbilityTable2 = 0x2D27268 210 | soraAbilityTable3 = 0x2D272D0 211 | soraStatTable = 0x2D27200 212 | summons = 0x2DEA530 213 | summonsReturned = 0x2DEAA8C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B08F4 216 | synthItems = 0x548580 217 | synthRequirements = 0x5483A0 218 | terminusTeleUsable = 0x2396C24 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678E48 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4D64 221 | textPointerBase = 0x2B9CC80 222 | trinityUnlock = 0x2DEB97B 223 | unequipBlacklist = 0x546020 224 | unlockedWarps = 0x2DEBC5F 225 | warpCount = 0x50FACC 226 | warpDefinitions = 0x232E900 227 | waterwayCutsceneFlag = 0x2DEAA72 228 | waterwayGate = 0x2DEB9CD 229 | waterwayTrinity = 0x2DEBA11 230 | weaponTable = 0x2D2CC68 231 | worldMapLines = 0x2DEBC72 232 | worldWarps = 0x50F9E8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF5BDC 236 | magicUnlock = 0x2DE9DD4 237 | party1 = 0x2DEA1EF 238 | soraCurAbilities = 0x2DE9DA4 239 | 240 | -- save anywhere 241 | cam = 0x507AA8 242 | config = 0x2E00160 243 | continue = 0x2E00960 244 | cutSceneAspect = 0x4DE242 245 | deathCheck = 0x299F20 246 | saveAnywhere = 0x2355254 247 | title = 0x2340E38 248 | titlescreenamvtimer = 0x2EE9954 249 | titlescreenpicture = 0x2EE9968 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D9B94 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/EGSGlobal_1_0_0_8.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233C24C 4 | beepHack = 0x2698DC 5 | blackFade = 0x4D93B8 6 | buttonTypes = 0x2E1CBA0 7 | closeMenu = 0x2E90820 8 | cutscene = 0x233AE74 9 | cutsceneFlagBase = 0x2DE6ED5 10 | deathPointer = 0x23944B8 11 | dest = 0x5041F0 12 | dialog = 0x2998188 13 | fadeBase = 0x233C450 14 | gummiSelect = 0x503CEC 15 | gummiStart = 0x503C00 16 | hookship = 0xED321E 17 | inCutscene = 0x2378B60 18 | inGummi = 0x50421D 19 | inputAddress = 0x233D034 20 | maxHP = 0x2DE59D6 21 | menu = 0x232A600 22 | menuButtonCount = 0x2E1CB9C 23 | menuFunction = 0x2E1CC28 24 | menuItemSlotCount = 0x2E8F452 25 | menuMaxButtonCount = 0x2E8F450 26 | minitimer = 0x232A684 27 | reports = 0x2DE7390 28 | room = 0x233CB44 29 | saveOpenAddress = 0x232A604 30 | skippable = 0x23944E4 31 | soraHP = 0x2D592CC 32 | soraHUD = 0x280EBE1C 33 | stateFlag = 0x2863958 34 | summoning = 0x2D5D62C 35 | textProg = 0x232A5F4 36 | warpTrigger = 0x22E86DC 37 | warpType1 = 0x233C240 38 | warpType2 = 0x22E86E0 39 | white = 0x233C49C 40 | world = 0x233CB4C 41 | 42 | -- rando shared 43 | ardOff = 0x2394BB0 44 | khamaActive = 0x2D34730 45 | OCseed = 0x2389480 46 | roomWarp = 0x233CB74 47 | soraPointer = 0x2534680 48 | soraStats = 0x2DE5A06 49 | theonActive = 0x2D35EA0 50 | worldFlagBase = 0x2DE7B20 51 | worldWarp = 0x233CB70 52 | 53 | -- 4:3 54 | height = 0x3B1534 55 | 56 | -- achievements 57 | ach = 0x21A7628 58 | 59 | -- auto attack 60 | attackCommand = 0x52558C 61 | attInp = 0x233D035 62 | fireState1 = 0x23D0600 63 | fireState2 = 0x232A444 64 | swapped = 0x22D6C7E 65 | 66 | -- rando chaos 67 | anims = 0x2D29DB0 68 | attackElement = 0x2D23F38 69 | commandMenuPointer = 0x2D333D0 70 | donaldPointer = 0x2D33908 71 | goofyPointer = 0x2D33910 72 | moveSpeed = 0x2D59298 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232A590 75 | musicSpeedHack = 0xA778B 76 | soraResist = 0x2D59308 77 | weaponSize = 0xD2ACA0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EA148 81 | zantHack = 0x2A2808 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17605C 86 | skipArray2 = 0x17AEA3 87 | skipFlag1 = 0x233C5B8 88 | skipFlag2 = 0x233CAA0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6D8374, 0x70A004, 0x233D034, 0x2D33920, 0x2D33DD0, 93 | 0x2D34280, 0x2D34BF4, 0x2D35540, 0x2D35554, 0x2D36CB0, 94 | 0x2D37160, 0x2D37610, 0x2D37AC0, 0x2D38D80, 0x2D396E0, 95 | 0x2D3A040, 0x2D3EB40, 0x2D42830, 0x2D593CC, 0x2D595CC, 96 | 0x2D596CC, 0x2D59ACC 97 | 98 | } 99 | enemyAddresses = { 100 | 0x7E10C0, 0x8357C0, 0x851EC0, 0x8A4E40, 0x8A4E80, 101 | 0x8A4EC0, 0x8C7100, 0x8CF9C0, 0x8D1100, 0x8E0E40, 102 | 0x914B40, 0x91ABC0, 0x922D80, 0x94DD00, 0x950640, 103 | 0x953940, 0x959A40, 0x959C40, 0x95C2C0, 0x95CDC0, 104 | 0x95CE80, 0x96CE40, 0x972C40, 0x97BBC0, 0x97BC00, 105 | 0x9800C0, 0x988980, 0x9889C0, 0x988A00, 0x992F00, 106 | 0x992F40, 0x992F80, 0x993B00, 0x99C3C0, 0x9A4B20, 107 | 0x9A5200, 0x9A5280, 0x9A8440, 0x9ACC40, 0x9B32C0, 108 | 0x9B8AC0, 0x9C0900, 0x9C43C0, 0x9C4440, 0x9C4480, 109 | 0x9C44C0, 0x9CA840, 0x9CAB80, 0x9CB700, 0x9CF300, 110 | 0x9CF440, 0x9D1580, 0x9D18E0, 0x9D2BC0, 0x9D78C0, 111 | 0x9DE6A0, 0x9E0180, 0x9E0240, 0x9E3820, 0x9F33C0, 112 | 0x9F4600, 0x9F8100, 0x9FA700, 0xA01FC0, 0xA07040, 113 | 0xA20400, 0xA20480, 0xA22500, 0xA2AAC0, 0xA48740, 114 | 0xA54540, 0xA62BC0, 0xA826C0, 0xA8CF80, 0xA8D0C0, 115 | 0xA97800, 0xA97840, 0xAC0800, 0xAC0840, 0xAC0900, 116 | 0xAC0940, 0xAC0980, 0xAD0540, 0xAD0580, 0xAD05C0, 117 | 0xAD0600, 0xAD0640, 0xAD0680, 0xAD06C0, 0xAD0800, 118 | 0xAD08A0, 0xAE5C80, 0xB0ABC0, 0xB0AC00, 0xB0ACA0, 119 | 0xB16D80, 0xB17240, 0xB195C0, 0xB5AAC0, 0xB5C240, 120 | 0xB5C500, 0xBB0BC0 121 | } 122 | bittestRender = 0x232A470 123 | combo = 0x2DE24B4 124 | cutsceneFlags = 0x2DE6ED0 125 | floorStatus = 0x5258FC 126 | glideBarrier = 0x503948 127 | inTournament = 0x2389480 128 | wall = 0x6D8374 129 | 130 | -- fast camera 131 | cameraCenter = 0x2534724 132 | cameraInputH = 0x233D060 133 | cameraInputV = 0x233D064 134 | curSpeedH = 0x25344C4 135 | curSpeedV = 0x25344C0 136 | speed = 0x503A1C 137 | 138 | -- faster dialogue 139 | textSpeed = 0x233C25C 140 | textTrans = 0x22E8744 141 | 142 | -- hook ship 143 | debug1Value = 1 144 | neverland = 0x2DE78C7 145 | posDebug1 = 0x232A3A0 146 | posDebug2 = 0x2534654 147 | posDebugString = 0x3E7F28 148 | 149 | -- instant gummi 150 | monstro = 0x2DE78CA 151 | normalDrive = 0x2685EEC 152 | worldWarpBase = 0x50B96A 153 | worldWarpBase2 = 0x50B9DA 154 | 155 | -- rando some logic 156 | animHalfPointersAddress = 0x2866498 157 | ardoffsetClock = 0x2394F10 158 | battleLevel = 0x2DE7394 159 | characters = 0x2DE70B4 160 | chestTable = 0x5259E0 161 | chestsOpened = 0x2DE5FF8 162 | chronicles = 0x2DE736B 163 | collectedFruits = 0x232A688 164 | currentTerminus = 0x2392964 165 | donaldAbilityTable = 0x2D232E0 166 | donaldStatTable = 0x2D23278 167 | emblemCount = 0x2DE787D 168 | emblemDoor = 0x2DE788C 169 | enableRC = 0x2DE6244 170 | evidence = 0x2DE67D8 171 | evidenceActiveBizarre = 0x2D39230 172 | evidenceActiveForest = 0x2D39B90 173 | experienceMult = 0x2D59180 174 | goofyAbilityTable = 0x2D23478 175 | goofyStatTable = 0x2D23410 176 | gummiFlagBase = 0x2DE78C0 177 | halfPointersAddress = 0x2EE03B8 178 | infoBoxNotVisible = 0x23D0890 179 | instantGummiFix = 0x25346D0 180 | inventory = 0x2DE5E6A 181 | itemDropID = 0x2849FC8 182 | itemTable = 0x2D20E18 183 | jumpHeights = 0x2D1F46C 184 | language = 0x2E17BAB 185 | libraryFlag = 0x2DE7AF3 186 | lockMenu = 0x232A60C 187 | magicFlags = 0x2DE75EE 188 | magicLevels = 0x2DE5E62 189 | menuCheck = 0x2E8EE98 190 | mermaidKickSpeed = 0x3ED5FC 191 | OCCupDialog = 0x23966B0 192 | OCCupUnlock = 0x2DE77D0 193 | oppositeState = 0x2DE7688 194 | oppositeTrigger = 0x2DE66ED 195 | party2 = 0x2E1CBE5 196 | poohProgress = 0x2DE7718 197 | poohProgress2 = 0x2DE6DF0 198 | randoInitCheck = 0x7A8EE8 199 | RCName = 0x2863390 200 | report1 = 0x1D03584 201 | rewardTable = 0x2D2BA68 202 | roomWarpRead = 0x232A588 203 | savedFruits = 0x2DE770E 204 | sharedAbilities = 0x2DE5F69 205 | shopTableBase = 0x4FB374 206 | shortcuts = 0x2DE6214 207 | slideActive = 0x2D3CA70 208 | sliderProgress = 0x2DE7709 209 | soraAbilityTable = 0x2D22FB8 210 | soraAbilityTable2 = 0x2D22EE8 211 | soraAbilityTable3 = 0x2D22F50 212 | soraStatTable = 0x2D22E80 213 | summons = 0x2DE61A0 214 | summonsReturned = 0x2DE66FC 215 | superglideBaseSpeed = 0 216 | superglideSpeedHack = 0x2AE2B4 217 | synthItems = 0x544500 218 | synthRequirements = 0x544320 219 | terminusTeleUsable = 0x23928A4 -- On: 4378 Off: 4294957296 220 | terminusTeleVisible = 0x2674AC8 -- On: 1166594048 Off: 3323740160 221 | textBox = 0x23D09E4 222 | textPointerBase = 0x2B98900 223 | trinityUnlock = 0x2DE75EB 224 | unequipBlacklist = 0x541FA0 225 | unlockedWarps = 0x2DE78CF 226 | warpCount = 0x50BA3C 227 | warpDefinitions = 0x232A580 228 | waterwayCutsceneFlag = 0x2DE66E2 229 | waterwayGate = 0x2DE763D 230 | waterwayTrinity = 0x2DE7681 231 | weaponTable = 0x2D288E8 232 | worldMapLines = 0x2DE78E2 233 | worldWarps = 0x50B958 234 | 235 | -- ASL shared 236 | gummiInventory = 0x2DF184C 237 | magicUnlock = 0x2DE5A44 238 | party1 = 0x2DE5E5F 239 | soraCurAbilities = 0x2DE5A14 240 | 241 | -- save anywhere 242 | cam = 0x503A18 243 | config = 0x2DFBDD0 244 | continue = 0x2DFC5D0 245 | cutSceneAspect = 0x4DA202 246 | deathCheck = 0x2978E0 247 | saveAnywhere = 0x2350CD4 248 | title = 0x233CAB8 249 | titlescreenamvtimer = 0x2EE55E0 250 | titlescreenpicture = 0x2EE55EC 251 | 252 | -- unlock 0 volume 253 | volumeZero = 0x3D6ABC 254 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/EGSGlobal_1_0_0_9.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x234054C 4 | beepHack = 0x26BD5C 5 | blackFade = 0x4DD3F8 6 | buttonTypes = 0x2E20EA0 7 | closeMenu = 0x2E94B20 8 | cutscene = 0x233F174 9 | cutsceneFlagBase = 0x2DEB1E5 10 | deathPointer = 0x23987B8 11 | dest = 0x508280 12 | dialog = 0x299C488 13 | fadeBase = 0x2340750 14 | gummiSelect = 0x507D7C 15 | gummiStart = 0x507C90 16 | hookship = 0xED751E 17 | inCutscene = 0x237CE60 18 | inGummi = 0x5082AD 19 | inputAddress = 0x2341334 20 | maxHP = 0x2DE9CE6 21 | menu = 0x232E900 22 | menuButtonCount = 0x2E20E9C 23 | menuFunction = 0x2E20F28 24 | menuItemSlotCount = 0x2E93752 25 | menuMaxButtonCount = 0x2E93750 26 | minitimer = 0x232E984 27 | reports = 0x2DEB6A0 28 | room = 0x2340E44 29 | saveOpenAddress = 0x232E904 30 | skippable = 0x23987E4 31 | soraHP = 0x2D5D5CC 32 | soraHUD = 0x2812E1C 33 | stateFlag = 0x2867C58 34 | summoning = 0x2D6192C 35 | textProg = 0x232E8F4 36 | warpTrigger = 0x22EC9DC 37 | warpType1 = 0x2340540 38 | warpType2 = 0x22EC9E0 39 | white = 0x234079C 40 | world = 0x2340E4C 41 | 42 | -- rando shared 43 | ardOff = 0x2398EB0 44 | khamaActive = 0x2D38A30 45 | OCseed = 0x238D780 46 | roomWarp = 0x2340E74 47 | soraPointer = 0x2538990 48 | soraStats = 0x2DE9D16 49 | theonActive = 0x2D3A1A0 50 | worldFlagBase = 0x2DEBE30 51 | worldWarp = 0x2340E70 52 | 53 | -- 4:3 54 | height = 0x3B4594 55 | 56 | -- achievements 57 | ach = 0x21AB8A8 58 | 59 | -- auto attack 60 | attackCommand = 0x52960C 61 | attInp = 0x2341335 62 | fireState1 = 0x23D4900 63 | fireState2 = 0x232E744 64 | swapped = 0x22DAF7E 65 | 66 | -- rando chaos 67 | anims = 0x2D2E0B0 68 | attackElement = 0x2D28238 69 | commandMenuPointer = 0x2D376D0 70 | donaldPointer = 0x2D37C08 71 | goofyPointer = 0x2D37C10 72 | moveSpeed = 0x2D5D498 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232E890 75 | musicSpeedHack = 0xA778B 76 | soraResist = 0x2D5D508 77 | weaponSize = 0xD2EF20 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3ED378 81 | zantHack = 0x2A4B08 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x1783BC 86 | skipArray2 = 0x17D203 87 | skipFlag1 = 0x23408B8 88 | skipFlag2 = 0x2340DA0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DC5F4, 0x70E284, 0x2340E94, 0x2D37C20, 0x2D380D0, 93 | 0x2D38580, 0x2D38EF4, 0x2D39840, 0x2D39854, 0x2D3AFB0, 94 | 0x2D3B460, 0x2D3B910, 0x2D3BDC0, 0x2D3D080, 0x2D3D9E0, 95 | 0x2D3E340, 0x2D42E40, 0x2D46B30, 0x2D5D6CC, 0x2D5D8CC, 96 | 0x2D5D9CC, 0x2D5DDCC 97 | } 98 | enemyAddresses = { 99 | 0x7E5340, 0x839A40, 0x856140, 0x8A90C0, 0x8A9100, 100 | 0x8A9140, 0x8CB380, 0x8D3C40, 0x8D5380, 0x8E50C0, 101 | 0x918DC0, 0x91EE40, 0x927000, 0x951F80, 0x9548C0, 102 | 0x957BC0, 0x95DCC0, 0x95DEC0, 0x960540, 0x961040, 103 | 0x961100, 0x9710C0, 0x976EC0, 0x97FE40, 0x97FE80, 104 | 0x984340, 0x98CC00, 0x98CC40, 0x98CC80, 0x997180, 105 | 0x9971C0, 0x997200, 0x997D80, 0x9A0640, 0x9A8DA0, 106 | 0x9A9480, 0x9A9500, 0x9AC6C0, 0x9B0EC0, 0x9B7540, 107 | 0x9BCD40, 0x9C4B80, 0x9C8640, 0x9C86C0, 0x9C8700, 108 | 0x9C8740, 0x9CEAC0, 0x9CEE00, 0x9CF980, 0x9D3580, 109 | 0x9D36C0, 0x9D5800, 0x9D5B60, 0x9D6E40, 0x9DBB40, 110 | 0x9E2920, 0x9E4400, 0x9E44C0, 0x9E7AA0, 0x9F7640, 111 | 0x9F8880, 0x9FC380, 0x9FE980, 0xA06240, 0xA0B2C0, 112 | 0xA24680, 0xA24700, 0xA26780, 0xA2ED40, 0xA4C9C0, 113 | 0xA587C0, 0xA66E40, 0xA86940, 0xA91200, 0xA91340, 114 | 0xA9BA80, 0xA9BAC0, 0xAC4A80, 0xAC4AC0, 0xAC4B80, 115 | 0xAC4BC0, 0xAC4C00, 0xAD47C0, 0xAD4800, 0xAD4840, 116 | 0xAD4880, 0xAD48C0, 0xAD4900, 0xAD4940, 0xAD4A80, 117 | 0xAD4B20, 0xAE9F00, 0xB0EE40, 0xB0EE80, 0xB0EF20, 118 | 0xB1B000, 0xB1B4C0, 0xB1D840, 0xB5ED40, 0xB604C0, 119 | 0xB60780, 0xBB4E40 120 | } 121 | bittestRender = 0x232E770 122 | combo = 0x2DE67B4 123 | cutsceneFlags = 0x2DEB1E0 124 | floorStatus = 0x52997C 125 | glideBarrier = 0x5079D8 126 | inTournament = 0x238D77C 127 | wall = 0x6DC614 128 | 129 | -- fast camera 130 | cameraCenter = 0x2538A34 131 | cameraInputH = 0x2341360 132 | cameraInputV = 0x2341364 133 | curSpeedH = 0x25387D4 134 | curSpeedV = 0x25387D0 135 | speed = 0x507AAC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x234055C 139 | textTrans = 0x22ECA44 140 | 141 | -- hook ship 142 | debug1Value = 1 143 | neverland = 0x2DEBBD7 144 | posDebug1 = 0x232E6A0 145 | posDebug2 = 0x2538964 146 | posDebugString = 0x3EB158 147 | 148 | -- instant gummi 149 | monstro = 0x2DEBBDA 150 | normalDrive = 0x268A1EC 151 | worldWarpBase = 0x50F9FA 152 | worldWarpBase2 = 0x50FA6A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x286A798 156 | ardoffsetClock = 0x2399210 157 | battleLevel = 0x2DEB6A4 158 | characters = 0x2DEB3C4 159 | chestTable = 0x529A60 160 | chestsOpened = 0x2DEA2F8 161 | chronicles = 0x2DEB67B 162 | collectedFruits = 0x232E988 163 | currentTerminus = 0x2396C64 164 | donaldAbilityTable = 0x2D275E0 165 | donaldStatTable = 0x2D27578 166 | emblemCount = 0x2DEBB8D 167 | emblemDoor = 0x2DEBB9C 168 | enableRC = 0x2DEA554 169 | evidence = 0x2DEAAE8 170 | evidenceActiveBizarre = 0x2D3D530 171 | evidenceActiveForest = 0x2D3DE90 172 | experienceMult = 0x2D5D480 173 | goofyAbilityTable = 0x2D27778 174 | goofyStatTable = 0x2D27710 175 | gummiFlagBase = 0x2DEBBD0 176 | halfPointersAddress = 0x2EE46B0 177 | infoBoxNotVisible = 0x23D4B90 178 | instantGummiFix = 0x2538058 179 | inventory = 0x2DEA17A 180 | itemDropID = 0x284E2C8 181 | itemTable = 0x2D25118 182 | jumpHeights = 0x2D2376C 183 | language = 0x2E1BEAB 184 | libraryFlag = 0x2DEBE03 185 | lockMenu = 0x232E90C 186 | magicFlags = 0x2DEB8FE 187 | magicLevels = 0x2DEA172 188 | menuCheck = 0x2E93198 189 | mermaidKickSpeed = 0x3F081C 190 | OCCupDialog = 0x239A9B0 191 | OCCupUnlock = 0x2DEBAE0 192 | oppositeState = 0x2DEB998 193 | oppositeTrigger = 0x2DEA9FD 194 | party2 = 0x2E20EE5 195 | poohProgress = 0x2DEBA28 196 | poohProgress2 = 0x2DEB100 197 | randoInitCheck = 0x7AD188 198 | RCName = 0x2867690 199 | report1 = 0x1D07804 200 | rewardTable = 0x2D2FD68 201 | roomWarpRead = 0x232E888 202 | savedFruits = 0x2DEBA1E 203 | sharedAbilities = 0x2DEA279 204 | shopTableBase = 0x4FF3C4 205 | shortcuts = 0x2DEA524 206 | slideActive = 0x2D40410 207 | sliderProgress = 0x2DEBA19 208 | soraAbilityTable = 0x2D272B8 209 | soraAbilityTable2 = 0x2D271E8 210 | soraAbilityTable3 = 0x2D27250 211 | soraStatTable = 0x2D27578 212 | summons = 0x2DEA4B0 213 | summonsReturned = 0x2DEAA0C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B05B4 216 | synthItems = 0x548580 217 | synthRequirements = 0x5483A0 218 | terminusTeleUsable = 0x2396BA4 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678DC8 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4364 221 | textPointerBase = 0x2B9CC00 222 | trinityUnlock = 0x2DEB8FB 223 | unequipBlacklist = 0x546020 224 | unlockedWarps = 0x2DEBBDF 225 | warpCount = 0x50FACC 226 | warpDefinitions = 0x232E880 227 | waterwayCutsceneFlag = 0x2DEA9F2 228 | waterwayGate = 0x2DEB94D 229 | waterwayTrinity = 0x2DEB991 230 | weaponTable = 0x2D2CBE8 231 | worldMapLines = 0x2DEBBF2 232 | worldWarps = 0x50F9E8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF5B5C 236 | magicUnlock = 0x2DE9D54 237 | party1 = 0x2DEA16F 238 | soraCurAbilities = 0x2DE9D24 239 | 240 | -- save anywhere 241 | cam = 0x507AA8 242 | config = 0x2E000E0 243 | continue = 0x2E008E0 244 | cutSceneAspect = 0x4DE242 245 | deathCheck = 0x299BE0 246 | saveAnywhere = 0x23551D4 247 | title = 0x2340DB8 248 | titlescreenamvtimer = 0x2EE98D4 249 | titlescreenpicture = 0x2EE55EC 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D9B24 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/EGSJP_1_0_0_10.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x23405CC 4 | beepHack = 0x26BEDC 5 | blackFade = 0x4DD3F8 6 | buttonTypes = 0x2E20F20 7 | closeMenu = 0x2E94BA0 8 | cutscene = 0x233F1F4 9 | cutsceneFlagBase = 0x2DEB265 10 | deathPointer = 0x2398838 11 | dest = 0x508280 12 | dialog = 0x299C508 13 | fadeBase = 0x23407D0 14 | gummiSelect = 0x507D7C 15 | gummiStart = 0x507C90 16 | hookship = 0xED751E 17 | inCutscene = 0x237CEE0 18 | inGummi = 0x50832D 19 | inputAddress = 0x23413B4 20 | maxHP = 0x2DE9D66 21 | menu = 0x232E980 22 | menuButtonCount = 0x2E20F1C 23 | menuFunction = 0x2E20FA8 24 | menuItemSlotCount = 0x2E937D2 25 | menuMaxButtonCount = 0x2E937D0 26 | minitimer = 0x232EA04 27 | reports = 0x2DEB720 28 | room = 0x2340EC4 29 | saveOpenAddress = 0x232E984 30 | skippable = 0x2398864 31 | soraHP = 0x2D5D64C 32 | soraHUD = 0x2812E9C 33 | stateFlag = 0x2867CD8 34 | summoning = 0x2D619AC 35 | textProg = 0x232E974 36 | warpTrigger = 0x22ECA8C 37 | warpType1 = 0x23405C0 38 | warpType2 = 0x22ECA90 39 | white = 0x234081C 40 | world = 0x2340ECC 41 | 42 | -- rando shared 43 | ardOff = 0x2398F30 44 | khamaActive = 0x2D38AB0 45 | OCseed = 0x238D800 46 | roomWarp = 0x2340EF4 47 | soraPointer = 0x2538A10 48 | soraStats = 0x2DE9D96 49 | theonActive = 0x2D3A220 50 | worldFlagBase = 0x2DEBEB0 51 | worldWarp = 0x2340EF0 52 | 53 | -- 4:3 54 | height = 0x3B4584 55 | 56 | -- achievements 57 | ach = 0x21AB928 58 | 59 | -- auto attack 60 | attackCommand = 0x52960C 61 | attInp = 0x23413B5 62 | fireState1 = 0x23D4980 63 | fireState2 = 0x232E7C4 64 | swapped = 0x22DB02E 65 | 66 | -- rando chaos 67 | anims = 0x2D2E130 68 | attackElement = 0x2D282B8 69 | commandMenuPointer = 0x2D37750 70 | donaldPointer = 0x2D37C88 71 | goofyPointer = 0x2D37C90 72 | moveSpeed = 0x2D5D518 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232E910 75 | musicSpeedHack = 0xA778B 76 | soraResist = 0x2D5D588 77 | weaponSize = 0xD2EFA0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3ED3C8 81 | zantHack = 0x2A4C88 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17853C 86 | skipArray2 = 0x17D383 87 | skipFlag1 = 0x2340938 88 | skipFlag2 = 0x2340E20 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DC674, 0x70E304, 0x2340F14, 0x2D37CA0, 0x2D38150, 93 | 0x2D38600, 0x2D38F74, 0x2D398C0, 0x2D398D4, 0x2D3B030, 94 | 0x2D3B4E0, 0x2D3B990, 0x2D3BE40, 0x2D3D100, 0x2D3DA60, 95 | 0x2D3E3C0, 0x2D42EC0, 0x2D46BB0, 0x2D5D74C, 0x2D5D94C, 96 | 0x2D5DA4C, 0x2D5DE4C 97 | } 98 | enemyAddresses = { 99 | 0x7E53C0, 0x839AC0, 0x8561C0, 0x8A9140, 0x8A9180, 100 | 0x8A91C0, 0x8CB400, 0x8D3CC0, 0x8D5400, 0x8E5140, 101 | 0x918E40, 0x91EEC0, 0x927080, 0x952000, 0x954940, 102 | 0x957C40, 0x95DD40, 0x95DF40, 0x9605C0, 0x9610C0, 103 | 0x961180, 0x971140, 0x976F40, 0x97FEC0, 0x97FF00, 104 | 0x9843C0, 0x98CC80, 0x98CCC0, 0x98CD00, 0x997200, 105 | 0x997240, 0x997280, 0x997E00, 0x9A06C0, 0x9A8E20, 106 | 0x9A9500, 0x9A9580, 0x9AC740, 0x9B0F40, 0x9B75C0, 107 | 0x9BCDC0, 0x9C4C00, 0x9C86C0, 0x9C8740, 0x9C8780, 108 | 0x9C87C0, 0x9CEB40, 0x9CEE80, 0x9CFA00, 0x9D3600, 109 | 0x9D3740, 0x9D5880, 0x9D5BE0, 0x9D6EC0, 0x9DBBC0, 110 | 0x9E29A0, 0x9E4480, 0x9E4540, 0x9E7B20, 0x9F76C0, 111 | 0x9F8900, 0x9FC400, 0x9FEA00, 0xA062C0, 0xA0B340, 112 | 0xA24700, 0xA24780, 0xA26800, 0xA2EDC0, 0xA4CA40, 113 | 0xA58840, 0xA66EC0, 0xA869C0, 0xA91280, 0xA913C0, 114 | 0xA9BB00, 0xA9BB40, 0xAC4B00, 0xAC4B40, 0xAC4C00, 115 | 0xAC4C40, 0xAC4C80, 0xAD4840, 0xAD4880, 0xAD48C0, 116 | 0xAD4900, 0xAD4940, 0xAD4980, 0xAD49C0, 0xAD4B00, 117 | 0xAD4BA0, 0xAE9F80, 0xB0EEC0, 0xB0EF00, 0xB0EFA0, 118 | 0xB1B080, 0xB1B540, 0xB1D8C0, 0xB5EDC0, 0xB60540, 119 | 0xB60800, 0xBB4EC0 120 | } 121 | bittestRender = 0x232E7F0 122 | combo = 0x2DE6834 123 | cutsceneFlags = 0x2DEB260 124 | floorStatus = 0x52997C 125 | glideBarrier = 0x5079D8 126 | inTournament = 0x238D7F8 127 | wall = 0x6DC694 128 | 129 | -- fast camera 130 | cameraCenter = 0x2538AB4 131 | cameraInputH = 0x23413E0 132 | cameraInputV = 0x23413E4 133 | curSpeedH = 0x2538854 134 | curSpeedV = 0x2538850 135 | speed = 0x507AAC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x23405DC 139 | textTrans = 0x22ECB74 140 | 141 | -- hook ship 142 | debug1Value = 1 143 | neverland = 0x2DEBC57 144 | posDebug1 = 0x232E720 145 | posDebug2 = 0x25389E4 146 | posDebugString = 0x3EB1A8 147 | 148 | -- instant gummi 149 | monstro = 0x2DEBC5A 150 | normalDrive = 0x268A26C 151 | worldWarpBase = 0x50F9FA 152 | worldWarpBase2 = 0x50FA6A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x286A818 156 | ardoffsetClock = 0x2399290 157 | battleLevel = 0x2DEB724 158 | characters = 0x2DEB444 159 | chestTable = 0x529A60 160 | chestsOpened = 0x2DEA378 161 | chronicles = 0x2DEB6FB 162 | collectedFruits = 0x232EA08 163 | currentTerminus = 0x2396CE4 164 | donaldAbilityTable = 0x2D27660 165 | donaldStatTable = 0x2D275F8 166 | emblemCount = 0x2DEBC0D 167 | emblemDoor = 0x2DEBC1C 168 | enableRC = 0x2DEA5D4 169 | evidence = 0x2DEAB68 170 | evidenceActiveBizarre = 0x2D3D5B0 171 | evidenceActiveForest = 0x2D3DF10 172 | experienceMult = 0x2D5D500 173 | goofyAbilityTable = 0x2D277F8 174 | goofyStatTable = 0x2D27790 175 | gummiFlagBase = 0x2DEBC50 176 | halfPointersAddress = 0x2EE4730 177 | infoBoxNotVisible = 0x23D4C10 178 | instantGummiFix = 0x25389C8 179 | inventory = 0x2DEA1FA 180 | itemDropID = 0x284E348 181 | itemTable = 0x2D25198 182 | jumpHeights = 0x2D237EC 183 | language = 0x2E1BF2B 184 | libraryFlag = 0x2DEBE83 185 | lockMenu = 0x232E98C 186 | magicFlags = 0x2DEB97E 187 | magicLevels = 0x2DEA1F2 188 | menuCheck = 0x2E93218 189 | mermaidKickSpeed = 0x3F087C 190 | OCCupDialog = 0x239AA30 191 | OCCupUnlock = 0x2DEBB60 192 | oppositeState = 0x2DEBA18 193 | oppositeTrigger = 0x2DEAA7D 194 | party2 = 0x2E20F65 195 | poohProgress = 0x2DEBAA8 196 | poohProgress2 = 0x2DEB180 197 | randoInitCheck = 0x7AD208 198 | RCName = 0x2867710 199 | report1 = 0x1D07884 200 | rewardTable = 0x2D2FDE8 201 | roomWarpRead = 0x232E908 202 | savedFruits = 0x2DEBA9E 203 | sharedAbilities = 0x2DEA2F9 204 | shopTableBase = 0x4FF3C4 205 | shortcuts = 0x2DEA5A4 206 | slideActive = 0x2D40490 207 | sliderProgress = 0x2DEBA99 208 | soraAbilityTable = 0x2D27338 209 | soraAbilityTable2 = 0x2D27268 210 | soraAbilityTable3 = 0x2D272D0 211 | soraStatTable = 0x2D27200 212 | summons = 0x2DEA530 213 | summonsReturned = 0x2DEAA8C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B0734 216 | synthItems = 0x548580 217 | synthRequirements = 0x5483A0 218 | terminusTeleUsable = 0x2396C24 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678E48 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4D64 221 | textPointerBase = 0x2B9CC80 222 | trinityUnlock = 0x2DEB97B 223 | unequipBlacklist = 0x546020 224 | unlockedWarps = 0x2DEBC5F 225 | warpCount = 0x50FACC 226 | warpDefinitions = 0x232E900 227 | waterwayCutsceneFlag = 0x2DEAA72 228 | waterwayGate = 0x2DEB9CD 229 | waterwayTrinity = 0x2DEBA11 230 | weaponTable = 0x2D2CC68 231 | worldMapLines = 0x2DEBC72 232 | worldWarps = 0x50F9E8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF5BDC 236 | magicUnlock = 0x2DE9DD4 237 | party1 = 0x2DEA1EF 238 | soraCurAbilities = 0x2DE9DA4 239 | 240 | -- save anywhere 241 | cam = 0x507AA8 242 | config = 0x2E00160 243 | continue = 0x2E00960 244 | cutSceneAspect = 0x4DE242 245 | deathCheck = 0x299D60 246 | saveAnywhere = 0x2355254 247 | title = 0x2340E38 248 | titlescreenamvtimer = 0x2EE9954 249 | titlescreenpicture = 0x2EE9968 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D9B74 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/EGSJP_1_0_0_8.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233C24C 4 | beepHack = 0x2698DC 5 | blackFade = 0x4D93B8 6 | buttonTypes = 0x2E1CBA0 7 | closeMenu = 0x2E90820 8 | cutscene = 0x233AE74 9 | cutsceneFlagBase = 0x2DE6ED5 10 | deathPointer = 0x23944B8 11 | dest = 0x5041F0 12 | dialog = 0x2998188 13 | fadeBase = 0x233C450 14 | gummiSelect = 0x503CEC 15 | gummiStart = 0x503C00 16 | hookship = 0xED321E 17 | inCutscene = 0x2378B60 18 | inGummi = 0x50421D 19 | inputAddress = 0x233D034 20 | maxHP = 0x2DE59D6 21 | menu = 0x232A600 22 | menuButtonCount = 0x2E1CB9C 23 | menuFunction = 0x2E1CC28 24 | menuItemSlotCount = 0x2E8F452 25 | menuMaxButtonCount = 0x2E8F450 26 | minitimer = 0x232A684 27 | reports = 0x2DE7390 28 | room = 0x233CB44 29 | saveOpenAddress = 0x232A604 30 | skippable = 0x23944E4 31 | soraHP = 0x2D592CC 32 | soraHUD = 0x280EBE1C 33 | stateFlag = 0x2863958 34 | summoning = 0x2D5D62C 35 | textProg = 0x232A5F4 36 | warpTrigger = 0x22E86DC 37 | warpType1 = 0x233C240 38 | warpType2 = 0x22E86E0 39 | white = 0x233C49C 40 | world = 0x233CB4C 41 | 42 | -- rando shared 43 | ardOff = 0x2394BB0 44 | khamaActive = 0x2D34730 45 | OCseed = 0x2389480 46 | roomWarp = 0x233CB74 47 | soraPointer = 0x2534680 48 | soraStats = 0x2DE5A06 49 | theonActive = 0x2D35EA0 50 | worldFlagBase = 0x2DE7B20 51 | worldWarp = 0x233CB70 52 | 53 | -- 4:3 54 | height = 0x3B1514 55 | 56 | -- achievements 57 | ach = 0x21A7628 58 | 59 | -- auto attack 60 | attackCommand = 0x52558C 61 | attInp = 0x233D035 62 | fireState1 = 0x23D0600 63 | fireState2 = 0x232A444 64 | swapped = 0x22D6C7E 65 | 66 | -- rando chaos 67 | anims = 0x2D29DB0 68 | attackElement = 0x2D23F38 69 | commandMenuPointer = 0x2D333D0 70 | donaldPointer = 0x2D33908 71 | goofyPointer = 0x2D33910 72 | moveSpeed = 0x2D59298 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232A590 75 | musicSpeedHack = 0xA778B 76 | soraResist = 0x2D59308 77 | weaponSize = 0xD2ACA0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EA148 81 | zantHack = 0x2A2808 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17605C 86 | skipArray2 = 0x17AEA3 87 | skipFlag1 = 0x233C5B8 88 | skipFlag2 = 0x233CAA0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6D8374, 0x70A004, 0x233D034, 0x2D33920, 0x2D33DD0, 93 | 0x2D34280, 0x2D34BF4, 0x2D35540, 0x2D35554, 0x2D36CB0, 94 | 0x2D37160, 0x2D37610, 0x2D37AC0, 0x2D38D80, 0x2D396E0, 95 | 0x2D3A040, 0x2D3EB40, 0x2D42830, 0x2D593CC, 0x2D595CC, 96 | 0x2D596CC, 0x2D59ACC 97 | 98 | } 99 | enemyAddresses = { 100 | 0x7E10C0, 0x8357C0, 0x851EC0, 0x8A4E40, 0x8A4E80, 101 | 0x8A4EC0, 0x8C7100, 0x8CF9C0, 0x8D1100, 0x8E0E40, 102 | 0x914B40, 0x91ABC0, 0x922D80, 0x94DD00, 0x950640, 103 | 0x953940, 0x959A40, 0x959C40, 0x95C2C0, 0x95CDC0, 104 | 0x95CE80, 0x96CE40, 0x972C40, 0x97BBC0, 0x97BC00, 105 | 0x9800C0, 0x988980, 0x9889C0, 0x988A00, 0x992F00, 106 | 0x992F40, 0x992F80, 0x993B00, 0x99C3C0, 0x9A4B20, 107 | 0x9A5200, 0x9A5280, 0x9A8440, 0x9ACC40, 0x9B32C0, 108 | 0x9B8AC0, 0x9C0900, 0x9C43C0, 0x9C4440, 0x9C4480, 109 | 0x9C44C0, 0x9CA840, 0x9CAB80, 0x9CB700, 0x9CF300, 110 | 0x9CF440, 0x9D1580, 0x9D18E0, 0x9D2BC0, 0x9D78C0, 111 | 0x9DE6A0, 0x9E0180, 0x9E0240, 0x9E3820, 0x9F33C0, 112 | 0x9F4600, 0x9F8100, 0x9FA700, 0xA01FC0, 0xA07040, 113 | 0xA20400, 0xA20480, 0xA22500, 0xA2AAC0, 0xA48740, 114 | 0xA54540, 0xA62BC0, 0xA826C0, 0xA8CF80, 0xA8D0C0, 115 | 0xA97800, 0xA97840, 0xAC0800, 0xAC0840, 0xAC0900, 116 | 0xAC0940, 0xAC0980, 0xAD0540, 0xAD0580, 0xAD05C0, 117 | 0xAD0600, 0xAD0640, 0xAD0680, 0xAD06C0, 0xAD0800, 118 | 0xAD08A0, 0xAE5C80, 0xB0ABC0, 0xB0AC00, 0xB0ACA0, 119 | 0xB16D80, 0xB17240, 0xB195C0, 0xB5AAC0, 0xB5C240, 120 | 0xB5C500, 0xBB0BC0 121 | } 122 | bittestRender = 0x232A470 123 | combo = 0x2DE24B4 124 | cutsceneFlags = 0x2DE6ED0 125 | floorStatus = 0x5258FC 126 | glideBarrier = 0x503948 127 | inTournament = 0x2389480 128 | wall = 0x6D8374 129 | 130 | -- fast camera 131 | cameraCenter = 0x2534724 132 | cameraInputH = 0x233D060 133 | cameraInputV = 0x233D064 134 | curSpeedH = 0x25344C4 135 | curSpeedV = 0x25344C0 136 | speed = 0x503A1C 137 | 138 | -- faster dialogue 139 | textSpeed = 0x233C25C 140 | textTrans = 0x22E8744 141 | 142 | -- hook ship 143 | debug1Value = 1 144 | neverland = 0x2DE78C7 145 | posDebug1 = 0x232A3A0 146 | posDebug2 = 0x2534654 147 | posDebugString = 0x3E7F08 148 | 149 | -- instant gummi 150 | monstro = 0x2DE78CA 151 | normalDrive = 0x2685EEC 152 | worldWarpBase = 0x50B96A 153 | worldWarpBase2 = 0x50B9DA 154 | 155 | -- rando some logic 156 | animHalfPointersAddress = 0x2866498 157 | ardoffsetClock = 0x2394F10 158 | battleLevel = 0x2DE7394 159 | characters = 0x2DE70B4 160 | chestTable = 0x5259E0 161 | chestsOpened = 0x2DE5FF8 162 | chronicles = 0x2DE736B 163 | collectedFruits = 0x232A688 164 | currentTerminus = 0x2392964 165 | donaldAbilityTable = 0x2D232E0 166 | donaldStatTable = 0x2D23278 167 | emblemCount = 0x2DE787D 168 | emblemDoor = 0x2DE788C 169 | enableRC = 0x2DE6244 170 | evidence = 0x2DE67D8 171 | evidenceActiveBizarre = 0x2D39230 172 | evidenceActiveForest = 0x2D39B90 173 | experienceMult = 0x2D59180 174 | goofyAbilityTable = 0x2D23478 175 | goofyStatTable = 0x2D23410 176 | gummiFlagBase = 0x2DE78C0 177 | halfPointersAddress = 0x2EE03B8 178 | infoBoxNotVisible = 0x23D0890 179 | instantGummiFix = 0x25346D0 180 | inventory = 0x2DE5E6A 181 | itemDropID = 0x2849FC8 182 | itemTable = 0x2D20E18 183 | jumpHeights = 0x2D1F46C 184 | language = 0x2E17BAB 185 | libraryFlag = 0x2DE7AF3 186 | lockMenu = 0x232A60C 187 | magicFlags = 0x2DE75EE 188 | magicLevels = 0x2DE5E62 189 | menuCheck = 0x2E8EE98 190 | mermaidKickSpeed = 0x3ED5FC 191 | OCCupDialog = 0x23966B0 192 | OCCupUnlock = 0x2DE77D0 193 | oppositeState = 0x2DE7688 194 | oppositeTrigger = 0x2DE66ED 195 | party2 = 0x2E1CBE5 196 | poohProgress = 0x2DE7718 197 | poohProgress2 = 0x2DE6DF0 198 | randoInitCheck = 0x7A8EE8 199 | RCName = 0x2863390 200 | report1 = 0x1D03584 201 | rewardTable = 0x2D2BA68 202 | roomWarpRead = 0x232A588 203 | savedFruits = 0x2DE770E 204 | sharedAbilities = 0x2DE5F69 205 | shopTableBase = 0x4FB374 206 | shortcuts = 0x2DE6214 207 | slideActive = 0x2D3CA70 208 | sliderProgress = 0x2DE7709 209 | soraAbilityTable = 0x2D22FB8 210 | soraAbilityTable2 = 0x2D22EE8 211 | soraAbilityTable3 = 0x2D22F50 212 | soraStatTable = 0x2D22E80 213 | summons = 0x2DE61A0 214 | summonsReturned = 0x2DE66FC 215 | superglideBaseSpeed = 0 216 | superglideSpeedHack = 0x2AE2B4 217 | synthItems = 0x544500 218 | synthRequirements = 0x544320 219 | terminusTeleUsable = 0x23928A4 -- On: 4378 Off: 4294957296 220 | terminusTeleVisible = 0x2674AC8 -- On: 1166594048 Off: 3323740160 221 | textBox = 0x23D09E4 222 | textPointerBase = 0x2B98900 223 | trinityUnlock = 0x2DE75EB 224 | unequipBlacklist = 0x541FA0 225 | unlockedWarps = 0x2DE78CF 226 | warpCount = 0x50BA3C 227 | warpDefinitions = 0x232A580 228 | waterwayCutsceneFlag = 0x2DE66E2 229 | waterwayGate = 0x2DE763D 230 | waterwayTrinity = 0x2DE7681 231 | weaponTable = 0x2D288E8 232 | worldMapLines = 0x2DE78E2 233 | worldWarps = 0x50B958 234 | 235 | -- ASL shared 236 | gummiInventory = 0x2DF184C 237 | magicUnlock = 0x2DE5A44 238 | party1 = 0x2DE5E5F 239 | soraCurAbilities = 0x2DE5A14 240 | 241 | -- save anywhere 242 | cam = 0x503A18 243 | config = 0x2DFBDD0 244 | continue = 0x2DFC5D0 245 | cutSceneAspect = 0x4DA202 246 | deathCheck = 0x297720 247 | saveAnywhere = 0x2350CD4 248 | title = 0x233CAB8 249 | titlescreenamvtimer = 0x2EE55E0 250 | titlescreenpicture = 0x2EE55EC 251 | 252 | -- unlock 0 volume 253 | volumeZero = 0x3D6A9C 254 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/EGSJP_1_0_0_9.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233F54C 4 | beepHack = 0x26BB9C 5 | blackFade = 0x4DC3F8 6 | buttonTypes = 0x2E1FEA0 7 | closeMenu = 0x2E93B20 8 | cutscene = 0x233E174 9 | cutsceneFlagBase = 0x2DEA1E5 10 | deathPointer = 0x23977B8 11 | dest = 0x507280 12 | dialog = 0x299B488 13 | fadeBase = 0x233F750 14 | gummiSelect = 0x506D7C 15 | gummiStart = 0x506C90 16 | hookship = 0xED651E 17 | inCutscene = 0x237BE60 18 | inGummi = 0x5072AD 19 | inputAddress = 0x2340334 20 | maxHP = 0x2DE8CE6 21 | menu = 0x232D900 22 | menuButtonCount = 0x2E1FE9C 23 | menuFunction = 0x2E1FF28 24 | menuItemSlotCount = 0x2E92752 25 | menuMaxButtonCount = 0x2E92750 26 | minitimer = 0x232D984 27 | reports = 0x2DEA6A0 28 | room = 0x233FE44 29 | saveOpenAddress = 0x232D904 30 | skippable = 0x23977E4 31 | soraHP = 0x2D5C5CC 32 | soraHUD = 0x2811E1C 33 | stateFlag = 0x2866C58 34 | summoning = 0x2D6092C 35 | textProg = 0x232D8F4 36 | warpTrigger = 0x22EB9DC 37 | warpType1 = 0x233F540 38 | warpType2 = 0x22EB9E0 39 | white = 0x233F79C 40 | world = 0x233FE4C 41 | 42 | -- rando shared 43 | ardOff = 0x237C100 44 | khamaActive = 0x2D37A30 45 | OCseed = 0x238C780 46 | roomWarp = 0x233FE74 47 | soraPointer = 0x2537990 48 | soraStats = 0x2DE8D16 49 | theonActive = 0x2D391A0 50 | worldFlagBase = 0x2DEAE30 51 | worldWarp = 0x233FE70 52 | 53 | -- 4:3 54 | height = 0x3B3574 55 | 56 | -- achievements 57 | ach = 0x21AA8A8 58 | 59 | -- auto attack 60 | attackCommand = 0x52860C 61 | attInp = 0x2340335 62 | fireState1 = 0x23D3900 63 | fireState2 = 0x232D744 64 | swapped = 0x22D9F7E 65 | 66 | -- rando chaos 67 | anims = 0x2D2D0B0 68 | attackElement = 0x2D27238 69 | commandMenuPointer = 0x2D366D0 70 | donaldPointer = 0x2D36C08 71 | goofyPointer = 0x2D36C10 72 | moveSpeed = 0x2D5C498 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232D890 75 | musicSpeedHack = 0xA778B 76 | soraResist = 0x2D5C508 77 | weaponSize = 0xD2DF20 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EC358 81 | zantHack = 0x2A4948 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x1781FC 86 | skipArray2 = 0x17D043 87 | skipFlag1 = 0x233F8B8 88 | skipFlag2 = 0x233FDA0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DB5F4, 0x70D284, 0x233FE94, 0x2D36C20, 0x2D370D0, 93 | 0x2D37580, 0x2D37EF4, 0x2D38840, 0x2D38854, 0x2D39FB0, 94 | 0x2D3A460, 0x2D3A910, 0x2D3ADC0, 0x2D3C080, 0x2D3C9E0, 95 | 0x2D3D340, 0x2D41E40, 0x2D45B30, 0x2D5C6CC, 0x2D5C8CC, 96 | 0x2D5C9CC, 0x2D5CDCC 97 | 98 | } 99 | enemyAddresses = { 100 | 0x7E4340, 0x838A40, 0x855140, 0x8A80C0, 0x8A8100, 101 | 0x8A8140, 0x8CA380, 0x8D2C40, 0x8D4380, 0x8E40C0, 102 | 0x917DC0, 0x91DE40, 0x926000, 0x950F80, 0x9538C0, 103 | 0x956BC0, 0x95CCC0, 0x95CEC0, 0x95F540, 0x960040, 104 | 0x960100, 0x9700C0, 0x975EC0, 0x97EE40, 0x97EE80, 105 | 0x983340, 0x98BC00, 0x98BC40, 0x98BC80, 0x996180, 106 | 0x9961C0, 0x996200, 0x996D80, 0x99F640, 0x9A7DA0, 107 | 0x9A8480, 0x9A8500, 0x9AB6C0, 0x9AFEC0, 0x9B6540, 108 | 0x9BBD40, 0x9C3B80, 0x9C7640, 0x9C76C0, 0x9C7700, 109 | 0x9C7740, 0x9CDAC0, 0x9CDE00, 0x9CE980, 0x9D2580, 110 | 0x9D26C0, 0x9D4800, 0x9D4B60, 0x9D5E40, 0x9DAB40, 111 | 0x9E1920, 0x9E3400, 0x9E34C0, 0x9E6AA0, 0x9F6640, 112 | 0x9F7880, 0x9FB380, 0x9FD980, 0xA05240, 0xA0A2C0, 113 | 0xA23680, 0xA23700, 0xA25780, 0xA2DD40, 0xA4B9C0, 114 | 0xA577C0, 0xA65E40, 0xA85940, 0xA90200, 0xA90340, 115 | 0xA9AA80, 0xA9AAC0, 0xAC3A80, 0xAC3AC0, 0xAC3B80, 116 | 0xAC3BC0, 0xAC3C00, 0xAD37C0, 0xAD3800, 0xAD3840, 117 | 0xAD3880, 0xAD38C0, 0xAD3900, 0xAD3940, 0xAD3A80, 118 | 0xAD3B20, 0xAE8F00, 0xB0DE40, 0xB0DE80, 0xB0DF20, 119 | 0xB1A000, 0xB1A4C0, 0xB1C840, 0xB5DD40, 0xB5F4C0, 120 | 0xB5F780, 0xBB3E40 121 | } 122 | bittestRender = 0x232D770 123 | combo = 0x2DE57B4 124 | cutsceneFlags = 0x2DEA1E0 125 | floorStatus = 0x52897C 126 | glideBarrier = 0x5069D8 127 | inTournament = 0x238C778 128 | wall = 0x6DC614 129 | 130 | -- fast camera 131 | cameraCenter = 0x2537A34 132 | cameraInputH = 0x2340360 133 | cameraInputV = 0x2340364 134 | curSpeedH = 0x25377D4 135 | curSpeedV = 0x25377D0 136 | speed = 0x506AAC 137 | 138 | -- faster dialogue 139 | textSpeed = 0x233F55C 140 | textTrans = 0x22EBA44 141 | 142 | -- hook ship 143 | debug1Value = 2 144 | neverland = 0x2DEABD7 145 | posDebug1 = 0x232D6A0 146 | posDebug2 = 0x2537964 147 | posDebugString = 0x3EA138 148 | 149 | -- instant gummi 150 | monstro = 0x2DEABDA 151 | normalDrive = 0x26891EC 152 | worldWarpBase = 0x50E9FA 153 | worldWarpBase2 = 0x50EA6A 154 | 155 | -- rando some logic 156 | animHalfPointersAddress = 0x2869798 157 | ardoffsetClock = 0x2398210 158 | battleLevel = 0x2DEA6A4 159 | characters = 0x2DEA3C4 160 | chestTable = 0x528A60 161 | chestsOpened = 0x2DE92F8 162 | chronicles = 0x2DEA67B 163 | collectedFruits = 0x232D988 164 | currentTerminus = 0x2395C64 165 | donaldAbilityTable = 0x2D265E0 166 | donaldStatTable = 0x2D26578 167 | emblemCount = 0x2DEAB8D 168 | emblemDoor = 0x2DEAB9C 169 | enableRC = 0x2DE9554 170 | evidence = 0x2DE9AE8 171 | evidenceActiveBizarre = 0x2D3C530 172 | evidenceActiveForest = 0x2D3CE90 173 | experienceMult = 0x2D5C480 174 | goofyAbilityTable = 0x2D26778 175 | goofyStatTable = 0x2D26710 176 | gummiFlagBase = 0x2DEABD0 177 | halfPointersAddress = 0x2EE36B0 178 | infoBoxNotVisible = 0x23D3B90 179 | instantGummiFix = 0x2537058 180 | inventory = 0x2DE917A 181 | itemDropID = 0x284D2C8 182 | itemTable = 0x2D24118 183 | jumpHeights = 0x2D2276C 184 | language = 0x2E1AEAB 185 | libraryFlag = 0x2DEAE03 186 | lockMenu = 0x232D90C 187 | magicFlags = 0x2DEA8FE 188 | magicLevels = 0x2DE9172 189 | menuCheck = 0x2E92198 190 | mermaidKickSpeed = 0x3EF80C 191 | OCCupDialog = 0x23999B0 192 | OCCupUnlock = 0x2DEAAE0 193 | oppositeState = 0x2DE99FD 194 | oppositeTrigger = 0x2DE99FD 195 | party2 = 0x2E1FEE5 196 | poohProgress = 0x2DEAA28 197 | poohProgress2 = 0x2DEA100 198 | randoInitCheck = 0x7AC188 199 | RCName = 0x2866690 200 | report1 = 0x1D06804 201 | rewardTable = 0x2D2ED68 202 | roomWarpRead = 0x232D888 203 | savedFruits = 0x2DEAA1E 204 | sharedAbilities = 0x2DE9279 205 | shopTableBase = 0x4FE3C4 206 | shortcuts = 0x2DE9524 207 | slideActive = 0x2D3F410 208 | sliderProgress = 0x2DEAA19 209 | soraAbilityTable = 0x2D262B8 210 | soraAbilityTable2 = 0x2D261E8 211 | soraAbilityTable3 = 0x2D26250 212 | soraStatTable = 0x2D26180 213 | summons = 0x2DE94B0 214 | summonsReturned = 0x2DE9A0C 215 | superglideBaseSpeed = 0 216 | superglideSpeedHack = 0x2B03F4 217 | synthItems = 0x547580 218 | synthRequirements = 0x5473A0 219 | terminusTeleUsable = 0x2395BA4 -- On: 4378 Off: 4294957296 220 | terminusTeleVisible = 0x2677DC8 -- On: 1166594048 Off: 3323740160 221 | textBox = 0x23D3364 222 | textPointerBase = 0x2B9BC00 223 | trinityUnlock = 0x2DEA8FB 224 | unequipBlacklist = 0x545020 225 | unlockedWarps = 0x2DEABDF 226 | warpCount = 0x50EACC 227 | warpDefinitions = 0x232D880 228 | waterwayCutsceneFlag = 0x2DE99F2 229 | waterwayGate = 0x2DEA94D 230 | waterwayTrinity = 0x2DEA991 231 | weaponTable = 0x2D2BBE8 232 | worldMapLines = 0x2DEABF2 233 | worldWarps = 0x50E9E8 234 | 235 | -- ASL shared 236 | gummiInventory = 0x2DF4B5C 237 | magicUnlock = 0x2DE8D54 238 | party1 = 0x2DE916F 239 | soraCurAbilities = 0x2DE8D24 240 | 241 | -- save anywhere 242 | cam = 0x506AA8 243 | config = 0x2DFF0E0 244 | continue = 0x2DFF8E0 245 | cutSceneAspect = 0x4DD242 246 | deathCheck = 0x299A20 247 | saveAnywhere = 0x23541D4 248 | title = 0x233FDB8 249 | titlescreenamvtimer = 0x2EE88D4 250 | titlescreenpicture = 0x2EE45EC 251 | 252 | -- unlock 0 volume 253 | volumeZero = 0x3D8B04 254 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/Rando/itemNames.lua: -------------------------------------------------------------------------------- 1 | itemNames = { 2 | {"Potion", "-"}, 3 | {"Hi-Potion", "-"}, 4 | {"Ether", "-"}, 5 | {"Elixir", "-"}, 6 | {"BO5", "-"}, 7 | {"Mega-Potion", "-"}, 8 | {"Mega-Ether", "-"}, 9 | {"Megalixir", "-"}, 10 | {"Fury Stone", "-"}, 11 | {"Power Stone", "-"}, 12 | {"Energy Stone", "-"}, 13 | {"Blazing Stone", "-"}, 14 | {"Frost Stone", "-"}, 15 | {"Lightning Stone", "-"}, 16 | {"Dazzling Stone", "-"}, 17 | {"Stormy Stone", "-"}, 18 | {"Protect Chain", "-"}, 19 | {"Protera Chain", "-"}, 20 | {"Protega Chain", "-"}, 21 | {"Fire Ring", "-"}, 22 | {"Fira Ring", "-"}, 23 | {"Firaga Ring", "-"}, 24 | {"Blizzard Ring", "-"}, 25 | {"Blizzara Ring", "-"}, 26 | {"Blizzaga Ring", "-"}, 27 | {"Thunder Ring", "-"}, 28 | {"Thundara Ring", "-"}, 29 | {"Thundaga Ring", "-"}, 30 | {"Ability Stud", "-"}, 31 | {"Guard Earring", "-"}, 32 | {"Master Earring", "-"}, 33 | {"Chaos Ring", "-"}, 34 | {"Dark Ring", "-"}, 35 | {"Element Ring", "-"}, 36 | {"Three Stars", "-"}, 37 | {"Power Chain", "-"}, 38 | {"Golem Chain", "-"}, 39 | {"Titan Chain", "-"}, 40 | {"Energy Bangle", "-"}, 41 | {"Angel Bangle", "-"}, 42 | {"Gaia Bangle", "-"}, 43 | {"Magic Armlet", "-"}, 44 | {"Rune Armlet", "-"}, 45 | {"Atlas Armlet", "-"}, 46 | {"Heartguard", "-"}, 47 | {"Ribbon", "-"}, 48 | {"Crystal Crown", "-"}, 49 | {"Brave Warrior", "-"}, 50 | {"Ifrit's Horn", "-"}, 51 | {"Inferno Band", "-"}, 52 | {"White Fang", "-"}, 53 | {"Ray of Light", "-"}, 54 | {"Holy Circlet", "-"}, 55 | {"Raven's Claw", "-"}, 56 | {"Omega Arts", "-"}, 57 | {"EXP Earring", "-"}, 58 | {"A41", "-"}, 59 | {"EXP Ring", "-"}, 60 | {"EXP Bracelet", "-"}, 61 | {"EXP Necklace", "-"}, 62 | {"Firagun Band", "-"}, 63 | {"Blizzagun Band", "-"}, 64 | {"Thundagun Band", "-"}, 65 | {"Ifrit Belt", "-"}, 66 | {"Shiva Belt", "-"}, 67 | {"Ramuh Belt", "-"}, 68 | {"Moogle Badge", "-"}, 69 | {"Cosmic Arts", "-"}, 70 | {"Royal Crown", "-"}, 71 | {"Prime Cap", "-"}, 72 | {"Obsidian Ring", "-"}, 73 | {"A56", "-"}, 74 | {"A57", "-"}, 75 | {"A58", "-"}, 76 | {"A59", "-"}, 77 | {"A60", "-"}, 78 | {"A61", "-"}, 79 | {"A62", "-"}, 80 | {"A63", "-"}, 81 | {"A64", "-"}, 82 | {"Kingdom Key", "-"}, 83 | {"Dream Sword", "-"}, 84 | {"Dream Shield", "-"}, 85 | {"Dream Rod", "-"}, 86 | {"Wooden Sword", "-"}, 87 | {"Jungle King", "-"}, 88 | {"Three Wishes", "-"}, 89 | {"Fairy Harp", "-"}, 90 | {"Pumpkinhead", "-"}, 91 | {"Crabclaw", "-"}, 92 | {"Divine Rose", "-"}, 93 | {"Spellbinder", "-"}, 94 | {"Olympia", "-"}, 95 | {"Lionheart", "-"}, 96 | {"Metal Chocobo", "-"}, 97 | {"Oathkeeper", "-"}, 98 | {"Oblivion", "-"}, 99 | {"Lady Luck", "-"}, 100 | {"Wishing Star", "-"}, 101 | {"Ultima Weapon", "-"}, 102 | {"Diamond Dust", "-"}, 103 | {"One-Winged Angel", "-"}, 104 | {"Mage's Staff", "-"}, 105 | {"Morning Star", "-"}, 106 | {"Shooting Star", "-"}, 107 | {"Magus Staff", "-"}, 108 | {"Wisdom Staff", "-"}, 109 | {"Warhammer", "-"}, 110 | {"Silver Mallet", "-"}, 111 | {"Grand Mallet", "-"}, 112 | {"Lord Fortune", "-"}, 113 | {"Violetta", "-"}, 114 | {"Dream Rod (Donald)", "-"}, 115 | {"Save the Queen", "-"}, 116 | {"Wizard's Relic", "-"}, 117 | {"Meteor Strike", "-"}, 118 | {"Fantasista", "-"}, 119 | {"Unused (Donald)", "-"}, 120 | {"Knight's Shield", "-"}, 121 | {"Mythril Shield", "-"}, 122 | {"Onyx Shield", "-"}, 123 | {"Stout Shield", "-"}, 124 | {"Golem Shield", "-"}, 125 | {"Adamant Shield", "-"}, 126 | {"Smasher", "-"}, 127 | {"Gigas Fist", "-"}, 128 | {"Genji Shield", "-"}, 129 | {"Herc's Shield", "-"}, 130 | {"Dream Shield", "-"}, 131 | {"Save the King", "-"}, 132 | {"Defender", "-"}, 133 | {"Mighty Shield", "-"}, 134 | {"Seven Elements", "-"}, 135 | {"Unused (Goofy)", "-"}, 136 | {"Spear", "-"}, 137 | {"No Weapon", "-"}, 138 | {"Genie", "-"}, 139 | {"No Weapon", "-"}, 140 | {"No Weapon", "-"}, 141 | {"Tinker Bell", "-"}, 142 | {"Claws", "-"}, 143 | {"Tent", "-"}, 144 | {"Camping Set", "-"}, 145 | {"Cottage", "-"}, 146 | {"C04", "-"}, 147 | {"C05", "-"}, 148 | {"C06", "-"}, 149 | {"C07", "-"}, 150 | {"Ansem's Report 11", "Kurt Zisa", "HB1", "HB2", "EotW"}, 151 | {"Ansem's Report 12", "Sephiroth", "HB1", "HB2", "EotW"}, 152 | {"Ansem's Report 13", "Unknown", "HB1", "HB2", "EotW"}, 153 | {"Power Up", "-"}, 154 | {"Defense Up", "-"}, 155 | {"AP Up", "-"}, 156 | {"Serenity Power", "-"}, 157 | {"Dark Matter", "-"}, 158 | {"Mythril Stone", "-"}, 159 | {"Fire Arts", "-"}, 160 | {"Blizzard Arts", "-"}, 161 | {"Thunder Arts", "-"}, 162 | {"Cure Arts", "-"}, 163 | {"Gravity Arts", "-"}, 164 | {"Stop Arts", "-"}, 165 | {"Aero Arts", "-"}, 166 | {"Shiitank Rank", "-"}, 167 | {"Matsutake Rank", "-"}, 168 | {"Mystery Mold", "-"}, 169 | {"Ansem's Report 1", "-"}, 170 | {"Ansem's Report 2", "-"}, 171 | {"Ansem's Report 3", "Ursula", "Mermaid Kick"}, 172 | {"Ansem's Report 4", "-"}, 173 | {"Ansem's Report 5", "-"}, 174 | {"Ansem's Report 6", "-"}, 175 | {"Ansem's Report 7", "Oogie", "Jack-In-The-Box"}, 176 | {"Ansem's Report 8", "-"}, 177 | {"Ansem's Report 9", "Hook", "Green Trinity"}, 178 | {"Ansem's Report 10", "-"}, 179 | {"Khama Vol. 8", "-", "-"}, 180 | {"Salegg Vol. 6", "-"}, 181 | {"Azal Vol. 3", "-"}, 182 | {"Mava Vol. 3", "-"}, 183 | {"Mava Vol. 6", "-"}, 184 | {"Theon Vol. 6", "", "-"}, 185 | {"Nahara Vol. 5", "-"}, 186 | {"Hafet Vol. 4", "-"}, 187 | {"Empty Bottle", "-"}, 188 | {"Old Book", "-"}, 189 | {"Emblem Piece (Flame)", "Entrance Hall", "Fire Magic", "Theon OR High Jumpra"}, 190 | {"Emblem Piece (Chest)", "Entrance Hall", "Theon OR High Jumpra"}, 191 | {"Emblem Piece (Statue)", "Entrance Hall", "Red Trinity", "Theon OR High Jumpra"}, 192 | {"Emblem Piece (Fountain)", "Entrance Hall", "Theon OR High Jumpra"}, 193 | {"Log", "Destiny Islands"}, 194 | {"Cloth", "Destiny Islands"}, 195 | {"Rope", "Destiny Islands"}, 196 | {"Seagull Egg", "Destiny Islands", "Day1"}, 197 | {"Fish", "Destiny Islands", "Day1"}, 198 | {"Mushroom", "Destiny Islands", "Day1"}, 199 | {"Coconut", "Destiny Islands", "Day1"}, 200 | {"Drinking Water", "Destiny Islands", "Day1"}, 201 | {"Navi-G Piece 1", "Wonderland", "Evidence"}, 202 | {"Navi-G Piece 2", "Deep Jungle", "Slides"}, 203 | {"Navi-Gummi Unused", "-"}, 204 | {"Navi-G Piece 3", "Traverse Town", "Red Trinity"}, 205 | {"Navi-G Piece 4", "Neverland", "Green Trinity"}, 206 | {"Navi-Gummi", "Traverse Town", "HB1"}, 207 | {"Watergleam", "-", "-"}, 208 | {"Naturespark", "-", "-"}, 209 | {"Fireglow", "-", "-"}, 210 | {"Earthshine", "-", "-"}, 211 | {"Crystal Trident", "-"}, 212 | {"Postcard", "-", "-"}, 213 | {"Torn Page 1", "Dalmatians' House", "51 Puppies"}, 214 | {"Torn Page 2", "-", "-"}, 215 | {"Torn Page 3", "-", "-"}, 216 | {"Torn Page 4", "-"}, 217 | {"Torn Page 5", "-"}, 218 | {"Slide 1", "-", "-"}, 219 | {"Slide 2", "-", "-"}, 220 | {"Slide 3", "-", "-"}, 221 | {"Slide 4", "-", "-"}, 222 | {"Slide 5", "-", "-"}, 223 | {"Slide 6", "-", "-"}, 224 | {"Footprints", "-", "-"}, 225 | {"Claw Marks", "-", "-"}, 226 | {"Stench", "-", "-"}, 227 | {"Antenna", "-", "-"}, 228 | {"Forget-Me-Not", "-", "Jack-In-The-Box"}, 229 | {"Jack-In-The-Box", "-", "-"}, 230 | {"Entry Pass", "-"}, 231 | {"Hero License", "-", "Entry Pass"}, 232 | {"Pretty Stone", "-"}, 233 | {"N41", "-", "-"}, 234 | {"Lucid Shard", "-"}, 235 | {"Lucid Gem", "-"}, 236 | {"Lucid Crystal", "-"}, 237 | {"Spirit Shard", "-"}, 238 | {"Spirit Gem", "-"}, 239 | {"Power Shard", "-"}, 240 | {"Power Gem", "-"}, 241 | {"Power Crystal", "-"}, 242 | {"Blaze Shard", "-"}, 243 | {"Blaze Gem", "-"}, 244 | {"Frost Shard", "-"}, 245 | {"Frost Gem", "-"}, 246 | {"Thunder Shard", "-"}, 247 | {"Thunder Gem", "-"}, 248 | {"Shiny Crystal", "-"}, 249 | {"Bright Shard", "-"}, 250 | {"Bright Gem", "-"}, 251 | {"Bright Crystal", "-"}, 252 | {"Mystery Goo", "-"}, 253 | {"Gale", "-"}, 254 | {"Mythril Shard", "-"}, 255 | {"Mythril", "-"}, 256 | {"Orichalcum", "-"} 257 | } -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/Rando/rewards.lua: -------------------------------------------------------------------------------- 1 | rewardDetails = { 2 | [1] = {"Elixir", "Defeat Leon", "Missable"}, 3 | [2] = {"Dodge Roll", "End of TT"}, 4 | [3] = {"Mega-Potion", "Aerith TT", "Missable"}, 5 | [15] = {"Mermaid Kick", "Ursula 1"}, 6 | [16] = {"Glide", "Neverland", "Green Trinity"}, 7 | [17] = {"Superglide", "Chernabog", "EotW", "HB1", "HB2"}, 8 | [18] = {"Fireglow", "Dragon Maleficent", "HB1"}, 9 | [19] = {"Earthshine", "Secret Waterway"}, 10 | [20] = {"Jungle King", "Deep Jungle", "Slides"}, 11 | [21] = {"Three Wishes", "Agrabah"}, 12 | [22] = {"Fairy Harp", "Neverland", "Green Trinity"}, 13 | [23] = {"Pumpkinhead", "Halloween Town", "Jack-In-The-Box"}, 14 | [24] = {"Crabclaw", "Atlantica", "Mermaid Kick"}, 15 | [25] = {"Divine Rose", "Belle in HB2", "HB1", "HB2"}, 16 | [26] = {"Lionheart", "Leon & Cloud Hades Cup", "HB1", "Entry Pass"}, 17 | [27] = {"Metal Chocobo", "Cloud Hercules Cup", "Entry Pass"}, 18 | [28] = {"Oathkeeper", "Kairi TT4", "HB1"}, 19 | [29] = {"Genji Shield", "Yuffie Hades Cup", "Entry Pass"}, 20 | [30] = {"Herc's Shield", "Hercules Cup", "Entry Pass"}, 21 | [31] = {"Sonic Blade", "Olympus Coliseum", "Entry Pass"}, 22 | [32] = {"Raven's Claw", "Anti-Sora", "Green Trinity"}, 23 | [33] = {"Strike Raid", "Pegasus Cup", "Entry Pass"}, 24 | [34] = {"Ragnarok", "Riku 2", "HB1"}, 25 | [35] = {"Trinity Limit", "Hades Cup", "HB1", "Entry Pass"}, 26 | [36] = {"Ars Arcanum", "Capt. Hook", "Green Trinity"}, 27 | [37] = {"Cheer (Donald)", "Maleficent", "HB1"}, 28 | [38] = {"Cheer (Goofy)", "Parasite Cage", "High Jump OR Glide"}, 29 | [39] = {"Lord Fortune", "Fairy Godmother", "All Summons", "Fire Magic"}, 30 | [40] = {"High Jump", "Chest", "-"}, 31 | [41] = {"Watergleam", "Chest", "-"}, 32 | [42] = {"Mythril", "Chest", "-"}, 33 | [43] = {"Naturespark", "Hundred Acre Wood", "Page1"}, 34 | [44] = {"Mythril Shard", "Hundred Acre Wood", "Page2"}, 35 | [45] = {"Mythril", "Hundred Acre Wood", "Page4"}, 36 | [46] = {"EXP Ring", "Hundred Acre Wood", "Page5"}, 37 | [47] = {"Cheer (Sora)", "From Owl", "Page5"}, 38 | [48] = {"Dream Shield", "Merlin", "Arts", "All Spells"}, 39 | [49] = {"Olympia", "Olympus Coliseum", "Entry Pass"}, 40 | [50] = {"Oblivion", "Chest", "-"}, 41 | [51] = {"Mythril", "Chest", "-"}, 42 | [52] = {"Wishing Star", "Chest", "-"}, 43 | [53] = {"Mythril Shard", "Dalmatians' House", "42 Puppies"}, 44 | [54] = {"Megalixir", "Dalmatians' House", "60 Puppies"}, 45 | [55] = {"Orichalcum", "Dalmatians' House", "72 Puppies"}, 46 | [56] = {"Tech Boost", "Dalmatians' House", "90 Puppies"}, 47 | [57] = {"Brave Warrior", "Guard Armor"}, 48 | [58] = {"Ifrit's Horn", "Trickmaster", "Evidence"}, 49 | [59] = {"Inferno Band", "Cerberus", "Entry Pass"}, 50 | [60] = {"White Fang", "Sabor 2", "Slides"}, 51 | [61] = {"Ray of Light", "Pot Centipede"}, 52 | [62] = {"Holy Circlet", "Oogie Boogie", "Jack-In-The-Box"}, 53 | [63] = {"Omega Arts", "Behemoth", "HB1", "HB2"}, 54 | [64] = {"Defense Up", "Chest", "-"}, 55 | [65] = {"Elixir", "Chest", "-"}, 56 | [66] = {"AP Up", "Chest", "-"}, 57 | [67] = {"Orichalcum", "Chest", "-"}, 58 | [68] = {"Camping Set", "Chest", "-"}, 59 | [69] = {"Mega-Potion", "Chest", "-"}, 60 | [70] = {"Megalixir", "Chest", "-"}, 61 | [71] = {"Mythril Shard", "Chest", "-"}, 62 | [72] = {"Orichalcum", "Chest", "-"}, 63 | [73] = {"Lady Luck", "Chest", "-"}, 64 | [74] = {"Mega-Potion", "Chest", "-"}, 65 | [75] = {"Protect Chain", "Chest", "-"}, 66 | [76] = {"Orichalcum", "Chest", "-"}, 67 | [77] = {"Mythril Shard", "Chest", "-"}, 68 | [78] = {"AP Up", "Chest", "-"}, 69 | [79] = {"Cottage", "Chest", "-"}, 70 | [80] = {"Fire Ring", "Chest", "-"}, 71 | [81] = {"Mythril", "Chest", "-"}, 72 | [82] = {"Cottage", "Chest", "-"}, 73 | [83] = {"Elixir", "Chest", "-"}, 74 | [84] = {"Mega-Potion", "Chest", "-"}, 75 | [85] = {"Protera Chain", "Chest", "-"}, 76 | [86] = {"Mythril Shard", "Chest", "-"}, 77 | [87] = {"Violetta", "Chest", "-"}, 78 | [88] = {"Mythril Shard", "Chest", "-"}, 79 | [89] = {"Defense Up", "Chest", "-"}, 80 | [90] = {"Orichalcum", "Chest", "-"}, 81 | [91] = {"Thundara Ring", "Chest", "-"}, 82 | [92] = {"AP Up", "Chest", "-"}, 83 | [93] = {"Spellbinder", "Merlin", "All Spells"}, 84 | [94] = {"Dream Rod", "Merlin", "Max Spells"}, 85 | [95] = {"Combo Plus", "Phil Cup Solo", "Entry Pass"}, 86 | [96] = {"Orichalcum", "Pegasus Cup Solo", "Entry Pass"}, 87 | [97] = {"Critical Plus", "Hercules Cup Solo", "Entry Pass"}, 88 | [98] = {"Save the Queen", "Hades Cup Solo", "HB1", "Entry Pass"}, 89 | [99] = {"Tech Boost", "Phil Cup Time Trial", "Entry Pass"}, 90 | [100] = {"Dark Matter", "Pegasus Cup Time Trial", "Entry Pass"}, 91 | [101] = {"Gravity Break", "Hercules Cup Time Trial", "Entry Pass"}, 92 | [102] = {"Save the King", "Hades Cup Time Trial", "HB1", "Entry Pass"}, 93 | [103] = {"Protect Chain", "Chest", "-"}, 94 | [104] = {"Cottage", "Postcard 1", "Postcard 1"}, 95 | [105] = {"Mythril Shard", "Postcard 2", "Postcard 2"}, 96 | [106] = {"Mega-Potion", "Postcard 3", "Postcard 3"}, 97 | [107] = {"Mega-Ether", "Postcard 4", "Postcard 4"}, 98 | [108] = {"Mythril", "Postcard 5", "Postcard 5"}, 99 | [109] = {"Elixir", "Postcard 6", "Postcard 6"}, 100 | [110] = {"Megalixir", "Postcard 7", "Postcard 7"}, 101 | [111] = {"Orichalcum", "Postcard 8", "Postcard 8"}, 102 | [112] = {"AP Up", "Postcard 9", "Postcard 9"}, 103 | [113] = {"Defense Up", "Postcard 10", "Postcard 10"}, 104 | [114] = {"Mythril", "Dalmatians' House", "51 Puppies"}, 105 | [115] = {"Mega-Potion", "Chest", "-"}, 106 | [116] = {"Mythril Shard", "Chest", "-"}, 107 | [117] = {"Elixir", "Chest", "-"}, 108 | [118] = {"Mythril", "Chest", "-"}, 109 | [119] = {"Protera Chain", "Chest", "-"}, 110 | [120] = {"Thunder Ring", "Chest", "-"}, 111 | [121] = {"Protera Chain", "Chest", "-"}, 112 | [122] = {"Blizzara Ring", "Chest", "-"}, 113 | [123] = {"Fira Ring", "Chest", "-"}, 114 | [124] = {"Mythril Shard", "Chest", "-"}, 115 | [125] = {"Pretty Stone", "Final Dimension", "EotW"}, 116 | [126] = {"Mega-Potion", "Final Dimension", "EotW"}, 117 | [127] = {"Mythril", "Final Dimension", "EotW"}, 118 | [128] = {"Elixir", "Chest", "-"}, 119 | [129] = {"Mythril Shard", "Chest", "-"}, 120 | [130] = {"Pretty Stone", "Final Dimension", "EotW"}, 121 | [131] = {"Cottage", "Chest", "-"}, 122 | [132] = {"Gale", "Final Dimension", "EotW"}, 123 | [133] = {"AP Up", "Final Dimension", "EotW"}, 124 | [136] = {"Spirit Gem", "Chest", "-"}, 125 | [137] = {"Thunder Gem", "Chest", "-"}, 126 | [138] = {"Frost Gem", "Chest", "-"}, 127 | [139] = {"Bright Gem", "Chest", "-"}, 128 | [140] = {"Blaze Gem", "Chest", "-"}, 129 | [141] = {"Lucid Gem", "Chest", "-"}, 130 | [142] = {"Mighty Shield", "Chest", "-"}, 131 | [143] = {"Elixir", "Chest", "-"}, 132 | [144] = {"Elixir", "Jungle Slider", "Slides"}, 133 | [145] = {"AP Up", "Jungle Slider", "Slides"}, 134 | [146] = {"Dark Matter", "Jungle Slider", "Slides"}, 135 | [147] = {"Defense Up", "Jungle Slider", "Slides"}, 136 | [148] = {"Power Up", "Jungle Slider", "Slides"}, 137 | [149] = {"Diamond Dust", "Ice Titan", "Entry Pass"}, 138 | [150] = {"One-Winged Angel", "Sephiroth", "HB1", "HB2", "EotW", "Entry Pass"}, 139 | [151] = {"Zantetsuken", "Kurt Zisa", "HB1", "HB2", "EotW"}, 140 | [152] = {"EXP Necklace", "Unknown", "HB1", "HB2", "EotW"}, 141 | [154] = {"Dark Matter", "Chest", "-"}, 142 | [155] = {"Shiva Belt", "Chest", "-"}, 143 | [156] = {"Dark Matter", "Chest", "-"}, 144 | [157] = {"Dark Matter", "Chest", "-"}, 145 | [158] = {"Ifrit Belt", "Chest", "-"}, 146 | [159] = {"Dark Matter", "Chest", "-"}, 147 | [160] = {"Orichalcum", "Chest", "-"}, 148 | [161] = {"Dark Matter", "Chest", "-"}, 149 | [162] = {"Dark Matter", "Chest", "-"}, 150 | [163] = {"Orichalcum", "Chest", "-"}, 151 | [164] = {"Ramuh Belt", "Chest", "-"}, 152 | [165] = {"Royal Crown", "Chest", "-"}, 153 | [166] = {"Dark Matter", "Chest", "-"}, 154 | [167] = {"Dark Matter", "Chest", "-"}, 155 | [168] = {"Dark Matter", "Chest", "-"}, 156 | [169] = {"Meteor Strike", "Chest", "-"} 157 | } 158 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/Rando/settings.lua: -------------------------------------------------------------------------------- 1 | -- Prevent select key items from being randomized 2 | -- Item IDs are listed in items.lua 3 | -- Available options: 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 206, 230 4 | -- For example, if you want to unrandomize Entry Pass and Navi-Gummi: 5 | -- Unrandomize = {206, 230} 6 | 7 | unrandomize = {} 8 | 9 | -- Define how many slides are required to progress Deep Jungle 10 | -- And how many evidence is required to progress Wonderland 11 | -- All 4 evidence and 6 slides will be randomized and accessible regardless 12 | -- Slides must be picked up in Deep Jungle after meeting the condition, and must be picked up to progress 13 | -- This is to avoid rare softlocks that happened previously 14 | -- Evidence also becomes available for pick up after meeting condition, but is unnecessary to pick up 15 | 16 | requiredSlides = 1 17 | 18 | requiredEvidence = 1 19 | 20 | -- If you want guaranteed abilities on first level ups, put the hex codes for unequipped abilities here. 21 | -- Maximum 4 or they will replace other abilities. 22 | -- Find ability codes here https://pastebin.com/ZH0L3XXi 23 | -- Scroll down for the Not Equipped versions. 24 | -- For example, early scan and dodge roll would be: 25 | -- EarlyAbilities = {0x8A, 0x96} 26 | 27 | earlyAbilities = {0x8A} 28 | 29 | -- Variable below determines how weapon stats will be randomized. 30 | -- 0 = Not at all 31 | -- 1 = Weak weapons buffed 32 | -- 2 = Stats shuffled between keyblades (str and magic only) 33 | -- 3 = Stats shuffled and weak stats buffed 34 | 35 | weaponStatRando = 2 36 | 37 | -- Stack abilities. Currently, you can sometimes get duplicate abilities. 38 | -- This will determine if having multiple equipped is beneficial 39 | -- 0 = No stacking. Vanilla. You just have excess abilities in the menu. 40 | -- 1 = High Jump stacks: Jump higher the more you have. 41 | -- 2 = High Jump, Glides, Mermaid Kick, Dodge Roll. 42 | -- First glide/superglide turns into glide, next into superglide and past that it gets faster. 43 | 44 | stackAbilities = 2 45 | 46 | -- Allow warping with SaveAnywhere 47 | -- Warping at inopportune times can lead to crashes, audio bugs, softlocks or other issues with story progression 48 | -- Use at your own responsibility 49 | -- 0 = You can only warp from a save point 50 | -- 1 = You can warp in normal, non-combat state. Should circuvment most issues 51 | -- 2 = No restrictions 52 | 53 | warpAnywhere = 0 54 | 55 | -- HB2 unlocks EotW World Terminus warp 56 | -- Allows skipping a large portion of End of the World 57 | -- Still requires Navi Gummi as usual, so only speeds things up after necessary items have been found 58 | -- 0 = Disabled 59 | -- 1 = Enabled 60 | 61 | eotWSkip = 1 62 | 63 | -- Shop randomization 64 | -- 0 = Vanilla shops 65 | -- 1 = Shops can have anything but important key items 66 | -- 2 = Shops can have anything, including extra out of logic key items 67 | 68 | randomShops = 2 69 | 70 | -- Unrandomize rewards 71 | -- List the reward IDs from Rewards.lua that you want to unrandomize 72 | -- List them in VanillaRewards and set them to true to keep it vanilla, 73 | -- or false to put in a potion and keep the reward in the pool 74 | -- For example, if you want to unrandomize Sephiroth and Unknown 75 | -- VanillaRewards = {[150] = false, [152] = false} 76 | 77 | vanillaRewards = {[150] = false, [152] = false} 78 | 79 | -- Unrandomize chests 80 | -- List the chest IDs from Chests.lua that you want to unrandomize 81 | -- For example, if you want to unrandomize 100 acre wood chests 82 | -- VanillaChests = {[168] = false, [169] = false, [170] = false, [171] = false} 83 | -- However note that if the chest contains a reward, you should unrandomize that reward as well, 84 | -- else whatever ends up on that reward will be inaccessible 85 | -- So you should also include 77, 156, 78 in VanillaRewards set to false 86 | 87 | vanillaChests = {} 88 | 89 | -- Language for hints in Ansem's Reports 90 | -- "auto" detects a supported language automatically 91 | -- You can also manually define the language here 92 | -- In that case, a txt file with the given name must exist, and translations will be read from there 93 | 94 | hintLanguage = "auto" 95 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/SteamGlobal_1_0_0_1.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233FBCC 4 | beepHack = 0x26DECC 5 | blackFade = 0x4DC718 6 | buttonTypes = 0x2E20548 7 | closeMenu = 0x2E941C0 8 | cutscene = 0x233E808 9 | cutsceneFlagBase = 0x2DEA865 10 | deathPointer = 0x2382568 11 | dest = 0x507580 12 | dialog = 0x299BB08 13 | fadeBase = 0x233FDD0 14 | gummiSelect = 0x50707C 15 | gummiStart = 0x506F90 16 | hookship = 0xED6A1E 17 | inCutscene = 0x23AB2D0 18 | inGummi = 0x5075A8 -- differs to cover a change on linux systems 19 | inputAddress = 0x23407B4 20 | maxHP = 0x2DE9366 21 | menu = 0x232DFA0 22 | menuButtonCount = 0x2E2055C 23 | menuFunction = 0x2E204F8 24 | menuItemSlotCount = 0x2E92DF2 25 | menuMaxButtonCount = 0x2E92DF0 26 | minitimer = 0x232E000 27 | reports = 0x2DEAD20 28 | room = 0x233FE8C 29 | saveOpenAddress = 0x232DFA4 30 | skippable = 0x2382594 31 | soraHP = 0x2D5CC4C 32 | soraHUD = 0x281249C 33 | stateFlag = 0x2867364 34 | summoning = 0x2D60FAC 35 | textProg = 0x232DF74 36 | warpTrigger = 0x22EC07C 37 | warpType1 = 0x233FBC0 38 | warpType2 = 0x22EC080 39 | white = 0x233FE1C 40 | world = 0x233FE94 41 | 42 | -- rando shared 43 | ardOff = 0x2382C60 44 | khamaActive = 0x2D380B0 45 | OCseed = 0x23BBBF0 46 | roomWarp = 0x23404F4 47 | soraPointer = 0x2537E48 48 | soraStats = 0x2DE937D 49 | theonActive = 0x2D39820 50 | worldFlagBase = 0x2DEB4B0 51 | worldWarp = 0x23404F0 52 | 53 | -- 4:3 54 | height = 0x3B3504 55 | 56 | -- achievements 57 | ach = 0x21AAE28 58 | 59 | -- auto attack 60 | attackCommand = 0x52890C 61 | attInp = 0x23407B5 62 | fireState1 = 0x23D3F80 63 | fireState2 = 0x232DDC4 64 | swapped = 0x22DA5EE 65 | 66 | -- rando chaos 67 | anims = 0x2D2D730 68 | attackElement = 0x2D278B8 69 | commandMenuPointer = 0x2D36D50 70 | donaldPointer = 0x2D37288 71 | goofyPointer = 0x2D37290 72 | moveSpeed = 0x2D5CB18 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232DF20 75 | musicSpeedHack = 0xA771B 76 | soraResist = 0x2D5CB88 77 | weaponSize = 0xD2E4C0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EC538 81 | zantHack = 0x2A6C98 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17A49C 86 | skipArray2 = 0x17F323 87 | skipFlag1 = 0x233FEE8 88 | skipFlag2 = 0x23404D0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DBB74, 0x70D804, 0x2340A94, 0x2D372A0, 0x2D37750, 93 | 0x2D37C00, 0x2D38574, 0x2D38EC0, 0x2D38ED4, 0x2D3A630, 94 | 0x2D3AAE0, 0x2D3AF90, 0x2D3B440, 0x2D3C700, 0x2D3D060, 95 | 0x2D3D9C0, 0x2D424C0, 0x2D461B0, 0x2D5CD4C, 0x2D5CF4C, 96 | 0x2D5D04C, 0x2D5D44C 97 | } 98 | enemyAddresses = { 99 | 0x7E48C0, 0x838FC0, 0x8556C0, 0x8A8640, 0x8A8680, 100 | 0x8A86C0, 0x8CA900, 0x8D31C0, 0x8D4900, 0x8E4640, 101 | 0x918340, 0x91E3C0, 0x926580, 0x951500, 0x953E40, 102 | 0x957140, 0x95D240, 0x95D440, 0x95FAC0, 0x9605C0, 103 | 0x960680, 0x970640, 0x976440, 0x97F3C0, 0x97F400, 104 | 0x9838C0, 0x98C180, 0x98C1C0, 0x98C200, 0x996700, 105 | 0x996740, 0x996780, 0x997300, 0x99FBC0, 0x9A8320, 106 | 0x9A8A00, 0x9A8A80, 0x9ABC40, 0x9B0440, 0x9B6AC0, 107 | 0x9BC2C0, 0x9C4100, 0x9C7BC0, 0x9C7C40, 0x9C7C80, 108 | 0x9C7CC0, 0x9CE040, 0x9CE380, 0x9CEF00, 0x9D2B00, 109 | 0x9D2C40, 0x9D4D80, 0x9D50E0, 0x9D63C0, 0x9DB0C0, 110 | 0x9E1EA0, 0x9E3980, 0x9E3A40, 0x9E7020, 0x9F6BC0, 111 | 0x9F7E00, 0x9FB900, 0x9FDF00, 0xA057C0, 0xA0A840, 112 | 0xA23C00, 0xA23C80, 0xA25D00, 0xA2E2C0, 0xA4BF40, 113 | 0xA57D40, 0xA663C0, 0xA85EC0, 0xA90780, 0xA908C0, 114 | 0xA9B000, 0xA9B040, 0xAC4000, 0xAC4040, 0xAC4100, 115 | 0xAC4140, 0xAC4180, 0xAD3D40, 0xAD3D80, 0xAD3DC0, 116 | 0xAD3E00, 0xAD3E40, 0xAD3E80, 0xAD3EC0, 0xAD4000, 117 | 0xAD40A0, 0xAE9480, 0xB0E3C0, 0xB0E400, 0xB0E4A0, 118 | 0xB1A580, 0xB1AA40, 0xB1CDC0, 0xB5E2C0, 0xB5FA40, 119 | 0xB5FD00, 0xBB43C0 120 | } 121 | bittestRender = 0x232DE00 122 | combo = 0x2DE5E34 123 | cutsceneFlags = 0x2DEA860 124 | floorStatus = 0x528C7C 125 | glideBarrier = 0x506DE8 126 | inTournament = 0x237F4E4 127 | wall = 0x6DBB94 128 | 129 | -- fast camera 130 | cameraCenter = 0x2537EEC 131 | cameraInputH = 0x23407E0 132 | cameraInputV = 0x23407E4 133 | curSpeedH = 0x25380F0 134 | curSpeedV = 0x25380EC 135 | speed = 0x506CDC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x233FBDC 139 | textTrans = 0x22EC0E4 140 | 141 | -- hook ship 142 | debug1Value = 1 143 | neverland = 0x2DEB257 144 | posDebug1 = 0x232DD20 145 | posDebug2 = 0x2537E40 146 | posDebugString = 0x3EA318 147 | 148 | -- instant gummi 149 | monstro = 0x2DEB25A 150 | normalDrive = 0x268986C 151 | worldWarpBase = 0x50ABBA 152 | worldWarpBase2 = 0x50AC2A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x2869E18 156 | ardoffsetClock = 0x2382FC0 157 | battleLevel = 0x2DEAD24 158 | characters = 0x2DEAA44 159 | chestTable = 0x528D60 160 | chestsOpened = 0x2DE9978 161 | chronicles = 0x2DEACFB 162 | collectedFruits = 0x232E004 163 | currentTerminus = 0x2380A14 164 | donaldAbilityTable = 0x2D26C60 165 | donaldStatTable = 0x2D26BF8 166 | emblemCount = 0x2DEB20D 167 | emblemDoor = 0x2DEB21C 168 | enableRC = 0x2DE9BD4 169 | evidence = 0x2DEA168 170 | evidenceActiveBizarre = 0x2D3CBB0 171 | evidenceActiveForest = 0x2D3D510 172 | experienceMult = 0x2D5CB00 173 | goofyAbilityTable = 0x2D26DF8 174 | goofyStatTable = 0x2D26D90 175 | gummiFlagBase = 0x2DEB250 176 | halfPointersAddress = 0x2EE3980 177 | infoBoxNotVisible = 0x23D41F0 178 | instantGummiFix = 0x2538058 179 | inventory = 0x2DE97FA 180 | itemDropID = 0x284D948 181 | itemTable = 0x2D24798 182 | jumpHeights = 0x2D22DEC 183 | language = 0x2E1B52B 184 | libraryFlag = 0x2DEB483 185 | lockMenu = 0x232DF80 186 | magicFlags = 0x2DEAF7E 187 | magicLevels = 0x2DE97F2 188 | menuCheck = 0x2E92838 189 | mermaidKickSpeed = 0x3EF9DC 190 | OCCupDialog = 0x2384760 191 | OCCupUnlock = 0x2DEB160 192 | oppositeState = 0x2DEB018 193 | oppositeTrigger = 0x2DEA07D 194 | party2 = 0x2E205A5 195 | poohProgress = 0x2DEB0A8 196 | poohProgress2 = 0x2DEA780 197 | randoInitCheck = 0x7AC708 198 | RCName = 0x2866D10 199 | report1 = 0x1D06DA4 200 | rewardTable = 0x2D2F3E8 201 | roomWarpRead = 0x232DF18 202 | savedFruits = 0x2DEB09E 203 | sharedAbilities = 0x2DE98F9 204 | shopTableBase = 0x4FEE04 205 | shortcuts = 0x2DE9BA4 206 | slideActive = 0x2D403F0 207 | sliderProgress = 0x2DEB099 208 | soraAbilityTable = 0x2D26938 209 | soraAbilityTable2 = 0x2D26868 210 | soraAbilityTable3 = 0x2D268D0 211 | soraStatTable = 0x2D26800 212 | summons = 0x2DE9B30 213 | summonsReturned = 0x2DEA08C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B2744 216 | synthItems = 0x5478A0 217 | synthRequirements = 0x5476C0 218 | terminusTeleUsable = 0x2380954 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678448 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4364 221 | textPointerBase = 0x2B9C280 222 | trinityUnlock = 0x2DEAF7B 223 | unequipBlacklist = 0x545330 224 | unlockedWarps = 0x2DEB25F 225 | warpCount = 0x50AC8C 226 | warpDefinitions = 0x232DF10 227 | waterwayCutsceneFlag = 0x2DEA072 228 | waterwayGate = 0x2DEAFCD 229 | waterwayTrinity = 0x2DEB011 230 | weaponTable = 0x2D2C268 231 | worldMapLines = 0x2DEB272 232 | worldWarps = 0x50ABA8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF51DC 236 | magicUnlock = 0x2DE93D4 237 | party1 = 0x2DE97EF 238 | soraCurAbilities = 0x2DE93A4 239 | 240 | -- save anywhere 241 | cam = 0x506CD8 242 | config = 0x2DFF760 243 | continue = 0x2DFFF60 244 | cutSceneAspect = 0x4DD562 245 | deathCheck = 0x29BD70 246 | saveAnywhere = 0x2354854 247 | title = 0x23404E8 248 | titlescreenamvtimer = 0x2EE8BA4 249 | titlescreenpicture = 0x2EE8BB8 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D8AF4 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/SteamGlobal_1_0_0_2.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233FBCC 4 | beepHack = 0x26E20C 5 | blackFade = 0x4DC718 6 | buttonTypes = 0x2E20548 7 | closeMenu = 0x2E941C0 8 | cutscene = 0x233E808 9 | cutsceneFlagBase = 0x2DEA865 10 | deathPointer = 0x2382568 11 | dest = 0x507580 12 | dialog = 0x299BB08 13 | fadeBase = 0x233FDD0 14 | gummiSelect = 0x50707C 15 | gummiStart = 0x506F90 16 | hookship = 0xED6A3E 17 | inCutscene = 0x23AB2D0 18 | inGummi = 0x5075A8 -- differs to cover a change on linux systems 19 | inputAddress = 0x23407B4 20 | maxHP = 0x2DE9366 21 | menu = 0x232DFA0 22 | menuButtonCount = 0x2E2055C 23 | menuFunction = 0x2E204F8 24 | menuItemSlotCount = 0x2E92DF2 25 | menuMaxButtonCount = 0x2E92DF0 26 | minitimer = 0x232E000 27 | reports = 0x2DEAD20 28 | room = 0x233FE8C 29 | saveOpenAddress = 0x232DFA4 30 | skippable = 0x2382594 31 | soraHP = 0x2D5CC4C 32 | soraHUD = 0x281249C 33 | stateFlag = 0x2867364 34 | summoning = 0x2D60FAC 35 | textProg = 0x232DF74 36 | warpTrigger = 0x22EC0AC 37 | warpType1 = 0x233FBC0 38 | warpType2 = 0x22EC0B0 39 | white = 0x233FE1C 40 | world = 0x233FE94 41 | 42 | -- rando shared 43 | ardOff = 0x2382C60 44 | khamaActive = 0x2D380B0 45 | OCseed = 0x23BBBF0 46 | roomWarp = 0x233FEBC 47 | soraPointer = 0x2537E48 48 | soraStats = 0x2DE9396 49 | theonActive = 0x2D39820 50 | worldFlagBase = 0x2DEB4B0 51 | worldWarp = 0x233FEB8 52 | 53 | -- 4:3 54 | height = 0x3B3514 55 | 56 | -- achievements 57 | ach = 0x21AAE28 58 | 59 | -- auto attack 60 | attackCommand = 0x52890C 61 | attInp = 0x23407B5 62 | fireState1 = 0x23D3F80 63 | fireState2 = 0x232DDC4 64 | swapped = 0x4D8632 65 | 66 | -- rando chaos 67 | anims = 0x2D2D730 68 | attackElement = 0x2D278B8 69 | commandMenuPointer = 0x2D36D50 70 | donaldPointer = 0x2D37288 71 | goofyPointer = 0x2D37290 72 | moveSpeed = 0x2D5CB18 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232DF20 75 | musicSpeedHack = 0xA7A5B 76 | soraResist = 0x2D5CB88 77 | weaponSize = 0xD2E4C0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EC5A8 81 | zantHack = 0x2A6FD8 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17A7DC 86 | skipArray2 = 0x17F663 87 | skipFlag1 = 0x233FEE8 88 | skipFlag2 = 0x23404D0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DBB74, 0x70D804, 0x2340A94, 0x2D372A0, 0x2D37750, 93 | 0x2D37C00, 0x2D38574, 0x2D38EC0, 0x2D38ED4, 0x2D3A630, 94 | 0x2D3AAE0, 0x2D3AF90, 0x2D3B440, 0x2D3C700, 0x2D3D060, 95 | 0x2D3D9C0, 0x2D424C0, 0x2D461B0, 0x2D5CD4C, 0x2D5CF4C, 96 | 0x2D5D04C, 0x2D5D44C 97 | } 98 | enemyAddresses = { 99 | 0x7E48C0, 0x838FC0, 0x8556C0, 0x8A8640, 0x8A8680, 100 | 0x8A86C0, 0x8CA900, 0x8D31C0, 0x8D4900, 0x8E4640, 101 | 0x918340, 0x91E3C0, 0x926580, 0x951500, 0x953E40, 102 | 0x957140, 0x95D240, 0x95D440, 0x95FAC0, 0x9605C0, 103 | 0x960680, 0x970640, 0x976440, 0x97F3C0, 0x97F400, 104 | 0x9838C0, 0x98C180, 0x98C1C0, 0x98C200, 0x996700, 105 | 0x996740, 0x996780, 0x997300, 0x99FBC0, 0x9A8320, 106 | 0x9A8A00, 0x9A8A80, 0x9ABC40, 0x9B0440, 0x9B6AC0, 107 | 0x9BC2C0, 0x9C4100, 0x9C7BC0, 0x9C7C40, 0x9C7C80, 108 | 0x9C7CC0, 0x9CE040, 0x9CE380, 0x9CEF00, 0x9D2B00, 109 | 0x9D2C40, 0x9D4D80, 0x9D50E0, 0x9D63C0, 0x9DB0C0, 110 | 0x9E1EA0, 0x9E3980, 0x9E3A40, 0x9E7020, 0x9F6BC0, 111 | 0x9F7E00, 0x9FB900, 0x9FDF00, 0xA057C0, 0xA0A840, 112 | 0xA23C00, 0xA23C80, 0xA25D00, 0xA2E2C0, 0xA4BF40, 113 | 0xA57D40, 0xA663C0, 0xA85EC0, 0xA90780, 0xA908C0, 114 | 0xA9B000, 0xA9B040, 0xAC4000, 0xAC4040, 0xAC4100, 115 | 0xAC4140, 0xAC4180, 0xAD3D40, 0xAD3D80, 0xAD3DC0, 116 | 0xAD3E00, 0xAD3E40, 0xAD3E80, 0xAD3EC0, 0xAD4000, 117 | 0xAD40A0, 0xAE9480, 0xB0E3C0, 0xB0E400, 0xB0E4A0, 118 | 0xB1A580, 0xB1AA40, 0xB1CDC0, 0xB5E2C0, 0xB5FA40, 119 | 0xB5FD00, 0xBB43C0 120 | } 121 | bittestRender = 0x232DE00 122 | combo = 0x2DE5E34 123 | cutsceneFlags = 0x2DEA860 124 | floorStatus = 0x528C7C 125 | glideBarrier = 0x506DE8 126 | inTournament = 0x237F4E0 127 | wall = 0x6DBB94 128 | 129 | -- fast camera 130 | cameraCenter = 0x2537EEC 131 | cameraInputH = 0x23407E0 132 | cameraInputV = 0x23407E4 133 | curSpeedH = 0x25380F0 134 | curSpeedV = 0x25380EC 135 | speed = 0x506CDC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x233FBDC 139 | textTrans = 0x22EC114 140 | 141 | -- hook ship 142 | debug1Value = 2 143 | neverland = 0x2DEB257 144 | posDebug1 = 0x232DD20 145 | posDebug2 = 0x2537E40 146 | posDebugString = 0x3EA388 147 | 148 | -- instant gummi 149 | monstro = 0x2DEB25A 150 | normalDrive = 0x268986C 151 | worldWarpBase = 0x50ABBA 152 | worldWarpBase2 = 0x50AC2A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x2869E18 156 | ardoffsetClock = 0x2382FC0 157 | battleLevel = 0x2DEAD24 158 | characters = 0x2DEAA44 159 | chestTable = 0x528D60 160 | chestsOpened = 0x2DE9978 161 | chronicles = 0x2DEACFB 162 | collectedFruits = 0x232E004 163 | currentTerminus = 0x2380A14 164 | donaldAbilityTable = 0x2D26C60 165 | donaldStatTable = 0x2D26BF8 166 | emblemCount = 0x2DEB20D 167 | emblemDoor = 0x2DEB21C 168 | enableRC = 0x2DE9BD4 169 | evidence = 0x2DEA168 170 | evidenceActiveBizarre = 0x2D3CBB0 171 | evidenceActiveForest = 0x2D3D510 172 | experienceMult = 0x2D5CB00 173 | goofyAbilityTable = 0x2D26DF8 174 | goofyStatTable = 0x2D26D90 175 | gummiFlagBase = 0x2DEB250 176 | halfPointersAddress = 0x2EE3980 177 | infoBoxNotVisible = 0x23D41F0 178 | instantGummiFix = 0x2538058 179 | inventory = 0x2DE97FA 180 | itemDropID = 0x284D948 181 | itemTable = 0x2D24798 182 | jumpHeights = 0x2D22DEC 183 | language = 0x2E1B52B 184 | libraryFlag = 0x2DEB483 185 | lockMenu = 0x232DF80 186 | magicFlags = 0x2DEAF7E 187 | magicLevels = 0x2DE97F2 188 | menuCheck = 0x2E92838 189 | mermaidKickSpeed = 0x3EFA4C 190 | OCCupDialog = 0x2384760 191 | OCCupUnlock = 0x2DEB160 192 | oppositeState = 0x2DEB018 193 | oppositeTrigger = 0x2DEA07D 194 | party2 = 0x2E205A5 195 | poohProgress = 0x2DEB0A8 196 | poohProgress2 = 0x2DEA780 197 | randoInitCheck = 0x7AC788 198 | RCName = 0x2866D10 199 | report1 = 0x1D06DA4 200 | rewardTable = 0x2D2F3E8 201 | roomWarpRead = 0x232DF18 202 | savedFruits = 0x2DEB09E 203 | sharedAbilities = 0x2DE98F9 204 | shopTableBase = 0x4FEE04 205 | shortcuts = 0x2DE9BA4 206 | slideActive = 0x2D403F0 207 | sliderProgress = 0x2DEB099 208 | soraAbilityTable = 0x2D26938 209 | soraAbilityTable2 = 0x2D26868 210 | soraAbilityTable3 = 0x2D268D0 211 | soraStatTable = 0x2D26800 212 | summons = 0x2DE9B30 213 | summonsReturned = 0x2DEA08C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B2A84 216 | synthItems = 0x5478A0 217 | synthRequirements = 0x5476C0 218 | terminusTeleUsable = 0x2380954 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678448 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4364 221 | textPointerBase = 0x2B9C280 222 | trinityUnlock = 0x2DEAF7B 223 | unequipBlacklist = 0x545330 224 | unlockedWarps = 0x2DEB25F 225 | warpCount = 0x50AC8C 226 | warpDefinitions = 0x232DF10 227 | waterwayCutsceneFlag = 0x2DEA072 228 | waterwayGate = 0x2DEAFCD 229 | waterwayTrinity = 0x2DEB011 230 | weaponTable = 0x2D2C268 231 | worldMapLines = 0x2DEB272 232 | worldWarps = 0x50ABA8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF51DC 236 | magicUnlock = 0x2DE93D4 237 | party1 = 0x2DE97EF 238 | soraCurAbilities = 0x2DE93A4 239 | 240 | -- save anywhere 241 | cam = 0x506CD8 242 | config = 0x2DFF760 243 | continue = 0x2DFFF60 244 | cutSceneAspect = 0x4DD562 245 | deathCheck = 0x29C0B0 246 | saveAnywhere = 0x2354854 247 | title = 0x23404E8 248 | titlescreenamvtimer = 0x2EE8BA4 249 | titlescreenpicture = 0x2EE8BB8 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D8B64 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/SteamJP_1_0_0_1.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233FBCC 4 | beepHack = 0x26DC4C 5 | blackFade = 0x4DC718 6 | buttonTypes = 0x2E20548 7 | closeMenu = 0x2E941C0 8 | cutscene = 0x233E808 9 | cutsceneFlagBase = 0x2DEA865 10 | deathPointer = 0x2382568 11 | dest = 0x507580 12 | dialog = 0x299BB08 13 | fadeBase = 0x233FDD0 14 | gummiSelect = 0x50707C 15 | gummiStart = 0x506F90 16 | hookship = 0xED6A3E 17 | inCutscene = 0x23AB2D0 18 | inGummi = 0x5075A8 -- differs to cover a change on linux systems 19 | inputAddress = 0x23407B4 20 | maxHP = 0x2DE9366 21 | menu = 0x232DFA0 22 | menuButtonCount = 0x2E2055C 23 | menuFunction = 0x2E204F8 24 | menuItemSlotCount = 0x2E92DF2 25 | menuMaxButtonCount = 0x2E92DF0 26 | minitimer = 0x232E000 27 | reports = 0x2DEAD20 28 | room = 0x233FE8C 29 | saveOpenAddress = 0x232DFA4 30 | skippable = 0x2382594 31 | soraHP = 0x2D5CC4C 32 | soraHUD = 0x281249C 33 | stateFlag = 0x2867364 34 | summoning = 0x2D60FAC 35 | textProg = 0x232DF74 36 | warpTrigger = 0x22EC0AC 37 | warpType1 = 0x233FBC0 38 | warpType2 = 0x22EC0B0 39 | white = 0x233FE1C 40 | world = 0x233FE94 41 | 42 | -- rando shared 43 | ardOff = 0x2382C60 44 | khamaActive = 0x2D380B0 45 | OCseed = 0x23BBBF0 46 | roomWarp = 0x233FEBC 47 | soraPointer = 0x2537E48 48 | soraStats = 0x2DE9396 49 | theonActive = 0x2D39820 50 | worldFlagBase = 0x2DEB4B0 51 | worldWarp = 0x233FEB8 52 | 53 | -- 4:3 54 | height = 0x3B3484 55 | 56 | -- achievements 57 | ach = 0x21AAE28 58 | 59 | -- auto attack 60 | attackCommand = 0x52890C 61 | attInp = 0x23407B5 62 | fireState1 = 0x23D3F80 63 | fireState2 = 0x232DDC4 64 | swapped = 0x4D8632 65 | 66 | -- rando chaos 67 | anims = 0x2D2D730 68 | attackElement = 0x2D278B8 69 | commandMenuPointer = 0x2D36D50 70 | donaldPointer = 0x2D37288 71 | goofyPointer = 0x2D37290 72 | moveSpeed = 0x2D5CB18 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232DF20 75 | musicSpeedHack = 0xA7A5B 76 | soraResist = 0x2D5CB88 77 | weaponSize = 0xD2E4C0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EC5A8 81 | zantHack = 0x2A6FD8 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17A21C 86 | skipArray2 = 0x17F0A3 87 | skipFlag1 = 0x233FEE8 88 | skipFlag2 = 0x23404D0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DBB74, 0x70D804, 0x2340A94, 0x2D372A0, 0x2D37750, 93 | 0x2D37C00, 0x2D38574, 0x2D38EC0, 0x2D38ED4, 0x2D3A630, 94 | 0x2D3AAE0, 0x2D3AF90, 0x2D3B440, 0x2D3C700, 0x2D3D060, 95 | 0x2D3D9C0, 0x2D424C0, 0x2D461B0, 0x2D5CD4C, 0x2D5CF4C, 96 | 0x2D5D04C, 0x2D5D44C 97 | } 98 | enemyAddresses = { 99 | 0x7E48C0, 0x838FC0, 0x8556C0, 0x8A8640, 0x8A8680, 100 | 0x8A86C0, 0x8CA900, 0x8D31C0, 0x8D4900, 0x8E4640, 101 | 0x918340, 0x91E3C0, 0x926580, 0x951500, 0x953E40, 102 | 0x957140, 0x95D240, 0x95D440, 0x95FAC0, 0x9605C0, 103 | 0x960680, 0x970640, 0x976440, 0x97F3C0, 0x97F400, 104 | 0x9838C0, 0x98C180, 0x98C1C0, 0x98C200, 0x996700, 105 | 0x996740, 0x996780, 0x997300, 0x99FBC0, 0x9A8320, 106 | 0x9A8A00, 0x9A8A80, 0x9ABC40, 0x9B0440, 0x9B6AC0, 107 | 0x9BC2C0, 0x9C4100, 0x9C7BC0, 0x9C7C40, 0x9C7C80, 108 | 0x9C7CC0, 0x9CE040, 0x9CE380, 0x9CEF00, 0x9D2B00, 109 | 0x9D2C40, 0x9D4D80, 0x9D50E0, 0x9D63C0, 0x9DB0C0, 110 | 0x9E1EA0, 0x9E3980, 0x9E3A40, 0x9E7020, 0x9F6BC0, 111 | 0x9F7E00, 0x9FB900, 0x9FDF00, 0xA057C0, 0xA0A840, 112 | 0xA23C00, 0xA23C80, 0xA25D00, 0xA2E2C0, 0xA4BF40, 113 | 0xA57D40, 0xA663C0, 0xA85EC0, 0xA90780, 0xA908C0, 114 | 0xA9B000, 0xA9B040, 0xAC4000, 0xAC4040, 0xAC4100, 115 | 0xAC4140, 0xAC4180, 0xAD3D40, 0xAD3D80, 0xAD3DC0, 116 | 0xAD3E00, 0xAD3E40, 0xAD3E80, 0xAD3EC0, 0xAD4000, 117 | 0xAD40A0, 0xAE9480, 0xB0E3C0, 0xB0E400, 0xB0E4A0, 118 | 0xB1A580, 0xB1AA40, 0xB1CDC0, 0xB5E2C0, 0xB5FA40, 119 | 0xB5FD00, 0xBB43C0 120 | } 121 | bittestRender = 0x232DE00 122 | combo = 0x2DE5E34 123 | cutsceneFlags = 0x2DEA860 124 | floorStatus = 0x528C7C 125 | glideBarrier = 0x506DE8 126 | inTournament = 0x237F4E0 127 | wall = 0x6DBB94 128 | 129 | -- fast camera 130 | cameraCenter = 0x2537EEC 131 | cameraInputH = 0x23407E0 132 | cameraInputV = 0x23407E4 133 | curSpeedH = 0x25380F0 134 | curSpeedV = 0x25380EC 135 | speed = 0x506CDC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x233FBDC 139 | textTrans = 0x22EC114 140 | 141 | -- hook ship 142 | debug1Value = 2 143 | neverland = 0x2DEB257 144 | posDebug1 = 0x232DD20 145 | posDebug2 = 0x2537E40 146 | posDebugString = 0x3EA298 147 | 148 | -- instant gummi 149 | monstro = 0x2DEB25A 150 | normalDrive = 0x268986C 151 | worldWarpBase = 0x50ABBA 152 | worldWarpBase2 = 0x50AC2A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x2869E18 156 | ardoffsetClock = 0x2382FC0 157 | battleLevel = 0x2DEAD24 158 | characters = 0x2DEAA44 159 | chestTable = 0x528D60 160 | chestsOpened = 0x2DE9978 161 | chronicles = 0x2DEACFB 162 | collectedFruits = 0x232E004 163 | currentTerminus = 0x2380A14 164 | donaldAbilityTable = 0x2D26C60 165 | donaldStatTable = 0x2D26BF8 166 | emblemCount = 0x2DEB20D 167 | emblemDoor = 0x2DEB21C 168 | enableRC = 0x2DE9BD4 169 | evidence = 0x2DEA168 170 | evidenceActiveBizarre = 0x2D3CBB0 171 | evidenceActiveForest = 0x2D3D510 172 | experienceMult = 0x2D5CB00 173 | goofyAbilityTable = 0x2D26DF8 174 | goofyStatTable = 0x2D26D90 175 | gummiFlagBase = 0x2DEB250 176 | halfPointersAddress = 0x2EE3980 177 | infoBoxNotVisible = 0x23D41F0 178 | instantGummiFix = 0x2538058 179 | inventory = 0x2DE97FA 180 | itemDropID = 0x284D948 181 | itemTable = 0x2D24798 182 | jumpHeights = 0x2D22DEC 183 | language = 0x2E1B52B 184 | libraryFlag = 0x2DEB483 185 | lockMenu = 0x232DF80 186 | magicFlags = 0x2DEAF7E 187 | magicLevels = 0x2DE97F2 188 | menuCheck = 0x2E92838 189 | mermaidKickSpeed = 0x3EF95C 190 | OCCupDialog = 0x2384760 191 | OCCupUnlock = 0x2DEB160 192 | oppositeState = 0x2DEB018 193 | oppositeTrigger = 0x2DEA07D 194 | party2 = 0x2E205A5 195 | poohProgress = 0x2DEB0A8 196 | poohProgress2 = 0x2DEA780 197 | randoInitCheck = 0x7AC788 198 | RCName = 0x2866D10 199 | report1 = 0x1D06DA4 200 | rewardTable = 0x2D2F3E8 201 | roomWarpRead = 0x232DF18 202 | savedFruits = 0x2DEB09E 203 | sharedAbilities = 0x2DE98F9 204 | shopTableBase = 0x4FEE04 205 | shortcuts = 0x2DE9BA4 206 | slideActive = 0x2D403F0 207 | sliderProgress = 0x2DEB099 208 | soraAbilityTable = 0x2D26938 209 | soraAbilityTable2 = 0x2D26868 210 | soraAbilityTable3 = 0x2D268D0 211 | soraStatTable = 0x2D26800 212 | summons = 0x2DE9B30 213 | summonsReturned = 0x2DEA08C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B24C4 216 | synthItems = 0x5478A0 217 | synthRequirements = 0x5476C0 218 | terminusTeleUsable = 0x2380954 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678448 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4364 221 | textPointerBase = 0x2B9C280 222 | trinityUnlock = 0x2DEAF7B 223 | unequipBlacklist = 0x545330 224 | unlockedWarps = 0x2DEB25F 225 | warpCount = 0x50AC8C 226 | warpDefinitions = 0x232DF10 227 | waterwayCutsceneFlag = 0x2DEA072 228 | waterwayGate = 0x2DEAFCD 229 | waterwayTrinity = 0x2DEB011 230 | weaponTable = 0x2D2C268 231 | worldMapLines = 0x2DEB272 232 | worldWarps = 0x50ABA8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF51DC 236 | magicUnlock = 0x2DE93D4 237 | party1 = 0x2DE97EF 238 | soraCurAbilities = 0x2DE93A4 239 | 240 | -- save anywhere 241 | cam = 0x506CD8 242 | config = 0x2DFF760 243 | continue = 0x2DFFF60 244 | cutSceneAspect = 0x4DD562 245 | deathCheck = 0x29BAF0 246 | saveAnywhere = 0x2354854 247 | title = 0x23404E8 248 | titlescreenamvtimer = 0x2EE8BA4 249 | titlescreenpicture = 0x2EE8BB8 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D8A74 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/SteamJP_1_0_0_2.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | animSpeed = 0x233FBCC 4 | beepHack = 0x26DF8C 5 | blackFade = 0x4DC718 6 | buttonTypes = 0x2E20548 7 | closeMenu = 0x2E941C0 8 | cutscene = 0x233E808 9 | cutsceneFlagBase = 0x2DEA865 10 | deathPointer = 0x2382568 11 | dest = 0x507580 12 | dialog = 0x299BB08 13 | fadeBase = 0x233FDD0 14 | gummiSelect = 0x50707C 15 | gummiStart = 0x506F90 16 | hookship = 0xED6A1E 17 | inCutscene = 0x23AB2D0 18 | inGummi = 0x5075A8 -- differs to cover a change on linux systems 19 | inputAddress = 0x23407B4 20 | maxHP = 0x2DE9366 21 | menu = 0x232DFA0 22 | menuButtonCount = 0x2E2055C 23 | menuFunction = 0x2E204F8 24 | menuItemSlotCount = 0x2E92DF2 25 | menuMaxButtonCount = 0x2E92DF0 26 | minitimer = 0x232E000 27 | reports = 0x2DEAD20 28 | room = 0x233FE8C 29 | saveOpenAddress = 0x232DFA4 30 | skippable = 0x2382594 31 | soraHP = 0x2D5CC4C 32 | soraHUD = 0x281249C 33 | stateFlag = 0x2867364 34 | summoning = 0x2D60FAC 35 | textProg = 0x232DF74 36 | warpTrigger = 0x22EC0AC 37 | warpType1 = 0x233FBC0 38 | warpType2 = 0x22EC0B0 39 | white = 0x233FE1C 40 | world = 0x233FE94 41 | 42 | -- rando shared 43 | ardOff = 0x2382C60 44 | khamaActive = 0x2D380B0 45 | OCseed = 0x23BBBF0 46 | roomWarp = 0x23404F4 47 | soraPointer = 0x2537E48 48 | soraStats = 0x2DE9396 49 | theonActive = 0x2D39820 50 | worldFlagBase = 0x2DEB4B0 51 | worldWarp = 0x23404F0 52 | 53 | -- 4:3 54 | height = 0x3B34A4 55 | 56 | -- achievements 57 | ach = 0x21AAE28 58 | 59 | -- auto attack 60 | attackCommand = 0x52890C 61 | attInp = 0x23407B5 62 | fireState1 = 0x23D3F80 63 | fireState2 = 0x232DDC4 64 | swapped = 0x4D8632 65 | 66 | -- rando chaos 67 | anims = 0x2D2D730 68 | attackElement = 0x2D278B8 69 | commandMenuPointer = 0x2D36D50 70 | donaldPointer = 0x2D37288 71 | goofyPointer = 0x2D37290 72 | moveSpeed = 0x2D5CB18 73 | musicBaseSpeed = 0 74 | musicPointer = 0x232DF20 75 | musicSpeedHack = 0xA771B 76 | soraResist = 0x2D5CB88 77 | weaponSize = 0xD2E4C0 78 | 79 | -- consistent finishers 80 | gravBreak = 0x3EC538 81 | zantHack = 0x2A6D58 82 | zantValue = 0 83 | 84 | -- early skip 85 | skipArray1 = 0x17A55C 86 | skipArray2 = 0x17F3E3 87 | skipFlag1 = 0x233FEE8 88 | skipFlag2 = 0x23404D0 89 | 90 | -- rando enemy 91 | bossAdjustAddresses = { 92 | 0x6DBBF4, 0x70D884, 0x2340A94, 0x2D372A0, 0x2D37750, 93 | 0x2D37C00, 0x2D38574, 0x2D38EC0, 0x2D38ED4, 0x2D3A630, 94 | 0x2D3AAE0, 0x2D3AF90, 0x2D3B440, 0x2D3C700, 0x2D3D060, 95 | 0x2D3D9C0, 0x2D424C0, 0x2D461B0, 0x2D5CD4C, 0x2D5CF4C, 96 | 0x2D5D04C, 0x2D5D44C 97 | } 98 | enemyAddresses = { 99 | 0x7E4940, 0x839040, 0x855740, 0x8A86C0, 0x8A8700, 100 | 0x8A8740, 0x8CA980, 0x8D3240, 0x8D4980, 0x8E46C0, 101 | 0x9183C0, 0x91E440, 0x926600, 0x951580, 0x953EC0, 102 | 0x9571C0, 0x95D2C0, 0x95D4C0, 0x95FB40, 0x960640, 103 | 0x960700, 0x9706C0, 0x9764C0, 0x97F440, 0x97F480, 104 | 0x983940, 0x98C200, 0x98C240, 0x98C280, 0x996780, 105 | 0x9967C0, 0x996800, 0x997380, 0x99FC40, 0x9A83A0, 106 | 0x9A8A80, 0x9A8B00, 0x9ABCC0, 0x9B04C0, 0x9B6B40, 107 | 0x9BC340, 0x9C4180, 0x9C7C40, 0x9C7CC0, 0x9C7D00, 108 | 0x9C7D40, 0x9CE0C0, 0x9CE400, 0x9CEF80, 0x9D2B80, 109 | 0x9D2CC0, 0x9D4E00, 0x9D5160, 0x9D6440, 0x9DB140, 110 | 0x9E1F20, 0x9E3A00, 0x9E3AC0, 0x9E70A0, 0x9F6C40, 111 | 0x9F7E80, 0x9FB980, 0x9FDF80, 0xA05840, 0xA0A8C0, 112 | 0xA23C80, 0xA23D00, 0xA25D80, 0xA2E340, 0xA4BFC0, 113 | 0xA57DC0, 0xA66440, 0xA85F40, 0xA90800, 0xA90940, 114 | 0xA9B080, 0xA9B0C0, 0xAC4080, 0xAC40C0, 0xAC4180, 115 | 0xAC41C0, 0xAC4200, 0xAD3DC0, 0xAD3E00, 0xAD3E40, 116 | 0xAD3E80, 0xAD3EC0, 0xAD3F00, 0xAD3F40, 0xAD4080, 117 | 0xAD4120, 0xAE9500, 0xB0E440, 0xB0E480, 0xB0E520, 118 | 0xB1A600, 0xB1AAC0, 0xB1CE40, 0xB5E340, 0xB5FAC0, 119 | 0xB5FD80, 0xBB4440 120 | } 121 | bittestRender = 0x232DE00 122 | combo = 0x2DE5E34 123 | cutsceneFlags = 0x2DEA860 124 | floorStatus = 0x528C7C 125 | glideBarrier = 0x506DE8 126 | inTournament = 0x237F4E0 127 | wall = 0x6DBC14 128 | 129 | -- fast camera 130 | cameraCenter = 0x2537EEC 131 | cameraInputH = 0x23407E0 132 | cameraInputV = 0x23407E4 133 | curSpeedH = 0x25380F0 134 | curSpeedV = 0x25380EC 135 | speed = 0x506CDC 136 | 137 | -- faster dialogue 138 | textSpeed = 0x233FBDC 139 | textTrans = 0x22EC194 140 | 141 | -- hook ship 142 | debug1Value = 2 143 | neverland = 0x2DEB257 144 | posDebug1 = 0x232DD20 145 | posDebug2 = 0x2537E40 146 | posDebugString = 0x3EA318 147 | 148 | -- instant gummi 149 | monstro = 0x2DEB25A 150 | normalDrive = 0x268986C 151 | worldWarpBase = 0x50ABBA 152 | worldWarpBase2 = 0x50AC2A 153 | 154 | -- rando some logic 155 | animHalfPointersAddress = 0x2869E18 156 | ardoffsetClock = 0x2382FC0 157 | battleLevel = 0x2DEAD24 158 | characters = 0x2DEAA44 159 | chestTable = 0x528D60 160 | chestsOpened = 0x2DE9978 161 | chronicles = 0x2DEACFB 162 | collectedFruits = 0x232E004 163 | currentTerminus = 0x2380A14 164 | donaldAbilityTable = 0x2D26C60 165 | donaldStatTable = 0x2D26BF8 166 | emblemCount = 0x2DEB20D 167 | emblemDoor = 0x2DEB21C 168 | enableRC = 0x2DE9BD4 169 | evidence = 0x2DEA168 170 | evidenceActiveBizarre = 0x2D3CBB0 171 | evidenceActiveForest = 0x2D3D510 172 | experienceMult = 0x2D5CB00 173 | goofyAbilityTable = 0x2D26DF8 174 | goofyStatTable = 0x2D26D90 175 | gummiFlagBase = 0x2DEB250 176 | halfPointersAddress = 0x2EE3980 177 | infoBoxNotVisible = 0x23D41F0 178 | instantGummiFix = 0x2538058 179 | inventory = 0x2DE97FA 180 | itemDropID = 0x284D948 181 | itemTable = 0x2D24798 182 | jumpHeights = 0x2D22DEC 183 | language = 0x2E1B52B 184 | libraryFlag = 0x2DEB483 185 | lockMenu = 0x232DF80 186 | magicFlags = 0x2DEAF7E 187 | magicLevels = 0x2DE97F2 188 | menuCheck = 0x2E92838 189 | mermaidKickSpeed = 0x3EF9DC 190 | OCCupDialog = 0x2384760 191 | OCCupUnlock = 0x2DEB160 192 | oppositeState = 0x2DEB018 193 | oppositeTrigger = 0x2DEA07D 194 | party2 = 0x2E205A5 195 | poohProgress = 0x2DEB0A8 196 | poohProgress2 = 0x2DEA780 197 | randoInitCheck = 0x7AC788 198 | RCName = 0x2866D10 199 | report1 = 0x1D06DA4 200 | rewardTable = 0x2D2F3E8 201 | roomWarpRead = 0x232DF18 202 | savedFruits = 0x2DEB09E 203 | sharedAbilities = 0x2DE98F9 204 | shopTableBase = 0x4FEE04 205 | shortcuts = 0x2DE9BA4 206 | slideActive = 0x2D403F0 207 | sliderProgress = 0x2DEB099 208 | soraAbilityTable = 0x2D26938 209 | soraAbilityTable2 = 0x2D26868 210 | soraAbilityTable3 = 0x2D268D0 211 | soraStatTable = 0x2D26800 212 | summons = 0x2DE9B30 213 | summonsReturned = 0x2DEA08C 214 | superglideBaseSpeed = 0 215 | superglideSpeedHack = 0x2B2804 216 | synthItems = 0x5478A0 217 | synthRequirements = 0x5476C0 218 | terminusTeleUsable = 0x2380954 -- On: 4378 Off: 4294957296 219 | terminusTeleVisible = 0x2678448 -- On: 1166594048 Off: 3323740160 220 | textBox = 0x23D4364 221 | textPointerBase = 0x2B9C280 222 | trinityUnlock = 0x2DEAF7B 223 | unequipBlacklist = 0x545330 224 | unlockedWarps = 0x2DEB25F 225 | warpCount = 0x50AC8C 226 | warpDefinitions = 0x232DF10 227 | waterwayCutsceneFlag = 0x2DEA072 228 | waterwayGate = 0x2DEAFCD 229 | waterwayTrinity = 0x2DEB011 230 | weaponTable = 0x2D2C268 231 | worldMapLines = 0x2DEB272 232 | worldWarps = 0x50ABA8 233 | 234 | -- ASL shared 235 | gummiInventory = 0x2DF51DC 236 | magicUnlock = 0x2DE93D4 237 | party1 = 0x2DE97EF 238 | soraCurAbilities = 0x2DE93A4 239 | 240 | -- save anywhere 241 | cam = 0x506CD8 242 | config = 0x2DFF760 243 | continue = 0x2DFFF60 244 | cutSceneAspect = 0x4DD562 245 | deathCheck = 0x29BE30 246 | saveAnywhere = 0x2354854 247 | title = 0x23404E8 248 | titlescreenamvtimer = 0x2EE8BA4 249 | titlescreenpicture = 0x2EE8BB8 250 | 251 | -- unlock 0 volume 252 | volumeZero = 0x3D8AF4 253 | -------------------------------------------------------------------------------- /1FMMods/scripts/io_packages/VersionCheck.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | versions = { 3 | "EGSGlobal_1_0_0_8", 4 | "EGSGlobal_1_0_0_9", 5 | "EGSGlobal_1_0_0_10", 6 | "EGSJP_1_0_0_8", 7 | "EGSJP_1_0_0_9", 8 | "EGSJP_1_0_0_10", 9 | "SteamGlobal_1_0_0_1", 10 | "SteamGlobal_1_0_0_2", 11 | "SteamJP_1_0_0_1", 12 | "SteamJP_1_0_0_2" 13 | } 14 | versions_table = { 15 | EGSGlobal_1_0_0_8 = 0x46726E, 16 | EGSGlobal_1_0_0_9 = 0x46A7A2, 17 | EGSGlobal_1_0_0_10 = 0x46A822, 18 | EGSJP_1_0_0_8 = 0x46726E, 19 | EGSJP_1_0_0_9 = 0x4697A2, 20 | EGSJP_1_0_0_10 = 0x46A802, 21 | SteamGlobal_1_0_0_1 = 0x469872, 22 | SteamGlobal_1_0_0_2 = 0x4698D2, 23 | SteamJP_1_0_0_1 = 0x4697F2, 24 | SteamJP_1_0_0_2 = 0x469872, 25 | } 26 | 27 | version = nil 28 | canExecute = false 29 | 30 | function importVars(file) 31 | local slashIdx = string.find(file, "/") 32 | if not pcall(require, file) then 33 | local errorString = "\n\n!!!!!!!! IMPORT ERROR !!!!!!!!\n\n" 34 | local msg = "" 35 | if slashIdx then 36 | msg_part_1 = string.format("%s.lua missing, get it from the Github!", string.sub(file, slashIdx + 1, #file)) 37 | msg_part_2 = "\nMissing file is from the Rando folder inside io_packages." 38 | msg = string.format("%s%s", msg_part_1, msg_part_2) 39 | else 40 | msg_part_1 = string.format("%s.lua missing, get it from the Github!", file) 41 | msg_part_2 = "\nMissing file is from the io_packages folder." 42 | msg = string.format("%s%s", msg_part_1, msg_part_2) 43 | end 44 | ConsolePrint(string.format("%s%s%s", errorString, msg, errorString)) 45 | else 46 | -- Extra check for version overlaps - first 4 of string 47 | if ReadByte(beepHack) == 9 then 48 | if slashIdx then 49 | ConsolePrint(string.format("Running with %s!", string.sub(file, slashIdx + 1, #file))) 50 | else 51 | ConsolePrint(string.format("Running with %s!", file)) 52 | end 53 | return true 54 | end 55 | end 56 | return false 57 | end 58 | 59 | canExecute = true 60 | ConsolePrint("KH1 detected, running script") 61 | for _, version_name in ipairs(versions) do 62 | if ReadByte(versions_table[version_name]) == 106 then 63 | if importVars(version_name) then 64 | canExecute = true 65 | break 66 | end 67 | end 68 | end 69 | 70 | if not canExecute then 71 | ConsolePrint("\n\n!!!!!!!! VERSION ERROR !!!!!!!!\n\nVersion check failed, check variable file version numbers against game version") 72 | end 73 | -------------------------------------------------------------------------------- /2FMMods/readme.md: -------------------------------------------------------------------------------- 1 | ## Update status 2 | All mods have been updated to work with the following versions: 3 | - Epic Games: 1.0.0.9 (Global + JP) 4 | - Epic Games: 1.0.0.10 (Global + JP) 5 | - Steam: 1.0.0.1 (Global + JP) 6 | - Steam: 1.0.0.2 (Global + JP) 7 | 8 | ## Disclaimer: 9 | Not all of these scripts are allowed in speedruns 10 | 11 | ## How to use: 12 | 13 | ### Pre-reqs 14 | - If you have not already, or run into language you are unfamiliar with go read through the [glossary](GLOSSARY.md) for terms that are used throughout. If there is word or short hand use that is still unclear please reach out so it can be added! 15 | - Please follow the instruction [here](../LUA.md) to setup one of the hook programs to actually run mods then continue 16 | 17 | ### Setup 18 | - For LuaBackend: 19 | - Open the `game data` folder (found in `Documents` as `KINGDOM HEARTS HD 1.5+2.5 ReMIX`) 20 | - Open the `scripts` folder 21 | - Open the `kh2` folder 22 | - For LuaFrontend: 23 | - Open the folder you extracted to start (named `LuaFrontend.v1.15` by default) 24 | - Open the `scripts` folder 25 | - Open the `kh2` folder 26 | - For OpenKH Mod Manager: 27 | - Skip down to [here](#omm_skip) 28 | - Copy in any desired mod files (either from the full download or from [here](scripts)) 29 | - Create the `io_packages` folder (or copy it if you downloaded the repo as a zip) 30 | - (optional) If you copied the folder you can delete all version files aside from the one you intend to use 31 | - Your scripts folder should look something like this: 32 | ![image](../images/game_scripts.png) 33 | - If you created the folder yourself we need to copy two files from into it, open your new `io_packages` folder and: 34 | - Copy the version lua file for your version from the repo into it from the list below: 35 | - [EGSGlobal_1_0_0_10.lua](scripts/io_packages/EGSGlobal_1_0_0_10.lua) (Current English Epic Games) 36 | - [EGSGlobal_1_0_0_9.lua](scripts/io_packages/EGSGlobal_1_0_0_9.lua) 37 | - [EGSJP_1_0_0_10.lua](scripts/io_packages/EGSJP_1_0_0_10.lua) (Current Japanese Epic Games) 38 | - [EGSJP_1_0_0_9.lua](scripts/io_packages/EGSJP_1_0_0_9.lua) 39 | - [SteamGlobal_1_0_0_2.lua](scripts/io_packages/SteamGlobal_1_0_0_2.lua) (Current English Steam) 40 | - [SteamGlobal_1_0_0_1.lua](scripts/io_packages/SteamGlobal_1_0_0_1.lua) 41 | - [SteamJP_1_0_0_2.lua](scripts/io_packages/SteamJP_1_0_0_2.lua) (Current Japanese Steam) 42 | - [SteamJP_1_0_0_1.lua](scripts/io_packages/SteamJP_1_0_0_1.lua) 43 | - Copy the [VersionCheck.lua](scripts/io_packages/VersionCheck.lua) file 44 | - Your `io_packages` folder should look something like this: 45 | ![image](../images/versioned_io_packages.png) 46 | 47 | * If you wish to add or remove a script while playing simply copy to or delete it from the folder and press `F1` while the game is focused to reload scripts 48 | * As a note you do not need to have the scripts in more than one place if you are playing across both Epic and Steam 49 | 50 | ### Setup - Open KH Mod Manager 51 | - For each mod you wish to install do the following: 52 | - Open the `Install a new mod` window through the green plus, mods drop down, or keyboard shortcut 53 | - Press the `Select and install Mod Archive or Lua Script` button 54 | - Browse to one of the following locations to find the mod files to add: 55 | - Download of repo: 56 | - Unzip (if you have not yet) the downloaded repo 57 | - Open the `2FMMods` folder 58 | - Open the scripts folder 59 | - Select your mod 60 | - Installed with OpenKH setup from `LUA.md`: 61 | - Navigate to your unzipped `openkh` folder 62 | - Open the `mods` folder 63 | - Open the folder for whichever game you used in setup 64 | - Open the `Denhonator` folder (if this folder is not present check other game folders for the last step) 65 | - Open the `KHPCSpeedrunTools` folder 66 | - Open the `2FMMods` folder 67 | - Select your mod 68 | - Repeat these steps for each mod you wish to include 69 | 70 | ### AutoAttack: 71 | - Allows physically attacking continuously by holding attack button in combat. 72 | 73 | ### Autosave: 74 | - Automatically saves the latest continue state to a local file 75 | - Load the autosave by holding select (touch pad on EGS, left side of touch pad or options for Steam) when loading any save (or equivalent on your input device) 76 | - Alternatively load secondary auto save with L2 + R2 (or equivalent on your input device) 77 | 78 | ### CreditSkip: 79 | - Allows scene skipping of credits 80 | - Skip the credits like you would a cutscene 81 | 82 | ### GummiSkip: 83 | - As worlds get unlocked, you can enter them without having to do gummi missions 84 | 85 | ### LaserDomeSkip: 86 | - Autmatically skip laser dome RC segment of final Xemnas fight 87 | 88 | ### LoadSaveMenu: 89 | - Allows the in game opening of the save/load menu where possible 90 | - Normally opens with just start, during x opens with Start + R2 (or equivalent on your input device) 91 | 92 | ### QuickHP0: 93 | - Instantly set your HP to 0 94 | - Trigger with L2 + R2 (or equivalent on your input device) 95 | 96 | ### SaveAnywhere: 97 | - Bring up the save menu anywhere, which allows going to world map 98 | - In-game, press L2 + R2 + R1 (or equivalent on your input device) to prompt and follow with Triangle (or equivalent on your input device) to open 99 | - Works by replacing Auto Valor command, which may have some limitations 100 | - Saving when you normally wouldn't be able to may or may not work well 101 | 102 | ### SoftReset: 103 | - In-game, press L1 + L2 + R1 + R2 + Start (or equivalent on your input device) 104 | - Also resets RNG 105 | - Sound effects may get muffled over time. This is a known bug in the game unrelated to this script. Hard reset when that happens. 106 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmAutoAttack.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmAutoSave" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Hold attack to combo" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH2 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | local input = ReadShort(inputAddress) == 16384 16 | local command = ReadByte(commandMenuItem) == 0 17 | local dialog = ReadByte(inDialogue) == 0 18 | local inCombat = ReadByte(btlTyp) & 3 > 0 19 | 20 | if input and command and dialog and inCombat then 21 | WriteByte(autoAttack, 1) 22 | else 23 | WriteByte(autoAttack, 0) 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmAutosave.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmAutoSave" 2 | LUAGUI_AUTH = "Sonicshadowsilver2 (edited by deathofall84)" 3 | LUAGUI_DESC = "Auto save and load auto saves" 4 | 5 | local prevContinue = 0 6 | local blacklist = { 7 | "es01", "bb05", "eh20", "eh22", "eh23", "eh24", 8 | "eh25", "eh26", "eh27", "eh28", "eh29" 9 | } 10 | local blacklisted = false 11 | local loadCount = 0 12 | 13 | function _OnInit() 14 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 15 | require("VersionCheck") 16 | else 17 | ConsolePrint("KH2 not detected, not running script") 18 | end 19 | end 20 | 21 | function _OnFrame() 22 | local SVE = ReadString(autoSaveAddress, 4) 23 | for i = 1, 11 do 24 | if SVE ~= blacklist[i] then 25 | blacklisted = false 26 | end 27 | end 28 | for i = 1, 11 do 29 | if SVE == blacklist[i] then 30 | blacklisted = true 31 | end 32 | end 33 | if canExecute then 34 | local input = ReadShort(inputAddress) 35 | local inputCheck = input == 1 or input == 768 36 | 37 | --reset loadCount 38 | if ReadByte(loadMenu) == 3 then 39 | loadCount = 0 40 | -- touchpad (left side or share for steam) / L2 R2 41 | if inputCheck then 42 | WriteFloat(loadingIndicator, 90) 43 | end 44 | end 45 | 46 | if ReadInt(saveSelect) == 0 and ReadInt(save) ~= prevSave and inputCheck then 47 | local f = io.open("KH2autosave.dat", "rb") 48 | if input == 768 then 49 | f = io.open("KH2autosave2.dat", "rb") 50 | end 51 | if f ~= nil then 52 | WriteString(save - 12, f:read("*a")) 53 | f:close() 54 | if input == 1 then 55 | ConsolePrint("Loaded autosave") 56 | else 57 | ConsolePrint("Loaded backup autosave") 58 | end 59 | end 60 | end 61 | 62 | if ReadInt(continue) ~= prevContinue and ReadByte(writeLogic) == 0 and not blacklisted then 63 | if loadCount > 1 then 64 | local r = io.open("KH2autosave.dat", "rb") 65 | local f2 = io.open("KH2autosave2.dat", "wb") 66 | f2:write(r:read("*a")) 67 | ConsolePrint("Copying Backup") 68 | f2:close() 69 | r:close() 70 | end 71 | 72 | local f = io.open("KH2autosave.dat", "wb") 73 | f:write(ReadString(continue - 12, 69568)) 74 | f:close() 75 | ConsolePrint("Wrote autosave") 76 | 77 | loadCount = loadCount + 1 78 | end 79 | prevSave = ReadInt(save) 80 | prevContinue = ReadInt(continue) 81 | end 82 | end 83 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmCreditSkip.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmCreditSkip" 2 | LUAGUI_AUTH = "Sonicshadowsilver2 (edited by deathofall84)" 3 | LUAGUI_DESC = "Allow cutscene skip in credits" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH2 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadShort(location) == 5138 or ReadShort(location) == 1 then --Final Xemnas & Ending 16 | if ReadByte(pause) == 2 then 17 | WriteByte(pause, 0) --Enable Pause 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmGummiSkip.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmGummiSkip" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Skip gummi missions" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH2 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | for i=0, 16 do 16 | if ReadByte(gummiSkip + (i * 4)) >= 2 then 17 | WriteByte(gummiSkip + (i * 4), 0) 18 | end 19 | end 20 | for i=353, 361 do 21 | if ReadByte(gummiSkip + i) == 1 then 22 | WriteByte(gummiSkip + i, 2) 23 | end 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmLaserDomeSkip.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmLaserDomeSkip" 2 | LUAGUI_AUTH = "Sonicshadowsilver2 (edited by deathofall84)" 3 | LUAGUI_DESC = "Skip Laser Dome in final fight" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH2 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadShort(location) == 5138 and ReadInt(xemnasHP) == 1 then 16 | WriteInt(xemnasHP,0) 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmQuickHP0.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmQuickHP0" 2 | LUAGUI_AUTH = "Sonicshadowsilver2 (edited by deathofall84)" 3 | LUAGUI_DESC = "Instant kill self with specific input" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH2 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadShort(inputAddress) == 768 and ReadInt(soraHP) ~= 0 then 16 | WriteInt(soraHP, 0) 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmSaveAnywhere.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmSaveAnywhere" 2 | LUAGUI_AUTH = "Sonicshadowsilver2 (edited by deathofall84)" 3 | LUAGUI_DESC = "Open save anywhere" 4 | 5 | local valor = "" 6 | local save = "" 7 | local savedHP = 0 8 | local savedAbilities = 0 9 | local hold = false 10 | local counter = 30 11 | 12 | function _OnInit() 13 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 14 | require("VersionCheck") 15 | else 16 | ConsolePrint("KH2 not detected, not running script") 17 | end 18 | end 19 | 20 | function _OnFrame() 21 | if canExecute then 22 | if ReadShort(inputAddress) == 2816 then 23 | if valor == "" then 24 | valor = ReadString(valorAddress, 46) 25 | save = ReadString(saveAddress, 46) 26 | end 27 | 28 | if not hold then 29 | savedHP = ReadByte(soraHP) 30 | savedAbilities = ReadByte(abilities) 31 | WriteString(valorAddress, save) 32 | end 33 | 34 | counter = 30 35 | WriteByte(soraHP, 1) 36 | 37 | if ReadByte(abilities) < 128 then 38 | WriteByte(abilities, ReadByte(abilities) + 128) 39 | end 40 | 41 | hold = true 42 | elseif ReadByte(valorAddress) == 55 then 43 | WriteString(valorAddress, valor) 44 | WriteByte(soraHP, savedHP) 45 | WriteByte(abilities, savedAbilities) 46 | hold = false 47 | end 48 | 49 | if counter > 0 then 50 | WriteByte(saveMenuSlot, 0) 51 | counter = counter - 1 52 | end 53 | end 54 | end 55 | -------------------------------------------------------------------------------- /2FMMods/scripts/2fmSoftReset.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmSoftReset" 2 | LUAGUI_AUTH = "Sonicshadowsilver2 (edited by deathofall84)" 3 | LUAGUI_DESC = "Soft reset" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("KH2 not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute and ReadShort(inputAddress) == 3848 then 15 | WriteByte(softReset, 1) 16 | WriteInt(rng, 1) 17 | WriteByte(spawns, 0) 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/EGSGlobal_1_0_0_10.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A10E84 4 | inputAddress = 0x29FAE40 5 | location = 0x716DF8 6 | save = 0x9A933C 7 | saveMenuSlot = 0xBED910 8 | soraHP = 0x2A23018 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AD327 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9BA3B0 15 | continue = 0x29FB00C 16 | loadMenu = 0x743350 17 | loadingIndicator = 0x8EC050 18 | saveSelect = 0x2616DA0 19 | writeLogic = 0x713438 20 | 21 | -- save anywhere 22 | abilities = 0x2A231EA 23 | saveAddress = 0x2A5CC26 24 | valorAddress = 0x2A62596 25 | 26 | -- soft reset 27 | rng = 0x753350 28 | softReset = 0xABA6DA 29 | spawns = 0x2AE57F8 30 | 31 | -- load save menu 32 | cutscene = 0x7281C0 33 | loading = 0x8EC053 34 | menu = 0x2A10FE0 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A22B28 38 | 39 | -- credit skip 40 | pause = 0xABB2F8 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C416 44 | commandMenuItem = 0x2A1013C 45 | inDialogue = 0x2A15D90 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/EGSGlobal_1_0_0_9.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A10E44 4 | inputAddress = 0x29FAE00 5 | location = 0x716DF8 6 | save = 0x9A92FC 7 | saveMenuSlot = 0xBED8D0 8 | soraHP = 0x2A22FD8 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AD2E7 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9BA370 15 | continue = 0x29FAFCC 16 | loadMenu = 0x743350 17 | loadingIndicator = 0x8EBFF0 18 | saveSelect = 0x2616D60 19 | writeLogic = 0x713438 20 | 21 | -- save anywhere 22 | abilities = 0x2A231EA 23 | saveAddress = 0x2A5CC26 24 | valorAddress = 0x2A62556 25 | 26 | -- soft reset 27 | rng = 0x753350 28 | softReset = 0xABA69A 29 | spawns = 0x2AE57B8 30 | 31 | -- load save menu 32 | cutscene = 0x7281C0 33 | loading = 0x8EC053 34 | menu = 0x2A10FA0 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A22AE8 38 | 39 | -- credit skip 40 | pause = 0xABB2B8 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C3D6 44 | commandMenuItem = 0x2A100FC 45 | inDialogue = 0x2A15D50 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/EGSJP_1_0_0_10.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A10E84 4 | inputAddress = 0x29FAE40 5 | location = 0x716DF8 6 | save = 0x9A933C 7 | saveMenuSlot = 0xBED910 8 | soraHP = 0x2A23018 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AD327 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9BA3B0 15 | continue = 0x29FB00C 16 | loadMenu = 0x743350 17 | loadingIndicator = 0x8EC050 18 | saveSelect = 0x2616DA0 19 | writeLogic = 0x713438 20 | 21 | -- save anywhere 22 | abilities = 0x2A231EA 23 | saveAddress = 0x2A5CC26 24 | valorAddress = 0x2A62596 25 | 26 | -- soft reset 27 | rng = 0x753350 28 | softReset = 0xABA6DA 29 | spawns = 0x2AE57F8 30 | 31 | -- load save menu 32 | cutscene = 0x7281C0 33 | loading = 0x8EC053 34 | menu = 0x2A10FE0 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A22B28 38 | 39 | -- credit skip 40 | pause = 0xABB2F8 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C416 44 | commandMenuItem = 0x2A1013C 45 | inDialogue = 0x2A15D90 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/EGSJP_1_0_0_9.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A0EB04 4 | inputAddress = 0x29F8AC0 5 | location = 0x714DB8 6 | save = 0x9A70BC 7 | saveMenuSlot = 0xBEB690 8 | soraHP = 0x2A20C98 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AB0A7 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9B8130 15 | continue = 0x29F8C8C 16 | loadMenu = 0x741320 17 | loadingIndicator = 0x8E9DA0 18 | saveSelect = 0x2614A20 19 | writeLogic = 0x711438 20 | 21 | -- save anywhere 22 | abilities = 0x2A20E6A 23 | saveAddress = 0x2A5A8A6 24 | valorAddress = 0x2A60216 25 | 26 | -- soft reset 27 | rng = 0x751310 28 | softReset = 0xAB845A 29 | spawns = 0x2AE3478 30 | 31 | -- load save menu 32 | cutscene = 0x7261A0 33 | loading = 0x8E9E03 34 | menu = 0x2A0EC60 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A20A28 38 | 39 | -- credit skip 40 | pause = 0xAB9078 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5A096 44 | commandMenuItem = 0x2A0DDBC 45 | inDialogue = 0x2A13A10 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/SteamGlobal_1_0_0_1.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A11384 4 | inputAddress = 0x8BB250 5 | location = 0x717008 6 | save = 0x9A983C 7 | saveMenuSlot = 0xBEDE10 8 | soraHP = 0x2A23518 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AD827 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9BA8B0 15 | continue = 0x29FB50C 16 | loadingIndicator = 0x8EC540 17 | loadMenu = 0x7435D0 18 | saveSelect = 0x2617460 19 | writeLogic = 0x7134A0 20 | 21 | -- save anywhere 22 | abilities = 0x2A236EA 23 | saveAddress = 0x2A5D126 24 | valorAddress = 0x2A62A96 25 | 26 | -- soft reset 27 | rng = 0x7535C0 28 | softReset = 0xABABDA 29 | spawns = 0x2AE5CF8 30 | 31 | -- load save menu 32 | cutscene = 0x728440 33 | loading = 0x8EC5A3 34 | menu = 0x2A114E0 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A23028 38 | 39 | -- credit skip 40 | pause = 0xABB7F8 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C916 44 | commandMenuItem = 0x2A1063C 45 | inDialogue = 0x2A16290 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/SteamGlobal_1_0_0_2.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A11404 4 | inputAddress = 0x8BB2C0 5 | location = 0x717008 6 | save = 0x9A98BC 7 | saveMenuSlot = 0xBEDE90 8 | soraHP = 0x2A23598 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AD8A7 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9BA930 15 | continue = 0x29FB58C 16 | loadingIndicator = 0x8EC5B0 17 | loadMenu = 0x7435D0 18 | saveSelect = 0x26174E0 19 | writeLogic = 0x7134A0 20 | 21 | -- save anywhere 22 | abilities = 0x2A2376A 23 | saveAddress = 0x2A5D1A6 24 | valorAddress = 0x2A62B16 25 | 26 | -- soft reset 27 | rng = 0x7535C0 28 | softReset = 0xABAC5A 29 | spawns = 0x2AE5D78 30 | 31 | -- load save menu 32 | cutscene = 0x728440 33 | loading = 0x8EC5B3 34 | menu = 0x2A11560 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A230A8 38 | 39 | -- credit skip 40 | pause = 0xABB878 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C996 44 | commandMenuItem = 0x2A106BC 45 | inDialogue = 0x2A16310 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/SteamJP_1_0_0_1.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A10384 4 | inputAddress = 0x8BA250 5 | location = 0x716008 6 | save = 0x9A883C 7 | saveMenuSlot = 0xBECE90 8 | soraHP = 0x2A22518 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AC827 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9B98B0 15 | continue = 0x29FA50C 16 | loadingIndicator = 0x8EB540 17 | loadMenu = 0x7425D0 18 | saveSelect = 0x2616460 19 | writeLogic = 0x7124A0 20 | 21 | -- save anywhere 22 | abilities = 0x2A226EA 23 | saveAddress = 0x2A5C126 24 | valorAddress = 0x2A61A96 25 | 26 | -- soft reset 27 | rng = 0x7525C0 28 | softReset = 0xAB9BDA 29 | spawns = 0x2AE4CF8 30 | 31 | -- load save menu 32 | cutscene = 0x727440 33 | loading = 0x8EB5A3 34 | menu = 0x2A104E0 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A22028 38 | 39 | -- credit skip 40 | pause = 0xABA7F8 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C996 44 | commandMenuItem = 0x2A106BC 45 | inDialogue = 0x2A16310 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/SteamJP_1_0_0_2.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- shared 3 | btlTyp = 0x2A11404 4 | inputAddress = 0x8BB2C0 5 | location = 0x717008 6 | save = 0x9A98BC 7 | saveMenuSlot = 0xBEDE90 8 | soraHP = 0x2A23598 9 | 10 | -- gummi skip 11 | gummiSkip = 0x9AD8A7 12 | 13 | -- auto save 14 | autoSaveAddress = 0x9BA930 15 | continue = 0x29FB58C 16 | loadingIndicator = 0x8EC5B0 17 | loadMenu = 0x7435D0 18 | saveSelect = 0x26174E0 19 | writeLogic = 0x7134A0 20 | 21 | -- save anywhere 22 | abilities = 0x2A2376A 23 | saveAddress = 0x2A5D1A6 24 | valorAddress = 0x2A62B16 25 | 26 | -- soft reset 27 | rng = 0x7535C0 28 | softReset = 0xABAC5A 29 | spawns = 0x2AE5D78 30 | 31 | -- load save menu 32 | cutscene = 0x728440 33 | loading = 0x8EC5B3 34 | menu = 0x2A11560 35 | 36 | -- laser dome skip 37 | xemnasHP = 0x2A230A8 38 | 39 | -- credit skip 40 | pause = 0xABB878 41 | 42 | -- auto attack 43 | autoAttack = 0x2A5C996 44 | commandMenuItem = 0x2A106BC 45 | inDialogue = 0x2A16310 46 | -------------------------------------------------------------------------------- /2FMMods/scripts/io_packages/VersionCheck.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 (Epic Games Store) 2 | -- Global and JP versions currently match 3 | versions = { 4 | "EGSGlobal_1_0_0_9", 5 | "EGSGlobal_1_0_0_10", 6 | "EGSJP_1_0_0_9", 7 | "EGSJP_1_0_0_10", 8 | "SteamGlobal_1_0_0_1", 9 | "SteamGlobal_1_0_0_2", 10 | "SteamJP_1_0_0_1", 11 | "SteamJP_1_0_0_2" 12 | } 13 | versions_table = { 14 | EGSGlobal_1_0_0_9 = 0x660E04, 15 | EGSGlobal_1_0_0_10 = 0x660E44, 16 | EGSJP_1_0_0_9 = 0x65E898, 17 | EGSJP_1_0_0_10 = 0x660E44, 18 | SteamGlobal_1_0_0_1 = 0x660E74, 19 | SteamGlobal_1_0_0_2 = 0x660EF4, 20 | SteamJP_1_0_0_1 = 0x65FDF4, 21 | SteamJP_1_0_0_2 = 0x660E74, 22 | } 23 | 24 | version = nil 25 | canExecute = false 26 | 27 | function importVars(file) 28 | local slashIdx = string.find(file, "/") 29 | if not pcall(require, file) then 30 | local errorString = "\n\n!!!!!!!! IMPORT ERROR !!!!!!!!\n\n" 31 | local msg = "" 32 | if slashIdx then 33 | msg = string.format("%s.lua missing, get it from the Github!", string.sub(file, slashIdx + 1, #file)) 34 | else 35 | msg = string.format("%s.lua missing, get it from the Github!", file) 36 | end 37 | ConsolePrint(string.format("%s%s%s", errorString, msg, errorString)) 38 | else 39 | if slashIdx then 40 | ConsolePrint(string.format("Running with %s!", string.sub(file, slashIdx + 1, #file))) 41 | else 42 | ConsolePrint(string.format("Running with %s!", file)) 43 | end 44 | end 45 | end 46 | 47 | ConsolePrint("KH2 detected, running script") 48 | for _, version_name in ipairs(versions) do 49 | if ReadByte(versions_table[version_name]) == 106 then 50 | importVars(version_name) 51 | canExecute = true 52 | -- Extra check for version overlaps 53 | if ReadByte(save - 12) == 75 then 54 | break 55 | end 56 | end 57 | end 58 | 59 | if not canExecute then 60 | ConsolePrint("\n\n!!!!!!!! VERSION ERROR !!!!!!!!\n\nVersion check failed, check variable file version numbers against game version") 61 | end 62 | -------------------------------------------------------------------------------- /BBSMods/readme.md: -------------------------------------------------------------------------------- 1 | ## Update status 2 | All mods have been updated to work with the following versions: 3 | - Epic Games: 1.0.0.10 (Global + JP) 4 | - Steam: 1.0.0.2 (Global + JP) 5 | 6 | ## Disclaimer: 7 | At the time of this update mods are not allowed for use with runs submitted to speedrun.com 8 | 9 | ## How to use: 10 | 11 | ### Pre-reqs 12 | - If you have not already, or run into language you are unfamiliar with go read through the [glossary](GLOSSARY.md) for terms that are used throughout. If there is word or short hand use that is still unclear please reach out so it can be added! 13 | - Please follow the instruction [here](../LUA.md) to setup one of the hook programs to actually run mods then continue 14 | 15 | ### Setup 16 | - For LuaBackend: 17 | - Open the `game data` folder (found in `Documents` as `KINGDOM HEARTS HD 1.5+2.5 ReMIX`) 18 | - Open the `scripts` folder 19 | - Open the `bbs` folder 20 | - For LuaFrontend: 21 | - Open the folder you extracted to start (named `LuaFrontend.v1.15` by default) 22 | - Open the `scripts` folder 23 | - Open the `bbs` folder 24 | - For OpenKH Mod Manager: 25 | - Skip down to [here](#omm_skip) 26 | - Copy in any desired mod files (either from the full download or from [here](scripts)) 27 | - Create the `io_packages` folder (or copy it if you downloaded the repo as a zip) 28 | - (optional) If you copied the folder you can delete all version files aside from the one you intend to use 29 | - Your scripts folder should look something like this: 30 | ![image](../images/game_scripts.png) 31 | - If you created the folder yourself we need to copy two files from into it, open your new `io_packages` folder and: 32 | - Copy the version lua file for your version from the repo into it from the list below: 33 | - [EpicGamesGlobal.lua](scripts/io_packages/EpicGamesGlobal.lua) (Current English Epic Games) 34 | - [EpicGamesJP.lua](scripts/io_packages/EpicGamesJP.lua) (Current Japanese Epic Games) 35 | - [SteamGlobal.lua](scripts/io_packages/SteamGlobal.lua) (Current English Steam) 36 | - [SteamJP.lua](scripts/io_packages/SteamJP.lua) (Current Japanese Steam) 37 | - Copy the [VersionCheck.lua](scripts/io_packages/VersionCheck.lua) file 38 | - Your `io_packages` folder should look something like this: 39 | ![image](../images/versioned_io_packages.png) 40 | 41 | * If you wish to add or remove a script while playing simply copy to or delete it from the folder and press `F1` while the game is focused to reload scripts 42 | * As a note you do not need to have the scripts in more than one place if you are playing across both Epic and Steam 43 | 44 | ### Setup - Open KH Mod Manager 45 | - For each mod you wish to install do the following: 46 | - Open the `Install a new mod` window through the green plus, mods drop down, or keyboard shortcut 47 | - Press the `Select and install Mod Archive or Lua Script` button 48 | - Browse to one of the following locations to find the mod files to add: 49 | - Download of repo: 50 | - Unzip (if you have not yet) the downloaded repo 51 | - Open the `BBSMods` folder 52 | - Open the scripts folder 53 | - Select your mod 54 | - Installed with OpenKH setup from `LUA.md`: 55 | - Navigate to your unzipped `openkh` folder 56 | - Open the `mods` folder 57 | - Open the folder for whichever game you used in setup 58 | - Open the `Denhonator` folder (if this folder is not present check other game folders for the last step) 59 | - Open the `KHPCSpeedrunTools` folder 60 | - Open the `BBSMods` folder 61 | - Select your mod 62 | - Repeat these steps for each mod you wish to include 63 | 64 | ### SoftReset 65 | - Press all shoulder buttons + start (or equivalent on your input device) to instantly soft reset 66 | 67 | ### Unlock Character Select 68 | - Install and you can skip the tutorial and just straight to character selection without save data 69 | -------------------------------------------------------------------------------- /BBSMods/scripts/bbsSoftReset.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "bbsSoftReset" 2 | LUAGUI_AUTH = "deathofall84 (Credits to Topaz and KSX)" 3 | LUAGUI_DESC = "Soft reset with shoulder buttons + start (options)" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xBED4B944 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Birth by Sleep not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | WriteByte(titleSkip1, 115) 16 | WriteByte(titleSkip2, 115) 17 | WriteByte(titleSkip3, 115) 18 | if ReadInt(input) == 3848 then 19 | WriteInt(location, 16777215) 20 | WriteByte(softreset, 1) 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /BBSMods/scripts/bbsUnlockCharacterSelect.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "Unlock Charcater Select" 2 | LUAGUI_AUTH = "KSX (edited by deathofall84)" 3 | LUAGUI_DESC = "Unlock Charcater Select" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xBED4B944 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Birth by Sleep not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | WriteByte(unlock, 7) 16 | end 17 | end -------------------------------------------------------------------------------- /BBSMods/scripts/io_packages/EpicGamesGlobal.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | softreset = 0x86749C 4 | location = 0x819120 5 | input = 0x8F65030 6 | titleSkip1 = 0x42BB69 7 | titleSkip2 = 0x3EE26F 8 | titleSkip3 = 0x3EE251 9 | 10 | -- unlock character select 11 | unlock = 0x10FB2DF9 12 | -------------------------------------------------------------------------------- /BBSMods/scripts/io_packages/EpicGamesJP.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | softreset = 0x86749C 4 | location = 0x819120 5 | input = 0x8F65030 6 | titleSkip1 = 0x42BB69 7 | titleSkip2 = 0x3EE26F 8 | titleSkip3 = 0x3EE251 9 | 10 | -- unlock character select 11 | unlock = 0x10FB2DF9 12 | -------------------------------------------------------------------------------- /BBSMods/scripts/io_packages/SteamGlobal.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | softreset = 0x866D9C 4 | input = 0x8F64930 5 | location = 0x818120 6 | titleSkip1 = 0x42C329 7 | titleSkip2 = 0x3EE5AF 8 | titleSkip3 = 0x3EE591 9 | 10 | -- unlock character select 11 | unlock = 0x10FB26F9 12 | -------------------------------------------------------------------------------- /BBSMods/scripts/io_packages/SteamJP.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | softreset = 0x865D9C 4 | input = 0x8F63930 5 | location = 0x817120 6 | titleSkip1 = 0x42C329 7 | titleSkip2 = 0x3EE5AF 8 | titleSkip3 = 0x3EE591 9 | 10 | -- unlock character select 11 | unlock = 0x10FB16F9 12 | -------------------------------------------------------------------------------- /BBSMods/scripts/io_packages/VersionCheck.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | EGSGlobalVersion = 0x726364 3 | EGSJPVersion = 0x726344 4 | SteamGlobalVersion = 0x726464 5 | SteamJPVersion = 0x7253E4 6 | 7 | function importVars(file) 8 | local slashIdx = string.find(file, "/") 9 | if not pcall(require, file) then 10 | local errorString = "\n\n!!!!!!!! IMPORT ERROR !!!!!!!!\n\n" 11 | local msg = "" 12 | if slashIdx then 13 | msg = string.format("%s.lua missing, get it from the Github!", string.sub(file, slashIdx + 1, #file)) 14 | else 15 | msg = string.format("%s.lua missing, get it from the Github!", file) 16 | end 17 | ConsolePrint(string.format("%s%s%s", errorString, msg, errorString)) 18 | else 19 | if slashIdx then 20 | ConsolePrint(string.format("Running with %s!", string.sub(file, slashIdx + 1, #file))) 21 | else 22 | ConsolePrint(string.format("Running with %s!", file)) 23 | end 24 | end 25 | end 26 | 27 | ConsolePrint("Birth by Sleep detected, running script") 28 | canExecute = true 29 | if ReadByte(EGSGlobalVersion) == 106 then 30 | importVars("EpicGamesGlobal") 31 | elseif ReadByte(EGSJPVersion) == 106 then 32 | importVars("EpicGamesJP") 33 | elseif ReadByte(SteamGlobalVersion) == 106 then 34 | importVars("SteamGlobal") 35 | elseif ReadByte(SteamJPVersion) == 106 then 36 | importVars("SteamJP") 37 | else 38 | canExecute = false 39 | ConsolePrint("\n\n!!!!!!!! VERSION ERROR !!!!!!!!\n\nVersion check failed, check variable file version numbers against game version") 40 | end 41 | -------------------------------------------------------------------------------- /DDDMods/readme.md: -------------------------------------------------------------------------------- 1 | ## Update status 2 | All mods have been updated to work with the following versions: 3 | - Epic Games: 1.0.0.10 (Global) 4 | - Steam: 1.0.0.2 (Global + JP) 5 | 6 | ## Disclaimer: 7 | At the time of this update mods are not allowed for use with runs submitted to speedrun.com 8 | 9 | ## How to use: 10 | 11 | ### Setup 12 | - For LuaBackend: 13 | - Open the `game data` folder (found in `Documents` as `KINGDOM HEARTS HD 2.8 Final Chapter Prologue`) 14 | - Open the `scripts` folder 15 | - Open the `kh3d` folder 16 | - For LuaFrontend: 17 | - Open the folder you extracted to start (named `LuaFrontend.v1.15` by default) 18 | - Open the `scripts` folder 19 | - Open the `ddd` folder 20 | - For OpenKH Mod Manager: 21 | - Skip down to [here](#omm_skip) 22 | - Copy in any desired mod files (either from the full download or from [here](scripts)) 23 | - Create the `io_packages` folder (or copy it if you downloaded the repo as a zip) 24 | - (optional) If you copied the folder you can delete all version files aside from the one you intend to use 25 | - Your scripts folder should look something like this: 26 | ![image](../images/game_scripts.png) 27 | - If you created the folder yourself we need to copy two files from into it, open your new `io_packages` folder and: 28 | - Copy the version lua file for your version from the repo into it from the list below: 29 | - [EpicGamesGlobal.lua](scripts/io_packages/EpicGamesGlobal.lua) (Current English Epic Games) 30 | - [EpicGamesJP.lua](scripts/io_packages/EpicGamesJP.lua) (Current Japanese Epic Games) 31 | - [SteamGlobal.lua](scripts/io_packages/SteamGlobal.lua) (Current English Steam) 32 | - [SteamJP.lua](scripts/io_packages/SteamJP.lua) (Current Japanese Steam) 33 | - Copy the [VersionCheck.lua](scripts/io_packages/VersionCheck.lua) file 34 | - Your `io_packages` folder should look something like this: 35 | ![image](../images/versioned_io_packages.png) 36 | 37 | * If you wish to add or remove a script while playing simply copy to or delete it from the folder and press `F1` while the game is focused to reload scripts 38 | * As a note you do not need to have the scripts in more than one place if you are playing across both Epic and Steam 39 | 40 | ### Setup - Open KH Mod Manager 41 | - For each mod you wish to install do the following: 42 | - Open the `Install a new mod` window through the green plus, mods drop down, or keyboard shortcut 43 | - Press the `Select and install Mod Archive or Lua Script` button 44 | - Browse to one of the following locations to find the mod files to add: 45 | - Download of repo: 46 | - Unzip (if you have not yet) the downloaded repo 47 | - Open the `DDDMods` folder 48 | - Open the scripts folder 49 | - Select your mod 50 | - Installed with OpenKH setup from `LUA.md`: 51 | - Navigate to your unzipped `openkh` folder 52 | - Open the `mods` folder 53 | - Open the folder for whichever game you used in setup 54 | - Open the `Denhonator` folder (if this folder is not present check other game folders for the last step) 55 | - Open the `KHPCSpeedrunTools` folder 56 | - Open the `DDDMods` folder 57 | - Select your mod 58 | - Repeat these steps for each mod you wish to include 59 | 60 | ### SoftReset 61 | - Press all shoulder buttons + start to instantly soft reset 62 | - Equavivalent buttons on keyboard work (shift + C + R + E + 4 default) 63 | 64 | ### Unlock Critical Mode 65 | - Install and the Critical difficulty mode will be available even without game clear save data 66 | -------------------------------------------------------------------------------- /DDDMods/scripts/3dOvercast.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "3dOvercast" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Changes all forecasts to overcast" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xE86A2A90 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Dream Drop Distance not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | for i = 0, 20 do 15 | WriteByte(forecasts + i * 8, 6) 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /DDDMods/scripts/3dSoftReset.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "3dSoftReset" 2 | LUAGUI_AUTH = "deathofall84 (original by denhonator)" 3 | LUAGUI_DESC = "Soft reset with shoulder buttons + start" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xE86A2A90 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Dream Drop Distance not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadInt(input) == 3848 then 16 | WriteByte(reset, 1) 17 | end 18 | WriteByte(copyright_skip, 2) 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /DDDMods/scripts/3dUnlockCrit.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "3dUnlockCriticalMode" 2 | LUAGUI_AUTH = "deathofall84 (original by KSX)" 3 | LUAGUI_DESC = "Unlock Critical Mode" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xE86A2A90 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Dream Drop Distance not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadByte(unlock) == 0 then 16 | WriteByte(unlock, 1) 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /DDDMods/scripts/io_packages/EpicGamesGlobal.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | reset = 0xAC9098 4 | copyright_skip = 0xA99670 5 | input = 0x9E9D98 6 | 7 | -- forecast 8 | forecast = 0xA50F28 9 | 10 | -- crit unlock 11 | unlock = 0xA72D30 12 | -------------------------------------------------------------------------------- /DDDMods/scripts/io_packages/EpicGamesJP.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- This is not verified as I do not own the Epic Version for JP 3 | -- soft reset 4 | reset = 0xAC9098 5 | copyright_skip = 0xA99670 6 | input = 0x9E9D98 7 | 8 | -- forecast 9 | forecast = 0xA50F28 10 | 11 | -- crit unlock 12 | unlock = 0xA72D30 13 | -------------------------------------------------------------------------------- /DDDMods/scripts/io_packages/SteamGlobal.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | reset = 0xAC9818 4 | copyright_skip = 0xA99DF0 5 | input = 0x9E9C18 6 | 7 | -- forecast 8 | forecast = 0xA516A8 9 | 10 | -- crit unlock 11 | unlock = 0xA734B0 12 | -------------------------------------------------------------------------------- /DDDMods/scripts/io_packages/SteamJP.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | -- soft reset 3 | reset = 0xAC9818 4 | copyright_skip = 0xA99DF0 5 | input = 0x9E9C18 6 | 7 | -- forecast 8 | forecast = 0xA516A8 9 | 10 | -- crit unlock 11 | unlock = 0xA734B0 12 | -------------------------------------------------------------------------------- /DDDMods/scripts/io_packages/VersionCheck.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | EGSGlobalVersion = 0x8A90A6 3 | -- This version is not common or owned by a maintainer thus can not be checked 4 | -- EGSJPVersion = 0x8A90A6 5 | SteamGlobalVersion = 0x8A9103 6 | SteamJPVersion = 0x8A90A3 7 | 8 | function importVars(file) 9 | local slashIdx = string.find(file, "/") 10 | if not pcall(require, file) then 11 | local errorString = "\n\n!!!!!!!! IMPORT ERROR !!!!!!!!\n\n" 12 | local msg = "" 13 | if slashIdx then 14 | msg = string.format("%s.lua missing, get it from the Github!", string.sub(file, slashIdx + 1, #file)) 15 | else 16 | msg = string.format("%s.lua missing, get it from the Github!", file) 17 | end 18 | ConsolePrint(string.format("%s%s%s", errorString, msg, errorString)) 19 | else 20 | if slashIdx then 21 | ConsolePrint(string.format("Running with %s!", string.sub(file, slashIdx + 1, #file))) 22 | else 23 | ConsolePrint(string.format("Running with %s!", file)) 24 | end 25 | end 26 | end 27 | 28 | ConsolePrint("Dream Drop Distance deteceted, running script") 29 | canExecute = true 30 | if ReadByte(EGSGlobalVersion) == 106 then 31 | importVars("EpicGamesGlobal") 32 | -- This version is not common or owned by a maintainer thus can not be checked 33 | -- elseif ReadByte(EGSJPVersion) == 106 then 34 | -- importVars("EpicGamesJP") 35 | elseif ReadByte(SteamGlobalVersion) == 106 then 36 | importVars("SteamGlobal") 37 | elseif ReadByte(SteamJPVersion) == 106 then 38 | importVars("SteamJP") 39 | else 40 | canExecute = false 41 | ConsolePrint("\n\n!!!!!!!! VERSION ERROR !!!!!!!!\n\nVersion check failed, check variable file version numbers against game version") 42 | end -------------------------------------------------------------------------------- /GLOSSARY.md: -------------------------------------------------------------------------------- 1 | This will be a brief document talking about some of the shorthand and terminology used throught the documents here. 2 | 3 | ## Terminology 4 | 5 | - `repo`: Shorthand for repository, this is a collection of files on a platform such as GitHub, this file is part of one such repo. 6 | - `mod`: Shorthand for modification, this is a file or program used to change in game content or behavior. 7 | - `timing program`: A program used to track progress through a speedrun, the most popular of these is `Live Split`. Allows for configuring the number of segments you want your time broken down into so you can compare across time how you are doing. 8 | - `auto splitter`: A file or program to be used alongside a timing program such as `Live Split` which will trigger the interactions with said program automatically. For example it will start the timer when a new game is selected and incriment a split on the end of a boss fight. 9 | - `loads`: Any chunk of time in the game where actions can not be taken and the time window is dependent on hardware. For example the when moving between rooms and the heart emblem displays in the bottom corner of the screen. 10 | - `load remover`: A portion of an auto splitter, this checks the game content to tell the `game time` tracker in the timing program to pause while `loads` are happening. 11 | - `text editor`: A program for reading and editing text based files, notepad is the simplest example of one. 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /LoadRemovers/KH02.asl: -------------------------------------------------------------------------------- 1 | state("KINGDOM HEARTS 0.2 Birth by Sleep", "EG Global") // 1.0.0.10 2 | { 3 | byte world : 0x4490604; 4 | byte hints : 0x449C439; 5 | byte start : 0x44F708D; 6 | byte fightend : 0x44F7165; 7 | byte finisher : 0x44F7748; 8 | byte loading : 0x4509394; 9 | byte gear_kill : 0x453178D; 10 | byte scene : 0x466C64C; 11 | byte title : 0x47CD35D; 12 | byte loading_2 : 0x4893D94; 13 | } 14 | 15 | // state("KINGDOM HEARTS 0.2 Birth by Sleep", "EG JP") // 1.0.0.10 16 | // { 17 | // byte world : 0x4490604; 18 | // byte hints : 0x449C439; 19 | // byte start : 0x44F708D; 20 | // byte fightend : 0x44F7165; 21 | // byte finisher : 0x44F7748; 22 | // byte loading : 0x4509394; 23 | // byte gear_kill : 0x453178D; 24 | // byte scene : 0x466C64C; 25 | // byte title : 0x47CD35D; 26 | // byte loading_2 : 0x4893D94; 27 | // } 28 | 29 | state("KINGDOM HEARTS 0.2 Birth by Sleep", "Steam Global") // 1.0.0.2 30 | { 31 | byte world : 0x44BD854; 32 | byte start : 0x452452D; 33 | byte fightend : 0x4524605; 34 | byte finisher : 0x4524BED; 35 | byte loading : 0x4536724; 36 | byte gear_kill : 0x455EB05; 37 | byte scene : 0x46999CC; 38 | byte title : 0x47FA6DD; 39 | byte hints : 0x4834A51; 40 | byte loading_2 : 0x48C1014; 41 | } 42 | 43 | state("KINGDOM HEARTS 0.2 Birth by Sleep", "Steam JP") // 1.0.0.2 44 | { 45 | byte world : 0x44BD854; 46 | byte start : 0x452452D; 47 | byte fightend : 0x4524605; 48 | byte finisher : 0x4524BED; 49 | byte loading : 0x4536724; 50 | byte gear_kill : 0x455EB05; 51 | byte scene : 0x46999CC; 52 | byte title : 0x47FA6DD; 53 | byte hints : 0x4834A51; 54 | byte loading_2 : 0x48C1014; 55 | } 56 | 57 | startup 58 | { 59 | settings.Add("shadows_1", true, "Shadows I"); 60 | settings.Add("shadows_2", true, "Shadows II"); 61 | settings.Add("gears", true, "Gears"); 62 | settings.SetToolTip( 63 | "gears", 64 | "Gears:\n!WARNING!\nThis split will trigger early if you use a finisher between the last and second to last gear that is not on the final gear.\n\nTurn off if you wish to avoid this and split manually\n!WARNING!" 65 | ); 66 | settings.Add("dt_1", true, "Demon Tower I"); 67 | settings.Add("aqua_1", true, "Aqua I"); 68 | settings.Add("aqua_2", true, "Aqua II"); 69 | settings.Add("aqua_3", true, "Aqua III"); 70 | settings.Add("ds_1", true, "Darkside I"); 71 | settings.Add("fff", true, "Forest Forced Fight"); 72 | settings.Add("ds_2", true, "Darkside II"); 73 | settings.Add("dt_2", true, "Demon Tower II"); 74 | settings.Add("dtide", true, "Demon Tide"); 75 | } 76 | 77 | start 78 | { 79 | if (current.title == 1) { 80 | // print(version); 81 | if ((current.start == 1 || current.start == 2) && old.start == 0) { 82 | // If soft reset is used just after a fight end it can mess with the game sound and splitter, this is to fix a hole in the soft reset. 83 | int loading = vars.loading; 84 | game.WriteBytes(modules.First().BaseAddress + loading, new byte[] {0x0}); 85 | // Soft reset does not always get this value right, fixes load removal for first few scenes. 86 | int hints = vars.hints; 87 | game.WriteBytes(modules.First().BaseAddress + hints, new byte[] {0xC}); 88 | vars.check_gear_kill = false; 89 | vars.playing = false; 90 | vars.check_hint = false; 91 | vars.cutscene_base = 100; 92 | vars.initial_load = 0; 93 | vars.split_count = 0; 94 | vars.hint_count = 0; 95 | return true; 96 | } 97 | } 98 | } 99 | 100 | split 101 | { 102 | if (current.fightend != 0 && current.loading == 16 && (old.loading != 16 || old.fightend == 0)) { 103 | vars.split_count += 1; 104 | if (vars.split_count == 3) { 105 | vars.split_count += 1; 106 | } 107 | int split_count = vars.split_count; 108 | switch (split_count) { 109 | case 2: return settings["shadows_2"]; 110 | case 4: return settings["dt_1"]; 111 | case 5: return settings["aqua_1"]; 112 | case 6: return settings["aqua_2"]; 113 | case 7: return settings["aqua_3"]; 114 | case 8: return settings["ds_1"]; 115 | case 9: return settings["fff"]; 116 | case 10: return settings["ds_2"]; 117 | case 11: return settings["dt_2"]; 118 | case 12: return settings["dtide"]; 119 | } 120 | } 121 | if (current.scene == vars.cutscene_base - 1 && old.scene == vars.cutscene_base && vars.cutscene_count < 2) { 122 | vars.cutscene_count += 1; 123 | if (vars.cutscene_count == 2) { 124 | vars.split_count = 1; 125 | return settings["shadows_1"]; 126 | } 127 | } 128 | if (vars.check_gear_kill && current.finisher != 0 && old.finisher == 0 && vars.hint_count == 3) { 129 | vars.split_count += 1; 130 | vars.hint_count += 1; 131 | return settings["gears"]; 132 | } 133 | } 134 | 135 | exit 136 | { 137 | timer.IsGameTimePaused = true; 138 | } 139 | 140 | init 141 | { 142 | vars.check_gear_kill = false; 143 | vars.playing = false; 144 | vars.check_hint = false; 145 | vars.cutscene_base = 100; 146 | vars.initial_load = 0; 147 | vars.split_count = 0; 148 | vars.cutscene_count = 0; 149 | vars.hint_count = 0; 150 | var gb = modules.First().BaseAddress; 151 | int epic_gl = memory.ReadValue(gb + 0x444DD30); 152 | // int epic_jp = memory.ReadValue(gb + 0x0); 153 | int steam_gl = memory.ReadValue(gb + 0x447B680); 154 | int steam_jp = memory.ReadValue(gb + 0x447B680); 155 | if (epic_gl == 84) { // epic global 156 | vars.loading = 0x4509394; 157 | vars.hints = 0x449C439; 158 | vars.hint_val = 11; 159 | vars.hint_start_val = 15; 160 | version = "EG Global"; 161 | } else if (steam_gl == 84 || steam_jp == 84) { 162 | vars.loading = 0x4536724; 163 | vars.hints = 0x4834A51; 164 | if (steam_gl == 84) { // Global 165 | vars.hint_val = 13; 166 | vars.hint_start_val = 16; 167 | version = "Steam Global"; 168 | } else { // JP 169 | vars.hint_val = 15; 170 | vars.hint_start_val = 17; 171 | version = "Steam JP"; 172 | } 173 | } 174 | } 175 | 176 | reset 177 | { 178 | if (current.loading == 0 || current.loading == 16) { 179 | if (vars.split_count < 11) { 180 | return current.title != old.title && current.world == 1; 181 | } else { 182 | return current.scene == old.scene - 5; 183 | } 184 | } 185 | } 186 | 187 | update 188 | { 189 | if (vars.initial_load == 0 && old.hints == vars.hint_start_val && current.hints != vars.hint_start_val) { 190 | vars.initial_load = 1; 191 | } 192 | if (vars.playing && vars.cutscene_base == 100 && current.loading != 1) { 193 | if (current.scene == 0) { 194 | vars.cutscene_base = 1; 195 | vars.cutscene_count = 1; 196 | } else { 197 | vars.cutscene_base = current.scene; 198 | vars.cutscene_count = 0; 199 | } 200 | } 201 | if (!vars.playing && current.world == 4 && old.world != 4) { 202 | vars.playing = true; 203 | vars.initial_load = 2; 204 | } 205 | if (!vars.check_gear_kill && current.finisher != 0 && old.finisher == 0 && current.world == 80) { 206 | vars.check_gear_kill = true; 207 | } 208 | if (!vars.check_hint && vars.check_gear_kill && current.gear_kill == 0 && old.gear_kill != 0) { 209 | vars.check_hint = true; 210 | } 211 | if (vars.hint_count < 3 && vars.check_hint && current.hints == vars.hint_val && old.hints != vars.hint_val) { 212 | vars.hint_count += 1; 213 | vars.check_gear_kill = false; 214 | vars.check_hint = false; 215 | } 216 | } 217 | 218 | isLoading 219 | { 220 | return (vars.playing && current.loading == 1) || (!vars.playing && vars.initial_load == 1 && current.loading_2 == 1); 221 | } 222 | -------------------------------------------------------------------------------- /LoadRemovers/KH3.asl: -------------------------------------------------------------------------------- 1 | state("KINGDOM HEARTS III", "EGS") 2 | { 3 | uint IGT : "KINGDOM HEARTS III.exe", 0x092D1DD8, 0xD00, 0x9A60, 0x30, 0x28, 0x320, 0x180, 0x238, 0x50, 0xE30, 0x866C; 4 | bool load : "KINGDOM HEARTS III.exe", 0x092D1EE0, 0xE30, 0x21C; 5 | bool saveload : "KINGDOM HEARTS III.exe", 0x09D2E310, 0x2B0, 0x8E8, 0x6120; 6 | uint transition : "KINGDOM HEARTS III.exe", 0x092D1EE8, 0x600; 7 | uint kbload : "KINGDOM HEARTS III.exe", 0x09D2E310, 0x120, 0x18, 0x70, 0x90, 0xB8, 0x48; 8 | uint menuScreen : "KINGDOM HEARTS III.exe", 0x09D2E310, 0x2B0, 0x6B8; 9 | bool fightend : "KINGDOM HEARTS III.exe", 0x09D62910, 0xA18, 0x700, 0x6D0, 0x178, 0xB0; 10 | bool fightend2 : "KINGDOM HEARTS III.exe", 0x092D1EE0, 0xE30, 0x268, 0xC0, 0xF8, 0xB0; 11 | string2 world : "KINGDOM HEARTS III.exe", 0x9302795; 12 | } 13 | 14 | state("KINGDOM HEARTS III", "Steam") 15 | { 16 | uint IGT : "KINGDOM HEARTS III.exe", 0x09DE3B98, 0xD00, 8, 0xE8, 0x500, 0x1E8, 0x440, 0x28, 0x130, 0x118, 0x866C; 17 | bool load : "KINGDOM HEARTS III.exe", 0x09DE3B98, 0xE30, 0x21C; 18 | bool saveload : "KINGDOM HEARTS III.exe", 0x09D48E70, 0x2B0, 0x928, 0x6130; 19 | uint transition : "KINGDOM HEARTS III.exe", 0x09DE3B68, 0x7A0; 20 | uint kbload : "KINGDOM HEARTS III.exe", 0x09D48E70, 0x120, 0x18, 0x70, 0x90, 0xB8, 0x48; 21 | uint menuScreen : "KINGDOM HEARTS III.exe", 0x09D48E70, 0x2B0, 0x720; 22 | bool fightend : "KINGDOM HEARTS III.exe", 0x09D62910, 0xA18, 0x700, 0x6D0, 0x178, 0xB0; 23 | bool fightend2 : "KINGDOM HEARTS III.exe", 0x09DE3B98, 0xE30, 0x268, 0xC0, 0xF8, 0xB0; 24 | string2 world : "KINGDOM HEARTS III.exe", 0x87F8825; 25 | } 26 | 27 | startup 28 | { 29 | vars.booting = false; 30 | vars.lastMenuScreen = 0; 31 | 32 | settings.Add("WorldSplit", false, "Split on enter world"); 33 | settings.Add("DataSplit", false, "Split on bosses (like data org)"); 34 | settings.Add("IGT", false, "IGT Mode (don't use)"); 35 | } 36 | 37 | gameTime 38 | { 39 | return settings["IGT"] ? TimeSpan.FromSeconds(current.IGT) : null; 40 | } 41 | 42 | split 43 | { 44 | return (current.world != old.world && settings["WorldSplit"]) || 45 | (settings["DataSplit"] && current.fightend2 && !old.fightend2); 46 | } 47 | 48 | exit 49 | { 50 | vars.booting = true; 51 | timer.IsGameTimePaused = true; 52 | } 53 | 54 | init 55 | { 56 | if (modules.First().ModuleMemorySize == 177639424) 57 | version = "Steam"; 58 | } 59 | 60 | update 61 | { 62 | if(current.saveload){ 63 | vars.booting = false; 64 | timer.IsGameTimePaused = false; 65 | } 66 | } 67 | 68 | isLoading 69 | { 70 | if(settings["IGT"]){ 71 | return true; 72 | } 73 | if(current.menuScreen!=old.menuScreen){ 74 | vars.lastMenuScreen = old.menuScreen; 75 | } 76 | 77 | //small buffer so timer only pauses if it takes too long after equipping (because of loading) 78 | vars.menulag = (current.kbload==262145 79 | && current.menuScreen==306 80 | && vars.lastMenuScreen==307) ? vars.menulag+1 : 0; 81 | 82 | return current.load 83 | || current.transition > 0 84 | || current.saveload 85 | || vars.menulag > 7 86 | || vars.booting; 87 | 88 | //kbload==262145 means the menu is mid-transition and does not take user input 89 | //menusScreen==306 is the equipment menu in which you get loadings when changing equipment 90 | //307 is the equipment selection screen 91 | } -------------------------------------------------------------------------------- /LoadRemovers/KHMoM.asl: -------------------------------------------------------------------------------- 1 | state("KINGDOM HEARTS Melody of Memory") 2 | { 3 | bool loading: "GameAssembly.dll", 0x02D99138, 0xB8, 0, 0x98, 0x10, 0x48, 8; 4 | bool loading2: "GameAssembly.dll", 0x031B8350, 0xB8, 0x80, 0x38, 0x10, 0x548, 0xD0; 5 | byte screenFade: "GameAssembly.dll", 0x02E7CBF0, 0xAF0, 0x18; 6 | } 7 | 8 | init 9 | { 10 | timer.IsGameTimePaused = false; 11 | print(modules.First().ModuleMemorySize.ToString()); 12 | } 13 | 14 | startup 15 | { 16 | vars.booting = false; 17 | } 18 | 19 | exit 20 | { 21 | vars.booting = true; 22 | timer.IsGameTimePaused = true; 23 | } 24 | 25 | update 26 | { 27 | if(vars.booting && current.screenFade > 1){ 28 | vars.booting = false; 29 | } 30 | } 31 | 32 | isLoading 33 | { 34 | return current.loading || current.loading2 || current.screenFade == 2 || vars.booting; 35 | } -------------------------------------------------------------------------------- /LoadRemovers/readme.md: -------------------------------------------------------------------------------- 1 | ## Update status 2 | All load removers have been updated to work with Epic Games release 1.0.0.10 and Steam 1.0.0.2 aside from Melody of Memory 3 | 4 | ## How to use: 5 | For all splitters aside from Melody of Memory these files are linked directly into LiveSplit and can be used as such. Choose one of the two bellow methods of install, DO NOT DO BOTH OR IT WILL SPLIT TWICE PER INSTANCE! 6 | 7 | ### LiveSplit direct: 8 | - !!! Note: This should update every time the files here are changed !!! 9 | - Open the `Edit splits...` section of LiveSplit 10 | - Select the game you wish to run 11 | - Click the `Activate` button that should appear under the attempts section 12 | - ![image](../images/live_split_activate.png) 13 | - Click the now active `Settings` button next to what is now `Deactivate` 14 | - Select the splits you wish to have 15 | - Make sure you have 1 more split than the selected splits in settings (for the final split of the game which is always on), they can be named anything. 16 | 17 | ### Download: 18 | - !!! Note: This method will not automatically update when changes are made here, you will need to redownload the file !!! 19 | - Download the file for the game you wish to run from this folder (eg. `KH1.asl`) 20 | - Add the `Scriptable Auto Splitter` component to your layout in LiveSplit 21 | - ![image](../images/live_split_layout.png) 22 | - Double click the newly added component browse to the downloaded .asl file, it should end up looking something like this: 23 | - ![image](../images/live_split_browse.png) 24 | - Once selected you should get the settings populating 25 | - Select the splits you wish to have 26 | - Make sure you have 1 more split than the selected splits in settings (for the final split of the game which is always on), they can be named anything. 27 | 28 | ### Requesting changes or reporting problems: 29 | If a problem shows up or you would like a split added or change made either submit and issue [here](https://github.com/Denhonator/KHPCSpeedrunTools/issues/new/choose) on GitHub or come over to the speed run [discord](https://discord.gg/5GjHsyQT8R) and start up a conversation! 30 | -------------------------------------------------------------------------------- /RANDO.md: -------------------------------------------------------------------------------- 1 | # Setting up 2 | If you have not, follow the steps [here](LUA.md) first followed by these steps [here](1FMMods/readme.md) second! Otherwise there are three pieces to this: 3 | - First we need to ensure that the Rando lua files are setup. 4 | - Second we need to ensure the `randofiles` folder is created, and optionally populated with any lanugae files you might want. 5 | - Third is to configure settings to your liking! 6 | 7 | ## Disclaimer 8 | A warning, when using the OpenKH Mod Managers `build` or `build and run` operations the `settings.lua` file will be reset as it will be rebuilt from the base. 9 | 10 | 11 | ## Jump to 12 | - [LuaBackend or LuaFrontend](#lblf) 13 | - [OpenKH Mod Manager](#omm) 14 | - [Rando Files](#rfiles) 15 | - [Settings](#set) 16 | 17 | ## LuaBackend or Lua Frontend - Rando Folder Setup 18 | 19 | This is the same for either method with a minor change in folder location. All we need to do is copy the `Rando` folder from the repositories `io_packages` folder in. 20 | 21 | ### LuaBackend 22 | 23 | - The folder location will be inside the `kh1` scripts folder we setup before, this should be located at: 24 | - For Epic Games: 25 | - `Documents/KINGDOM HEARTS HD 1.5+2.5 ReMIX/scripts/kh1/io_packages` 26 | - For Steam: 27 | - `Documents/My Games/KINGDOM HEARTS HD 1.5+2.5 ReMIX/scripts/kh1/io_packages` 28 | - Copy the `Rando` folder (from this repository, in the 1FMMods io_packages) and it's contents to this location, it should end up looking like this: 29 | - For Epic Games: 30 | ![image](images/backend_epic_io_packages.png) 31 | - For Steam: 32 | ![image](images/backend_steam_io_packages.png) 33 | 34 | ### LuaFrontend 35 | 36 | - The folder location will be inside the `kh1` scripts folder we setup before, this should be located at: 37 | - `/LuaFrontend.v1.15/scripts/kh1/io_packages` 38 | - Copy the `Rando` folder (from this repository, in the 1FMMods io_packages) and it's contents to this location, it should end up looking like this: 39 | 40 | ![image](images/frontend_io_packages.png) 41 | 42 | ## OpenKH Mod Manager - Rando Folder Setup 43 | 44 | For Open KH Mod Manager this step is taken care of for you by the install and build of this repository! 45 | 46 | ## Rando Files 47 | 48 | The last part to ensure proper running is to create and optionally populate the `randofiles` folder. This will be going in the previously discussed `install folder` if you closed that window from the previous steps here is how to get there again: 49 | 50 | - Locate your game install folder: 51 | - For Epic Games: 52 | - Open the Epic Games Launcher 53 | - Go to `Library` 54 | - Right click the game 55 | - Click `Manage` 56 | - Click the magnifying glass on the `Installation` line 57 | - For Steam: 58 | - Open Steam 59 | - Select the game from your `Library` 60 | - Click the gear icon and select `Properties` 61 | - Select the `Installed Files` tab 62 | - Click the `Browse...` button 63 | 64 | For Epic Games it should end up looking like this: 65 | 66 | ![image](images/epic_install.png) 67 | 68 | For Steam that would look like this: 69 | 70 | ![image](images/steam_install.png) 71 | 72 | Now if you are playing on english all that is left is to create a new folder here and call it `randofiles`. This will be where all generated files are stored. 73 | 74 | Optional: If you are playing on French, German, or Spanish there is some support for the translated names of things. Copy the language specific `.txt` file from the repository `randofiles` folder found [here](1FMMods/randofiles) into the newly created folder. 75 | 76 | ## Settings 77 | 78 | As was called out above for Open KH Mod Manager this file will be overwritten any time the `Build` action is take in mod manager so keep that in mind and maybe save off a copy of the file in another location to make your life easier! 79 | 80 | I am not going to get in to the nitty gritty of what each setting does but the `settings.lua` can be found in the following locations: 81 | - For LuaBackend: 82 | - For Epic Games: 83 | - `Documents/KINGDOM HEARTS HD 1.5+2.5 ReMIX/scripts/kh1/io_packages/Rando` 84 | - For Steam: 85 | - `Documents/My Games/KINGDOM HEARTS HD 1.5+2.5 ReMIX/scripts/kh1/io_packages/Rando` 86 | - For LuaFrontend: 87 | - `/LuaFrontend.v1.15/scripts/kh1/io_packages/Rando` 88 | - For Open KH Mod Manager: 89 | - `/openkh/mod/kh1/scripts/io_packages/Rando` 90 | 91 | This file controls various things outlined in detail inside the `settings.lua` file itself to configure how your randomizer experience goes, change it as you see fit or leave it at default, the choices are yours. 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KHPCSpeedrunTools 2 | 3 | ## Update status 4 | All content has been updated to work with Epic Games release 1.0.0.10 and Steam 1.0.0.2 aside from Melody of Memory and 0.2. There is also backwards compatibility for [KH1](1FMMods) and [KH2](2FMMods), follow their links for detailed lists of supported versions. 5 | 6 | ## How to use 7 | 8 | Before you get started you may want to familiarize yourself with some terminology found [here](GLOSSARY.md). If there is a word or short hand use that is still unclear please reach out so it can be added! 9 | 10 | Download files from the repository in one of the following ways: 11 | - Click the green Code button and download the repository as zip 12 | - Go to an individual file and click the download button in the top right 13 | 14 | ### Mods 15 | 16 | Follow this setup for any of the games aside from 0.2 and 3: 17 | 18 | Get one of the following programs for running `lua` scripts: 19 | - [LuaBackend](https://github.com/Sirius902/LuaBackend/releases) The `DBGHELP.zip` file. 20 | - [LuaFrontend](https://github.com/TopazTK/LuaFrontend/releases) The `LuaFrontend` versioned .rar file. 21 | - [OpenKH Mod Manager](https://github.com/OpenKH/OpenKh/releases) The `openkh.zip` file. 22 | 23 | Follow the instructions provided with each on setup or see the [LUA.md](LUA.md) file for more detailed instructions. 24 | 25 | Note that using mods that affect a speedrun are not allowed unless specifically stated so, see specific game documents for further details. 26 | 27 | ### Load Removers 28 | 29 | Add the `Scriptable Auto Splitter` component into your Livesplit layout, and select the .asl file for your game. Ensure you have a timer set to show game time. Some games do not support load removed time (LRT) leader boards, check your game's leader board to be sure. You may still use a load remover in these cases but you must ensure your recording includes the "real time" timing method for submission. For more detailed instructions and screenshots see [here](LoadRemovers/readme.md)! 30 | 31 | 32 | ## Join the Action 33 | 34 | The speedrunning community for the series has a discord where these scripts, casual play and more are discussed, join us [here](https://discord.gg/5GjHsyQT8R)! 35 | 36 | ### Requesting Changes and Reporting Problems 37 | 38 | If a problem shows up or you would like a split added or change made either submit an issue [here](https://github.com/Denhonator/KHPCSpeedrunTools/issues/new/choose) on GitHub or come over to the speed run [discord](https://discord.gg/5GjHsyQT8R) and start up a conversation! 39 | -------------------------------------------------------------------------------- /ReCoMMods/readme.md: -------------------------------------------------------------------------------- 1 | ## Update status 2 | All mods have been updated to work with the following versions: 3 | - Epic Games: 1.0.0.10 (Global + JP) 4 | - Steam: 1.0.0.2 (Global + JP) 5 | 6 | ## Disclaimer: 7 | At the time of this update mods are not allowed for use with runs submitted to speedrun.com 8 | 9 | ## How to use: 10 | 11 | ### Pre-reqs 12 | - If you have not already, or run into language you are unfamiliar with go read through the [glossary](GLOSSARY.md) for terms that are used throughout. If there is word or short hand use that is still unclear please reach out so it can be added! 13 | - Please follow the instruction [here](../LUA.md) to setup one of the hook programs to actually run mods then continue 14 | 15 | ### Setup 16 | - For LuaBackend: 17 | - Open the `game data` folder (found in `Documents` as `KINGDOM HEARTS HD 1.5+2.5 ReMIX`) 18 | - Open the `scripts` folder 19 | - Open the `recom` folder 20 | - For LuaFrontend: 21 | - Open the folder you extracted to start (named `LuaFrontend.v1.15` by default) 22 | - Open the `scripts` folder 23 | - Open the `recom` folder 24 | - For OpenKH Mod Manager: 25 | - Skip down to [here](#omm_skip) 26 | - Copy in any desired mod files (either from the full download or from [here](scripts)) 27 | - Create the `io_packages` folder (or copy it if you downloaded the repo as a zip) 28 | - (optional) If you copied the folder you can delete all version files aside from the one you intend to use 29 | - Your scripts folder should look something like this: 30 | ![image](../images/game_scripts.png) 31 | - If you created the folder yourself we need to copy two files from into it, open your new `io_packages` folder and: 32 | - Copy the version lua file for your version from the repo into it from the list below: 33 | - [EpicGamesGlobal.lua](scripts/io_packages/EpicGamesGlobal.lua) (Current English Epic Games) 34 | - [EpicGamesJP.lua](scripts/io_packages/EpicGamesJP.lua) (Current Japanese Epic Games) 35 | - [SteamGlobal.lua](scripts/io_packages/SteamGlobal.lua) (Current English Steam) 36 | - [SteamJP.lua](scripts/io_packages/SteamJP.lua) (Current Japanese Steam) 37 | - Copy the [VersionCheck.lua](scripts/io_packages/VersionCheck.lua) file 38 | - Your `io_packages` folder should look something like this: 39 | ![image](../images/versioned_io_packages.png) 40 | 41 | * If you wish to add or remove a script while playing simply copy to or delete it from the folder and press `F1` while the game is focused to reload scripts 42 | * As a note you do not need to have the scripts in more than one place if you are playing across both Epic and Steam 43 | 44 | ### Setup - Open KH Mod Manager 45 | - For each mod you wish to install do the following: 46 | - Open the `Install a new mod` window through the green plus, mods drop down, or keyboard shortcut 47 | - Press the `Select and install Mod Archive or Lua Script` button 48 | - Browse to one of the following locations to find the mod files to add: 49 | - Download of repo: 50 | - Unzip (if you have not yet) the downloaded repo 51 | - Open the `ReCoMMods` folder 52 | - Open the scripts folder 53 | - Select your mod 54 | - Installed with OpenKH setup from `LUA.md`: 55 | - Navigate to your unzipped `openkh` folder 56 | - Open the `mods` folder 57 | - Open the folder for whichever game you used in setup 58 | - Open the `Denhonator` folder (if this folder is not present check other game folders for the last step) 59 | - Open the `KHPCSpeedrunTools` folder 60 | - Open the `ReCoMMods` folder 61 | - Select your mod 62 | - Repeat these steps for each mod you wish to include 63 | 64 | ### SoftReset: 65 | - Press all shoulder buttons + start to instantly soft reset 66 | - Equavivalent buttons on keyboard work (shift + C + R + E + 4 default) 67 | 68 | ### RebirthUnlock 69 | - Install and Reverse Rebirth will be unlocked even without clear data 70 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/io_packages/EpicGamesGlobal.lua: -------------------------------------------------------------------------------- 1 | -- rebirth unlock 2 | gamecomplete = 0x87AB90 3 | 4 | -- soft reset 5 | reset = 0xAC3F00 6 | input = 0xC7D5B4 7 | kbinput = 0x822178 8 | copyright_skip_1 = 0x3A3319 9 | copyright_skip_2 = 0x3A3410 10 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/io_packages/EpicGamesJP.lua: -------------------------------------------------------------------------------- 1 | -- rebirth unlock 2 | gamecomplete = 0x87AB90 3 | 4 | -- soft reset 5 | reset = 0xAC3F00 6 | input = 0xC7D5B4 7 | kbinput = 0x822178 8 | copyright_skip_1 = 0x3A3319 9 | copyright_skip_2 = 0x3A3410 10 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/io_packages/SteamGlobal.lua: -------------------------------------------------------------------------------- 1 | -- rebirth unlock 2 | gamecomplete = 0x87B190 3 | 4 | -- soft reset 5 | reset = 0xAC4474 6 | input = 0xC1DC50 7 | kbinput = 0x8223E8 8 | copyright_skip_1 = 0x3A3799 9 | copyright_skip_2 = 0x3A3895 10 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/io_packages/SteamJP.lua: -------------------------------------------------------------------------------- 1 | -- rebirth unlock 2 | gamecomplete = 0x87B190 3 | 4 | -- soft reset 5 | reset = 0xAC4474 6 | input = 0xC1DC50 7 | kbinput = 0x8223E8 8 | copyright_skip_1 = 0x3A3519 9 | copyright_skip_2 = 0x3A3615 10 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/io_packages/VersionCheck.lua: -------------------------------------------------------------------------------- 1 | -- Current Versions are 1.0.0.2 (Steam) and 1.0.0.10 Epic Games Store 2 | EGSGlobalVersion = 0x705148 3 | EGSJPVersion = 0x705128 4 | SteamGlobalVersion = 0x705248 5 | SteamJPVersion = 0x7051E8 6 | 7 | function importVars(file) 8 | local slashIdx = string.find(file, "/") 9 | if not pcall(require, file) then 10 | local errorString = "\n\n!!!!!!!! IMPORT ERROR !!!!!!!!\n\n" 11 | local msg = "" 12 | if slashIdx then 13 | msg = string.format("%s.lua missing, get it from the Github!", string.sub(file, slashIdx + 1, #file)) 14 | else 15 | msg = string.format("%s.lua missing, get it from the Github!", file) 16 | end 17 | ConsolePrint(string.format("%s%s%s", errorString, msg, errorString)) 18 | else 19 | if slashIdx then 20 | ConsolePrint(string.format("Running with %s!", string.sub(file, slashIdx + 1, #file))) 21 | else 22 | ConsolePrint(string.format("Running with %s!", file)) 23 | end 24 | end 25 | end 26 | 27 | ConsolePrint("Re:CoM detected, running script") 28 | canExecute = true 29 | if ReadByte(EGSGlobalVersion) == 106 then 30 | importVars("EpicGamesGlobal") 31 | elseif ReadByte(EGSJPVersion) == 106 then 32 | importVars("EpicGamesJP") 33 | elseif ReadByte(SteamGlobalVersion) == 106 then 34 | importVars("SteamGlobal") 35 | elseif ReadByte(SteamJPVersion) == 106 then 36 | importVars("SteamJP") 37 | else 38 | canExecute = false 39 | ConsolePrint("\n\n!!!!!!!! VERSION ERROR !!!!!!!!\n\nVersion check failed, check variable file version numbers against game version") 40 | end 41 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/recomRebirthUnlock.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "recomRebirthUnlock" 2 | LUAGUI_AUTH = "KSX (edited by deathofall84)" 3 | LUAGUI_DESC = "Unlock Reverse Rebirth" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x9E3134F5 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Re:Chain of Memories not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | if ReadByte(gamecomplete) < 3 then 16 | WriteByte(gamecomplete, 3) 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /ReCoMMods/scripts/recomSoftReset.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "recomSoftReset" 2 | LUAGUI_AUTH = "denhonator (edited by deathofall84)" 3 | LUAGUI_DESC = "Soft reset with shoulder buttons + start" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x9E3134F5 and ENGINE_TYPE == "BACKEND" then 7 | require("VersionCheck") 8 | else 9 | ConsolePrint("Re:Chain of Memories not detected, not running script") 10 | end 11 | end 12 | 13 | function _OnFrame() 14 | if canExecute then 15 | WriteByte(copyright_skip_1, 115) 16 | WriteByte(copyright_skip_2, 115) 17 | if ReadInt(input) == 3848 or ReadInt(kbinput) == 252186376 then 18 | WriteByte(reset, 5) 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /images/backend_epic_io_packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/backend_epic_io_packages.png -------------------------------------------------------------------------------- /images/backend_steam_io_packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/backend_steam_io_packages.png -------------------------------------------------------------------------------- /images/backend_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/backend_terminal.png -------------------------------------------------------------------------------- /images/backend_terminal_ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/backend_terminal_ddd.png -------------------------------------------------------------------------------- /images/epic_docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/epic_docs.png -------------------------------------------------------------------------------- /images/epic_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/epic_install.png -------------------------------------------------------------------------------- /images/epic_install_ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/epic_install_ddd.png -------------------------------------------------------------------------------- /images/epic_toml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/epic_toml.png -------------------------------------------------------------------------------- /images/epic_toml_ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/epic_toml_ddd.png -------------------------------------------------------------------------------- /images/frontend_io_packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/frontend_io_packages.png -------------------------------------------------------------------------------- /images/game_scripts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/game_scripts.png -------------------------------------------------------------------------------- /images/io_packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/io_packages.png -------------------------------------------------------------------------------- /images/live_split_activate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/live_split_activate.png -------------------------------------------------------------------------------- /images/live_split_browse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/live_split_browse.png -------------------------------------------------------------------------------- /images/live_split_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/live_split_layout.png -------------------------------------------------------------------------------- /images/lua_frontend_randofiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/lua_frontend_randofiles.png -------------------------------------------------------------------------------- /images/luafrontend_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/luafrontend_config.png -------------------------------------------------------------------------------- /images/luafrontend_folders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/luafrontend_folders.png -------------------------------------------------------------------------------- /images/luafrontend_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/luafrontend_test.png -------------------------------------------------------------------------------- /images/omm_scripts_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/omm_scripts_folder.png -------------------------------------------------------------------------------- /images/openkh_mod_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/openkh_mod_manager.png -------------------------------------------------------------------------------- /images/rando_files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/rando_files.png -------------------------------------------------------------------------------- /images/rando_lua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/rando_lua.png -------------------------------------------------------------------------------- /images/repo_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/repo_install.png -------------------------------------------------------------------------------- /images/scripts_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/scripts_folder.png -------------------------------------------------------------------------------- /images/scripts_folder_ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/scripts_folder_ddd.png -------------------------------------------------------------------------------- /images/steam_docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/steam_docs.png -------------------------------------------------------------------------------- /images/steam_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/steam_install.png -------------------------------------------------------------------------------- /images/steam_install_ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/steam_install_ddd.png -------------------------------------------------------------------------------- /images/steam_toml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/steam_toml.png -------------------------------------------------------------------------------- /images/steam_toml_ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/steam_toml_ddd.png -------------------------------------------------------------------------------- /images/versioned_io_packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Denhonator/KHPCSpeedrunTools/3d105e4b34a8e4f05650f8a524f15f852ba7bd0b/images/versioned_io_packages.png -------------------------------------------------------------------------------- /mod.yml: -------------------------------------------------------------------------------- 1 | title: KH PC Speedrun Tools - Vars and Version Checking 2 | originalAuthor: Denhonator (edits by deathofall84) 3 | description: Installs the needed files to run any of the lua mods from the repo for all games. You will need to register the mods themselves seperately for individual control (we don't want forced install of all mods) 4 | isCollection: true 5 | collectionGames: 6 | - "kh1" 7 | - "kh2" 8 | - "bbs" 9 | - "Recom" 10 | - "kh3d" 11 | assets: 12 | 13 | ## control files for KH1 14 | - name: scripts/io_packages/Rando/chests.lua 15 | method: copy 16 | game: "kh1" 17 | source: 18 | - name: 1FMMods/scripts/io_packages/Rando/chests.lua 19 | - name: scripts/io_packages/Rando/enemyTables.lua 20 | method: copy 21 | game: "kh1" 22 | source: 23 | - name: 1FMMods/scripts/io_packages/Rando/enemyTables.lua 24 | - name: scripts/io_packages/Rando/itemNames.lua 25 | method: copy 26 | game: "kh1" 27 | source: 28 | - name: 1FMMods/scripts/io_packages/Rando/itemNames.lua 29 | - name: scripts/io_packages/Rando/rewards.lua 30 | method: copy 31 | game: "kh1" 32 | source: 33 | - name: 1FMMods/scripts/io_packages/Rando/rewards.lua 34 | - name: scripts/io_packages/Rando/settings.lua 35 | method: copy 36 | game: "kh1" 37 | source: 38 | - name: 1FMMods/scripts/io_packages/Rando/settings.lua 39 | - name: scripts/io_packages/EGSGlobal_1_0_0_8.lua 40 | method: copy 41 | game: "kh1" 42 | source: 43 | - name: 1FMMods/scripts/io_packages/EGSGlobal_1_0_0_8.lua 44 | - name: scripts/io_packages/EGSGlobal_1_0_0_9.lua 45 | method: copy 46 | game: "kh1" 47 | source: 48 | - name: 1FMMods/scripts/io_packages/EGSGlobal_1_0_0_9.lua 49 | - name: scripts/io_packages/EGSGlobal_1_0_0_10.lua 50 | method: copy 51 | game: "kh1" 52 | source: 53 | - name: 1FMMods/scripts/io_packages/EGSGlobal_1_0_0_10.lua 54 | - name: scripts/io_packages/EGSJP_1_0_0_8.lua 55 | method: copy 56 | game: "kh1" 57 | source: 58 | - name: 1FMMods/scripts/io_packages/EGSJP_1_0_0_8.lua 59 | - name: scripts/io_packages/EGSJP_1_0_0_9.lua 60 | method: copy 61 | game: "kh1" 62 | source: 63 | - name: 1FMMods/scripts/io_packages/EGSJP_1_0_0_9.lua 64 | - name: scripts/io_packages/EGSJP_1_0_0_10.lua 65 | method: copy 66 | game: "kh1" 67 | source: 68 | - name: 1FMMods/scripts/io_packages/EGSJP_1_0_0_10.lua 69 | - name: scripts/io_packages/SteamGlobal_1_0_0_1.lua 70 | method: copy 71 | game: "kh1" 72 | source: 73 | - name: 1FMMods/scripts/io_packages/SteamGlobal_1_0_0_1.lua 74 | - name: scripts/io_packages/SteamGlobal_1_0_0_2.lua 75 | method: copy 76 | game: "kh1" 77 | source: 78 | - name: 1FMMods/scripts/io_packages/SteamGlobal_1_0_0_2.lua 79 | - name: scripts/io_packages/SteamJP_1_0_0_1.lua 80 | method: copy 81 | game: "kh1" 82 | source: 83 | - name: 1FMMods/scripts/io_packages/SteamJP_1_0_0_1.lua 84 | - name: scripts/io_packages/SteamJP_1_0_0_2.lua 85 | method: copy 86 | game: "kh1" 87 | source: 88 | - name: 1FMMods/scripts/io_packages/SteamJP_1_0_0_2.lua 89 | - name: scripts/io_packages/VersionCheck.lua 90 | method: copy 91 | game: "kh1" 92 | source: 93 | - name: 1FMMods/scripts/io_packages/VersionCheck.lua 94 | 95 | ## control files for KH2 96 | - name: scripts/io_packages/EGSGlobal_1_0_0_8.lua 97 | method: copy 98 | game: "kh2" 99 | source: 100 | - name: 2FMMods/scripts/io_packages/EGSGlobal_1_0_0_8.lua 101 | - name: scripts/io_packages/EGSJP_1_0_0_8.lua 102 | method: copy 103 | game: "kh2" 104 | source: 105 | - name: 2FMMods/scripts/io_packages/EGSJP_1_0_0_8.lua 106 | - name: scripts/io_packages/EGSGlobal_1_0_0_9.lua 107 | method: copy 108 | game: "kh2" 109 | source: 110 | - name: 2FMMods/scripts/io_packages/EGSGlobal_1_0_0_9.lua 111 | - name: scripts/io_packages/EGSJP_1_0_0_9.lua 112 | method: copy 113 | game: "kh2" 114 | source: 115 | - name: 2FMMods/scripts/io_packages/EGSJP_1_0_0_9.lua 116 | - name: scripts/io_packages/EGSGlobal_1_0_0_10.lua 117 | method: copy 118 | game: "kh2" 119 | source: 120 | - name: 2FMMods/scripts/io_packages/EGSGlobal_1_0_0_10.lua 121 | - name: scripts/io_packages/EGSJP_1_0_0_10.lua 122 | method: copy 123 | game: "kh2" 124 | source: 125 | - name: 2FMMods/scripts/io_packages/EGSJP_1_0_0_10.lua 126 | - name: scripts/io_packages/SteamGlobal_1_0_0_1.lua 127 | method: copy 128 | game: "kh2" 129 | source: 130 | - name: 2FMMods/scripts/io_packages/SteamGlobal_1_0_0_1.lua 131 | - name: scripts/io_packages/SteamJP_1_0_0_1.lua 132 | method: copy 133 | game: "kh2" 134 | source: 135 | - name: 2FMMods/scripts/io_packages/SteamJP_1_0_0_1.lua 136 | - name: scripts/io_packages/SteamGlobal_1_0_0_2.lua 137 | method: copy 138 | game: "kh2" 139 | source: 140 | - name: 2FMMods/scripts/io_packages/SteamGlobal_1_0_0_2.lua 141 | - name: scripts/io_packages/SteamJP_1_0_0_2.lua 142 | method: copy 143 | game: "kh2" 144 | source: 145 | - name: 2FMMods/scripts/io_packages/SteamJP_1_0_0_2.lua 146 | - name: scripts/io_packages/VersionCheck.lua 147 | method: copy 148 | game: "kh2" 149 | source: 150 | - name: 2FMMods/scripts/io_packages/VersionCheck.lua 151 | 152 | 153 | ## control files for BBS 154 | - name: scripts/io_packages/EpicGamesGlobal.lua 155 | method: copy 156 | game: "bbs" 157 | source: 158 | - name: BBSMods/scripts/io_packages/EpicGamesGlobal.lua 159 | - name: scripts/io_packages/EpicGamesJP.lua 160 | method: copy 161 | game: "bbs" 162 | source: 163 | - name: BBSMods/scripts/io_packages/EpicGamesJP.lua 164 | - name: scripts/io_packages/SteamGlobal.lua 165 | method: copy 166 | game: "bbs" 167 | source: 168 | - name: BBSMods/scripts/io_packages/SteamGlobal.lua 169 | - name: scripts/io_packages/SteamJP.lua 170 | method: copy 171 | game: "bbs" 172 | source: 173 | - name: BBSMods/scripts/io_packages/SteamJP.lua 174 | - name: scripts/io_packages/VersionCheck.lua 175 | method: copy 176 | game: "bbs" 177 | source: 178 | - name: BBSMods/scripts/io_packages/VersionCheck.lua 179 | 180 | ## control files for Re:CoM 181 | - name: scripts/io_packages/EpicGamesGlobal.lua 182 | method: copy 183 | game: "Recom" 184 | source: 185 | - name: ReCoMMods/scripts/io_packages/EpicGamesGlobal.lua 186 | - name: scripts/io_packages/EpicGamesJP.lua 187 | method: copy 188 | game: "Recom" 189 | source: 190 | - name: ReCoMMods/scripts/io_packages/EpicGamesJP.lua 191 | - name: scripts/io_packages/SteamGlobal.lua 192 | method: copy 193 | game: "Recom" 194 | source: 195 | - name: ReCoMMods/scripts/io_packages/SteamGlobal.lua 196 | - name: scripts/io_packages/SteamJP.lua 197 | method: copy 198 | game: "Recom" 199 | source: 200 | - name: ReCoMMods/scripts/io_packages/SteamJP.lua 201 | - name: scripts/io_packages/VersionCheck.lua 202 | method: copy 203 | game: "Recom" 204 | source: 205 | - name: ReCoMMods/scripts/io_packages/VersionCheck.lua 206 | 207 | ## control files for DDD 208 | - name: scripts/io_packages/EpicGamesGlobal.lua 209 | method: copy 210 | game: "kh3d" 211 | source: 212 | - name: DDDMods/scripts/io_packages/EpicGamesGlobal.lua 213 | - name: scripts/io_packages/EpicGamesJP.lua 214 | method: copy 215 | game: "kh3d" 216 | source: 217 | - name: DDDMods/scripts/io_packages/EpicGamesJP.lua 218 | - name: scripts/io_packages/SteamGlobal.lua 219 | method: copy 220 | game: "kh3d" 221 | source: 222 | - name: DDDMods/scripts/io_packages/SteamGlobal.lua 223 | - name: scripts/io_packages/SteamJP.lua 224 | method: copy 225 | game: "kh3d" 226 | source: 227 | - name: DDDMods/scripts/io_packages/SteamJP.lua 228 | - name: scripts/io_packages/VersionCheck.lua 229 | method: copy 230 | game: "kh3d" 231 | source: 232 | - name: DDDMods/scripts/io_packages/VersionCheck.lua 233 | -------------------------------------------------------------------------------- /test_lua/test_bbs.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "bbsTest" 2 | LUAGUI_AUTH = "deathofall84" 3 | LUAGUI_DESC = "Empty test to ensure functioning of Lua Hook process" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xBED4B944 and ENGINE_TYPE == 'BACKEND' then 7 | ConsolePrint("BBS Detected, Lua Hook process configured correctly!") 8 | end 9 | end 10 | 11 | function _OnFrame() 12 | 13 | end 14 | -------------------------------------------------------------------------------- /test_lua/test_ddd.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "dddTest" 2 | LUAGUI_AUTH = "deathofall84" 3 | LUAGUI_DESC = "Empty test to ensure functioning of Lua Hook process" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xE86A2A90 and ENGINE_TYPE == 'BACKEND' then 7 | ConsolePrint("DDD Detected, Lua Hook process configured correctly!") 8 | end 9 | end 10 | 11 | function _OnFrame() 12 | 13 | end 14 | -------------------------------------------------------------------------------- /test_lua/test_kh1.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "1fmTest" 2 | LUAGUI_AUTH = "deathofall84" 3 | LUAGUI_DESC = "Empty test to ensure functioning of Lua Hook process" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0xAF71841E and ENGINE_TYPE == 'BACKEND' then 7 | ConsolePrint("KH1 Detected, Lua Hook process configured correctly!") 8 | end 9 | end 10 | 11 | function _OnFrame() 12 | 13 | end 14 | -------------------------------------------------------------------------------- /test_lua/test_kh2.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "2fmTest" 2 | LUAGUI_AUTH = "deathofall84" 3 | LUAGUI_DESC = "Empty test to ensure functioning of Lua Hook process" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then 7 | ConsolePrint("KH2 Detected, Lua Hook process configured correctly!") 8 | end 9 | end 10 | 11 | function _OnFrame() 12 | 13 | end 14 | -------------------------------------------------------------------------------- /test_lua/test_recom.lua: -------------------------------------------------------------------------------- 1 | LUAGUI_NAME = "recomTest" 2 | LUAGUI_AUTH = "deathofall84" 3 | LUAGUI_DESC = "Empty test to ensure functioning of Lua Hook process" 4 | 5 | function _OnInit() 6 | if GAME_ID == 0x9E3134F5 and ENGINE_TYPE == 'BACKEND' then 7 | ConsolePrint("KH2 Detected, Lua Hook process configured correctly!") 8 | end 9 | end 10 | 11 | function _OnFrame() 12 | 13 | end 14 | --------------------------------------------------------------------------------