diff --git a/files/images/cursor.png b/files/images/cursor.png
new file mode 100644
index 00000000..2f19d2d6
Binary files /dev/null and b/files/images/cursor.png differ
diff --git a/meta.xml b/meta.xml
index 6d97cdbd..c3a1fd5f 100644
--- a/meta.xml
+++ b/meta.xml
@@ -55,7 +55,6 @@
-
@@ -90,6 +89,7 @@
+
@@ -113,6 +113,7 @@
+
diff --git a/scripts/client/cursor.js b/scripts/client/cursor.js
new file mode 100644
index 00000000..f1b231fe
--- /dev/null
+++ b/scripts/client/cursor.js
@@ -0,0 +1,40 @@
+// ===========================================================================
+// Asshat Gaming Roleplay
+// https://github.com/VortrexFTW/agrp_main
+// (c) 2022 Asshat Gaming
+// ===========================================================================
+// FILE: cursor.js
+// DESC: Provides cursor functions and usage
+// TYPE: Client (JavaScript)
+// ===========================================================================
+
+let cursorImage = null;
+let cursorImagePath = "files/images/cursor.png";
+let cursorSize = toVector2(16.0, 24.0);
+
+// ===========================================================================
+
+function initCursorScript() {
+ logToConsole(LOG_DEBUG, "[AGRP.Cursor]: Initializing cursor script ...");
+ let cursorStream = openFile(cursorImagePath);
+ if (cursorStream != null) {
+ cursorImage = graphics.loadPNG(cursorStream);
+ cursorStream.close();
+ }
+
+ logToConsole(LOG_INFO, "[AGRP.Cursor]: Cursor script initialized!");
+}
+
+// ===========================================================================
+
+function processMouseCursorRendering() {
+ if (isGameFeatureSupported("mouseCursor")) {
+ return false;
+ }
+
+ if (gui.cursorEnabled) {
+ graphics.drawRectangle(cursorImage, gui.cursorPosition, cursorSize);
+ }
+}
+
+// ===========================================================================
\ No newline at end of file