diff --git a/src/SaveObject.tsx b/src/SaveObject.tsx
index 50fa95485..1abfb5e61 100755
--- a/src/SaveObject.tsx
+++ b/src/SaveObject.tsx
@@ -11,7 +11,7 @@ import { loadSpecialServerIps, SpecialServerIps } from "./Server/SpecialServerIp
import { SourceFileFlags } from "./SourceFile/SourceFileFlags";
import { loadStockMarket, StockMarket } from "./StockMarket/StockMarket";
-import { createStatusText } from "./ui/createStatusText";
+import { GameSavedEvents } from "./ui/React/Snackbar";
import { setTimeoutRef } from "./utils/SetTimeoutRef";
import * as ExportBonus from "./ExportBonus";
@@ -79,7 +79,7 @@ class BitburnerSaveObject {
const saveString = this.getSaveString();
save(saveString)
- .then(() => createStatusText("Game saved!"))
+ .then(() => GameSavedEvents.emit())
.catch((err) => console.error(err));
}
diff --git a/src/index.html b/src/index.html
index a66f84005..c39dc38ab 100644
--- a/src/index.html
+++ b/src/index.html
@@ -40,11 +40,6 @@
diff --git a/src/ui/GameRoot.tsx b/src/ui/GameRoot.tsx
index a74225b49..b0410614f 100644
--- a/src/ui/GameRoot.tsx
+++ b/src/ui/GameRoot.tsx
@@ -66,6 +66,7 @@ import { CharacterOverview } from "./React/CharacterOverview";
import { BladeburnerCinematic } from "../Bladeburner/ui/BladeburnerCinematic";
import { workerScripts } from "../Netscript/WorkerScripts";
import { Unclickable } from "../Exploits/Unclickable";
+import { Snackbar } from "./React/Snackbar";
import { enterBitNode } from "../RedPill";
import { Context } from "./Context";
@@ -392,6 +393,7 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme
)}
+
);
diff --git a/src/ui/React/Snackbar.tsx b/src/ui/React/Snackbar.tsx
new file mode 100644
index 000000000..c73e58d23
--- /dev/null
+++ b/src/ui/React/Snackbar.tsx
@@ -0,0 +1,29 @@
+import React, { useState, useEffect } from "react";
+
+import { Snackbar as S } from "@mui/material";
+import { EventEmitter } from "../../utils/EventEmitter";
+import Typography from "@mui/material/Typography";
+import Paper from "@mui/material/Paper";
+
+export const GameSavedEvents = new EventEmitter<[]>();
+
+export function Snackbar(): React.ReactElement {
+ const [open, setOpen] = useState(false);
+
+ useEffect(() => GameSavedEvents.subscribe(() => setOpen(true)));
+ return (
+ setOpen(false)}
+ >
+
+ Game Saved!
+
+
+ );
+}