diff --git a/impact-core.d.ts b/impact-core.d.ts
index 4655045b..258c920c 100644
--- a/impact-core.d.ts
+++ b/impact-core.d.ts
@@ -62,7 +62,7 @@ declare global {
   }
 
   namespace Vec3 {
-    function create(otherVec?: Optional<Vec3>): Vec3;
+    function create(otherVec?: Nullable<Vec3>): Vec3;
     function createC(x?: number, y?: number, z?: number): Vec3;
     function assign(v1: Vec3, v2: Vec3): Vec3;
     function assignC(v: Vec3, x?: number, y?: number, z?: number): Vec3;
diff --git a/modules/game.feature.gui.base.text.d.ts b/modules/game.feature.gui.base.text.d.ts
index 5f19ee6a..815e88be 100644
--- a/modules/game.feature.gui.base.text.d.ts
+++ b/modules/game.feature.gui.base.text.d.ts
@@ -24,7 +24,7 @@ declare global {
       font: ig.MultiFont;
       text: sc.TextLike;
       textBlock: ig.TextBlock;
-      beepSound: Optional<ig.Sound>
+      beepSound: Nullable<ig.Sound>
       bleepDelay: number;
       playSound: boolean;
       stopped: boolean;
diff --git a/modules/game.feature.menu.gui.help.help-menu.d.ts b/modules/game.feature.menu.gui.help.help-menu.d.ts
index dc6aea73..a6092db7 100644
--- a/modules/game.feature.menu.gui.help.help-menu.d.ts
+++ b/modules/game.feature.menu.gui.help.help-menu.d.ts
@@ -17,4 +17,4 @@ declare global {
         }
         var HelpScreen: HelpScreenConstructor;
     }
-}
\ No newline at end of file
+}
diff --git a/modules/game.feature.menu.gui.menu-misc.d.ts b/modules/game.feature.menu.gui.menu-misc.d.ts
index 7041416f..6b845bcc 100644
--- a/modules/game.feature.menu.gui.menu-misc.d.ts
+++ b/modules/game.feature.menu.gui.menu-misc.d.ts
@@ -35,7 +35,7 @@ declare global {
     interface PercentNumber extends ig.GuiElementBase {
       number: sc.NumberGui
 
-      setNumber(this: this, number: number, skipTransition?: Optional<boolean>): void
+      setNumber(this: this, number: number, skipTransition?: Nullable<boolean>): void
       setColor(this: this, color: sc.GUI_NUMBER_COLOR): void;
     }
     interface PercentNumberConstructor extends ImpactClass<PercentNumber> {
diff --git a/modules/game.feature.menu.gui.save.save-misc.d.ts b/modules/game.feature.menu.gui.save.save-misc.d.ts
index c6060623..f712d1f7 100644
--- a/modules/game.feature.menu.gui.save.save-misc.d.ts
+++ b/modules/game.feature.menu.gui.save.save-misc.d.ts
@@ -46,7 +46,7 @@ declare global {
       hour: sc.NumberGui
       minute: sc.NumberGui
       second: sc.NumberGui
-      millis: Optional<sc.NumberGui>
+      millis: Nullable<sc.NumberGui>
       color: sc.GUI_NUMBER_COLOR
       hideHours: boolean
       drawHourDots: boolean
diff --git a/modules/game.feature.msg.gui.message-box.d.ts b/modules/game.feature.msg.gui.message-box.d.ts
index 1711b3a4..9a409000 100644
--- a/modules/game.feature.msg.gui.message-box.d.ts
+++ b/modules/game.feature.msg.gui.message-box.d.ts
@@ -17,7 +17,7 @@ declare global {
         }
         interface MsgBoxGuiConstructor extends ImpactClass<MsgBoxGui> {
             new(maxWidth: number, pointerType: sc.ArrowBoxGui.POINTER,
-                text: ig.LangLabel, speed: ig.TextBlock.SPEED, personEntry: ig.MessageOverlayGui.Entry, beepSound: Optional<ig.Sound>): MsgBoxGui
+                text: ig.LangLabel, speed: ig.TextBlock.SPEED, personEntry: ig.MessageOverlayGui.Entry, beepSound: Nullable<ig.Sound>): MsgBoxGui
         }
         var MsgBoxGui: MsgBoxGuiConstructor
     }
diff --git a/modules/game.feature.new-game.new-game-model.d.ts b/modules/game.feature.new-game.new-game-model.d.ts
index 6b2b71c9..b350f590 100644
--- a/modules/game.feature.new-game.new-game-model.d.ts
+++ b/modules/game.feature.new-game.new-game-model.d.ts
@@ -102,7 +102,7 @@ declare global {
       options: Record<sc.NEW_GAME_OPTIONS.Keys, boolean>;
 
       setActive(this: this, active: boolean): void
-      toggle(this: this, options: sc.NEW_GAME_OPTIONS.Keys, set?: Optional<sc.NEW_GAME_SETS.Keys>): void
+      toggle(this: this, options: sc.NEW_GAME_OPTIONS.Keys, set?: Nullable<sc.NEW_GAME_SETS.Keys>): void
       get(this: this, option: sc.NEW_GAME_OPTIONS.Keys): boolean;
       applyStoreData(this: this, atRhombus: boolean): void;
       getDropRateMultiplier(this: this): number;
diff --git a/modules/game.feature.npc.entities.sc-actor.d.ts b/modules/game.feature.npc.entities.sc-actor.d.ts
index c58f91b1..5bb33095 100644
--- a/modules/game.feature.npc.entities.sc-actor.d.ts
+++ b/modules/game.feature.npc.entities.sc-actor.d.ts
@@ -57,7 +57,7 @@ declare global {
         interface ActorEntity extends ig.ActorEntity {
             soundType: 'default'
             dustType: sc.ACTOR_DUST
-            stepFx: { frames: number[], lastFrame: number, effects: ig.EffectSheet, prevTerrain: Optional<ig.TERRAIN>, prevEffect: Optional<ig.ENTITY.Effect> }
+            stepFx: { frames: number[], lastFrame: number, effects: ig.EffectSheet, prevTerrain: Nullable<ig.TERRAIN>, prevEffect: Nullable<ig.ENTITY.Effect> }
             nav: { path: ig.NavPath, failTimer: number, lastFailCount: number }
             tooHighToFall: boolean
             stepStats: { terrain: ig.TERRAIN, centerTerrain: number }
diff --git a/modules/game.feature.player.player-model.d.ts b/modules/game.feature.player.player-model.d.ts
index 345272d0..c1ff8523 100644
--- a/modules/game.feature.player.player-model.d.ts
+++ b/modules/game.feature.player.player-model.d.ts
@@ -103,7 +103,7 @@ declare global {
         hasOverload: boolean
         hp: number
         core: sc.PlayerModel['core']
-        skills: Optional<boolean>[]
+        skills: Nullable<boolean>[]
         chapter: number
         skillPoints: sc.PlayerModel['skillPoints']
         skillPointsExtra: sc.PlayerModel['skillPointsExtra']
diff --git a/modules/impact.base.actor-entity.d.ts b/modules/impact.base.actor-entity.d.ts
index d7c0f5c7..9fa75c6a 100644
--- a/modules/impact.base.actor-entity.d.ts
+++ b/modules/impact.base.actor-entity.d.ts
@@ -86,7 +86,7 @@ declare global {
       cancelJump(this: this): void;
       setWalkAnims(this: this, config: string | ig.ActorEntity.WalkAnims): void;
       storeWalkAnims(this: this, name: string, config: ig.ActorEntity.WalkAnims): void;
-      doJump(this: this, zVel: number, callbackHeight: number, maxVel: number, accelSpeed: Optional<number>, ignoreSounds: boolean): void
+      doJump(this: this, zVel: number, callbackHeight: number, maxVel: number, accelSpeed: Nullable<number>, ignoreSounds: boolean): void
       doFloatJump(this: this, floatJump: number, jumping: boolean | number, maxVel: number): void
     }
     interface ActorEntityConstructor extends ImpactClass<ActorEntity> {
diff --git a/modules/impact.base.entity.d.ts b/modules/impact.base.entity.d.ts
index 2ba89a7d..69a9824d 100644
--- a/modules/impact.base.entity.d.ts
+++ b/modules/impact.base.entity.d.ts
@@ -39,7 +39,7 @@ declare global {
       mapId: number;
 
       settings: unknown; // an empty object, appears to be unused
-      name?: Optional<string>
+      name?: Nullable<string>
       coll: ig.CollEntry;
       sprites: ig.CubeSprite[];
       entityAttached: ig.Entity.Attachable[];
@@ -96,7 +96,7 @@ declare global {
     }
 
     namespace EntityTools {
-      function getGroundEntity(entity: ig.Entity): Optional<ig.Entity>
+      function getGroundEntity(entity: ig.Entity): Nullable<ig.Entity>
       function isInScreen(entity: ig.Entity, x?: number, y?: number): boolean
     }
 
diff --git a/modules/impact.base.sound.d.ts b/modules/impact.base.sound.d.ts
index 0f062a45..9a522949 100644
--- a/modules/impact.base.sound.d.ts
+++ b/modules/impact.base.sound.d.ts
@@ -132,8 +132,8 @@ declare global {
 
     namespace SoundHelper {
       function playAtEntity(
-        sound: ig.Sound, entity: ig.Entity, isLooped: Optional<boolean>,
-        settings: Optional<SoundPlaySettings>, range?: number, type?: ig.SOUND_RANGE_TYPE): ig.SoundHandle;
+        sound: ig.Sound, entity: ig.Entity, isLooped: Nullable<boolean>,
+        settings: Nullable<SoundPlaySettings>, range?: number, type?: ig.SOUND_RANGE_TYPE): ig.SoundHandle;
     }
     type SoundHandle = ig.SoundHandleWebAudio | ig.SoundHandleDefault
 
diff --git a/modules/impact.feature.bgm.bgm.d.ts b/modules/impact.feature.bgm.bgm.d.ts
index e670aa61..4cbd08b5 100644
--- a/modules/impact.feature.bgm.bgm.d.ts
+++ b/modules/impact.feature.bgm.bgm.d.ts
@@ -31,7 +31,7 @@ declare global {
         defaultTrackTypeStack: string[]
         overloadDefault: boolean
         paused: boolean
-        resumeOnChange: Optional<unknown>
+        resumeOnChange: Nullable<unknown>
       }
     }
 
diff --git a/modules/impact.feature.storage.storage.d.ts b/modules/impact.feature.storage.storage.d.ts
index 75d346f8..4243b632 100644
--- a/modules/impact.feature.storage.storage.d.ts
+++ b/modules/impact.feature.storage.storage.d.ts
@@ -9,9 +9,9 @@ declare global {
         area: ig.LangLabel.Data;
         arena: sc.Arena.Data
         bgm: ig.Bgm.Data
-        cancelButtonText: Optional<ig.LangLabel>
+        cancelButtonText: Nullable<ig.LangLabel>
         commonEvents: { runData: Record<string, { trigger: number }> }
-        currentTask: Optional<ig.LangLabel.Data>
+        currentTask: Nullable<ig.LangLabel.Data>
         drops: sc.MenuModel['dropCounts']
         floor: ig.LangLabel.Data | 'MISSING LABEL';
         forceCombatMode: boolean