ACEmulator Monthly Report – December 1, 2018 – January 1, 2019

ACEmulator / ACE:
5 authors have pushed 85 commits to master
312 files have changed
11,064 additions
4,275 deletions
View Pulse

Notable Changes:

  • The emulator now has 100% of the player skills available!
  • Added complete Summoning player skill system!
  • Added full set of Essences. These are currently linking to existing monsters in the game
  • Added support for monsters fighting other monsters
  • Added support for different aggro profiles for mobs
  • Added ACE.Adapter project for supporting Lifestoned json data importing
  • Adding initial reload animation to atlatl combat
  • Upgraded RecipeManager, added Tinkering and Imbues to crafting system
  • Adding house portals / dungeons
  • Added support for mansions
  • Updated food consumables for spellcasting
  • Improved healing other target distances and animations
  • Improved item spell handling for NPKs and monsters
  • Added skill checks for assess person / creature
  • Added support for monsters using multistrike weapons (properly)
  • Removed EdgeSlide property from monsters. Now they will jump down from ledges to chase the player
  • Added complete PKLite system
  • Added config option for PK-only servers
  • Server admins can change the PK status of the server via /modifybool pk_server true|false
  • Added hollow weapons, and unenchantable items
  • Added house guest and storage permissions, open/closed, hook visibility, and boot system
  • Improved monster AI for ranged spellcasting and sending alerts to nearby friends
  • Monsters will now return to their starting positions if they wander too far away from home
  • Added ‘Aura Other’ spells to 16PY-Patches
  • Updated LootGenerationFactory with item updates
  • Improved per-animation attack frame timing for players and monsters
  • Added lifestone protection system
  • Added instant updates to player health bar changes for selected target
  • Adding sticky melee distance to charge attacks
  • Added full PVP damage formulas / calculations for physical combat
  • Improved corpse system, added /corpse, /permit, /consent
  • Improved corpse looting permissions system – now adds player /permits
  • Improved housing system
  • Improved /tele <mapcoords> and minimap click teleporting
  • Added SetMaxVitals to Player on level up
  • Updated LootGenerationFactory for standardized RNG methods
  • Improved resiliency for Command parser
  • Added melee charging attacks
  • Added CreateList to monster inventories
  • Adjusted IsExhausted attack penalty to minimum power/accuracy bar, as per retail
  • Re-adding physics initial update system
  • Omitting spellbook from creature appraisal. This should avoid a lot of the spam with certain decal plugins
  • Added spell component burning system
  • Improved graceful handling for logout and session drops
  • Improved network architecture for WAN connections
  • Improved network security by using CRNG init vectors for the CRC stream ciphers
  • Improved player logout, save, and session drop flows
  • Fixing heritage group skill cost overrides during character creation
  • Performance improvements from profiling
  • Various improvements resulting from excessive load testing
  • Added RNG treasure generation for loot chests
  • Added PlayerManager architecture. This manages both online and offline players, and enables various subsystems to access data for offline players in a consistent manner
  • Integrated Friends and Allegiance system with new PlayerManager
  • Updated DATLoader to use base DatDatabase for loading Highres and Language data
  • Improved DAT loader performance and memory usage


  • Fixed an issue with /telepoi command
  • Fixed PK death message broadcasts
  • Fixed a bug where ServerPackets could be built with too many fragments, exceeding the MTU
  • Fixed vendor prices for stacks. Players no longer get ripped off (as much)
  • Fixed a bug where item buffs could be cast on monster-wielded items
  • Fixed a bug where monsters could wield shield with bow equipped
  • Fixed a bug where monsters could slash with non-slash weapons, and pierce with non-pierce weapons
  • Fixed the elusive monster stuck / falling bug
  • Fixed the elusive null position bug, once and for all
  • Fixed some NPCs not returning to default MotionStance
  • Fixed a bug with InboundMessageManager displaying the wrong opcodes for GameActionType
  • Fixed a bug with some enchantments not being registered properly
  • Fixed a bug where monsters were being incorrectly reported as ‘Killed by misadventure.’
  • Fixed a bug with vendors not sending network updates
  • Fixed a bug where server wasn’t reporting back to ThwargLauncher correctly
  • Fixed corpse looting in vtank
  • Fixed various issues with some objects not spawning properly
  • Fixed a bug where Fellowship XP wasn’t being calculated correctly for some distances
  • Fixed a bug where hooks/storage were not immediately available for player
  • Fixed a walk / run movement speed bug in multiplayer
  • Additional bug fixes for some objects not spawning in indoor environments

ACEmulator Monthly Report – November 1, 2018 – December 1, 2018

ACEmulator / ACE:
7 authors have pushed 28 commits to master
167 files have changed
6,608 additions
1,593 deletions
View Pulse

Notable Changes:

  • Improved design and performance for SequenceManager
  • Added RenderTexture, String and Font to DatLoader.FileTypes
  • Added scrolls to loot profiles
  • Added caching system for scrolls
  • Added stream support to audio export
  • Fixed a long-standing network bug with lost/corrupted packets dropping clients
    • Fixed a bug causing AcknowledgeSequence packets to increment the LastReceivedPacketSequence, causing the Sequence to break and never recover for that Session
    • Fixed a bug causing RequestTransmit packets to be ignored
    • Improved server resiliency against malformed packets
    • Changed the C2S RequestForRetransmit to per-request packet, instead of sequence
    • Added developer network debug commands
    • Added a generational feature to ISAAC development of network layer
    • Adding pre-processor definition NETDIAG + directives to ACE.Common and ACE.Server to help development by preserving troubleshooting tools, without interference with the optimal solution
  • Updated client lib with features useful for third-party apps
    • Added outdoor landscape texture blending system (ImgTex, TexMerge, LandSurf)
    • Updated LandblockStruct to optionally generated texture UV coordinates for landscape textures. Defaults to off for server environments
    • Added animation-only updates to physics engine
  • Added instructions for installing with VS Community Edition
  • Added more RNG treasure generation for chests
  • Improved DatLoader for third-party apps
    • Fixed a bug where Unicode string lengths weren’t being read as compressed
    • Added optional flag for caller to select whether or not to load the cell.dat.
    • Fixed a bug where Animation framecounts were being read as uint instead of int
    • Added more enum flags, as per client definitions
  • Added more DAT fletypes: EnumMapper, StringTable, DIDMapper, DualDIDMapper
  • Fixed an issue with door and chest appraisal with respect to lockpick chances
  • keepOpen option added to DatDatabase FileStream – improves DatLoader performance
  • Added Property dictionary system – reduces CPU needed for handling properties by about 80%
  • Removed ActionQueue.Dequeue architecture, as it was unused. This change reduces the CPU ActionQueues require by half.
  • Make StackSize an int instead of ushort
    • This fixes the housing prices to match retail
  • Changed format of ServerStatus, Total CPU Time to match server runtime
  • Streamline attributes and vitals
  • Cleanup LoadAllLandblocks status output, and improved comments
  • Profiling-based performance improvements:
    • Landblock LoadMeshes summary improved
    • Added thread safety to LScape.get_landblock()
    • Improved WorldObject.ObjectGuid creation
  • Added caching subsystem to EnchantmentManager
  • With these recent changes, 50+ active players have been tested and running smoothly
  • Improved ShadowPart performance
  • Fixed a bug with using certain mana pools
  • Update EmoteManager and WorldObject Generator with fixes for Anniversary event emotes.

Meet Our Newest App, ACViewer

ACViewer is currently a work-in-progress, multipurpose DAT file viewer for Asheron’s Call portal and cell DAT files.

With this tool today, you can view many of the objects contained within those files, including object models, particle effects, textures, images, sound files, and landblocks which include over-world landscape and dungeons.

The above pictures represent only a sample of what you can view with this application right now and there are plans for many more features to come. Eventually moving towards DAT modification and even a full-on WorldBuilder like functionally for new content development!

Click Here to download ACViewer! 

Visit the GitHub website to download this tool and explore Dereth in new ways today! You can also click on the Discord link to the left to keep up with our changes to this new app as well as our other projects. Progress is made nearly every day on all things Asheron’s Call emulation.

Stay tuned for future announcements about our first downloadable releases of ACEmulator server software, in addition to the source code repo downloads!

Happy 19th Anniversary, Asheron’s Call!

November 2nd, 1999 – November 2nd, 2018…

Nearly two years after shutdown, ACEmulator is still going strong, making progress and improving week to week! Today we mark the 19th anniversary of the portals opening to Dereth with a few minor “events” in our emulated worlds.

Make sure you download the latest version of the world database and update your local copy to experience some of the “classic” moments of past anniversaries, but don’t wait too long as these events are time limited!

ACEmulator Monthly Report – October 1, 2018 – November 1, 2018

ACEmulator / ACE:
6 authors have pushed 45 commits to master
250 files have changed
9,998 additions
5,852 deletions
6 issues closed
View Pulse

Notable Changes:

  • Complex quests such as Aerlinthe and Gaerlan’s Citadel are now fully tested and completed
  • Added 2-handed weapons, and cleaving damage system
  • Lugian animation / stance improvements
  • Added fishing
  • Added dispels and pressure plates
  • Improved death messages for PK battles
  • Added all death messages for players dying to monsters
  • Added character titles
  • Added complete set of level 8 player spells
  • Added server support for all level 8 spells
  • Added multistrike weapons
  • Improved dual weapons stat combinations from both weapons
  • Improved weapon swing animation timings for melee combat
  • Added particle emitters and animation to physics system
  • Improved performance of physics entity cache system
  • Added landblock preloading / permaload system
  • DBObj boxing/unboxing performance improvements
  • Improved performance of physics landblock loading / async – 30% faster landblock loading
  • Improved server shutdown for db consistency
  • Improved object decayable system
  • Improved object database persistence system
  • Improved monster animation sync between server and client
  • Improved performance of GfxObjCache
  • Massive refactoring to the movement and animation systems
  • Adjusted use radius for some objects to match retail
  • Refactored EmoteManager to better handle NPCs in busy state
  • Added more emotes to support the quest system
  • VitalHeartbeat performance optimizations
  • Improved player movement when using items (corpses/chests/doors)
  • Improved animation timing when using consumables (food/drink)
  • Improved performance with weenie precaching
  • Improved performance of landblock loading – portal collision -> portal space -> landblock speed improvements


  • Fixed a bug with corpses decaying a Corpse.EmptyDecayTime after they were looted
  • Fixed a bug where items given to NPCs reappeared back in player inventory
  • Fixed a bug where landblocks were loading equipped items as objects owned by the landblock
  • Fixed a possible crash if invalid object added to landblock
  • Fixed a bug with some monsters getting stuck if they wakeup during idle emote
  • Fixed a bug where Olthoi Swarm Eviscerator would spawn a quarter staff in its inventory, and attempt to wield it
  • Fixed a bug where some linkable generators were not being classified correctly, and not spawning all of their objects
  • Fixed a bug where ‘/adminvision on’ would not take effect immediately
  • Fixed a bug where larger monsters were not being detected as within melee range of player
  • Fixed a bug where recipe items could be combined with themselves
  • Fixed a bug where monsters would continually attack players while still materializing at the lifestone
  • Fixed a bug where spell projectiles weren’t triggering the possible critical death messages
  • Fixed a bug where player would switch to Peace mode to open containers
  • Fixed a bug where player would return to an open container for closing
  • Fixed a bug with arbitrary delays for using / rotating towards items (0.5s/1.0s)
  • Fixed a bug where NPCs were running Actions before completing rotation towards player
  • Fixed various bugs with player switching to Peace mode to perform various actions, instead of using the current stance
  • Fixed a bug where level 8 spells had their minimum power set to 350 instead of 400
  • Fixed a bug where level 8 spell effects were too small
  • Fixed a bug where no death message was displayed for death blows from DamageType.Health (harm, drain, life projectiles)
  • Fixed a bug where item enchantments were having their ticks applied twice
  • Fixed a bug where mages would cast spells before rotating completely to target
  • Fixed a bug where players would windup / fizzle if they didn’t have enough mana
  • Fixed a bug where life projectiles were getting the target stats instead of the source stats
  • Fixed various bugs with generators spawning too many objects, RNG selecting the wrong items, and missing various RNG selection formulas
  • Fixed a bug where resisted spells weren’t alerting monsters


ACEmulator Monthly Report – September 1, 2018 – October 1, 2018

ACEmulator / ACE:
7 authors have pushed 49 commits to master
249 files have changed
10,861 additions
4,963 deletions
View Pulse

Notable Changes:

  • Improved landblock multithreading
  • Added more robust logic for animation timing while switching combat stances, for both players and creatures
  • Added randomized stack size variances to mob projectiles, based on WieldedTreasure tables
  • Usage of DateTime/PhysicsTimer cleaned up across the board
  • Improved timing for all monster animation transitions (combat stance, missile launches, spellcasting)
  • Improved monster timing / server animation sync
  • Added randomized variance to monster melee attack delay (0.5-2s)
  • Major refactoring to game code that uses SpellBase and Spell
  • Added complete Void Magic system w/ all spells
  • Added both server and client formulas for determining spell levels
  • Added proper spellcasting wind-up animations based on spell formula scarabs
  • Improved the spellcasting wind-up animations to use the exact animation timings
  • Improved the damage over time system
  • Added Damage Rating and Damage Resistance Rating to all damage formulas (physical and magic combat)
  • Added Dirty Fighting, Sneak Attack, and Recklessness skills to combat
  • Added weapon speed modifiers
  • Added accuracy modifier for missile weapons
  • Added missile launcher Elemental damage modifier
  • Additional chat channels added (admin, advocate, sentinel, fellow, patron, vassals, allegiance)
  • Added proficiency points / character points, and skills increasing through usage
  • Added TreasureWielded randomized armor/clothing for monsters
  • Implemented skill redistribution functionality
  • Added the ability for players to buy houses
  • Added the ability to place and save items on floor/wall/ceiling hooks
  • Added housing storage chests
  • Added house portals
  • Added secure trade system for players


  • Fixed a bug where monsters selected combat maneuvers that didn’t exist in their motion table
  • Fixed a bug where monsters would sometimes walk instead of run, when re-chasing targets
  • Fixed a bug where CreateObject network messages would be re-sent when monsters swapped inventory items
  • Fixed a bug where monsters would start moving while they were still transitioning from sleep->wakeup
  • Fixed a bug where projectiles wouldn’t trigger environment collisions for some objects
  • Fixed a bug where player’s trade status was not evaluated properly when entering combat
  • Fixed a bug that allowed players to pick up containers on the landscape that were being viewed by other players
  • Fixed a bug where picking up an open pack caused it to remain locked and unusable
  • Fixed a bug with player options not persisting on login

ACEmulator Monthly Report – August 1, 2018 – September 1, 2018

ACEmulator / ACE:
9 authors have pushed 85 commits to master
278 files have changed
12,321 additions
8,617 deletions
5 Issues closed
View Pulse

Notable Changes:

  • Added thrown weapons for players and monsters
  • Added atlatls for players and monsters
  • Added monster wielded weapons
  • Implemented monster inventory / weapon switching
  • Monster projectiles are now dodgeable
  • Added pre-MoA skill conversion to wielded item requirements
  • Added enchantments that directly modify vitals / secondary attributes
  • Added weapon offense bonuses
  • Fixed the appraisal fields for ammunition
  • Added DamageMod for missile launchers
  • Adding max broadcast range for some chat emotes (Act)
  • Adding proper object spawning / initial placement system
  • Adding monster combat maneuvers / special attacks
  • Added support for Volley spells
  • Added support for untargeted war spells
  • Added max spell range support for ring spells
  • Updated magic casting range checks to match retail servers / client
  • Added war spell projectiles: rings, walls, and blast spells
  • Improved system for players giving items to other players
  • Refactored PK checks for magic system
  • Added support for linking to portals
  • Added dual wield combat
  • Added weapon swapping between hands
  • Added player stamina usage on melee / missile attack
  • Refactored the death system
  • Improved player exhaustion system. Both players and monsters now receive attack and defense penalties when stamina = 0
  • Added attribute mod to monster damage. Some monsters now deal significantly more damage, so beware!
  • Updated shield effective angle to match retail
  • Updated Life Magic code to properly utilize the DamageHistory for tracking damage through harm/drain/heals
  • Refactored spell resistance to common method for all creatures (players / monsters)
  • Spell level now determined by Scarab instead of PowerLevel, as per retail servers and client
  • Added support for weapon bonuses: Melee Defense, Mana Conversion, Biting Strike, Crushing Blow, Resistance Cleaving, Elemental Damage modifier for casters, and Slayer bonuses


  • Threading improvement for WorldManager
  • ActionChain AddDelaySeconds cleanup
  • Added ShardDbContext caching system
  • Improved /buff Player command with auras, imp, and banes
  • Added /fellowbuff command
  • EnchantmentRegistry improvements
  • Added a system for finding the correct cell when spawning new items
  • Migrate Character tables over to new caching / threading model
  • Shard Biota & Threading Model Rework
  • Added database performance tests
  • Fixing PhysicsDesc bitflags – monsters are now recognized by vtank
  • Improved network resiliency, recovery from socket exceptions
  • Complete rewrite of player visibility / broadcast system
  • Refactored generators
  • Improved SQL writers w/ additional comments
  • Significantly improved GetBiota performance from the shard by using flags to indicate populated collections.
  • Also added Parallel.ForEach support for Shard GetPlayerBiotas.
  • Adding dungeon position adjustments system. This fixes dungeons where cells have been relocated since PY16 (ie. Burial Temple, North Glenden Prison, and Nuhmudira’s Dungeon)
  • Adding physics entity caching system. This provides massive improvements with reduced memory usage, especially over the course of a lifetime for long-running servers.
    Shard schema changed to remove foreign key link between Character and Biota.
  • This also significantly changes the relationship of Session/Player/Character objects.
  • Change from .NET Core 2.0 to .NET Core 2.1. This requires .NET Core 2.1 x64 SDK.
  • Major schema refactoring + changes for World and Shard.
  • New PY16 format required
  • Refactored PhysicsState
  • Added Damage History system to track damage and healing sources for corpse looting rights
  • Fixed a bug with monster transitions between some landblocks
  • Fixed a bug with Admin and Sentinel players in the PK targeting system
  • Fixed a bug where portaling could keep the player at original location
  • Fixed a bug with player not appearing as pink bubbles on login/portal
  • Fixed a bug with monsters running away from players
  • Fixed a bug with AmmoType not being enumerated as Flags
  • Fixed a bug with generators not respawning items
  • Fixed a bug with generators not spawning items in containers
  • Fixed a bug with generators spawning the wrong items
  • Fixed a bug where players/monsters were granted Melee Defense bonus for missile attacks
  • Fixed a bug where player death was removing enchantments on the client only
  • Fixed a bug where a player autoattack could occur after death
  • Fixed a bug where attributes could be debuffed below 10
  • Fixed a bug with casting spells on items wielded by other players and creatures
  • Fixed a bug with MaxVital calculation with vitae

ACEmulator Monthly Report – July 1, 2018 – August 1, 2018

ACEmulator / ACE:
7 authors have pushed 69 commits to master
278 files have changed
12,612 additions
4,134 deletions
3 Issues closed
View Pulse

Notable Changes:

  • Updated physics system to calculate accurate water depth
  • Fixed various bugs in the physics and animation subsystems
  • Fixed a bug with players and monsters sliding along the edge of cliff
  • Added dungeon landblock detection system
  • Improved monster movement: turning, walking, and running speeds from the MotionTable / animation subsystem
  • Improved projectile physics. Projectiles should hit targets much more consistently now
  • Added instant updates to the monster health bars
  • Updated the monster aggro / tolerance system
  • Added TargetManager for server tracking of monster attack targets
  • Added UI Window/Saving
  • Refactoring and improvements to the magic system code
  • Added criticals and bonus damage to War magic, as per the ‘Atonement’ update
  • Added mana stone usage system
  • Fixed various bugs with monsters crossing between landblock and cell boundaries. Monsters should be able to chase the player through dungeons and indoor areas more consistently
  • Added monster movement debug commands
  • Fixed a bug with some dungeons having black screens on portal entry
  • Fixed Enchantment registry duration and redirection of Aura spells
  • Added spell layering to the Enchantment registry
  • Added QuestManager saving and loading to the database
  • Further integration of the EventManager into EmoteManager
  • Enchantments applied to armor affecting armor stats now display correctly
  • Wielded weapon debuffs are now taken into consideration
  • Added magic item persistence tracking
  • Added PortalSending and PortalSummon functionality
  • Allow for non-players casting gateways
  • Improved vital regeneration formulas / ticking
  • Improved healing formulas
  • Added player stance and enchantments to vital regeneration (regeneration/rejuvenation/mana renewal)
  • Added basic stamina usage on evasion / jumping
  • Improved vital regeneration, stamina usage

ACEmulator Monthly Report – June 1, 2018 – July 1, 2018

ACEmulator / ACE:
7 authors have pushed 23 commits to master
156 files changed
7,493 additions
1,658 deletions
1 Issue closed
View Pulse

Notable Changes:

  • Monster movement transitioning to full physics-based movement system
  • Physics system integrated with projectiles
  • Fixed a bug with scenery collisions in some landblocks
  • Added landblock unloading system
  • Improved networking code for multiplayer servers
  • Added player and NPC-activated switches and pressure plates
  • Allegiance system has been added
  • Fellowship system improvements
  • Updated gems to use the latest spellcasting system
  • Added shield combat
  • Fixed a bug giving wielded objects to NPCs
  • Updated friends list for Entity Framework
  • Fixed Undead player characters equipping armor/clothing
  • Fixed specialized skill calculations
  • Updated appraisal system for all objects
  • Added player corpse system
    – Players now drop the appropriate items
  • Added looting permissions for player and monster corpse
  • Added robust configuration system, server settings stored in database
    – Added property for XP/Luminance multiplier
    – Added vitae penalty settings to database configuration
    – Welcome message/MOTD is now configurable from the database.

ACEmulator Monthly Report – May 1, 2018 – June 1, 2018

ACEmulator / ACE:
8 authors have pushed 30 commits to master
131 files changed
6,785 additions
2,227 deletions
3 Issues closed
View Pulse

Notable Changes:

  • Monster AI:
    • Added monster movement. Creatures have awakened and become aware of nearby players, and run towards their attack targets
    • Added monster melee combat. Creatures will now perform their various melee attacks against characters, with appropriate damage calculated
    • Added monster spell casting. Monsters can now utilize their entire arsenal of spells from their spellbook, with appropriate probabilities
    • Added monster ranged combat. Monsters will now perform ranged attacks if they have a bow or crossbow equipped
  • War magic updates: adjustments to bolt, streak, and arc projectiles to closer match the live servers
  • Item enchantment improvements: equipped items cast the appropriate spells on the player
  • Added mana conversion: mana usage is calculated according to caster’s Mana Conversion skill
  • Added magic defense checks for casting harmful spells
  • Fixed routing for in-game messages given by magic and portal spells.
  • Added emotes to Emote Manager:
    • NPCs now accept items according to their emote lists, and will award players with the appropriate quest items in return
    • Implemented On-Use Emotes for NPCs. When interacting with a Quest NPC, they will now respond with actions.
  • Added salvaging!
  • Added lockpicking for locked doors and chests. Debug commands added to automatically unlock items and bypass skill check
  • Added hotspots. Wells and pools revitalize the players, with damaging acid pools
  • Added spell traps
  • Internal database structure improvements
  • SurfaceTexture parser added to DatLoaderAdded
  • Added @addallspells command for dev testing – quickly add every spell in the game to your spellbook

ACEmulator / ACE-World-16PY:
1 author has pushed 3 commits to master
2,934 files have changed
30,839 additions
6,535 deletions
View Pulse

Notable Changes:

  • Added monster-wielded weapons and death treasures

ACEmulator / aclogview:
2 authors have pushed 3 commits to master
10 files have changed
683 additions
597 deletions
View Pulse

Notable Changes:

  • Cleaned up some memory leaks