ID:141114
 
Code:
            CSet(mob/M,obj/card/C)
var/obj/BattleController/BC = M.BController
if(BC.Normal == 1)
var/list/FreeMagic = list()
C.originalicon = C.icon
C.originaliconstate = C.icon_state
if(M.Player==1)
for(var/obj/P1MagicSpot/O1 in world)
if(O1)
if(O1.ID==BC.ID)
if(O1.BeingUsed==0)
FreeMagic += O1
PositionChange(C,"Set")
var/obj/P1MagicSpot/input1 = input(M,"Where do you wish to place this card?","Place where?") in FreeMagic
C.loc = locate(input1.x,input1.y,input1.z)
C.clocation = "Field"
csetted=1
C.CSpot = input1
input1.carduse=C
input1.BeingUsed=1
BC.GlobalThingers(21,C)
else
for(var/obj/P2MagicSpot/O1 in world)
if(O1)
if(O1.ID==BC.ID)
if(O1.BeingUsed==0)
FreeMagic += O1
PositionChange(C,"Set")
var/obj/P2MagicSpot/input1 = input(M,"Where do you wish to place this card?","Place where?") in FreeMagic
C.loc = locate(input1.x,input1.y,input1.z)
C.clocation = "Field"
csetted=1
C.CSpot = input1
input1.carduse=C
input1.BeingUsed=1
BC.GlobalThingers(21,C)
CMActivate(obj/card/SDY049/C)
var/mob/M = C.owner
var/obj/BattleController/BC = M.BController
var/list/FreeMagic = list()
var/list/Monsters = list()
var/obj/card/C2
BC.cardinuse=1
for(var/obj/P2CreatureSpot/O in world)
if(O)
if(O.ID==BC.ID)
if(O.BeingUsed)
Monsters += O.carduse
for(var/obj/P1CreatureSpot/O in world)
if(O)
if(O.ID==BC.ID)
if(O.BeingUsed)
Monsters += O.carduse
for(var/obj/P2MagicSpot/O in world)
if(O)
if(O.ID==BC.ID)
if(O.BeingUsed==0)
FreeMagic += O.carduse
for(var/obj/P1MagicSpot/O in world)
if(O)
if(O.ID==BC.ID)
if(O.BeingUsed==0)
FreeMagic += O.carduse


Problem description:
Yugioh - Test.dme:124: unterminated text expression (expecting ])
Yugioh - Test.dme:124:error: end of file: expected )
Yugioh - Test.dme:124:error: end of file: expected }
Cards - Starter - Yugi.dm:4787:error: location of top-most unmatched {
Well, you've got the super-fun error where the compiler can't point you to it. Start excluding files one at a time until the error goes away. When it does, the one you just excluded contains the error. If it's another file with thousands of lines of code (which you definitely don't need but I'm not about to touch the mess it inevitably is going to be), then start using block comments to remove procs until the error goes away (this might cause other errors to crop up, but the undetermined text should take precedence). Narrow it down like that. The error is likely something like:

text = "[something"


where you're missing the ] at the end. But there may be some other error as well.

Of course, if you just remember what you did before you got the error, you can simply check that (and anything else you might've messed with) instead.
In response to Garthor
Actually, it's usually pretty easy to find the location of such errors, as the error leading to the DME indicates the error must've been in the end of one of the DM files (often #included above the DME line the error indicates, when it's valid). He also got an error for one of his DM files which could be helpful.