You are viewing a potentially older version of this package. View all versions.
Phreel-BaseGameFixes-1.0.12 icon

BaseGameFixes

Fixes various base game errors and NREs you'd encounter late-game. I HATE NRES MAN

By Phreel
Date uploaded 3 days ago
Version 1.0.12
Download link Phreel-BaseGameFixes-1.0.12.zip
Downloads 604
Dependency string Phreel-BaseGameFixes-1.0.12

This mod requires the following mods to function

RiskofThunder-HookGenPatcher-1.2.9 icon
RiskofThunder-HookGenPatcher

MMHOOK generation at runtime.

Preferred version: 1.2.9
bbepis-BepInExPack-5.4.2122 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2122

README

BaseGameFixes

Fixes a collection of base game errors and NullReferenceExceptions via Harmony patches.

Fixes

  • Defective Unit - death state no longer throws when its model is already gone (e.g. Void Fields wave ending).
  • Void Barnacle - spawn no longer tries to spawn a null muzzle flash effect.
  • Dream Demon - projectile no longer throws on destroyed growth renderers.
  • RigidbodySoundOnImpact - no longer throws when a collision happens before Start.
  • SetStateOnHurt - freeze/stun no longer throws when applied before Start (duration modifiers are still respected).
  • Drone Tech - drone command targeting no longer throws when aiming at a chest.
  • SpecialObjectAttributes - no longer throws in Start when a prefab has missing objects in its collision/detach lists.
  • Scene loading (multiplayer) - a scene object destroyed during spawning no longer stops the rest of the scene from being spawned for clients.
  • Wandering Vagrant - Jelly Barrage no longer throws every tick when the Vagrant has no model.
  • Wake mission - leaving the cursed book state no longer throws when the scene is unloading.
  • Footsteps - bodies with footstep dust enabled but no dust prefab no longer throw on spawn.
  • Void Fields spawns - monsters no longer spawn inside the bubble of the cell you're charging.
  • Void Fields cells - objects running the null ward states without a SphereZone no longer throw on start.
  • EnemyDetection - no longer throws when touching a hurtbox that has no health component/body.
  • Interactable locks - unlocking no longer stops partway when one of the locked interactables was destroyed.
  • Aurelionite's Blessing - taking damage with no attacker (e.g. Shared Suffering) no longer throws.
  • Director cards - null director cards are dropped instead of breaking the stage's spawn pool (and with it the teleporter boss).
  • Teleporter boss - no longer throws when the stage has no monster cards at all.
  • Lynx totem - summoned Lynx no longer throw when the totem owner has no master.
  • Inspect panel - no longer throws when shown from a panel with no event system, or for items with no name/description/lore token (e.g. Starstorm 2's trader and shard panel).
  • Animation effects - animation events with no effect assigned no longer log Unable to SpawnEffect.
  • Artifact achievements - a mod's "obtain artifact" achievement for a disabled artifact no longer breaks profile loading (e.g. Expedition).
  • Void Fields cells - an active cell no longer throws every frame (or on exit) when the run ends while it's charging.
  • Collective elites - removing the share buff from destroyed bodies no longer throws in other mods' buff hooks (e.g. Classic Items Returns' Hit List).
  • Stage spawn pool - monster pool categories with nothing available (e.g. a family event with no available families) are no longer picked, which aborted building the stage's monsters and interactables.
  • Interactable spawning - cards with 0 weight are no longer picked, which threw and stopped the rest of the stage's interactables from spawning.
  • Chained kills - on-kill effects that kill more enemies (Gasoline and modded equivalents) no longer overflow the stack and crash the game in big modpacks; procs past a few levels deep run right after instead of nested.
  • Solus Heart - attack and teleport states no longer throw when the heart has no target silhouette.
  • Solus Heart - the death fall no longer throws when its offering master is gone.
  • Light cookies - lights with a custom render texture cookie no longer throw when disabled/destroyed after the texture was unloaded.
  • Stage spawn pool - stages with no available monster category at all no longer throw while building cards; they get no monster cards but still spawn their interactables.
  • Shrine of Combat - no longer throws on stages without monster cards.
  • Alloy Hunter - its spawn no longer throws when the enemy it kills has no master.
  • Vehicle seats - entering/leaving a seat (e.g. Rising Tides' Aquamarine bubble) no longer throws on destroyed lights/renderers, which left ejected passengers without collisions and hurtboxes.
  • Point sounds - sounds played while a scene unloads no longer throw on destroyed pooled emitters.
  • Character animations - bodies whose animator was destroyed no longer throw every frame.
  • Duplicator - dying bodies whose master is already gone no longer throw when updating temp item decay.
  • Model panels - no longer throw every frame without an event system.
  • Hallowed Cauldron - no longer throws every frame on clients while draining items, and finishes properly if the player who started it leaves.
  • Geode portal tracker - no longer throws every frame after the run ends.
  • Equipment - bodies whose master is gone (e.g. on the game over screen) no longer throw every frame when trying to use equipment.
  • Drifter vault - opening a vault bag chest while any player is dead no longer throws, which also cut the chest's opening short.
  • Solus Amalgamator - its flamethrower turret no longer throws when its target dies mid-attack.
  • Vulture fight - no longer throws on clients when it starts.
  • Tracers and orb effects - effects spawned outside the effect pool no longer log Tracer: No owning pool set / OrbEffect: No owning pool set.
  • Log noise - silences GenericPool: ReleasePools called on non-empty pool, Particle System is trying to spawn on a mesh with zero surface area, Sub-emitters may not use stop actions, Starstorm 2's UI/TranslucentImage material errors, its pedestal _Vibrancy/_Flatten material errors and its ShardPoison item index message.

Mod fixes

Only applied when the mod is installed.

  • MoonstormSharedUtils - destroying a pickup display no longer throws in MSU's item tier hook.
  • MoonstormSharedUtils - custom interactables no longer throw on stages with no interactable pool, and are added to stages whose pool only has expansion variants.
  • Starstorm 2 - storm events no longer throw when their rain post-processing is missing.
  • Starstorm 2 - teleporters missing some charging effects no longer throw on spawn, so ethereal upgrades on them still get their boss items, extra credits and portal.
  • Augmentum - Mini Matroyshka no longer throws when buying interactables with short names.
  • Expedition - Unstable elites no longer throw when a team member has no body.
  • Ancient Scepter - inventory changes outside a run no longer throw, which left Scepter stuck and stopped it from rerolling/upgrading skills for the rest of the session.
  • Starstorm 2 - Birthright health bar hook no longer throws on destroyed inventories.
  • Starstorm 2 - Clay Mongers no longer throw when the run ends.
  • Starstorm 2 - elite event bosses (Boreal, Infernal, Tectonic, Overcharged...) in multiplayer drop their shard for each player, instead of invisible "???" pickups that lag the game.
  • Starstorm 2 - Mimics drop their items even when their pickup pivot is gone.
  • Starstorm 2 - Sticky Overloader no longer throws every frame when stuck to a body without hurtboxes.
  • Starstorm 2 - the trader no longer throws on an invalid choice or a trade whose item is disabled.
  • Starstorm 2 - Relic of Termination no longer throws (and drops nothing) for bosses without a boss drop table; they drop a random boss item.
  • Starstorm 2 - Sticky Overloader no longer throws when its target is destroyed before the vine reaches it.
  • Expedition - Biodude no longer throws on hurtboxes of destroyed bodies when spreading debuffs.
  • Scales of the Asclepius - Gauze Pad no longer throws when a destroyed body gains a debuff.
  • Scales of the Asclepius - IV Bag no longer throws every frame on bodies without an inventory.
  • BootlegBestiary - Demineur death no longer throws when its head is already gone.
  • WolfoQoL - newt altars no longer throw on start on stages where the treasure reminder isn't set up.
  • WolfoQoL - minion healing tracking no longer throws on heals for unknown targets in multiplayer, which also broke the heal message.
  • MoreMountains - no longer replaces Shrines of the Mountain with a missing card, which threw and stopped the stage's remaining interactables from spawning.
  • ShareSuite - blood shrines with shared money no longer throw (and lose the shared gold) while a player is dead.
  • ZetAspects - destroying unspawned bodies no longer throws a duplicate key error that skipped CharacterBody.OnDestroy.
  • Expedition - Heatcore achievement no longer throws every frame for survivors without an equipment slot, which also skipped other mods' CharacterBody.FixedUpdate hooks.
  • ShareSuite - money pickups (Ghor's Tome etc.) left over after the run ends no longer throw with shared money on.
  • Starstorm 2 - storms, the run behavior and ItemOnEliteKill no longer throw on clients when seeding their RNG; storms now finish setting up for clients and other mods' run start handlers no longer get skipped.
  • Starstorm 2 - equipment Mimics drop their equipment even when their pickup pivot is gone.
  • Starstorm 2 - Ice Tool no longer throws on bodies without a character motor.
  • Driver - crosshair no longer throws when aimed at hurtboxes without a body.
  • Sandswept - Decay no longer throws on bodies without a model.
  • Nautilus - Xenobacteria no longer throws (and drops the DoT) when the attacker was already destroyed.
  • WolfoQoL - Lunar Seer stage names no longer throw on clients through a null language token.
  • EnemiesReturns - sticking projectiles no longer spam RPC Function RpcEnableShard called on client on clients.
  • LoadingSpriteAdditions - the loading screen no longer throws during a run when you have no master (stage transitions, spectating); it shows a random sprite instead.

CHANGELOG

1.0.12

  • Added LoadingSpriteAdditions nullcheck (loading screen during a run with no master)

1.0.11

  • Silenced Tracer: No owning pool set and OrbEffect: No owning pool set log spam

1.0.10

  • Fixed the Hallowed Cauldron throwing every frame on clients while draining items, and not finishing if the player who started it leaves
  • Fixed opening a Drifter vault bag chest while a player is dead cutting the chest's opening short
  • Fixed Expedition's Heatcore achievement throwing every frame for survivors without an equipment slot, which also skipped other mods' CharacterBody.FixedUpdate hooks
  • Fixed Starstorm 2 storms not finishing their setup for clients, and its ItemOnEliteKill skipping other mods' run start code on clients
  • Fixed Nautilus' Xenobacteria dropping DoTs when the attacker was already destroyed
  • Added 4 more base game nullchecks (geode portal tracker, equipment on the game over screen, Solus Amalgamator flamethrower, Vulture fight on clients)
  • Added 2 more SS2 nullchecks (equipment Mimic drops, Ice Tool)
  • Added ShareSuite nullcheck (money pickups after the run ends)
  • Added Driver, Sandswept and WolfoQoL (Lunar Seer names) nullchecks
  • Silenced EnemiesReturns' RPC Function RpcEnableShard called on client spam on clients
  • Removed the SniperClassic fix, it's fixed in SniperClassic itself now

1.0.9

  • Fixed allies being left without collisions and hurtboxes after leaving a vehicle seat (e.g. Rising Tides' Aquamarine bubble)
  • Fixed stages with no available monster category not spawning their interactables
  • Added 6 more base game nullchecks (Shrine of Combat, Alloy Hunter spawn, point sounds, character animations, Duplicator temp items, model panels)
  • Added Scales of the Asclepius nullcheck (IV Bag)
  • Added BootlegBestiary nullcheck (Demineur death)
  • Added WolfoQoL nullcheck (newt altar reminder)
  • Silenced Sub-emitters may not use stop actions log spam

1.0.8

  • Fixed a stack overflow crash from chained on-kill effects (Gasoline and modded equivalents) in big modpacks
  • Added 3 more base game nullchecks (Solus Heart attacks/teleport, Solus Heart death fall, light cookies)
  • Added 2 SS2 nullchecks (Relic of Termination, Sticky Overloader)
  • Added Expedition nullcheck (Biodude)
  • Added Scales of the Asclepius nullcheck (Gauze Pad)
  • Added WolfoQoL nullcheck (minion healing tracking)
  • Added MoreMountains fix (missing mountain shrine card stopping interactables from spawning)

1.0.7

  • Added 4 more base game nullchecks
  • Added 2 MSU nullchecks
  • Added 2 SS2 nullchecks
  • Added Augmentum nullcheck
  • Added Expedition nullcheck
  • Added Ancient Scepter nullcheck

1.0.6

  • Added 2 more Starstorm 2 temporary fixes

1.0.5

  • Fixed Unable to SpawnEffect errors from animation events with no effect assigned (seen in Starstorm 2's Stranger's Hideout)
  • Fixed the inspect panel still throwing in Starstorm 2's shard trading panel (items with no name/description/lore text, or panels missing parts of their setup)
  • Added a SniperClassic fix: its reload menu hook threw when finishing a trade with ZanZan, which also cut off the rest of Starstorm 2's trade message

1.0.4

  • Added 14 more base game fixes, including a multiplayer scene spawning fix and no more enemies spawning inside the Void Fields cell you're charging
  • Added fixes for other mods' errors (MoonstormSharedUtils, Starstorm 2, ShareSuite, ZetAspects). These are temporary and only apply when that mod is installed
  • Silenced some harmless log spam (GenericPool, zero surface area particles, Starstorm 2's TranslucentImage and ShardPoison messages)
  • Each fix now applies on its own, so if one breaks (e.g. after a mod update) the rest still work

1.0.3

  • Added 5 more fixes

1.0.2

  • Added Solus Wing beam nullcheck
  • Added MinionOwnership nullcheck
  • both of these are minor and you'd only see these in console when the run ends abruptly during Solus Wing bossfight

1.0.1

  • Added DroneCommandReceiver.DoTargetInfoSearch nullcheck
  • Added SpecialObjectAttributes.Start nullcheck

1.0.0

  • Release