Dawn of Light

The Dark Age of Camelot Server Emulator


A Dark Age of Camelot open source server emulator project written in C# started in 2003 by fans. We have created from scratch a server framework with database, packet and server logic.

The project aims were to create a framework which not only allowed for live-like behaviour but completely custom rulesets.


DOL Server - The server application

DAoC Portal - An application which allows your game client to connect to custom servers.

Featured Servers

Uthgard - Our most successful server focusing on classic DAoC and Realm vs Realm fights in Old Frontiers.

Storm D2 - Our custom flagship server focusing on a Diablo 2 ruleset in the DAoC world.


Latest Updates

Project News, Blogs and Code Commits


User avatar 

(Developer Team)
Posted 1 month ago

SVN Revision 3361 - DataQuest/RewardQuest Finish Icon

Finally I spent some time on looking why we couldn't have the nice "Finish Quest" Icon on DOL.

This Quest-like Icon have a blue aura to tell players that this NPC can give them a reward for a finished quest.

This doesn't work for One-Step Quest... (Obviously the regular Quest Icon can apply there if needed)

This work only for DataQuest and RewardQuest that gives Methods to know when they are finished and who is rewarding (for RewardQuest it's always the QuestGiver...)

This gives a nice feeling when completing multiple quest in the tutorial area (which is a playful area for quest of all types !) it's easy to match the quest rewarder, and maybe this get the feeling that something could be done for mid-step npc !

The patch is short and not really written to support all type of Quest, but "DataQuest"-alike should be the future for implementing quests, and could be improved to give more description on every step (which DataQuest does nicely, but RewardQuest is another story !!)

Here is the Commit Log :

Code: Select all
Update : Improve Quest Icon Handling to allow for the "Quest Finish" Icon displaying over NPC when they allow to finish a quest.
That work for kill finishing step too, so be careful if you target too much NPC on the Last Step of a DataQuest it could spam with Finish Quest Icons over Mob Spots !

Quest Finish Icon Only works for DataQuest and RewardQuest Type, the other quest type don't allow to easily check who is the last step and when it's the last step !

Best way to test this change, build a level 1 character, test the first Tutorial Quest (DataQuest with KillFinish event on sparring guard), then test Tutorial Armory Quest (RewardQuest)

Fix : Missing update from RegionTimerResync

View Post

User avatar 

(Developer Team)
Posted 2 months ago

SVN Revision 3350 - DataQuest search fix

You can now specify a drop chance for itemtemplates that are to be dropped after a search.

Docs from the DataQuest.cs comments:

SearchFinish - Defines a complete quest search area and any associated messages.
Format: SEARCH;Step #;Popup Text;Region ID;X;Y;RADIUS;TIME
TIME = amount of time search takes, in seconds
Ex: SEARCH;2;Search here for the ring;12;5000;77665;500;20
The Text entry can be blank for no popup display. Ex: SEARCH;2;;12;5000;77665;500;20
Multiple search entries can also be created:
SEARCH;2;Search for ring here;12;5000;77665;500;20|SEARCH;3;Search for necklace here;12;8000;74665;500;20

You only need to make entries for each search area, not for every step. Search areas must start with SEARCH
For Search steps, if Searching succeeds the Step is advanced as normal, using StepitemTemplate to give any item to the player.

You can make it so searching does not always succeed by adding a chance to the StepitemTemplate as described below.
SearchFinish uses FinalRewardsItemTemplate to give items to a player and finish the quest.

SearchStart - Similar to above but removes Required Step and adds an item template to give to player on startup
ex: SEARCHSTART;Some_Item_Template;You see some disturbed soil, you might want to search here.;12;5000;77665;500;20

You must assign all SearchStart quests to a mob or object in order for the quest to load and allow refreshes. Any mob or object
will work, and the mob or object will not display any indications that it holds one of these quests.

StepItemTemplates - Any items that need to be given to the player for a step.

Every step can give an item to a player. All steps give an item at the completion of the step except Delivery and DeliveryFinish. If StepItemTemplates are defined for a Delivery step then the item is given at the beginning of the step and accepted by a target to end the step.

For Kill and Search steps, StepItemTemplates can include a drop chance behind the template name.
Ex: |some_template_name;50|

If the item does not drop then the step is not advanced.

If no items are given to a player at any of the steps then this can be null, otherwise it must have values for each step.
Empty values || are ok.

View Post

User avatar 

(Developer Team)
Posted 2 months ago

SVN Revision 3330 - Portal Ceremony

As newest version of Dark Age of Camelot (1.115) features the plain old Portal Ceremony, here is a new GameServerScript to easily handle any kind of teleport Ceremony.

Extend the DOL.GS.Scripts.PortalCeremonyBaseNPC.cs, override the destination attribute, customize the spell effect attribute, override the TeleportTimerCallback method to dynamicly handle the PortalTeleportInterval duration depending on Realm war status. (Or maybe any Quest Pre-requesite...)

This object is used as a simple mob, it will spawn its Disciples when Added to World, you can override the Range at which disciples spawn, as well as the number spawned and the NPCTemplateID used to dress them !

The speed at which spells effects are casted is 1/16th of the total PortalTeleportInterval, you can display different spell effect near the end of the interval to display some kind of "countdown" to players.

This class can also spawn an object with custom model id at the foot of the ceremony master, this has not been tested and object size isn't customizable (Maybe in a future update !)

You can know handle any kind of Teleport Ceremony Easily !

View Post

User avatar 

(Developer Team)
Posted 1 year ago

SVN Revision 3239 - Charm SpellHandler

Updated Charm spell

Added : Enum for "amnesia chance" used to check mobs type, set them to the previous expected values for each type (so it's backward compatible with existing databases)
Added : charm type for Reptile (recent Hunter changes)
Changed : Shorts checks area using declared variables into direct casted member call insides statements. (memory matters ?)
Changed : Most of target basics check (is expected class, is not null, is alive, is not controlled) above the resists area or other game rules (Optimizations)
Changed : Ugly "IF" statement to Drop Down Switch for charmtype vs bodytype checks.
Cleaned : mostly readability, spacing, indent
Added : Serverproperty to enable named check in charm handler.

Forgot in SVN commit description :
Fix : Mob Name color update when releasing pet


This is updates from topic: viewtopic.php?f=59&t=17515&start=15#p149258

View Post

User avatar 

(Developer Team)
Posted 1 year ago

SVN Revision 3238 - DataQuest search support, area changes


Added: Search, SearchFinish, and SearchStart support for Data Quests. See comments for documentation on usage.

Bugfix: Fixed an issue with Region:RemoveArea that would not correctly re-index the zone cache. Changed to use a Dictionary and ensure the area index was unique for each area. This may fix some outstanding issues associated with Realm Abilities adding and removing areas.

Added: /player areas command to show a players current areas. QuestSearchAreas also report associated quest and valid step.

changed /DOLSharp/trunk/GameServer/gameobjects/GameNPC.cs
changed /DOLSharp/trunk/GameServer/world/Instance/Instance.cs
changed /DOLSharp/trunk/GameServer/quests/QuestsMgr/Utility/QuestSearchArea.cs
changed /DOLSharp/trunk/GameServer/commands/gmcommands/Player.cs
changed /DOLSharp/trunk/GameServer/commands/playercommands/QuestCommands.cs
changed /DOLSharp/trunk/GameServer/commands/gmcommands/mob.cs
changed /DOLSharp/trunk/GameServer/gameobjects/GameObject.cs
changed /DOLSharp/trunk/GameServer/quests/QuestsMgr/AbstractQuest.cs
changed /DOLSharp/trunk/GameServerScripts/quests/Examples and Tutorials/Search quest/WingsOfTheIsleHibernia.cs
changed /DOLSharp/trunk/GameServer/quests/QuestsMgr/DataQuest.cs
changed /DOLSharp/trunk/GameServer/world/Region.cs

View Post


Host a Game Server

A desktop application which allows you to host your own Dark Age of Camelot server for yourself, friends or the public via LAN or the Internet.


More »

DAoC Portal

Connect to a Server

A desktop client that allows you to view and connect to local, private or public DAoC freeshards.


231 players on 18 servers (520 peak)

Download Client View Servers »


Project Tracker

Help improve Dawn of Light

Latest Open Issues

Issue 17195
ToA Waterpotion doesn't work in non-toa Zone Water.
Issue 17187
with the new updated/downgraded game client i got the new NEW frontiers specials! it means i can't enter LoM, Dun Crimthain is in the middle of woods and some more bugs.
Issue 17186
There should be CL - EXP in the Laby because it's a RvR Dungeon!
Issue 17184
Npc Buffs - loosing them after porting into task dungeon isn't livelike, you should port with them still buffed after porting
Issue 17151
the taxidermist merchant in housing doesn't give a window to sell stuff and i need it for thropy pots

Longest Open Issues

Issue 2675
spiritmaster pet menu and pet commands are not working...possibly not implemented yet, having zero luck with any of them
Issue 2649
heretic aoe dmg and snare duration seems very short...maybe 5 seconds instead of 30
Issue 3107
whole hunter beastcraft line is bugged. lvl 30 spell not implemented the charming spells not right, has to be fixed completely i guess :(
Issue 3341
vamp: i dont know how but i can interrupt without range limit with a pulse that never stops even when i sit oO
Issue 3174
I cannot update my Bainshee Epic. The Template is missing according to the master blacksmith