diff --git a/twrp-functions.cpp b/twrp-functions.cpp
index 28d0ba5..3200017 100644
--- a/twrp-functions.cpp
+++ b/twrp-functions.cpp
@@ -15,6 +15,7 @@
 #include "common.h"
 #include "data.hpp"
 #include "bootloader.h"
+#include "variables.h"
 
 /*  Checks md5 for a path
     Return values:
@@ -385,4 +386,29 @@
 		system(script_file);
 		ui_print("\nFinished running %s script.\n", display_name);
 	}
+}
+
+void TWFunc::Output_Version(void) {
+	string Path, Command;
+	char version[255];
+
+	Path = DataManager::GetSettingsStoragePath();
+	if (!PartitionManager.Mount_By_Path(Path, false)) {
+		LOGI("Unable to mount '%s' to write version number.\n");
+		return;
+	}
+	Path += "/TWRP/.version";
+	if (Path_Exists(Path)) {
+		Command = "rm -f " + Path;
+		system(Command.c_str());
+	}
+	FILE *fp = fopen(Path.c_str(), "w");
+	if (fp == NULL) {
+		LOGE("Unable to open '%s'.\n", Path.c_str());
+		return;
+	}
+	strcpy(version, TW_VERSION_STR);
+	fwrite(version, sizeof(version[0]), strlen(version) / sizeof(version[0]), fp);
+	fclose(fp);
+	sync();
 }
\ No newline at end of file
