diff --git a/baystation12.dme b/baystation12.dme
index b029869cf22..30a0fcf2b11 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -1116,6 +1116,7 @@
#include "code\WorkInProgress\Chinsky\ashtray.dm"
#include "code\WorkInProgress\mapload\dmm_suite.dm"
#include "code\WorkInProgress\mapload\reader.dm"
+#include "code\WorkInProgress\Mini\ATM.dm"
#include "code\WorkInProgress\Mini\atmos_control.dm"
#include "code\WorkInProgress\Mini\pipe_heater.dm"
#include "code\WorkInProgress\Mloc\Shortcuts.dm"
diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm
new file mode 100644
index 00000000000..6a6fada2912
--- /dev/null
+++ b/code/WorkInProgress/Mini/ATM.dm
@@ -0,0 +1,83 @@
+/*
+
+TODO:
+give money an actual use (QM stuff, vending machines)
+send money to people (might be worth attaching money to custom database thing for this, instead of being in the ID)
+log transactions
+
+*/
+
+/obj/item/weapon/card/id/var/money = 2000
+
+/obj/machinery/atm
+ name = "NanoTrasen Automatic Teller Machine"
+ desc = "For all your monetary needs!"
+ icon = 'terminals.dmi'
+ icon_state = "atm"
+ use_power = 1
+ idle_power_usage = 10
+
+/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob)
+ if(ishuman(user))
+ var/obj/item/weapon/card/id/user_id = src.scan_user(user)
+ if(istype(I,/obj/item/weapon/spacecash))
+ user_id.money += I:worth
+ del I
+
+/obj/machinery/atm/attack_hand(mob/user as mob)
+ var/obj/item/weapon/card/id/user_id = src.scan_user(user)
+ if(..())
+ return
+ var/dat = ""
+ dat += "
NanoTrasen Automatic Teller Machine
"
+ dat += "For all your monetary needs!
"
+ dat += "Welcome, [user_id.registered_name].
"
+ dat += "You have $[user_id.money] in your account.
"
+ dat += "Withdraw
"
+ user << browse(dat,"window=atm")
+
+/obj/machinery/atm/Topic(var/href, var/href_list)
+ if(href_list["withdraw"] && href_list["id"])
+ var/amount = input("How much would you like to withdraw?", "Amount", 0) in list(1,10,20,50,100,200,500,1000, 0)
+ var/obj/item/weapon/card/id/user_id = locate(href_list["id"])
+ if(amount != 0 && user_id)
+ if(amount <= user_id.money)
+ user_id.money -= amount
+ //hueg switch for giving moneh out
+ switch(amount)
+ if(1)
+ new /obj/item/weapon/spacecash(loc)
+ if(10)
+ new /obj/item/weapon/spacecash/c10(loc)
+ if(20)
+ new /obj/item/weapon/spacecash/c20(loc)
+ if(50)
+ new /obj/item/weapon/spacecash/c50(loc)
+ if(100)
+ new /obj/item/weapon/spacecash/c100(loc)
+ if(200)
+ new /obj/item/weapon/spacecash/c200(loc)
+ if(500)
+ new /obj/item/weapon/spacecash/c500(loc)
+ if(1000)
+ new /obj/item/weapon/spacecash/c1000(loc)
+ else
+ usr << browse("You don't have that much money!
Back","window=atm")
+ return
+ src.attack_hand(usr)
+
+//stolen wholesale and then edited a bit from newscasters, which are awesome and by Agouri
+/obj/machinery/atm/proc/scan_user(mob/living/carbon/human/human_user as mob)
+ if(human_user.wear_id)
+ if(istype(human_user.wear_id, /obj/item/device/pda) )
+ var/obj/item/device/pda/P = human_user.wear_id
+ if(P.id)
+ return P.id
+ else
+ return null
+ else if(istype(human_user.wear_id, /obj/item/weapon/card/id) )
+ return human_user.wear_id
+ else
+ return null
+ else
+ return null
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 0f3e5536624..001d7d7944f 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -139,35 +139,43 @@
w_class = 1.0
var/access = list()
access = access_crate_cash
+ var/worth = 1
/obj/item/weapon/spacecash/c10
icon_state = "spacecash10"
access = access_crate_cash
desc = "It's worth 10 credits."
+ worth = 10
/obj/item/weapon/spacecash/c20
icon_state = "spacecash20"
access = access_crate_cash
desc = "It's worth 20 credits."
+ worth = 20
/obj/item/weapon/spacecash/c50
icon_state = "spacecash50"
access = access_crate_cash
desc = "It's worth 50 credits."
+ worth = 50
/obj/item/weapon/spacecash/c100
icon_state = "spacecash100"
access = access_crate_cash
desc = "It's worth 100 credits."
+ worth = 100
/obj/item/weapon/spacecash/c200
icon_state = "spacecash200"
access = access_crate_cash
desc = "It's worth 200 credits."
+ worth = 200
/obj/item/weapon/spacecash/c500
icon_state = "spacecash500"
access = access_crate_cash
desc = "It's worth 500 credits."
+ worth = 500
/obj/item/weapon/spacecash/c1000
icon_state = "spacecash1000"
access = access_crate_cash
desc = "It's worth 1000 credits."
+ worth = 1000
/obj/item/device/mass_spectrometer
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
diff --git a/icons/obj/terminals.dmi b/icons/obj/terminals.dmi
index 82e55b340ac..19a7712aec0 100644
Binary files a/icons/obj/terminals.dmi and b/icons/obj/terminals.dmi differ