diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm
index b9c567321c3..069533e18a6 100644
--- a/code/game/machinery/computer/ai_core.dm
+++ b/code/game/machinery/computer/ai_core.dm
@@ -6,7 +6,7 @@
icon_state = "0"
max_integrity = 500
var/state = 0
- var/datum/ai_laws/laws = null
+ var/datum/ai_laws/laws = new /datum/ai_laws/crewsimov()
var/obj/item/circuitboard/aicore/circuit = null
var/obj/item/mmi/brain = null
@@ -63,16 +63,30 @@
if(istype(P, /obj/item/aiModule/freeform))
var/obj/item/aiModule/freeform/M = P
+ if(!M.newFreeFormLaw)
+ to_chat(usr, "No law detected on module, please create one.")
+ return
laws.add_inherent_law(M.newFreeFormLaw)
to_chat(usr, "Added a freeform law.")
return
+ if(istype(P, /obj/item/aiModule/syndicate))
+ var/obj/item/aiModule/syndicate/M = P
+ if(!M.newFreeFormLaw)
+ to_chat(usr, "No law detected on module, please create one.")
+ return
+ laws.add_ion_law(M.newFreeFormLaw)
+ to_chat(usr, "Added a hacked law.")
+ return
+
if(istype(P, /obj/item/aiModule))
var/obj/item/aiModule/M = P
if(!M.laws)
to_chat(usr, "This AI module can not be applied directly to AI cores.")
return
laws = M.laws
+ to_chat(usr, "Added [M.laws.name] laws.")
+ return
if(istype(P, /obj/item/mmi) && !brain)
var/obj/item/mmi/M = P
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index cd31f945770..2d9255ae798 100755
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -188,7 +188,7 @@ AI MODULES
/****************** New Freeform ******************/
/obj/item/aiModule/freeform // Slightly more dynamic freeform module -- TLE
name = "\improper Freeform AI module"
- var/newFreeFormLaw = "freeform"
+ var/newFreeFormLaw = ""
var/lawpos = 15
desc = "A 'freeform' AI module: ''"
origin_tech = "programming=4;materials=4"