diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm
index fa56f6ccc1..16ae7ba071 100644
--- a/code/game/objects/items/weapons/id cards/cards.dm
+++ b/code/game/objects/items/weapons/id cards/cards.dm
@@ -107,4 +107,4 @@
uses += T.amount/2 //Gives 5 uses per 10 TC
uses = CEILING(uses, 1) //Ensures no decimal uses nonsense, rounds up to be nice
to_chat(usr, "You add \the [O] to \the [src]. Increasing the uses of \the [src] to [uses].")
- qdel(O)
\ No newline at end of file
+ qdel(O)
diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm
new file mode 100644
index 0000000000..9180b8e45b
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks.dm
@@ -0,0 +1,148 @@
+// This is a defines file for card sprite stacks. If a new card set comes in, this file can just be disabled and a new one made to match the new sprites.
+// Generally, if the icon file is card_xxx.dmi, this filename should be sprite_stacks_xxx.dm
+// Please make sure that only the relevant sprite_stacks_xxx.file is included, if more are made.
+
+/obj/item/weapon/card
+ icon = 'icons/obj/card_new.dmi' // These are redefined here so that changing sprites is as easy as clicking the checkbox.
+ base_icon = 'icons/obj/card_new.dmi'
+
+ // New sprite stacks can be defined here. You could theoretically change icon-states as well but right now this file compiles before station_ids.dm so those wouldn't be affected.
+
+/*
+/obj/item/weapon/card/id/generic
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
+
+// CENTCOM
+/obj/item/weapon/card/id/centcom
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "pips-gold")
+
+/obj/item/weapon/card/id/centcom/vip
+ initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold")
+
+/obj/item/weapon/card/id/centcom/ERT
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "pips-red", "stripe-red")
+
+// GENERIC COMMAND
+/obj/item/weapon/card/id/silver
+ initial_sprite_stack = list("base-stamp-silver", "top-mime", "stamp-n-generic")
+
+/obj/item/weapon/card/id/silver/secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
+
+/obj/item/weapon/card/id/silver/hop
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-white")
+
+// MEDICAL
+/obj/item/weapon/card/id/medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
+
+/obj/item/weapon/card/id/medical/chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-orange")
+
+/obj/item/weapon/card/id/medical/geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-purple")
+
+/obj/item/weapon/card/id/medical/psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-purple")
+
+/obj/item/weapon/card/id/medical/emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-blue")
+
+/obj/item/weapon/card/id/medical/head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "stripe-gold")
+
+/obj/item/weapon/card/id/medical/sar
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n", "pips-medblu")
+
+// SECURITY
+/obj/item/weapon/card/id/security
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
+
+/obj/item/weapon/card/id/security/detective
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "pips-brown")
+
+/obj/item/weapon/card/id/security/warden
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "pips-white")
+
+/obj/item/weapon/card/id/security/head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "stripe-gold")
+
+// ENGINEERING
+/obj/item/weapon/card/id/engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
+
+/obj/item/weapon/card/id/engineering/atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "pips-medblu", "stamp-n")
+
+/obj/item/weapon/card/id/engineering/head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "stripe-gold")
+
+// SCIENCE
+/obj/item/weapon/card/id/science
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
+
+/obj/item/weapon/card/id/science/roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "pips-orange")
+
+/obj/item/weapon/card/id/science/explorer
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n")
+
+/obj/item/weapon/card/id/science/head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "stripe-gold")
+
+/obj/item/weapon/card/id/science/head/pathfinder
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "dept-exploration", "stamp-n", "pips-gold")
+
+// CARGO
+/obj/item/weapon/card/id/cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
+
+/obj/item/weapon/card/id/cargo/miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "pips-purple")
+
+/obj/item/weapon/card/id/cargo/head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-gold")
+
+// CIVLIAN
+/obj/item/weapon/card/id/civilian
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/chaplain
+ initial_sprite_stack = list("base-stamp-silver", "top-dark", "stamp-cross", "pips-white")
+
+/obj/item/weapon/card/id/civilian/internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-brown")
+
+/obj/item/weapon/card/id/civilian/bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-dark")
+
+/obj/item/weapon/card/id/civilian/chef
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-white")
+
+/obj/item/weapon/card/id/civilian/janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-purple")
+
+/obj/item/weapon/card/id/civilian/journalist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/clown
+ initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/mime
+ initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
+
+/obj/item/weapon/card/id/civilian/pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "pips-blue")
+
+/obj/item/weapon/card/id/civilian/head
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "stripe-white")
+
+/obj/item/weapon/card/id/syndicate
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
+
+/obj/item/weapon/card/id/syndicate/officer
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
+*/
diff --git a/code/game/objects/items/weapons/id cards/id_stacks_vr.dm b/code/game/objects/items/weapons/id cards/id_stacks_vr.dm
new file mode 100644
index 0000000000..7627d66cf3
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks_vr.dm
@@ -0,0 +1,216 @@
+/obj/item/weapon/card
+ icon = 'icons/obj/card_new_vr.dmi'
+ base_icon = 'icons/obj/card_new_vr.dmi'
+
+//IDs
+
+/obj/item/weapon/card/id
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
+
+/obj/item/weapon/card/id/generic
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
+
+//Central
+
+/obj/item/weapon/card/id/centcom
+ initial_sprite_stack = list("base-stamp-silver", "top-darkgreen", "stamp-n", "pips-gold", "stripe-gold")
+
+/obj/item/weapon/card/id/centcom/vip
+ initial_sprite_stack = list("base-stamp-gold", "top-darkgreen", "stamp-n", "pips-gold", "stripe-gold")
+
+//ERT
+
+/obj/item/weapon/card/id/centcom/ERT
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-red", "stripe-red")
+
+/obj/item/weapon/card/id/centcom/ERT/medic
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-medblu", "stripe-medblu")
+
+/obj/item/weapon/card/id/centcom/ERT/commander
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
+
+/obj/item/weapon/card/id/centcom/ERT/engineer
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-orange", "stripe-orange")
+
+/obj/item/weapon/card/id/centcom/ERT/janitor
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-purple", "stripe-purple")
+
+//Silver
+
+/obj/item/weapon/card/id/silver
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n")
+
+/obj/item/weapon/card/id/silver/secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
+
+/obj/item/weapon/card/id/silver/hop
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
+
+//Gold
+
+/obj/item/weapon/card/id/gold
+ initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n")
+
+/obj/item/weapon/card/id/gold/captain
+ initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold")
+
+/obj/item/weapon/card/id/gold/captain/spare
+ initial_sprite_stack = list("base-stamp-gold", "top-gold", "stamp-n")
+
+//Medical
+
+/obj/item/weapon/card/id/medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
+
+/obj/item/weapon/card/id/medical/chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange")
+
+/obj/item/weapon/card/id/medical/geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple")
+
+/obj/item/weapon/card/id/medical/psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown")
+
+/obj/item/weapon/card/id/medical/virologist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green")
+
+/obj/item/weapon/card/id/medical/emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue")
+
+/obj/item/weapon/card/id/medical/head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold")
+
+//Security
+
+/obj/item/weapon/card/id/security
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
+
+/obj/item/weapon/card/id/security/detective
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown")
+
+/obj/item/weapon/card/id/security/warden
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white")
+
+/obj/item/weapon/card/id/security/head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold")
+
+//Engineering
+
+/obj/item/weapon/card/id/engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
+
+/obj/item/weapon/card/id/engineering/atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n")
+
+/obj/item/weapon/card/id/engineering/head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold")
+
+//Science
+
+/obj/item/weapon/card/id/science
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
+
+/obj/item/weapon/card/id/science/roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown")
+
+/obj/item/weapon/card/id/science/xenobiologist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange")
+
+/obj/item/weapon/card/id/science/xenobotanist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green")
+
+/obj/item/weapon/card/id/science/head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold")
+
+//Cargo
+
+/obj/item/weapon/card/id/cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
+
+/obj/item/weapon/card/id/cargo/miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple")
+
+/obj/item/weapon/card/id/cargo/head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white")
+
+//Civilian
+
+/obj/item/weapon/card/id/civilian
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/chaplain
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white")
+
+/obj/item/weapon/card/id/civilian/journalist
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red")
+
+/obj/item/weapon/card/id/civilian/pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-pink")
+
+/obj/item/weapon/card/id/civilian/entertainer
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown")
+
+/obj/item/weapon/card/id/civilian/clown
+ initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/mime
+ initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
+
+/obj/item/weapon/card/id/civilian/internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black")
+
+//Service
+
+/obj/item/weapon/card/id/civilian/service
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+
+/obj/item/weapon/card/id/civilian/service/botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen")
+
+/obj/item/weapon/card/id/civilian/service/bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black")
+
+/obj/item/weapon/card/id/civilian/service/chef
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white")
+
+/obj/item/weapon/card/id/civilian/service/janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple")
+
+//Exploration
+
+/obj/item/weapon/card/id/exploration
+ initial_sprite_stack = list("base-stamp", "top-pink", "stamp-n")
+
+/obj/item/weapon/card/id/exploration/fm
+ initial_sprite_stack = list("base-stamp", "top-pink", "stamp-n", "stripe-medblu")
+
+/obj/item/weapon/card/id/exploration/head
+ initial_sprite_stack = list("base-stamp-silver", "top-pink", "stamp-n", "pips-white")
+
+//Talon
+
+/obj/item/weapon/card/id/talon
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette")
+
+/obj/item/weapon/card/id/talon/doctor
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu")
+
+/obj/item/weapon/card/id/talon/engineer
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange")
+
+/obj/item/weapon/card/id/talon/officer
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red")
+
+/obj/item/weapon/card/id/talon/pilot
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple")
+
+/obj/item/weapon/card/id/talon/captain
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold")
+
+//Antags
+
+/obj/item/weapon/card/id/syndicate
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
+
+/obj/item/weapon/card/id/syndicate/officer
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/id cards/station_ids_vr.dm b/code/game/objects/items/weapons/id cards/station_ids_vr.dm
index 756ab3bc9c..3a8f2cae57 100644
--- a/code/game/objects/items/weapons/id cards/station_ids_vr.dm
+++ b/code/game/objects/items/weapons/id cards/station_ids_vr.dm
@@ -1,50 +1,98 @@
+/obj/item/weapon/card/id/event
+ var/configured = 0
+ var/accessset = 0
+ initial_sprite_stack = list()
+ var/list/title_strings = list()
+ var/preset_rank = FALSE
+
+/obj/item/weapon/card/id/event/attack_self(mob/user as mob)
+ if(configured == 1)
+ return ..()
+
+ if(!preset_rank)
+ var/title
+ if(user.client.prefs.player_alt_titles[user.job])
+ title = user.client.prefs.player_alt_titles[user.job]
+ else
+ title = user.job
+ assignment = title
+ user.set_id_info(src)
+ if(user.mind && user.mind.initial_account)
+ associated_account_number = user.mind.initial_account.account_number
+ if(title_strings.len)
+ var/tempname = pick(title_strings)
+ name = tempname + " ([assignment])"
+ else
+ name = user.name + "'s ID card" + " ([assignment])"
+
+ configured = 1
+ to_chat(user, "Card settings set.")
+
+/obj/item/weapon/card/id/event/attackby(obj/item/I as obj, mob/user as mob)
+ if(istype(I, /obj/item/weapon/card/id) && !accessset)
+ var/obj/item/weapon/card/id/O = I
+ access |= O.access
+ to_chat(user, "You copy the access from \the [I] to \the [src].")
+ user.drop_from_inventory(I)
+ qdel(I)
+ accessset = 1
+ ..()
+
+/obj/item/weapon/card/id/event/accessset
+ accessset = 1
+
+
+
/obj/item/weapon/card/id/gold/captain/spare/fakespare
rank = "null"
-/obj/item/weapon/card/id/itg
+/obj/item/weapon/card/id/event/accessset/itg
name = "identification card"
desc = "A small card designating affiliation with the Ironcrest Transport Group."
icon = 'icons/obj/card_vr.dmi'
+ base_icon = 'icons/obj/card_vr.dmi'
icon_state = "itg"
item_state = "itg_id"
+ sprite_stack = list("")
-/obj/item/weapon/card/id/itg/green
+/obj/item/weapon/card/id/event/accessset/itg/green
icon_state = "itg_green"
item_state = "itg_green_id"
-/obj/item/weapon/card/id/itg/red
+/obj/item/weapon/card/id/event/accessset/itg/red
icon_state = "itg_red"
item_state = "itg_red_id"
-/obj/item/weapon/card/id/itg/purple
+/obj/item/weapon/card/id/event/accessset/itg/purple
icon_state = "itg_purple"
item_state = "itg_purple_id"
-/obj/item/weapon/card/id/itg/white
+/obj/item/weapon/card/id/event/accessset/itg/white
icon_state = "itg_white"
item_state = "itg_white_id"
-/obj/item/weapon/card/id/itg/orange
+/obj/item/weapon/card/id/event/accessset/itg/orange
icon_state = "itg_orange"
item_state = "itg_orange_id"
-/obj/item/weapon/card/id/itg/blue
+/obj/item/weapon/card/id/event/accessset/itg/blue
icon_state = "itg_blue"
item_state = "itg_blue_id"
-/obj/item/weapon/card/id/itg/event
+/obj/item/weapon/card/id/event/accessset/itg/crew
name = "\improper ITG Crew ID"
assignment = "Crew"
rank = "Crew"
access = list(777)
+ preset_rank = TRUE
-/obj/item/weapon/card/id/itg/event/pilot
+/obj/item/weapon/card/id/event/accessset/itg/crew/pilot
name = "\improper ITG Pilot's ID"
desc = "An ID card belonging to the Pilot of an ITG vessel. The Pilot's responsibility is primarily to fly the ship. They may also be tasked to assist with cargo movement duties."
assignment = "Pilot"
rank = "Pilot"
-/obj/item/weapon/card/id/itg/event/service
+/obj/item/weapon/card/id/event/accessset/itg/crew/service
name = "\improper ITG Cook's ID"
desc = "An ID card belonging to the Cook of an ITG vessel. The Cook's responsibility is primarily to provide sustinence to the crew and passengers. The Cook answers to the Passenger Liason. In the absence of a Passenger Liason, the Cook is also responsible for tending to passenger related care and duties."
assignment = "Cook"
@@ -52,7 +100,7 @@
icon_state = "itg_green"
item_state = "itg_green_id"
-/obj/item/weapon/card/id/itg/event/security
+/obj/item/weapon/card/id/event/accessset/itg/crew/security
name = "\improper ITG Security's ID"
desc = "An ID card belonging to Security of an ITG vessel. Security's responsibility is primarily to protect the ship, cargo, or facility. They may also be tasked to assist with cargo movement duties and rescue operations. ITG Security is almost exclusively defensive. They should not start fights, but they are very capable of finishing them."
assignment = "Security"
@@ -60,7 +108,7 @@
icon_state = "itg_red"
item_state = "itg_red_id"
-/obj/item/weapon/card/id/itg/event/research
+/obj/item/weapon/card/id/event/accessset/itg/crew/research
name = "\improper ITG Research's ID"
desc = "An ID card belonging to ITG Research staff. ITG Research staff primarily specializes in starship and starship engine design, and overcoming astronomic phenomena."
assignment = "Research"
@@ -68,7 +116,7 @@
icon_state = "itg_purple"
item_state = "itg_purple_id"
-/obj/item/weapon/card/id/itg/event/medical
+/obj/item/weapon/card/id/event/accessset/itg/crew/medical
name = "\improper ITG Medic's ID"
desc = "An ID card belonging to the Medic of an ITG vessel. The Medic's responsibility is primarily to treat crew and passenger injuries. They may also be tasked with rescue operations."
assignment = "Medic"
@@ -76,7 +124,7 @@
icon_state = "itg_white"
item_state = "itg_white_id"
-/obj/item/weapon/card/id/itg/event/engineer
+/obj/item/weapon/card/id/event/accessset/itg/crew/engineer
name = "\improper ITG Engineer's ID"
desc = "An ID card belonging to the Engineer of an ITG vessel. The Engineer's responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties."
assignment = "Engineer"
@@ -84,7 +132,7 @@
icon_state = "itg_orange"
item_state = "itg_orange_id"
-/obj/item/weapon/card/id/itg/event/passengerliason
+/obj/item/weapon/card/id/event/accessset/itg/crew/passengerliason
name = "\improper ITG Passenger Liason's ID"
desc = "An ID card belonging to the Passenger Liason of an ITG vessel. The Passenger Liason's responsibility is primarily to manage and tend to passenger needs and maintain supplies and facilities for passenger use."
assignment = "Passenger Liason"
@@ -92,7 +140,7 @@
icon_state = "itg_blue"
item_state = "itg_blue_id"
-/obj/item/weapon/card/id/itg/event/captain
+/obj/item/weapon/card/id/event/accessset/itg/crew/captain
name = "\improper ITG Captain's ID"
desc = "An ID card belonging to the Captain of an ITG vessel. The Captain's responsibility is primarily to manage crew to ensure smooth ship operations. Captains often also often pilot the vessel when no dedicated pilot is assigned."
assignment = "Captain"
diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
index 7fe078c775..a073f25b00 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -506,7 +506,7 @@
character_name = list("Ketrai")
/datum/gear/fluff/amaya_id
- path = /obj/item/weapon/card/id/fluff/amaya
+ path = /obj/item/weapon/card/id/event/fluff/amaya
display_name = "Amaya's ID"
ckeywhitelist = list("kiraalitruss")
character_name = list("Amaya Rahl")
@@ -1046,6 +1046,22 @@
ckeywhitelist = list("vitoras")
character_name = list("Roanna Ti'Rox")
+<<<<<<< HEAD
+||||||| parent of a39a93b1b4... Merge pull request #10007 from Heroman3003/idfix3
+/datum/gear/fluff/harmony_id
+ path = /obj/item/weapon/card/id/fluff/harmony
+ display_name = "Harmony's ITG-ID card"
+ ckeywhitelist = list("verysoft")
+ character_name = list("Harmony")
+
+=======
+/datum/gear/fluff/harmony_id
+ path = /obj/item/weapon/card/id/event/fluff/harmony
+ display_name = "Harmony's ITG-ID card"
+ ckeywhitelist = list("verysoft")
+ character_name = list("Harmony")
+
+>>>>>>> a39a93b1b4... Merge pull request #10007 from Heroman3003/idfix3
// W CKEYS
/datum/gear/fluff/sthasha_bracer
path = /obj/item/clothing/accessory/bracer/fluff/xander_sthasha
diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm
index ab589d9671..b2958d0ddf 100644
--- a/code/modules/vore/eating/digest_act_vr.dm
+++ b/code/modules/vore/eating/digest_act_vr.dm
@@ -82,9 +82,13 @@
var/lost_access = list()
/obj/item/weapon/card/id/digest_act(atom/movable/item_storage = null)
- desc = "A partially digested card that has seen better days. The damage appears to be only cosmetic, but the access codes need to be reprogrammed at the HoP office."
- icon = 'icons/obj/card_vr.dmi'
- icon_state = "[initial(icon_state)]_digested"
+ desc = "A partially digested card that has seen better days. The damage appears to be only cosmetic, but the access codes need to be reprogrammed at the HoP office or ID restoration terminal."
+ if(!sprite_stack || !istype(sprite_stack) || !(sprite_stack.len))
+ icon = 'icons/obj/card_vr.dmi'
+ icon_state = "[initial(icon_state)]_digested"
+ else
+ sprite_stack += "digested"
+ update_icon()
if(!(LAZYLEN(lost_access)) && LAZYLEN(access))
lost_access = access //Do not forget what access we lose
access = list() // Then lose it
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 53594ceef5..2d73a64355 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -786,17 +786,29 @@
Under it is written 'Kouri, Amina, Marine Unit 14, Fifth Echelon. Service number NTN-5528928522372'"
//arokha:Amaya Rahl - Custom ID (Medical dept)
-/obj/item/weapon/card/id/fluff/amaya
+/obj/item/weapon/card/id/event/fluff/amaya
+ registered_name = "CONFIGURE ME"
+ assignment = "CONFIGURE ME"
+ icon = 'icons/vore/custom_items_vr.dmi'
+ base_icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "amayarahlwahID"
+ desc = "A primarily blue ID with a holographic 'WAH' etched onto its back. The letters do not obscure anything important on the card. It is shiny and it feels very bumpy."
+ title_strings = list("Amaya Rahl's Wah-identification card", "Amaya Rahl's Wah-ID card")
+
+<<<<<<< HEAD
+||||||| parent of a39a93b1b4... Merge pull request #10007 from Heroman3003/idfix3
+//verysoft:Harmony - Custom ID (pilot)
+/obj/item/weapon/card/id/fluff/harmony
registered_name = "CONFIGURE ME"
assignment = "CONFIGURE ME"
var/configured = 0
var/accessset = 0
- icon = 'icons/vore/custom_items_vr.dmi'
- icon_state = "amayarahlwahID"
- desc = "A primarily blue ID with a holographic 'WAH' etched onto its back. The letters do not obscure anything important on the card. It is shiny and it feels very bumpy."
- var/title_strings = list("Amaya Rahl's Wah-identification card", "Amaya Rahl's Wah-ID card")
+ icon = 'icons/obj/card_vr.dmi'
+ icon_state = "itg"
+ desc = "A small card designating affiliation with the Ironcrest Transport Group. It has a NanoTrasen insignia and a lot of very small print on the back to do with practices and regulations for contractors to use."
+ var/title_strings = list("Harmony's ITG-ID card")
-/obj/item/weapon/card/id/fluff/amaya/attack_self(mob/user as mob)
+/obj/item/weapon/card/id/fluff/harmony/attack_self(mob/user as mob)
if(configured == 1)
return ..()
@@ -814,7 +826,7 @@
configured = 1
to_chat(user, "Card settings set.")
-/obj/item/weapon/card/id/fluff/amaya/attackby(obj/item/I as obj, mob/user as mob)
+/obj/item/weapon/card/id/fluff/harmony/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/card/id) && !accessset)
var/obj/item/weapon/card/id/O = I
access |= O.access
@@ -824,6 +836,18 @@
accessset = 1
..()
+=======
+//verysoft:Harmony - Custom ID (pilot)
+/obj/item/weapon/card/id/event/fluff/harmony
+ registered_name = "CONFIGURE ME"
+ assignment = "CONFIGURE ME"
+ icon = 'icons/obj/card_vr.dmi'
+ base_icon = 'icons/obj/card_vr.dmi'
+ icon_state = "itg"
+ desc = "A small card designating affiliation with the Ironcrest Transport Group. It has a NanoTrasen insignia and a lot of very small print on the back to do with practices and regulations for contractors to use."
+ title_strings = list("Harmony's ITG-ID card")
+
+>>>>>>> a39a93b1b4... Merge pull request #10007 from Heroman3003/idfix3
//General use, Verk felt like sharing.
/obj/item/clothing/glasses/fluff/science_proper
name = "Aesthetic Science Goggles"
diff --git a/icons/obj/card_new_vr.dmi b/icons/obj/card_new_vr.dmi
new file mode 100644
index 0000000000..20e3c85583
Binary files /dev/null and b/icons/obj/card_new_vr.dmi differ
diff --git a/maps/offmap_vr/om_ships/itglight.dmm b/maps/offmap_vr/om_ships/itglight.dmm
index ddada861c6..39c0ff14cb 100644
--- a/maps/offmap_vr/om_ships/itglight.dmm
+++ b/maps/offmap_vr/om_ships/itglight.dmm
@@ -56,7 +56,7 @@
"af" = (
/obj/structure/table/wooden_reinforced,
/obj/item/weapon/paper/dockingcodes,
-/obj/item/weapon/card/id/itg/event/captain,
+/obj/item/weapon/card/id/event/accessset/itg/crew/captain,
/obj/machinery/computer/ship/navigation/telescreen{
pixel_y = -32
},
@@ -88,7 +88,7 @@
/obj/item/clothing/suit/chef/classic,
/obj/item/clothing/head/chefhat,
/obj/item/clothing/suit/storage/solgov/service/army/service,
-/obj/item/weapon/card/id/itg/event/service,
+/obj/item/weapon/card/id/event/accessset/itg/crew/service,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/itglight/metingroom)
"ah" = (
@@ -115,7 +115,7 @@
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
/obj/item/taperoll/engineering,
/obj/item/clothing/suit/storage/solgov/service/army/engineering,
-/obj/item/weapon/card/id/itg/event/engineer,
+/obj/item/weapon/card/id/event/accessset/itg/crew/engineer,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/itglight/metingroom)
"ai" = (
@@ -141,7 +141,7 @@
},
/obj/item/clothing/suit/storage/hooded/wintercoat/medical,
/obj/item/clothing/suit/storage/solgov/service/army/medical,
-/obj/item/weapon/card/id/itg/event/medical,
+/obj/item/weapon/card/id/event/accessset/itg/crew/medical,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/itglight/metingroom)
"aj" = (
@@ -168,7 +168,7 @@
/obj/item/clothing/suit/storage/hooded/wintercoat/security,
/obj/item/clothing/suit/storage/trench,
/obj/item/clothing/suit/storage/solgov/service/army/security,
-/obj/item/weapon/card/id/itg/event/security,
+/obj/item/weapon/card/id/event/accessset/itg/crew/security,
/obj/item/clothing/accessory/holster/hip,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/itglight/metingroom)
@@ -3648,21 +3648,21 @@
},
/obj/item/clothing/suit/space/void/captain,
/obj/item/clothing/head/helmet/space/void/captain,
-/obj/item/weapon/card/id/itg/event,
-/obj/item/weapon/card/id/itg/event,
-/obj/item/weapon/card/id/itg/event,
-/obj/item/weapon/card/id/itg/event,
-/obj/item/weapon/card/id/itg/event,
-/obj/item/weapon/card/id/itg/event/passengerliason,
-/obj/item/weapon/card/id/itg/event/pilot,
-/obj/item/weapon/card/id/itg/event/research,
-/obj/item/weapon/card/id/itg/event/research,
-/obj/item/weapon/card/id/itg/event/security,
-/obj/item/weapon/card/id/itg/event/service,
-/obj/item/weapon/card/id/itg/event/engineer,
-/obj/item/weapon/card/id/itg/event/engineer,
-/obj/item/weapon/card/id/itg/event/medical,
-/obj/item/weapon/card/id/itg/event/medical,
+/obj/item/weapon/card/id/event/accessset/itg/crew,
+/obj/item/weapon/card/id/event/accessset/itg/crew,
+/obj/item/weapon/card/id/event/accessset/itg/crew,
+/obj/item/weapon/card/id/event/accessset/itg/crew,
+/obj/item/weapon/card/id/event/accessset/itg/crew,
+/obj/item/weapon/card/id/event/accessset/itg/crew/passengerliason,
+/obj/item/weapon/card/id/event/accessset/itg/crew/pilot,
+/obj/item/weapon/card/id/event/accessset/itg/crew/research,
+/obj/item/weapon/card/id/event/accessset/itg/crew/research,
+/obj/item/weapon/card/id/event/accessset/itg/crew/security,
+/obj/item/weapon/card/id/event/accessset/itg/crew/service,
+/obj/item/weapon/card/id/event/accessset/itg/crew/engineer,
+/obj/item/weapon/card/id/event/accessset/itg/crew/engineer,
+/obj/item/weapon/card/id/event/accessset/itg/crew/medical,
+/obj/item/weapon/card/id/event/accessset/itg/crew/medical,
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo{
name = "dauntless winter coat"
},