diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
index 631f0c3e4f..be6850a7f7 100644
--- a/code/modules/asset_cache/asset_list_items.dm
+++ b/code/modules/asset_cache/asset_list_items.dm
@@ -587,3 +587,10 @@
// blended_color = "#2eeb9a"
// pre_asset.Blend(blended_color, ICON_MULTIPLY)
// return pre_asset
+
+/datum/asset/spritesheet/jobs
+ name = "jobs"
+
+/datum/asset/spritesheet/jobs/register()
+ InsertAll("", 'icons/UI_Icons/tgui/jobs.dmi')
+ ..()
diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm
index b799c5e592..ea70227864 100644
--- a/code/modules/mob/dead/observer/orbit.dm
+++ b/code/modules/mob/dead/observer/orbit.dm
@@ -90,6 +90,14 @@
antagonists += list(serialized)
break
+ var/assignment = "no_id"
+
+ var/obj/item/card/id/card = M.get_idcard()
+ if(card)
+ assignment = "[ckey(card.get_job_name())]"
+
+ serialized["assignment"] = assignment
+
if (!was_antagonist)
alive += list(serialized)
else
@@ -107,4 +115,4 @@
/datum/orbit_menu/ui_assets()
. = ..() || list()
. += get_asset_datum(/datum/asset/simple/orbit)
-
+ . += get_asset_datum(/datum/asset/spritesheet/jobs)
diff --git a/icons/UI_Icons/tgui/jobs.dmi b/icons/UI_Icons/tgui/jobs.dmi
new file mode 100644
index 0000000000..207f11afed
Binary files /dev/null and b/icons/UI_Icons/tgui/jobs.dmi differ
diff --git a/tgui/packages/tgui/interfaces/Orbit.js b/tgui/packages/tgui/interfaces/Orbit.js
index 116c849133..8ecdbaf54e 100644
--- a/tgui/packages/tgui/interfaces/Orbit.js
+++ b/tgui/packages/tgui/interfaces/Orbit.js
@@ -1,3 +1,4 @@
+import { classes } from 'common/react';
import { createSearch } from 'common/string';
import { multiline } from 'common/string';
import { resolveAsset } from '../assets';
@@ -62,6 +63,18 @@ const OrbitedButton = (props, context) => {
onClick={() => act("orbit", {
ref: thing.ref,
})}>
+ {thing.assignment && (
+
+
+
+ )}
{thing.name}
{thing.orbiters && (