ID:2836523
 
(See the best response by Lummox JR.)
I keep on getting this error.


Phoenix.dme:230:error: unterminated text (expecting ")


And when I highlight it it shows me all of this.




// DM Environment file for .dme.
// All manual changes should be made outside the BEGIN_ and END_ blocks.
// New source code should be placed in .dm files: choose File/New --> Code File.

#define EVENT_SCHEDULING_LOG_ERRORS
#define EVENT_SCHEDULING_LOG_WARNINGS

// BEGIN_INTERNALS
// END_INTERNALS

// BEGIN_FILE_DIR
#define FILE_DIR .
// END_FILE_DIR

// BEGIN_PREFERENCES
#define DEBUG
// END_PREFERENCES

// BEGIN_INCLUDE
#include "Abridged.dmf"
#include "Map.dmm"
#include "New Map.dmm"
#include "Code\!!atom_vars.dm"
#include "Code\Aliens.dm"
#include "Code\Ascension.dm"
#include "Code\Attack.dm"
#include "Code\Clickinz.dm"
#include "Code\Contacts.dm"
#include "Code\Cooking.dm"
#include "Code\Cybernetics.dm"
#include "Code\DeadZone.dm"
#include "Code\Dragon Balls.dm"
#include "Code\Faction.dm"
#include "Code\Grabbing.dm"
#include "Code\Gravity.dm"
#include "Code\Guide.dm"
#include "Code\Map.dm"
#include "Code\Mating.dm"
#include "Code\Noobs.dm"
#include "Code\NOTES.dm"
#include "Code\Oozaru.dm"
#include "Code\Paid.dm"
#include "Code\Planet Destruction.dm"
#include "Code\Reincarnation.dm"
#include "Code\Rewards.dm"
#include "Code\Shops.dm"
#include "Code\Sims.dm"
#include "Code\Skills.dm"
#include "Code\Space.dm"
#include "Code\Split Forms.dm"
#include "Code\Stat Points.dm"
#include "Code\Stats.dm"
#include "Code\Story.dm"
#include "Code\Tournament.dm"
#include "Code\Train.dm"
#include "Code\turf-edges.dm"
#include "Code\XML.dm"
#include "Code\Years.dm"
#include "Code\Admin\_debugcoms.dm"
#include "Code\Admin\admin.dm"
#include "Code\Admin\adminhelp.dm"
#include "Code\Admin\adminsay.dm"
#include "Code\Admin\alertAdmins.dm"
#include "Code\Admin\ban.dm"
#include "Code\Admin\checkLog.dm"
#include "Code\Admin\createObject.dm"
#include "Code\Admin\editvars2.dm"
#include "Code\Admin\jump.dm"
#include "Code\Admin\observe.dm"
#include "Code\Admin\playsound.dm"
#include "Code\Admin\ranks.dm"
#include "Code\Admin\reward.dm"
#include "Code\Admin\spawnAtom.dm"
#include "Code\Admin\statlag.dm"
#include "Code\Admin\stealthMode.dm"
#include "Code\Admin\ticklag.dm"
#include "Code\Admin\uncategorized.dm"
#include "Code\Admin\verbs.dm"
#include "Code\Admin\warn.dm"
#include "Code\Admin\zCharacter.dm"
#include "Code\AI\npc_ai.dm"
#include "Code\AI\npc_areas.dm"
#include "Code\AI\NPC_Attachments.dm"
#include "Code\AI\obj_ai.dm"
#include "Code\build_system\_buildmain.dm"
#include "Code\build_system\glob_buildlists.dm"
#include "Code\build_system\upgrade.dm"
#include "Code\build_system\browser_system\_browsmain.dm"
#include "Code\build_system\grid_system\_gridmain.dm"
#include "Code\build_system\grid_system\grid.dm"
#include "Code\Client\client.dm"
#include "Code\Client\stylesheet.dm"
#include "Code\custom_abilities\cosmic.dm"
#include "Code\custom_abilities\Custom Abilities.dm"
#include "Code\custom_abilities\dragon.dm"
#include "Code\custom_abilities\shadow_king.dm"
#include "Code\custom_abilities\vampire.dm"
#include "Code\custom_abilities\void_spawn.dm"
#include "Code\custom_abilities\zariun.dm"
#include "Code\Datums\coords.dm"
#include "Code\Datums\mind.dm"
#include "Code\Datums\restricted_number.dm"
#include "Code\Lib\AStar.dm"
#include "Code\Lib\bubblesort.dm"
#include "Code\Lib\FileDialog.dm"
#include "Code\Lib\helper_procs.dm"
#include "Code\Lib\EventHandler\Quicksort\QuickSort.dm"
#include "Code\Lib\Events\__ErrorHandling.dm"
#include "Code\Lib\Events\CommonEvents.dm"
#include "Code\Lib\Events\Event.dm"
#include "Code\Lib\Events\EventScheduler.dm"
#include "Code\Mob\assess.dm"
#include "Code\Mob\bodysize.dm"
#include "Code\Mob\communication.dm"
#include "Code\Mob\death.dm"
#include "Code\Mob\mob.dm"
#include "Code\Mob\movement.dm"
#include "Code\Mob\new_character.dm"
#include "Code\Mob\races.dm"
#include "Code\Mob\spells.dm"
#include "Code\Mob\stat_loop.dm"
#include "Code\Mob\status_sched.dm"
#include "Code\Mob\swimming.dm"
#include "Code\Mob\vars.dm"
#include "Code\Mob\who.dm"
#include "Code\Mob\Inventory\clothes.dm"
#include "Code\Mob\Inventory\consumables.dm"
#include "Code\Mob\Inventory\Inventory.dm"
#include "Code\Mob\Inventory\Technology\armor.dm"
#include "Code\Mob\Inventory\Technology\cloningtanks.dm"
#include "Code\Mob\Inventory\Technology\comm_devices.dm"
#include "Code\Mob\Inventory\Technology\digging.dm"
#include "Code\Mob\Inventory\Technology\drills.dm"
#include "Code\Mob\Inventory\Technology\explosives.dm"
#include "Code\Mob\Inventory\Technology\guns.dm"
#include "Code\Mob\Inventory\Technology\nuke.dm"
#include "Code\Mob\Inventory\Technology\bombs\bomb.dm"
#include "Code\Mob\Inventory\Technology\bombs\detonator.dm"
#include "Code\Mob\Inventory\Technology\bombs\nuke.dm"
#include "Code\Mob\Inventory\Technology\bombs\procs.dm"
#include "Code\Mob\roleplay\_interface.dm"
#include "Code\Mob\skills\!general.dm"
#include "Code\Mob\skills\customization.dm"
#include "Code\Mob\skills\explosion.dm"
#include "Code\Mob\skills\fly.dm"
#include "Code\Mob\skills\focus.dm"
#include "Code\Mob\skills\kaioken.dm"
#include "Code\Mob\skills\limit_breaker.dm"
#include "Code\Mob\skills\pc_old.dm"
#include "Code\Mob\skills\shockwave.dm"
#include "Code\Mob\skills\time_freeze.dm"
#include "Code\Mob\skills\range\!projectiles.dm"
#include "Code\Mob\skills\range\beam.dm"
#include "Code\Mob\skills\range\beam_behavior.dm"
#include "Code\Mob\skills\range\blast.dm"
#include "Code\Mob\skills\range\procs.dm"
#include "Code\Mob\skills\range\beams\dodompa.dm"
#include "Code\Mob\skills\range\beams\final_flash.dm"
#include "Code\Mob\skills\range\beams\galic_gun.dm"
#include "Code\Mob\skills\range\beams\kamehameha.dm"
#include "Code\Mob\skills\range\beams\masenko.dm"
#include "Code\Mob\skills\range\beams\piercer.dm"
#include "Code\Mob\skills\range\beams\ray.dm"
#include "Code\Mob\skills\range\blasts\charge.dm"
#include "Code\Mob\skills\range\blasts\death_ball.dm"
#include "Code\Mob\skills\range\blasts\genki_dama.dm"
#include "Code\Mob\skills\range\blasts\genocide.dm"
#include "Code\Mob\skills\range\blasts\homing_finisher.dm"
#include "Code\Mob\skills\range\blasts\kienzan.dm"
#include "Code\Mob\skills\range\blasts\kikoho.dm"
#include "Code\Mob\skills\range\blasts\makosen.dm"
#include "Code\Mob\skills\range\blasts\sokidan.dm"
#include "Code\Mob\skills\range\blasts\spinblast.dm"
#include "Code\Mob\Training\meditating.dm"
#include "Code\Mob\Training\shadow_spar.dm"
#include "Code\Mob\Training\train_verb.dm"
#include "Code\Obj\atom.dm"
#include "Code\Obj\enlarge.dm"
#include "Code\Obj\obj.dm"
#include "Code\Obj\warper.dm"
#include "Code\Observer\observer.dm"
#include "Code\spam_filter\filter.dm"
#include "Code\spam_filter\interface.dm"
#include "Code\spam_filter\mute.dm"
#include "Code\spam_filter\saveload.dm"
#include "Code\tech_system\_techmain.dm"
#include "Code\tech_system\dummyObj.dm"
#include "Code\tech_system\verbs.dm"
#include "Code\tech_system\objects\drones.dm"
#include "Code\tech_system\objects\resources.dm"
#include "Code\tech_system\objects\slot_machines.dm"
#include "Code\Turf\Turf.dm"
#include "Code\Updates\Updates.dm"
#include "Code\Updates\Version36.dm"
#include "Code\Updates\Version37.dm"
#include "Code\Updates\Version40.dm"
#include "Code\Updates\Version41.dm"
#include "Code\Updates\Version42.dm"
#include "Code\World\area.dm"
#include "Code\World\bug_report.dm"
#include "Code\World\logging.dm"
#include "Code\World\schedulers.dm"
#include "Code\World\topic_calls.dm"
#include "Code\World\world.dm"
#include "Code\World\icon_defs\objs\doors.dm"
#include "Code\World\icon_defs\objs\props\bushes.dm"
#include "Code\World\icon_defs\objs\props\chairs.dm"
#include "Code\World\icon_defs\objs\props\edges.dm"
#include "Code\World\icon_defs\objs\props\heatsource.dm"
#include "Code\World\icon_defs\objs\props\misc.dm"
#include "Code\World\icon_defs\objs\props\plants.dm"
#include "Code\World\icon_defs\objs\props\rocks.dm"
#include "Code\World\icon_defs\objs\props\signs.dm"
#include "Code\World\icon_defs\objs\props\surf.dm"
#include "Code\World\icon_defs\objs\props\tables.dm"
#include "Code\World\icon_defs\objs\props\trees.dm"
#include "Code\World\icon_defs\turfs\terrain\grass.dm"
#include "Code\World\icon_defs\turfs\terrain\ground.dm"
#include "Code\World\icon_defs\turfs\terrain\misc.dm"
#include "Code\World\icon_defs\turfs\terrain\sky.dm"
#include "Code\World\icon_defs\turfs\terrain\stairs.dm"
#include "Code\World\icon_defs\turfs\terrain\tiles.dm"
#include "Code\World\icon_defs\turfs\terrain\water.dm"
#include "Code\World\icon_defs\turfs\upgradeable\roofs.dm"
#include "Code\World\icon_defs\turfs\upgradeable\walls.dm"
#include "Code\World\loadsav\items.dm"
#include "Code\World\loadsav\turfs.dm"
#include "Code\World\loadsav\worldsave.dm"
// END_INCLUDE

I hope that someone more experienced with byond coding can provide more insight.
For an error like this, make sure to highlight what line 230 is. Any who, find the file that is shown on line 230, then look to see if there is a double-quotation that isn't closed.
In response to Meme01
Is there a way to find individual lines then.
You can use the find command in the "edit" tab. However, you'll want to just look through the file that is reference in the DME and check what changes you made.
In response to Zetaprime4537
Double clicking the error SHOULD take you to the line the error is on. You can also have any code file open and go under Options > Show Line Numbers to see line numbers at all times.
In the case of an error in the dme file it's usually caused by the file the error is pointing to having an un-closed quotation somewhere, so check that file once you note what's on line 230 of the dme.
I've moved this into Developer Help since this concerns a programming issue.

As others have said, double-clicking on the error message should jump you to the problematic line. For this particular error, I've found that when the compiler complains about a missing terminating quotation or parenthesis and the problematic line is in your DME, it's possible that you're missing the terminating quote or parenthesis elsewhere in your code. You're missing a quote or parenthesis somewhere!
In response to James
Apparently line 230 is empty...
Best response
So with an issue like this the trick is to think like a compiler.

Where the compiler spits out an error message is where it first realized it had a problem. With something like an unclosed quote or parentheses, the error will tend to happen on the first meaningful line after it began. That's because the compiler is chugging along and suddenly realizes: "Holy crap! This isn't a string anymore! You lied to me!"

When the error points you to the main .dme file, remember that files is just a bunch of #include statements. The previously included file is the last one it was processing when it began the quote. Look at the #include on the line before the error message. Somewhere near the end of that included file is where your unterminated string was.


mob/proc/CheckDME(FILE)
if(isfile(FILE)){FILE = file2text(FILE)}
var left,right, id, temp, pass, ep
world << "Start Checking Files"
for()
left = findtext(FILE,"\"")
right = findtext(FILE,"\"",left+1)
if(!left || !right){break}
id = copytext(FILE,left+1,right)
FILE = copytext(FILE,1,left) + copytext(FILE,right+3)
if(copytext(id,length(id)-2,length(id)+1)==".dm")
world << "Checking [id] \..."
temp = file2text(id)
pass = TRUE
for()
left = findtext(temp,"\"")
right = findtext(temp,"\"",left+1)
if(left && !right){pass=FALSE;ep=left;break}
if(!left || !right){break}
temp = copytext(temp,1,left) + copytext(temp,right+1)
world << (pass==TRUE ? "<tt>PASSED</tt>" : "<tt>FAILED @ [ep] Character</tt>")
world << "Finished Checking Files"

mob/Login()
CheckDME('HelperThing.dme')


Can always try and find it the hard way :D