diff --git a/docs/docs/reference/coreconfiguration.md b/docs/docs/reference/coreconfiguration.md
index 216bf4e..f20d727 100644
--- a/docs/docs/reference/coreconfiguration.md
+++ b/docs/docs/reference/coreconfiguration.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 5
+sidebar_position: 6
---
# `CoreConfiguration`
diff --git a/docs/docs/reference/coretypes.md b/docs/docs/reference/coretypes.md
index 3b18479..639308d 100644
--- a/docs/docs/reference/coretypes.md
+++ b/docs/docs/reference/coretypes.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 4
+sidebar_position: 5
---
# `CoreTypes`
diff --git a/docs/docs/reference/logger.md b/docs/docs/reference/logger.md
index 48fe97a..9f21c62 100644
--- a/docs/docs/reference/logger.md
+++ b/docs/docs/reference/logger.md
@@ -14,6 +14,8 @@ Emitted on any log call, permitted or not. \
**format** is set to `""` when **allowed** is set `false`.
## Functions
+### *CoreLoggerInstance* get_instance(*String* origin)
+Returns a [logger instance](/reference/loggerinstance), which are two fancy words meaning you don't need to pass origin every time you want to log something.
### *bool* is_level_allowed(*CoreTypes.LoggerLevel* level)
Checks if the specified log level is permitted by the current configuration.
### *void* diag(*String* origin, *String* message)
@@ -33,4 +35,4 @@ Using the `await` keyword is required for this function.
:::danger
Please do not set `framework_crash` to `true`. Thank you.
:::
-Handles crashes. Will terminate your game/application immediately.
+Handles crashes. Will terminate your game/application immediately.
\ No newline at end of file
diff --git a/docs/docs/reference/loggerinstance.md b/docs/docs/reference/loggerinstance.md
new file mode 100644
index 0000000..6c4f183
--- /dev/null
+++ b/docs/docs/reference/loggerinstance.md
@@ -0,0 +1,23 @@
+---
+sidebar_position: 3
+---
+
+# `LoggerInstance`
+Passes origin for you.
+
+## Functions
+### *void* diag(*String* message)
+Prints a diagnostic message
+### *void* verb(*String* message)
+Prints a verbose message
+### *void* info(*String* message)
+Prints an informational message
+### *void* warn(*String* message)
+Prints a warning message
+### *void* error(*String* message)
+Prints an error message
+### *void* crash(*String* message)
+:::note[Awaiting required]
+Using the `await` keyword is required for this function.
+:::
+Handles crashes. Will terminate your game/application immediately.
\ No newline at end of file
diff --git a/docs/docs/reference/misc.md b/docs/docs/reference/misc.md
index 0a59c98..771a167 100644
--- a/docs/docs/reference/misc.md
+++ b/docs/docs/reference/misc.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 3
+sidebar_position: 4
---
# `Miscellaneous`
diff --git a/docs/docs/reference/sms.md b/docs/docs/reference/sms.md
index f1f3268..393b7e9 100644
--- a/docs/docs/reference/sms.md
+++ b/docs/docs/reference/sms.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 6
+sidebar_position: 7
---
# `Scene Management System`
diff --git a/src/classes/loggerinstance.gd b/src/classes/loggerinstance.gd
new file mode 100644
index 0000000..7eb8723
--- /dev/null
+++ b/src/classes/loggerinstance.gd
@@ -0,0 +1,16 @@
+extends Node
+class_name CoreLoggerInstance
+
+var logger: CoreBaseModule
+var origin: String
+
+func _init(logger_new: CoreBaseModule, origin_new: String) -> void:
+ logger = logger_new
+ origin = origin_new
+
+func diag(message: String) -> void: logger.diag(origin, message)
+func verb(message: String) -> void: logger.verb(origin, message)
+func info(message: String) -> void: logger.info(origin, message)
+func warn(message: String) -> void: logger.warn(origin, message)
+func error(message: String) -> void: logger.error(origin, message)
+func crash(message: String) -> void: await logger.crash(origin, message)
diff --git a/src/logger.gd b/src/logger.gd
index 148e04d..92e3050 100644
--- a/src/logger.gd
+++ b/src/logger.gd
@@ -193,3 +193,6 @@ func infof(origin: String, message: String) -> void: _log(CoreTypes.LoggerLevel.
func warnf(origin: String, message: String) -> void: _log(CoreTypes.LoggerLevel.WARN, core.basepath.replace("res://", "") + "src/" + origin, message)
func errorf(origin: String, message: String) -> void: _log(CoreTypes.LoggerLevel.ERROR, core.basepath.replace("res://", "") + "src/" + origin, message)
func crashf(origin: String, message: String) -> void: crash(core.basepath.replace("res://", "") + "src/" + origin, message)
+
+# Returns a logger instance
+func get_instance(origin: String) -> CoreLoggerInstance: return CoreLoggerInstance.new(logger, origin)