From 1928fa6690955f0ed618b8bf66ce8610290d4149 Mon Sep 17 00:00:00 2001 From: Raicuparta Date: Fri, 14 Oct 2022 02:11:17 +0200 Subject: [PATCH] add mod db schema (#456) --- fetch-mods/fetch-mods.ts | 3 +- fetch-mods/globals.d.ts | 4 + modify-mod-list/index.ts | 19 +- mods.json | 1925 +++++++++++++++++++------------------- mods.schema.json | 59 ++ 5 files changed, 1043 insertions(+), 967 deletions(-) create mode 100644 mods.schema.json diff --git a/fetch-mods/fetch-mods.ts b/fetch-mods/fetch-mods.ts index aa980b0a2d..b09663e071 100644 --- a/fetch-mods/fetch-mods.ts +++ b/fetch-mods/fetch-mods.ts @@ -8,7 +8,8 @@ import { toJsonString } from "./to-json-string"; const REPO_URL_BASE = "https://github.com"; export async function fetchMods(modsJson: string) { - const modInfos: ModInfo[] = JSON.parse(modsJson); + const modDb: ModDB = JSON.parse(modsJson); + const modInfos = modDb.mods; const octokit = getOctokit(); type OctokitRelease = Awaited< diff --git a/fetch-mods/globals.d.ts b/fetch-mods/globals.d.ts index 015a2ded02..3244dee1ca 100644 --- a/fetch-mods/globals.d.ts +++ b/fetch-mods/globals.d.ts @@ -1,3 +1,7 @@ +type ModDB = { + mods: ModInfo[]; +}; + type ModInfo = { name: string; uniqueName: string; diff --git a/modify-mod-list/index.ts b/modify-mod-list/index.ts index 2311451adf..11ca2fa247 100644 --- a/modify-mod-list/index.ts +++ b/modify-mod-list/index.ts @@ -14,7 +14,11 @@ enum Output { editedExistingMod = "edited-existing-mod", } -// Mod info from mods.json. +// Mod db from mods.json. +type ModDB = { + mods: ModInfo[]; +}; + type ModInfo = { name: string; uniqueName: string; @@ -58,7 +62,8 @@ async function run() { throw new Error("Invalid repo URL " + repoUrl); } - const mods: ModInfo[] = JSON.parse(core.getInput(Input.mods)); + const modDb: ModDB = JSON.parse(core.getInput(Input.mods)).mods; + const mods = modDb.mods; const newMod: ModInfo = { name, @@ -95,16 +100,20 @@ async function run() { existingMod.authorDisplay = newMod.authorDisplay; } - const newMods: ModInfo[] = existingMod ? mods : [...mods, newMod]; + const newModDb: ModDB = { + mods: existingMod ? mods : [...mods, newMod], + }; - const jsonString = JSON.stringify(newMods, null, 2); + const jsonString = JSON.stringify(newModDb, null, 2); core.setOutput(Output.mods, jsonString); const outFile = core.getInput(Input.outFile); if (outFile) { - writeFile(outFile, jsonString, (error) => { if (error) console.log("Couldn't Write To Mods File: ", error) }); + writeFile(outFile, jsonString, (error) => { + if (error) console.log("Couldn't Write To Mods File: ", error); + }); } if (existingMod) { diff --git a/mods.json b/mods.json index 4fc49a4c32..72f90c6ec7 100644 --- a/mods.json +++ b/mods.json @@ -1,961 +1,964 @@ -[ - { - "name": "OWML", - "uniqueName": "Alek.OWML", - "repo": "amazingalek/owml", - "required": true, - "utility": true, - "authorDisplay": "Alek & friends" - }, - { - "name": "NomaiVR", - "uniqueName": "Raicuparta.NomaiVR", - "repo": "Raicuparta/nomai-vr" - }, - { - "name": "Quantum Space Buddies", - "uniqueName": "Raicuparta.QuantumSpaceBuddies", - "repo": "misternebula/quantum-space-buddies" - }, - { - "name": "Light Bramble", - "uniqueName": "Alek.LightBramble", - "repo": "amazingalek/owml-light-bramble" - }, - { - "name": "FreeCam", - "uniqueName": "misternebula.FreeCam", - "repo": "misternebula/FreeCam" - }, - { - "name": "Crouch Mod", - "uniqueName": "Alek.CrouchMod", - "repo": "amazingalek/owml-crouch-mod" - }, - { - "name": "Clock", - "uniqueName": "clubby789.OWClock", - "repo": "clubby789/OWClock" - }, - { - "name": "HD Screenshot", - "uniqueName": "Alek.Cammie", - "repo": "amazingalek/owml-cammie" - }, - { - "name": "Menu Framework", - "uniqueName": "_nebula.MenuFramework", - "repo": "misternebula/MenuFramework", - "utility": true - }, - { - "name": "ScoutStreaming", - "uniqueName": "Vesper.ScoutStreaming", - "repo": "Vesper-Works/Scout-Streaming" - }, - { - "name": "Vesper's Assorted OuterWilds Shaders", - "uniqueName": "Vesper.VespersAssortedOuterWildsShaders", - "repo": "Vesper-Works/Vesper-s-Assorted-OuterWilds-Shaders" - }, - { - "name": "Outer Wilds Online", - "uniqueName": "Vesper.OuterWildsMMO", - "repo": "Vesper-Works/OuterWildsOnline" - }, - { - "name": "Cheat and Debug Menu", - "uniqueName": "Glitch.AltDebugMenu", - "repo": "glitchewski/OWML.Glitch.CheatAndDebugMenu" - }, - { - "name": "Cheats Mod", - "uniqueName": "PacificEngine.CheatsMod", - "repo": "PacificEngine/OW_CheatsMod" - }, - { - "name": "Difficulty Mod", - "uniqueName": "PacificEngine.OW_HardMode", - "repo": "PacificEngine/OW_HardMode" - }, - { - "name": "Peaceful Ghosts", - "uniqueName": "Leadpogrommer.PeacefulGhosts", - "repo": "leadpogrommer/PeacefulGhosts" - }, - { - "name": "SlowTime", - "uniqueName": "dnlwtsn.SlowTime", - "repo": "dwatson251/ow-slowtime" - }, - { - "name": "OW Smooth Thrust", - "uniqueName": "TruAI.SmoothThrust", - "repo": "TAImatem/OW_SmoothThrust" - }, - { - "name": "Randomizer", - "uniqueName": "PacificEngine.OW_Randomizer", - "repo": "PacificEngine/OW_Randomizer" - }, - { - "name": "PacificEngine's Common Resources", - "uniqueName": "PacificEngine.OW_CommonResources", - "repo": "dgarroDC/OW_CommonResources", - "utility": true - }, - { - "name": "No Alt Tab Pause", - "uniqueName": "lStewieAl.RunInBackground", - "repo": "lStewieAl/OuterWilds-NoAltTabPause" - }, - { - "name": "Echoes of the Caribbean", - "uniqueName": "tealhelix.EotE-RideMusic", - "repo": "tealhelix/ow-mod-eote-ridemusic" - }, - { - "name": "Third Person Camera", - "uniqueName": "xen.ThirdPersonCamera", - "repo": "xen-42/outer-wilds-third-person-camera" - }, - { - "name": "NomaiVR Online Patches", - "uniqueName": "Artum.NomaiVROnlinePatches", - "repo": "artumino/NomaiVROnlinePatches", - "parent": "Raicuparta.NomaiVR" - }, - { - "name": "NomaiVR FFR", - "uniqueName": "Artum.NomaiVRFoveated", - "repo": "artumino/NomaiVR-FixedFoveatedRendering", - "parent": "Raicuparta.NomaiVR" - }, - { - "name": "Static Camera", - "uniqueName": "xen.StaticCamera", - "repo": "xen-42/outer-wilds-static-camera" - }, - { - "name": "Daydream", - "uniqueName": "xen.DayDream", - "repo": "xen-42/outer-wilds-day-dream" - }, - { - "name": "EotE Brighter Dreams", - "uniqueName": "Heelio.EotEBrighterDreams", - "repo": "Heelio/EotE-Brighter-Dreams" - }, - { - "name": "Unity Explorer", - "uniqueName": "Vesper.UnityExplorer", - "repo": "Vesper-Works/Unity-Explorer-For-Outer-Wilds" - }, - { - "name": "Half-Life Overhaul", - "uniqueName": "Vesper.HalfLifeOverhaul", - "repo": "Vesper-Works/OuterWildsHalf-Life" - }, - { - "name": "Auto Resume", - "uniqueName": "Vesper.AutoResume", - "repo": "Vesper-Works/AutoResume" - }, - { - "name": "Outer Thomas Echoes of the Tank Engine", - "uniqueName": "xen.TankEngine", - "repo": "xen-42/outer-wilds-tank-engine" - }, - { - "name": "Majora's Mask's Moon", - "uniqueName": "xen.MajorasMask", - "repo": "xen-42/outer-wilds-majoras-mask" - }, - { - "name": "New Horizons", - "uniqueName": "xen.NewHorizons", - "repo": "Outer-Wilds-New-Horizons/new-horizons", - "authorDisplay": "xen, Bwc9876, clay, MegaPiggy, John, Hawkbar, Trifid, Book" - }, - { - "name": "New Horizons Examples", - "uniqueName": "xen.NewHorizonsExamples", - "repo": "Outer-Wilds-New-Horizons/nh-examples", - "parent": "xen.NewHorizons", - "authorDisplay": "xen" - }, - { - "name": "Real Solar System", - "uniqueName": "xen.RealSolarSystem", - "repo": "xen-42/outer-wilds-real-solar-system", - "parent": "xen.NewHorizons" - }, - { - "name": "Atropos", - "uniqueName": "Titch.OWAtropos", - "repo": "TitchMW/OWAtropos", - "parent": "xen.NewHorizons" - }, - { - "name": "ElliePlanets!", - "uniqueName": "Ellie3.ElliePlanets", - "repo": "ellie3-OW/ElliePlanets", - "parent": "xen.NewHorizons" - }, - { - "name": "Smol Hatchling", - "uniqueName": "Owen013.TeenyHatchling", - "repo": "Owen013/Smol-Hatchling" - }, - { - "name": "Hiker's Mod", - "uniqueName": "Owen013.MovementMod", - "repo": "Owen013/Hikers-Mod" - }, - { - "name": "Outer Wilds Galaxy", - "uniqueName": "Jammer.OuterWildsGalaxy", - "repo": "Jammer232/Outer-Wilds-Galaxy", - "parent": "xen.NewHorizons" - }, - { - "name": "Signals+", - "uniqueName": "xen.SignalsPlus", - "repo": "xen-42/outer-wilds-signals-plus", - "parent": "xen.NewHorizons" - }, - { - "name": "Save Editor", - "uniqueName": "Bwc9876.SaveEditor", - "repo": "Bwc9876/OW-SaveEditor" - }, - { - "name": "Meteor Launching", - "uniqueName": "12090113.MeteorLaunching", - "repo": "12090113/outer-wilds-meteor-launching" - }, - { - "name": "Slate Simulator", - "uniqueName": "Bwc9876.SlatePOV", - "repo": "Bwc9876/OW-Slate-Simulator" - }, - { - "name": "TARDIS from Doctor Who", - "uniqueName": "TitchMW.tardisfromdoctorwho", - "repo": "TitchMW/tardisfromdoctorwho", - "parent": "xen.NewHorizons" - }, - { - "name": "Solar Neighbourhood", - "uniqueName": "ErroneousCreationist.solarneighbourhood", - "repo": "ErroneousCreationist/solarneighbourhood", - "parent": "xen.NewHorizons" - }, - { - "name": "Vanilla Main Menu", - "uniqueName": "artificial.VanillaMainMenu", - "repo": "artificialparanoia/VanillaMainMenu" - }, - { - "name": "Outer Wilds Korean Translation", - "uniqueName": "milesand.OWKT", - "repo": "milesand/outer-wilds-korean-translation" - }, - { - "name": "Astroneer Solar System", - "uniqueName": "ErroneousCreationist.astroneersolarsystem", - "repo": "ErroneousCreationist/astroneersolarsystem", - "parent": "xen.NewHorizons" - }, - { - "name": "Black Hole Portal Gun", - "uniqueName": "Book.BlackHolePortalGun", - "repo": "Nageld/Outer-Wilds-Black-Hole-Portal-Gun" - }, - { - "name": "Outer Wario Echoes of the Waaaaaaaaaaah", - "uniqueName": "xen.OuterWario", - "repo": "xen-42/outer-wilds-wario" - }, - { - "name": "Suicide Mod", - "uniqueName": "Gurrenm3.SuicideMod", - "repo": "gurrenm3/OuterWilds_SuicideMod" - }, - { - "name": "Outer Wilds Music Player", - "uniqueName": "Titch.OWMusicPlayer", - "repo": "TitchMW/outerwildsmusicplayer" - }, - { - "name": "Collider Visualizer", - "uniqueName": "Locochoco.ColliderVisualizer", - "repo": "ShoosGun/ColliderVisualizer" - }, - { - "name": "Archaeologist Achievement Helper", - "uniqueName": "dgarro.ArchaeologistAchievementHelper", - "repo": "dgarroDC/ArchaeologistAchievementHelper" - }, - { - "name": "Enter the Warioverse", - "uniqueName": "Roggsy.enterthewarioverse", - "repo": "Roggsy/enterthewarioverse", - "parent": "xen.NewHorizons" - }, - { - "name": "21st Century Anglerfish", - "uniqueName": "mrmeep321.Angler", - "repo": "mrmeep321/21stCenturyAnglerfish" - }, - { - "name": "Medley of Planets", - "uniqueName": "smallbug.MedleyOfPlanets", - "repo": "Leopard501/PlanetMedley", - "parent": "xen.NewHorizons" - }, - { - "name": "Outer Wilds Flyover", - "uniqueName": "piggeywig2000.OuterWildsFlyover", - "repo": "piggeywig2000/OuterWildsFlyover" - }, - { - "name": "Incursion: Final Dawn", - "uniqueName": "ErroneousCreationist.incursionfinaldawn", - "repo": "ErroneousCreationist/incursionfinaldawn", - "parent": "xen.NewHorizons" - }, - { - "name": "TRAPPIST-1", - "uniqueName": "smallbug.trappist-1", - "repo": "Leopard501/TRAPPIST-1", - "parent": "xen.NewHorizons" - }, - { - "name": "Input Demo Recorder", - "uniqueName": "Locochoco.InputDemoRecorder", - "repo": "ShoosGun/InputDemoRecorder" - }, - { - "name": "Celeste Wilds", - "uniqueName": "Locochoco.CelesteWilds", - "repo": "ShoosGun/CelesteWilds" - }, - { - "name": "Grapefruit", - "uniqueName": "Tlya.Grapefruit", - "repo": "Tllya/Grapefruit", - "parent": "xen.NewHorizons" - }, - { - "name": "Visible Stranger", - "uniqueName": "xen.Decloaked", - "repo": "xen-42/ow-decloaked" - }, - { - "name": "Hollodjustment", - "uniqueName": "Tlya.Hollodjustment", - "repo": "Tllya/ow-mod-Hollodjustment" - }, - { - "name": "Vanilla Fix", - "uniqueName": "JohnCorby.VanillaFix", - "repo": "JohnCorby/ow-vanilla-fix" - }, - { - "name": "Only Timber Hearth", - "uniqueName": "Tlya.OnlyTH", - "repo": "Tllya/ow-nh-only-timber-hearth", - "parent": "xen.NewHorizons" - }, - { - "name": "Title Screen Bug Fix", - "uniqueName": "xen.CursedTitle", - "repo": "xen-42/outer-wilds-cursed-title" - }, - { - "name": "Ghost Translations", - "uniqueName": "MegaPiggy.GhostTranslations", - "repo": "MegaPiggy/GhostTranslations" - }, - { - "name": "Voice Acting Mod", - "uniqueName": "Krevace.VoiceMod", - "repo": "Krevace/ow-voice-mod" - }, - { - "name": "Their Homeworld", - "uniqueName": "CreativeNameTxt.theirhomeworld", - "repo": "CreativeNameTxt/their-home-world", - "parent": "xen.NewHorizons" - }, - { - "name": "Vengeful Cannon", - "uniqueName": "_nebula.VengefulCannon", - "repo": "misternebula/VengefulCannon" - }, - { - "name": "Almond System", - "uniqueName": "MellowSus.almondsystem", - "repo": "MellowSus/almondsystem", - "parent": "xen.NewHorizons" - }, - { - "name": "Persistant Marshmallow", - "uniqueName": "BUNN1E5.PersistantMarshmallow", - "repo": "BUNN1E5/PersistantMarshmallow" - }, - { - "name": "Empty Hollow", - "uniqueName": "MegaPiggy.EmptyHollow", - "repo": "MegaPiggy/EmptyHollow" - }, - { - "name": "Interstellar: Gargantua", - "uniqueName": "Tandicase.interstellargargantua", - "repo": "Tllya/interstellargargantua", - "parent": "xen.NewHorizons" - }, - { - "name": "Jammer Lore", - "uniqueName": "Jammer.jammerlore", - "repo": "Jammer232/jammerlore", - "parent": "xen.NewHorizons" - }, - { - "name": "Ghostbuster", - "uniqueName": "xen.GhostBuster", - "repo": "xen-42/ow-ghostbuster" - }, - { - "name": "Open Doors", - "uniqueName": "Skyball.OpenDoors", - "repo": "YanWittmann/OpenDoors" - }, - { - "name": "Sleep Mod", - "uniqueName": "likemauro.sleepmod", - "repo": "LikeMauro/SleepMod" - }, - { - "name": "Ghost Matter Nerf", - "uniqueName": "Kentin.GhostMatterNerf", - "repo": "QuentinGruber/ghostMatterNerf" - }, - { - "name": "Add LIV Support", - "uniqueName": "Raicuparta.OwLiv", - "repo": "Raicuparta/ow-liv", - "parent": "Raicuparta.NomaiVR" - }, - { - "name": "360 Camera", - "uniqueName": "BUNN1E5.OW360Camera", - "repo": "BUNN1E5/OW360Camera" - }, - { - "name": "No End", - "uniqueName": "likemauro.noend", - "repo": "LikeMauro/NoEnd-Mod" - }, - { - "name": "No Dam Break", - "uniqueName": "likemauro.nodambreak", - "repo": "LikeMauro/NoDamBreak-Mod" - }, - { - "name": "Alter Time", - "uniqueName": "Spacepiano.AlterTime", - "repo": "spacepiano/Outer-Wilds---Speed-up-Time" - }, - { - "name": "Survive the Supernova", - "uniqueName": "Joooosh.SurviveTheSupernova", - "repo": "joshua-smith98/OW-SurviveTheSupernova" - }, - { - "name": "Achievements+", - "uniqueName": "xen.AchievementTracker", - "repo": "xen-42/outer-wilds-achievement-tracker" - }, - { - "name": "Supernova On Demand", - "uniqueName": "Kentin.SupernovaOnDemand", - "repo": "QuentinGruber/SupernovaOnDemand" - }, - { - "name": "Big Heads", - "uniqueName": "Joooosh.BigHeads", - "repo": "joshua-smith98/OW-BigHeads" - }, - { - "name": "Bring Me My Ship", - "uniqueName": "Switch.BringMeMyShip", - "repo": "Switch-9867/BringMeMyShip" - }, - { - "name": "Arkose bug fix", - "uniqueName": "Tlya.arkosebugfix", - "repo": "Tllya/arkosebugfix", - "parent": "xen.NewHorizons" - }, - { - "name": "Woah Watch Those Frames", - "uniqueName": "Switch.WoahWatchThoseFrames", - "repo": "Switch-9867/WoahWatchThoseFrames" - }, - { - "name": "Timber Twin", - "uniqueName": "paragon.TimberTwin", - "repo": "ParagonOrang/ow-timber-twin", - "parent": "xen.NewHorizons" - }, - { - "name": "Toggle Velocity Matching", - "uniqueName": "Vesper.ToggleVelocityMatching", - "repo": "Vesper-Works/Toggle-Velocity-Matching" - }, - { - "name": "Time Saver", - "uniqueName": "Bwc9876.TimeSaver", - "repo": "Bwc9876/OW-TimeSaver" - }, - { - "name": "Changed Twins", - "uniqueName": "Classic.ChangedTwins", - "repo": "ClassicalBro/changed.twins", - "parent": "xen.NewHorizons" - }, - { - "name": "Power Failure", - "uniqueName": "LivingFray.PowerFailure", - "repo": "LivingFray/OW-PowerFailure" - }, - { - "name": "Outer Wilds Traditional Chinese Translation", - "uniqueName": "PuFF.OWCHT", - "repo": "puffbro/outer-wilds-traditional-chinese-translation" - }, - { - "name": "Less Lonely Ship", - "uniqueName": "Classic.CozyShip", - "repo": "ClassicalBro/Less-Lonely-Ship", - "parent": "xen.NewHorizons" - }, - { - "name": "Cloudless Quantum Moons", - "uniqueName": "TerrificTrifid.VisibleQMs", - "repo": "TerrificTrifid/ow-nh-visible-qms", - "parent": "xen.NewHorizons" - }, - { - "name": "Backer's satellite signal", - "uniqueName": "Tlya.Backerssignal", - "repo": "Tllya/backers-satellite-signal", - "parent": "xen.NewHorizons" - }, - { - "name": "Suit Log", - "uniqueName": "dgarro.SuitLog", - "repo": "dgarroDC/SuitLog" - }, - { - "name": "Hatchling Outfitter", - "uniqueName": "Owen013.HatchlingOutfit", - "repo": "Owen013/Hatchling-Outfitter" - }, - { - "name": "Quality of Life Changes", - "uniqueName": "Owen013.QOLFixes", - "repo": "Owen013/QOLFixes" - }, - { - "name": "Common Camera Utility", - "uniqueName": "xen.CommonCameraUtility", - "repo": "xen-42/ow-common-camera-util", - "utility": true - }, - { - "name": "Better Model Ship", - "uniqueName": "xen.BetterModelShip", - "repo": "xen-42/outer-wilds-better-model-ship" - }, - { - "name": "BepInEx", - "uniqueName": "bbepis.BepInEx", - "repo": "MegaPiggy/BepInEx", - "alpha": true, - "required": true, - "utility": true - }, - { - "name": "OWAML", - "uniqueName": "Locochoco.OWAML", - "repo": "ShoosGun/OWAML", - "alpha": true, - "required": true, - "utility": true - }, - { - "name": "CAMOWA", - "uniqueName": "Locochoco.CAMOWA", - "repo": "ShoosGun/CAMOWA", - "alpha": true, - "utility": true - }, - { - "name": "Alpha Fixes", - "uniqueName": "Locochoco.AlphaFixes", - "repo": "ShoosGun/AlphaFixes", - "alpha": true - }, - { - "name": "Navinha", - "uniqueName": "Locochoco.NAVE", - "repo": "ShoosGun/navinha", - "alpha": true - }, - { - "name": "Free Cam Mod", - "uniqueName": "Locochoco.FreeCamMod", - "repo": "ShoosGun/FreeCamMod", - "alpha": true - }, - { - "name": "Probe Grapple", - "uniqueName": "Locochoco.ProbeGrapple", - "repo": "ShoosGun/ProbeGrappleMod", - "alpha": true - }, - { - "name": "Cooler Bottom Cams", - "uniqueName": "Locochoco.CoolerBottomCams", - "repo": "ShoosGun/CBC", - "alpha": true - }, - { - "name": "Enhanced Mallows", - "uniqueName": "Locochoco.EnhancedMallows", - "repo": "ShoosGun/EM", - "alpha": true - }, - { - "name": "Automatic Launch Codes", - "uniqueName": "MegaPiggy.AutomaticLaunchCodes", - "repo": "MegaPiggy/AutomaticLaunchCodes", - "alpha": true - }, - { - "name": "No Probe Launch Window", - "uniqueName": "MegaPiggy.NoProbeLaunchWindow", - "repo": "MegaPiggy/NoProbeLaunchWindow", - "alpha": true - }, - { - "name": "Runtime Unity Editor", - "uniqueName": "Locochoco.RuntimeUnityEditor", - "repo": "ShoosGun/RuntimeUnityEditor", - "alpha": true - }, - { - "name": "Cloudless Giant's Deep", - "uniqueName": "gpixl.NoMoreGDClouds", - "repo": "gpixl/CloudlessGiantsDeep", - "parent": "xen.NewHorizons" - }, - { - "name": "Involuntary Blink", - "uniqueName": "MegaPiggy.InvoluntaryBlink", - "repo": "MegaPiggy/InvoluntaryBlink" - }, - { - "name": "Primitive Launching", - "uniqueName": "MegaPiggy.PrimitiveLaunching", - "repo": "MegaPiggy/PrimitiveLaunching", - "parent": "12090113.MeteorLaunching" - }, - { - "name": "Alpha Title Screen", - "uniqueName": "MegaPiggy.AlphaRegression", - "repo": "MegaPiggy/AlphaRegression" - }, - { - "name": "Controllable Stranger", - "uniqueName": "likemauro.controllablestranger", - "repo": "LikeMauro/Controllable-Stranger" - }, - { - "name": "Upsilon Andromedae", - "uniqueName": "MegaPiggy.UpsilonAndromedae", - "repo": "MegaPiggy/UpsilonAndromedae", - "parent": "xen.NewHorizons" - }, - { - "name": "Fact Log", - "uniqueName": "Hawkbar.FactLog", - "repo": "Hawkbat/ow-mod-fact-log" - }, - { - "name": "BlackHole Sun", - "uniqueName": "Shuit.BlackHoleSun", - "repo": "ShuitOnDiscord/BlackHoleSun", - "parent": "xen.NewHorizons" - }, - { - "name": "No Sun", - "uniqueName": "Shuit.NoSun", - "repo": "ShuitOnDiscord/NoSun", - "parent": "xen.NewHorizons" - }, - { - "name": "Ordered Orbits", - "uniqueName": "Shuit.MovedOrbits", - "repo": "ShuitOnDiscord/MovedOrbits", - "parent": "xen.NewHorizons" - }, - { - "name": "Ship Remote Autopilot", - "uniqueName": "Titch.ShipRemoteAutopilot", - "repo": "TitchMW/remoteautopilot" - }, - { - "name": "Block Placing", - "uniqueName": "12090113.Cubes", - "repo": "12090113/outer-wilds-cubes" - }, - { - "name": "Czech Localization", - "uniqueName": "shippy.czech", - "repo": "shippy/outer-wilds-czech" - }, - { - "name": "Carson System", - "uniqueName": "JackFoxtrot.CarsonSystem", - "repo": "mrwallace888/OWNH-Carson-System", - "parent": "xen.NewHorizons" - }, - { - "name": "Sound Test", - "uniqueName": "Hawkbar.SoundTest", - "repo": "Hawkbat/ow-mod-sound-test" - }, - { - "name": "Interplanetary Polyglot", - "uniqueName": "xen.LocalizationUtility", - "repo": "xen-42/outer-wilds-localization-utility", - "utility": true - }, - { - "name": "StopTime", - "uniqueName": "_nebula.StopTime", - "repo": "misternebula/StopTime" - }, - { - "name": "Galaxy Skybox: NGC 1087", - "uniqueName": "TerrificTrifid.NGC1087", - "repo": "TerrificTrifid/ow-nh-ngc1087", - "parent": "xen.NewHorizons" - }, - { - "name": "Quantum Moon Orbit Line", - "uniqueName": "MegaPiggy.QuantumMoonOrbitLine", - "repo": "MegaPiggy/QuantumMoonOrbitLine" - }, - { - "name": "Permadeath Mode", - "uniqueName": "piggeywig2000.Permadeath", - "repo": "piggeywig2000/OuterWildsPermadeath" - }, - { - "name": "Sun Station Ascension", - "uniqueName": "TerrificTrifid.SSAscension", - "repo": "TerrificTrifid/ow-nh-ss-ascension", - "parent": "xen.NewHorizons" - }, - { - "name": "Discord Rich Presence", - "uniqueName": "MegaPiggy.OWRichPresence", - "repo": "MegaPiggy/OWRichPresence" - }, - { - "name": "Artifact Laser", - "uniqueName": "Cleric.ArtifactLaser", - "repo": "coderCleric/artifact_laser" - }, - { - "name": "Speed Modifier/Walk Button on KBM", - "uniqueName": "ilyabru.OWSpeedModifier", - "repo": "ilyabru/OWSpeedModifier" - }, - { - "name": "Cut Achievements", - "uniqueName": "_nebula.CutAchievements", - "repo": "misternebula/cut-achievements", - "parent": "xen.AchievementTracker" - }, - { - "name": "Chargeable Scout Launcher", - "uniqueName": "Cleric.ChargeableScout", - "repo": "coderCleric/chargeable-scout" - }, - { - "name": "(Razer/SteelSeries) RGB Integration", - "uniqueName": "LivingFray.RGBIntegration", - "repo": "LivingFray/OW-RGB-Integration" - }, - { - "name": "Europe Times", - "uniqueName": "MegaPiggy.EuropeTimes", - "repo": "MegaPiggy/EuropeTimes" - }, - { - "name": "Hazy Dreams", - "uniqueName": "Laundryjx.HazyDreams", - "repo": "Landriejx/HazyDreams", - "parent": "xen.NewHorizons", - "utility": true, - "authorDisplay": "Laundryjx" - }, - { - "name": "Gizmos Library", - "uniqueName": "Locochoco.GizmosLibrary", - "repo": "ShoosGun/GizmosLibrary", - "utility": true, - "authorDisplay": "Locochoco" - }, - { - "name": "Wacky Rotations", - "uniqueName": "Cleric.WackyRotations", - "repo": "coderCleric/WackyRotations", - "authorDisplay": "coderCleric" - }, - { - "name": "The Vision", - "uniqueName": "hearth1an.TheVision", - "repo": "hearth1an/hearthian.TheVision", - "authorDisplay": "hearth1an" - }, - { - "name": "Secret Words", - "uniqueName": "Fixxion.SecretWords", - "repo": "FixxionsLair/Secret-Words", - "parent": "xen.NewHorizons", - "authorDisplay": "Fixxion's Lair" - }, - { - "name": "Slate's Shipyard", - "uniqueName": "Locochoco.SlateShipyard", - "repo": "ShoosGun/SlateShipyard", - "utility": true, - "authorDisplay": "Locochoco" - }, - { - "name": "Spaceshipinha", - "uniqueName": "Locochoco.Spaceshipinha", - "repo": "ShoosGun/Spaceshipinha", - "parent": "Locochoco.SlateShipyard", - "authorDisplay": "Locochoco" - }, - { - "name": "DOOM", - "uniqueName": "Hawkbar.Doom", - "repo": "Hawkbat/ow-mod-doom", - "authorDisplay": "Hawkbar" - }, - { - "name": "Car Example", - "uniqueName": "Locochoco.CarExample", - "repo": "ShoosGun/CarExample", - "parent": "Locochoco.SlateShipyard", - "authorDisplay": "Locochoco" - }, - { - "name": "Clear Glass", - "uniqueName": "clay.ClearGlass", - "repo": "FreezeDriedMangos/ow-clear-glass", - "authorDisplay": "clay" - }, - { - "name": "Bhaptics Outer Wilds", - "uniqueName": "Astien.OWBhaptics", - "repo": "Astienth/ow-bhaptics", - "authorDisplay": "Astien75" - }, - { - "name": "Espied Serenity", - "uniqueName": "Ciborgm9.Espied_Serenity", - "repo": "Ciborgm9/Rogue-Planet", - "parent": "xen.NewHorizons" - }, - { - "name": "Green Jetpack", - "uniqueName": "TheLoreExplorer.GreenJetpack", - "repo": "TheLoreExplorer/Green-Jetpack", - "authorDisplay": "The Lore Explorer" - }, - { - "name": "Secret Settings", - "uniqueName": "xen.SecretSettings", - "repo": "xen-42/outer-wilds-secret-settings", - "authorDisplay": "xen" - }, - { - "name": "Fret's Quest", - "uniqueName": "Samster68.FretsQuest", - "repo": "Samster68OW/fretsquest", - "parent": "xen.NewHorizons", - "authorDisplay": "Samster68" - }, - { - "name": "Heavy Sleeper", - "uniqueName": "Smaed.HeavySleeper", - "repo": "Smaedd/OW_HeavySleeper", - "authorDisplay": "Smaed" - }, - { - "name": "The Funniest System", - "uniqueName": "O32.FunnySystem", - "repo": "RealOrbital32/funny-system", - "parent": "xen.NewHorizons", - "authorDisplay": "Orbital 32 (a.k.a. cigtu)" - }, - { - "name": "Probe Teleporter", - "uniqueName": "hearth1an.ProbeTeleporter", - "repo": "hearth1an/hearth1an.ProbeTeleporter", - "authorDisplay": "hearth1an" - }, - { - "name": "Custom Ship Log Modes", - "uniqueName": "dgarro.CustomShipLogModes", - "repo": "dgarroDC/CustomShipLogModes", - "utility": true, - "authorDisplay": "Damián Garro" - }, - { - "name": "Ship Log Slide Reel Player Plus", - "uniqueName": "dgarro.ShipLogSlideReelPlayer", - "repo": "dgarroDC/ShipLogSlideReelPlayer", - "authorDisplay": "Damián Garro" - }, - { - "name": "Smallest System in the Galaxy", - "uniqueName": "O32.Smallest", - "repo": "RealOrbital32/smallest", - "parent": "xen.NewHorizons", - "authorDisplay": "Orbital 32 (a.k.a. cigtu)" - }, - { - "name": "Developer Console", - "uniqueName": "Smaed.DeveloperConsole", - "repo": "Smaedd/OW_DeveloperConsole", - "utility": true, - "authorDisplay": "Smaed" - }, - { - "name": "Console Cheats", - "uniqueName": "Smaed.ConsoleCheats", - "repo": "Smaedd/OW_ConsoleCheats", - "authorDisplay": "Smaed" - } -] \ No newline at end of file +{ + "$schema": "./mods.schema.json", + "mods": [ + { + "name": "OWML", + "uniqueName": "Alek.OWML", + "repo": "amazingalek/owml", + "required": true, + "utility": true, + "authorDisplay": "Alek & friends" + }, + { + "name": "NomaiVR", + "uniqueName": "Raicuparta.NomaiVR", + "repo": "Raicuparta/nomai-vr" + }, + { + "name": "Quantum Space Buddies", + "uniqueName": "Raicuparta.QuantumSpaceBuddies", + "repo": "misternebula/quantum-space-buddies" + }, + { + "name": "Light Bramble", + "uniqueName": "Alek.LightBramble", + "repo": "amazingalek/owml-light-bramble" + }, + { + "name": "FreeCam", + "uniqueName": "misternebula.FreeCam", + "repo": "misternebula/FreeCam" + }, + { + "name": "Crouch Mod", + "uniqueName": "Alek.CrouchMod", + "repo": "amazingalek/owml-crouch-mod" + }, + { + "name": "Clock", + "uniqueName": "clubby789.OWClock", + "repo": "clubby789/OWClock" + }, + { + "name": "HD Screenshot", + "uniqueName": "Alek.Cammie", + "repo": "amazingalek/owml-cammie" + }, + { + "name": "Menu Framework", + "uniqueName": "_nebula.MenuFramework", + "repo": "misternebula/MenuFramework", + "utility": true + }, + { + "name": "ScoutStreaming", + "uniqueName": "Vesper.ScoutStreaming", + "repo": "Vesper-Works/Scout-Streaming" + }, + { + "name": "Vesper's Assorted OuterWilds Shaders", + "uniqueName": "Vesper.VespersAssortedOuterWildsShaders", + "repo": "Vesper-Works/Vesper-s-Assorted-OuterWilds-Shaders" + }, + { + "name": "Outer Wilds Online", + "uniqueName": "Vesper.OuterWildsMMO", + "repo": "Vesper-Works/OuterWildsOnline" + }, + { + "name": "Cheat and Debug Menu", + "uniqueName": "Glitch.AltDebugMenu", + "repo": "glitchewski/OWML.Glitch.CheatAndDebugMenu" + }, + { + "name": "Cheats Mod", + "uniqueName": "PacificEngine.CheatsMod", + "repo": "PacificEngine/OW_CheatsMod" + }, + { + "name": "Difficulty Mod", + "uniqueName": "PacificEngine.OW_HardMode", + "repo": "PacificEngine/OW_HardMode" + }, + { + "name": "Peaceful Ghosts", + "uniqueName": "Leadpogrommer.PeacefulGhosts", + "repo": "leadpogrommer/PeacefulGhosts" + }, + { + "name": "SlowTime", + "uniqueName": "dnlwtsn.SlowTime", + "repo": "dwatson251/ow-slowtime" + }, + { + "name": "OW Smooth Thrust", + "uniqueName": "TruAI.SmoothThrust", + "repo": "TAImatem/OW_SmoothThrust" + }, + { + "name": "Randomizer", + "uniqueName": "PacificEngine.OW_Randomizer", + "repo": "PacificEngine/OW_Randomizer" + }, + { + "name": "PacificEngine's Common Resources", + "uniqueName": "PacificEngine.OW_CommonResources", + "repo": "dgarroDC/OW_CommonResources", + "utility": true + }, + { + "name": "No Alt Tab Pause", + "uniqueName": "lStewieAl.RunInBackground", + "repo": "lStewieAl/OuterWilds-NoAltTabPause" + }, + { + "name": "Echoes of the Caribbean", + "uniqueName": "tealhelix.EotE-RideMusic", + "repo": "tealhelix/ow-mod-eote-ridemusic" + }, + { + "name": "Third Person Camera", + "uniqueName": "xen.ThirdPersonCamera", + "repo": "xen-42/outer-wilds-third-person-camera" + }, + { + "name": "NomaiVR Online Patches", + "uniqueName": "Artum.NomaiVROnlinePatches", + "repo": "artumino/NomaiVROnlinePatches", + "parent": "Raicuparta.NomaiVR" + }, + { + "name": "NomaiVR FFR", + "uniqueName": "Artum.NomaiVRFoveated", + "repo": "artumino/NomaiVR-FixedFoveatedRendering", + "parent": "Raicuparta.NomaiVR" + }, + { + "name": "Static Camera", + "uniqueName": "xen.StaticCamera", + "repo": "xen-42/outer-wilds-static-camera" + }, + { + "name": "Daydream", + "uniqueName": "xen.DayDream", + "repo": "xen-42/outer-wilds-day-dream" + }, + { + "name": "EotE Brighter Dreams", + "uniqueName": "Heelio.EotEBrighterDreams", + "repo": "Heelio/EotE-Brighter-Dreams" + }, + { + "name": "Unity Explorer", + "uniqueName": "Vesper.UnityExplorer", + "repo": "Vesper-Works/Unity-Explorer-For-Outer-Wilds" + }, + { + "name": "Half-Life Overhaul", + "uniqueName": "Vesper.HalfLifeOverhaul", + "repo": "Vesper-Works/OuterWildsHalf-Life" + }, + { + "name": "Auto Resume", + "uniqueName": "Vesper.AutoResume", + "repo": "Vesper-Works/AutoResume" + }, + { + "name": "Outer Thomas Echoes of the Tank Engine", + "uniqueName": "xen.TankEngine", + "repo": "xen-42/outer-wilds-tank-engine" + }, + { + "name": "Majora's Mask's Moon", + "uniqueName": "xen.MajorasMask", + "repo": "xen-42/outer-wilds-majoras-mask" + }, + { + "name": "New Horizons", + "uniqueName": "xen.NewHorizons", + "repo": "Outer-Wilds-New-Horizons/new-horizons", + "authorDisplay": "xen, Bwc9876, clay, MegaPiggy, John, Hawkbar, Trifid, Book" + }, + { + "name": "New Horizons Examples", + "uniqueName": "xen.NewHorizonsExamples", + "repo": "Outer-Wilds-New-Horizons/nh-examples", + "parent": "xen.NewHorizons", + "authorDisplay": "xen" + }, + { + "name": "Real Solar System", + "uniqueName": "xen.RealSolarSystem", + "repo": "xen-42/outer-wilds-real-solar-system", + "parent": "xen.NewHorizons" + }, + { + "name": "Atropos", + "uniqueName": "Titch.OWAtropos", + "repo": "TitchMW/OWAtropos", + "parent": "xen.NewHorizons" + }, + { + "name": "ElliePlanets!", + "uniqueName": "Ellie3.ElliePlanets", + "repo": "ellie3-OW/ElliePlanets", + "parent": "xen.NewHorizons" + }, + { + "name": "Smol Hatchling", + "uniqueName": "Owen013.TeenyHatchling", + "repo": "Owen013/Smol-Hatchling" + }, + { + "name": "Hiker's Mod", + "uniqueName": "Owen013.MovementMod", + "repo": "Owen013/Hikers-Mod" + }, + { + "name": "Outer Wilds Galaxy", + "uniqueName": "Jammer.OuterWildsGalaxy", + "repo": "Jammer232/Outer-Wilds-Galaxy", + "parent": "xen.NewHorizons" + }, + { + "name": "Signals+", + "uniqueName": "xen.SignalsPlus", + "repo": "xen-42/outer-wilds-signals-plus", + "parent": "xen.NewHorizons" + }, + { + "name": "Save Editor", + "uniqueName": "Bwc9876.SaveEditor", + "repo": "Bwc9876/OW-SaveEditor" + }, + { + "name": "Meteor Launching", + "uniqueName": "12090113.MeteorLaunching", + "repo": "12090113/outer-wilds-meteor-launching" + }, + { + "name": "Slate Simulator", + "uniqueName": "Bwc9876.SlatePOV", + "repo": "Bwc9876/OW-Slate-Simulator" + }, + { + "name": "TARDIS from Doctor Who", + "uniqueName": "TitchMW.tardisfromdoctorwho", + "repo": "TitchMW/tardisfromdoctorwho", + "parent": "xen.NewHorizons" + }, + { + "name": "Solar Neighbourhood", + "uniqueName": "ErroneousCreationist.solarneighbourhood", + "repo": "ErroneousCreationist/solarneighbourhood", + "parent": "xen.NewHorizons" + }, + { + "name": "Vanilla Main Menu", + "uniqueName": "artificial.VanillaMainMenu", + "repo": "artificialparanoia/VanillaMainMenu" + }, + { + "name": "Outer Wilds Korean Translation", + "uniqueName": "milesand.OWKT", + "repo": "milesand/outer-wilds-korean-translation" + }, + { + "name": "Astroneer Solar System", + "uniqueName": "ErroneousCreationist.astroneersolarsystem", + "repo": "ErroneousCreationist/astroneersolarsystem", + "parent": "xen.NewHorizons" + }, + { + "name": "Black Hole Portal Gun", + "uniqueName": "Book.BlackHolePortalGun", + "repo": "Nageld/Outer-Wilds-Black-Hole-Portal-Gun" + }, + { + "name": "Outer Wario Echoes of the Waaaaaaaaaaah", + "uniqueName": "xen.OuterWario", + "repo": "xen-42/outer-wilds-wario" + }, + { + "name": "Suicide Mod", + "uniqueName": "Gurrenm3.SuicideMod", + "repo": "gurrenm3/OuterWilds_SuicideMod" + }, + { + "name": "Outer Wilds Music Player", + "uniqueName": "Titch.OWMusicPlayer", + "repo": "TitchMW/outerwildsmusicplayer" + }, + { + "name": "Collider Visualizer", + "uniqueName": "Locochoco.ColliderVisualizer", + "repo": "ShoosGun/ColliderVisualizer" + }, + { + "name": "Archaeologist Achievement Helper", + "uniqueName": "dgarro.ArchaeologistAchievementHelper", + "repo": "dgarroDC/ArchaeologistAchievementHelper" + }, + { + "name": "Enter the Warioverse", + "uniqueName": "Roggsy.enterthewarioverse", + "repo": "Roggsy/enterthewarioverse", + "parent": "xen.NewHorizons" + }, + { + "name": "21st Century Anglerfish", + "uniqueName": "mrmeep321.Angler", + "repo": "mrmeep321/21stCenturyAnglerfish" + }, + { + "name": "Medley of Planets", + "uniqueName": "smallbug.MedleyOfPlanets", + "repo": "Leopard501/PlanetMedley", + "parent": "xen.NewHorizons" + }, + { + "name": "Outer Wilds Flyover", + "uniqueName": "piggeywig2000.OuterWildsFlyover", + "repo": "piggeywig2000/OuterWildsFlyover" + }, + { + "name": "Incursion: Final Dawn", + "uniqueName": "ErroneousCreationist.incursionfinaldawn", + "repo": "ErroneousCreationist/incursionfinaldawn", + "parent": "xen.NewHorizons" + }, + { + "name": "TRAPPIST-1", + "uniqueName": "smallbug.trappist-1", + "repo": "Leopard501/TRAPPIST-1", + "parent": "xen.NewHorizons" + }, + { + "name": "Input Demo Recorder", + "uniqueName": "Locochoco.InputDemoRecorder", + "repo": "ShoosGun/InputDemoRecorder" + }, + { + "name": "Celeste Wilds", + "uniqueName": "Locochoco.CelesteWilds", + "repo": "ShoosGun/CelesteWilds" + }, + { + "name": "Grapefruit", + "uniqueName": "Tlya.Grapefruit", + "repo": "Tllya/Grapefruit", + "parent": "xen.NewHorizons" + }, + { + "name": "Visible Stranger", + "uniqueName": "xen.Decloaked", + "repo": "xen-42/ow-decloaked" + }, + { + "name": "Hollodjustment", + "uniqueName": "Tlya.Hollodjustment", + "repo": "Tllya/ow-mod-Hollodjustment" + }, + { + "name": "Vanilla Fix", + "uniqueName": "JohnCorby.VanillaFix", + "repo": "JohnCorby/ow-vanilla-fix" + }, + { + "name": "Only Timber Hearth", + "uniqueName": "Tlya.OnlyTH", + "repo": "Tllya/ow-nh-only-timber-hearth", + "parent": "xen.NewHorizons" + }, + { + "name": "Title Screen Bug Fix", + "uniqueName": "xen.CursedTitle", + "repo": "xen-42/outer-wilds-cursed-title" + }, + { + "name": "Ghost Translations", + "uniqueName": "MegaPiggy.GhostTranslations", + "repo": "MegaPiggy/GhostTranslations" + }, + { + "name": "Voice Acting Mod", + "uniqueName": "Krevace.VoiceMod", + "repo": "Krevace/ow-voice-mod" + }, + { + "name": "Their Homeworld", + "uniqueName": "CreativeNameTxt.theirhomeworld", + "repo": "CreativeNameTxt/their-home-world", + "parent": "xen.NewHorizons" + }, + { + "name": "Vengeful Cannon", + "uniqueName": "_nebula.VengefulCannon", + "repo": "misternebula/VengefulCannon" + }, + { + "name": "Almond System", + "uniqueName": "MellowSus.almondsystem", + "repo": "MellowSus/almondsystem", + "parent": "xen.NewHorizons" + }, + { + "name": "Persistant Marshmallow", + "uniqueName": "BUNN1E5.PersistantMarshmallow", + "repo": "BUNN1E5/PersistantMarshmallow" + }, + { + "name": "Empty Hollow", + "uniqueName": "MegaPiggy.EmptyHollow", + "repo": "MegaPiggy/EmptyHollow" + }, + { + "name": "Interstellar: Gargantua", + "uniqueName": "Tandicase.interstellargargantua", + "repo": "Tllya/interstellargargantua", + "parent": "xen.NewHorizons" + }, + { + "name": "Jammer Lore", + "uniqueName": "Jammer.jammerlore", + "repo": "Jammer232/jammerlore", + "parent": "xen.NewHorizons" + }, + { + "name": "Ghostbuster", + "uniqueName": "xen.GhostBuster", + "repo": "xen-42/ow-ghostbuster" + }, + { + "name": "Open Doors", + "uniqueName": "Skyball.OpenDoors", + "repo": "YanWittmann/OpenDoors" + }, + { + "name": "Sleep Mod", + "uniqueName": "likemauro.sleepmod", + "repo": "LikeMauro/SleepMod" + }, + { + "name": "Ghost Matter Nerf", + "uniqueName": "Kentin.GhostMatterNerf", + "repo": "QuentinGruber/ghostMatterNerf" + }, + { + "name": "Add LIV Support", + "uniqueName": "Raicuparta.OwLiv", + "repo": "Raicuparta/ow-liv", + "parent": "Raicuparta.NomaiVR" + }, + { + "name": "360 Camera", + "uniqueName": "BUNN1E5.OW360Camera", + "repo": "BUNN1E5/OW360Camera" + }, + { + "name": "No End", + "uniqueName": "likemauro.noend", + "repo": "LikeMauro/NoEnd-Mod" + }, + { + "name": "No Dam Break", + "uniqueName": "likemauro.nodambreak", + "repo": "LikeMauro/NoDamBreak-Mod" + }, + { + "name": "Alter Time", + "uniqueName": "Spacepiano.AlterTime", + "repo": "spacepiano/Outer-Wilds---Speed-up-Time" + }, + { + "name": "Survive the Supernova", + "uniqueName": "Joooosh.SurviveTheSupernova", + "repo": "joshua-smith98/OW-SurviveTheSupernova" + }, + { + "name": "Achievements+", + "uniqueName": "xen.AchievementTracker", + "repo": "xen-42/outer-wilds-achievement-tracker" + }, + { + "name": "Supernova On Demand", + "uniqueName": "Kentin.SupernovaOnDemand", + "repo": "QuentinGruber/SupernovaOnDemand" + }, + { + "name": "Big Heads", + "uniqueName": "Joooosh.BigHeads", + "repo": "joshua-smith98/OW-BigHeads" + }, + { + "name": "Bring Me My Ship", + "uniqueName": "Switch.BringMeMyShip", + "repo": "Switch-9867/BringMeMyShip" + }, + { + "name": "Arkose bug fix", + "uniqueName": "Tlya.arkosebugfix", + "repo": "Tllya/arkosebugfix", + "parent": "xen.NewHorizons" + }, + { + "name": "Woah Watch Those Frames", + "uniqueName": "Switch.WoahWatchThoseFrames", + "repo": "Switch-9867/WoahWatchThoseFrames" + }, + { + "name": "Timber Twin", + "uniqueName": "paragon.TimberTwin", + "repo": "ParagonOrang/ow-timber-twin", + "parent": "xen.NewHorizons" + }, + { + "name": "Toggle Velocity Matching", + "uniqueName": "Vesper.ToggleVelocityMatching", + "repo": "Vesper-Works/Toggle-Velocity-Matching" + }, + { + "name": "Time Saver", + "uniqueName": "Bwc9876.TimeSaver", + "repo": "Bwc9876/OW-TimeSaver" + }, + { + "name": "Changed Twins", + "uniqueName": "Classic.ChangedTwins", + "repo": "ClassicalBro/changed.twins", + "parent": "xen.NewHorizons" + }, + { + "name": "Power Failure", + "uniqueName": "LivingFray.PowerFailure", + "repo": "LivingFray/OW-PowerFailure" + }, + { + "name": "Outer Wilds Traditional Chinese Translation", + "uniqueName": "PuFF.OWCHT", + "repo": "puffbro/outer-wilds-traditional-chinese-translation" + }, + { + "name": "Less Lonely Ship", + "uniqueName": "Classic.CozyShip", + "repo": "ClassicalBro/Less-Lonely-Ship", + "parent": "xen.NewHorizons" + }, + { + "name": "Cloudless Quantum Moons", + "uniqueName": "TerrificTrifid.VisibleQMs", + "repo": "TerrificTrifid/ow-nh-visible-qms", + "parent": "xen.NewHorizons" + }, + { + "name": "Backer's satellite signal", + "uniqueName": "Tlya.Backerssignal", + "repo": "Tllya/backers-satellite-signal", + "parent": "xen.NewHorizons" + }, + { + "name": "Suit Log", + "uniqueName": "dgarro.SuitLog", + "repo": "dgarroDC/SuitLog" + }, + { + "name": "Hatchling Outfitter", + "uniqueName": "Owen013.HatchlingOutfit", + "repo": "Owen013/Hatchling-Outfitter" + }, + { + "name": "Quality of Life Changes", + "uniqueName": "Owen013.QOLFixes", + "repo": "Owen013/QOLFixes" + }, + { + "name": "Common Camera Utility", + "uniqueName": "xen.CommonCameraUtility", + "repo": "xen-42/ow-common-camera-util", + "utility": true + }, + { + "name": "Better Model Ship", + "uniqueName": "xen.BetterModelShip", + "repo": "xen-42/outer-wilds-better-model-ship" + }, + { + "name": "BepInEx", + "uniqueName": "bbepis.BepInEx", + "repo": "MegaPiggy/BepInEx", + "alpha": true, + "required": true, + "utility": true + }, + { + "name": "OWAML", + "uniqueName": "Locochoco.OWAML", + "repo": "ShoosGun/OWAML", + "alpha": true, + "required": true, + "utility": true + }, + { + "name": "CAMOWA", + "uniqueName": "Locochoco.CAMOWA", + "repo": "ShoosGun/CAMOWA", + "alpha": true, + "utility": true + }, + { + "name": "Alpha Fixes", + "uniqueName": "Locochoco.AlphaFixes", + "repo": "ShoosGun/AlphaFixes", + "alpha": true + }, + { + "name": "Navinha", + "uniqueName": "Locochoco.NAVE", + "repo": "ShoosGun/navinha", + "alpha": true + }, + { + "name": "Free Cam Mod", + "uniqueName": "Locochoco.FreeCamMod", + "repo": "ShoosGun/FreeCamMod", + "alpha": true + }, + { + "name": "Probe Grapple", + "uniqueName": "Locochoco.ProbeGrapple", + "repo": "ShoosGun/ProbeGrappleMod", + "alpha": true + }, + { + "name": "Cooler Bottom Cams", + "uniqueName": "Locochoco.CoolerBottomCams", + "repo": "ShoosGun/CBC", + "alpha": true + }, + { + "name": "Enhanced Mallows", + "uniqueName": "Locochoco.EnhancedMallows", + "repo": "ShoosGun/EM", + "alpha": true + }, + { + "name": "Automatic Launch Codes", + "uniqueName": "MegaPiggy.AutomaticLaunchCodes", + "repo": "MegaPiggy/AutomaticLaunchCodes", + "alpha": true + }, + { + "name": "No Probe Launch Window", + "uniqueName": "MegaPiggy.NoProbeLaunchWindow", + "repo": "MegaPiggy/NoProbeLaunchWindow", + "alpha": true + }, + { + "name": "Runtime Unity Editor", + "uniqueName": "Locochoco.RuntimeUnityEditor", + "repo": "ShoosGun/RuntimeUnityEditor", + "alpha": true + }, + { + "name": "Cloudless Giant's Deep", + "uniqueName": "gpixl.NoMoreGDClouds", + "repo": "gpixl/CloudlessGiantsDeep", + "parent": "xen.NewHorizons" + }, + { + "name": "Involuntary Blink", + "uniqueName": "MegaPiggy.InvoluntaryBlink", + "repo": "MegaPiggy/InvoluntaryBlink" + }, + { + "name": "Primitive Launching", + "uniqueName": "MegaPiggy.PrimitiveLaunching", + "repo": "MegaPiggy/PrimitiveLaunching", + "parent": "12090113.MeteorLaunching" + }, + { + "name": "Alpha Title Screen", + "uniqueName": "MegaPiggy.AlphaRegression", + "repo": "MegaPiggy/AlphaRegression" + }, + { + "name": "Controllable Stranger", + "uniqueName": "likemauro.controllablestranger", + "repo": "LikeMauro/Controllable-Stranger" + }, + { + "name": "Upsilon Andromedae", + "uniqueName": "MegaPiggy.UpsilonAndromedae", + "repo": "MegaPiggy/UpsilonAndromedae", + "parent": "xen.NewHorizons" + }, + { + "name": "Fact Log", + "uniqueName": "Hawkbar.FactLog", + "repo": "Hawkbat/ow-mod-fact-log" + }, + { + "name": "BlackHole Sun", + "uniqueName": "Shuit.BlackHoleSun", + "repo": "ShuitOnDiscord/BlackHoleSun", + "parent": "xen.NewHorizons" + }, + { + "name": "No Sun", + "uniqueName": "Shuit.NoSun", + "repo": "ShuitOnDiscord/NoSun", + "parent": "xen.NewHorizons" + }, + { + "name": "Ordered Orbits", + "uniqueName": "Shuit.MovedOrbits", + "repo": "ShuitOnDiscord/MovedOrbits", + "parent": "xen.NewHorizons" + }, + { + "name": "Ship Remote Autopilot", + "uniqueName": "Titch.ShipRemoteAutopilot", + "repo": "TitchMW/remoteautopilot" + }, + { + "name": "Block Placing", + "uniqueName": "12090113.Cubes", + "repo": "12090113/outer-wilds-cubes" + }, + { + "name": "Czech Localization", + "uniqueName": "shippy.czech", + "repo": "shippy/outer-wilds-czech" + }, + { + "name": "Carson System", + "uniqueName": "JackFoxtrot.CarsonSystem", + "repo": "mrwallace888/OWNH-Carson-System", + "parent": "xen.NewHorizons" + }, + { + "name": "Sound Test", + "uniqueName": "Hawkbar.SoundTest", + "repo": "Hawkbat/ow-mod-sound-test" + }, + { + "name": "Interplanetary Polyglot", + "uniqueName": "xen.LocalizationUtility", + "repo": "xen-42/outer-wilds-localization-utility", + "utility": true + }, + { + "name": "StopTime", + "uniqueName": "_nebula.StopTime", + "repo": "misternebula/StopTime" + }, + { + "name": "Galaxy Skybox: NGC 1087", + "uniqueName": "TerrificTrifid.NGC1087", + "repo": "TerrificTrifid/ow-nh-ngc1087", + "parent": "xen.NewHorizons" + }, + { + "name": "Quantum Moon Orbit Line", + "uniqueName": "MegaPiggy.QuantumMoonOrbitLine", + "repo": "MegaPiggy/QuantumMoonOrbitLine" + }, + { + "name": "Permadeath Mode", + "uniqueName": "piggeywig2000.Permadeath", + "repo": "piggeywig2000/OuterWildsPermadeath" + }, + { + "name": "Sun Station Ascension", + "uniqueName": "TerrificTrifid.SSAscension", + "repo": "TerrificTrifid/ow-nh-ss-ascension", + "parent": "xen.NewHorizons" + }, + { + "name": "Discord Rich Presence", + "uniqueName": "MegaPiggy.OWRichPresence", + "repo": "MegaPiggy/OWRichPresence" + }, + { + "name": "Artifact Laser", + "uniqueName": "Cleric.ArtifactLaser", + "repo": "coderCleric/artifact_laser" + }, + { + "name": "Speed Modifier/Walk Button on KBM", + "uniqueName": "ilyabru.OWSpeedModifier", + "repo": "ilyabru/OWSpeedModifier" + }, + { + "name": "Cut Achievements", + "uniqueName": "_nebula.CutAchievements", + "repo": "misternebula/cut-achievements", + "parent": "xen.AchievementTracker" + }, + { + "name": "Chargeable Scout Launcher", + "uniqueName": "Cleric.ChargeableScout", + "repo": "coderCleric/chargeable-scout" + }, + { + "name": "(Razer/SteelSeries) RGB Integration", + "uniqueName": "LivingFray.RGBIntegration", + "repo": "LivingFray/OW-RGB-Integration" + }, + { + "name": "Europe Times", + "uniqueName": "MegaPiggy.EuropeTimes", + "repo": "MegaPiggy/EuropeTimes" + }, + { + "name": "Hazy Dreams", + "uniqueName": "Laundryjx.HazyDreams", + "repo": "Landriejx/HazyDreams", + "parent": "xen.NewHorizons", + "utility": true, + "authorDisplay": "Laundryjx" + }, + { + "name": "Gizmos Library", + "uniqueName": "Locochoco.GizmosLibrary", + "repo": "ShoosGun/GizmosLibrary", + "utility": true, + "authorDisplay": "Locochoco" + }, + { + "name": "Wacky Rotations", + "uniqueName": "Cleric.WackyRotations", + "repo": "coderCleric/WackyRotations", + "authorDisplay": "coderCleric" + }, + { + "name": "The Vision", + "uniqueName": "hearth1an.TheVision", + "repo": "hearth1an/hearthian.TheVision", + "authorDisplay": "hearth1an" + }, + { + "name": "Secret Words", + "uniqueName": "Fixxion.SecretWords", + "repo": "FixxionsLair/Secret-Words", + "parent": "xen.NewHorizons", + "authorDisplay": "Fixxion's Lair" + }, + { + "name": "Slate's Shipyard", + "uniqueName": "Locochoco.SlateShipyard", + "repo": "ShoosGun/SlateShipyard", + "utility": true, + "authorDisplay": "Locochoco" + }, + { + "name": "Spaceshipinha", + "uniqueName": "Locochoco.Spaceshipinha", + "repo": "ShoosGun/Spaceshipinha", + "parent": "Locochoco.SlateShipyard", + "authorDisplay": "Locochoco" + }, + { + "name": "DOOM", + "uniqueName": "Hawkbar.Doom", + "repo": "Hawkbat/ow-mod-doom", + "authorDisplay": "Hawkbar" + }, + { + "name": "Car Example", + "uniqueName": "Locochoco.CarExample", + "repo": "ShoosGun/CarExample", + "parent": "Locochoco.SlateShipyard", + "authorDisplay": "Locochoco" + }, + { + "name": "Clear Glass", + "uniqueName": "clay.ClearGlass", + "repo": "FreezeDriedMangos/ow-clear-glass", + "authorDisplay": "clay" + }, + { + "name": "Bhaptics Outer Wilds", + "uniqueName": "Astien.OWBhaptics", + "repo": "Astienth/ow-bhaptics", + "authorDisplay": "Astien75" + }, + { + "name": "Espied Serenity", + "uniqueName": "Ciborgm9.Espied_Serenity", + "repo": "Ciborgm9/Rogue-Planet", + "parent": "xen.NewHorizons" + }, + { + "name": "Green Jetpack", + "uniqueName": "TheLoreExplorer.GreenJetpack", + "repo": "TheLoreExplorer/Green-Jetpack", + "authorDisplay": "The Lore Explorer" + }, + { + "name": "Secret Settings", + "uniqueName": "xen.SecretSettings", + "repo": "xen-42/outer-wilds-secret-settings", + "authorDisplay": "xen" + }, + { + "name": "Fret's Quest", + "uniqueName": "Samster68.FretsQuest", + "repo": "Samster68OW/fretsquest", + "parent": "xen.NewHorizons", + "authorDisplay": "Samster68" + }, + { + "name": "Heavy Sleeper", + "uniqueName": "Smaed.HeavySleeper", + "repo": "Smaedd/OW_HeavySleeper", + "authorDisplay": "Smaed" + }, + { + "name": "The Funniest System", + "uniqueName": "O32.FunnySystem", + "repo": "RealOrbital32/funny-system", + "parent": "xen.NewHorizons", + "authorDisplay": "Orbital 32 (a.k.a. cigtu)" + }, + { + "name": "Probe Teleporter", + "uniqueName": "hearth1an.ProbeTeleporter", + "repo": "hearth1an/hearth1an.ProbeTeleporter", + "authorDisplay": "hearth1an" + }, + { + "name": "Custom Ship Log Modes", + "uniqueName": "dgarro.CustomShipLogModes", + "repo": "dgarroDC/CustomShipLogModes", + "utility": true, + "authorDisplay": "Damián Garro" + }, + { + "name": "Ship Log Slide Reel Player Plus", + "uniqueName": "dgarro.ShipLogSlideReelPlayer", + "repo": "dgarroDC/ShipLogSlideReelPlayer", + "authorDisplay": "Damián Garro" + }, + { + "name": "Smallest System in the Galaxy", + "uniqueName": "O32.Smallest", + "repo": "RealOrbital32/smallest", + "parent": "xen.NewHorizons", + "authorDisplay": "Orbital 32 (a.k.a. cigtu)" + }, + { + "name": "Developer Console", + "uniqueName": "Smaed.DeveloperConsole", + "repo": "Smaedd/OW_DeveloperConsole", + "utility": true, + "authorDisplay": "Smaed" + }, + { + "name": "Console Cheats", + "uniqueName": "Smaed.ConsoleCheats", + "repo": "Smaedd/OW_ConsoleCheats", + "authorDisplay": "Smaed" + } + ] +} diff --git a/mods.schema.json b/mods.schema.json new file mode 100644 index 0000000000..03e2cd4ca8 --- /dev/null +++ b/mods.schema.json @@ -0,0 +1,59 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Outer Wilds Mod Database Schema", + "type": "object", + "additionalProperties": false, + "required": [ + "mods" + ], + "properties": { + "$schema": { + "type": "string" + }, + "mods": { + "type": "array", + "items": { + "additionalProperties": false, + "required": [ + "name", + "uniqueName", + "repo" + ], + "properties": { + "name": { + "type": "string", + "description": "Human-readable title for your mod." + }, + "uniqueName": { + "type": "string", + "description": "Your mod's ID, unchangeable and unique within the whole database. IMPORTANT: must match uniqueName from your mod's manifest.json. If you're editing an existing mod, this must match the uniqueName of that mod. This property can't be edited." + }, + "repo": { + "type": "string", + "description": "GitHub repository that contains the mod's source code and releases." + }, + "required": { + "type": "boolean", + "description": "Mods marked as required must be installed before starting the game." + }, + "utility": { + "type": "boolean", + "description": "True if this mod isn't useful by itself, and only serves as a dependency for other mods." + }, + "authorDisplay": { + "type": "string", + "description": "Custom name to show in the author field for this mod. Useful if your mod is in an organization, or made by multiple people. Leave blank to use the repository owner name." + }, + "parent": { + "type": "string", + "description": "If this mod is an addon for another mod, place the parent's uniqueName here. For instance, custom planets made with New Horizons would have xen.NewHorizons in this field." + }, + "alpha": { + "type": "boolean", + "description": "True if this mod is made for Outer Wilds Alpha." + } + } + } + } + } +}