Happy 4th ACE-iversary!

4 years ago today, with little more than a month of organized network packet capturing and just 16 days prior to the closure of the retail worlds on January 31st, we took the first step to re-opening the portals to Dereth

Since that day, GitHub Insights tells us that, as of 1/15/2021, there have been 4,190 commits by 59 contributors, 18 binary releases, and 208 content releases, all over the course of these past four years.

Yet while those stats are interesting, they fail to express the amount of actual work poured in to this project by easily hundreds of people collaborating in data collecting, parsing, code writing, formula cracking, fervently discoursing, bug crushing, tool building, and ultimately rebuilding content spanning nearly 20 years of game-play.

The following are a couple of videos which attempt to visualize the project:

ACE Development Visualized | 1/15/2017 – 1/15/2021

ACE Content Recreation Visualized | 7/15/2018 – 1/15/2021

There is no easy way to describe the sum total of all of this collaborative effort other than the game play itself, which we believe to be the most complete and accurate way to experience Asheron’s Call available today, but here is an interesting snippet that tries to quantify it in one way:

Important Disclaimer: The preceding stats generated by SCC: https://github.com/boyter/scc These stats do not confer any real world value or exchange of goods and services. All participation has been purely for voluntary, educational and non-commercial purposes only.

We also wish to spotlight those who answered the call by hosting the many worlds we’ve played together again on since retail worlds closed: https://treestats.net/player_counts?servers=All&range=All
Coldeve
New Horizons
Inflicted
Drunkenfell
RIPtide
Levistras
LeafDawn
Potato AC
Winterthaw
Dawnsong
ACENoESCape
GamesDeadArena
Shadowgain
Ragnarok
Terracon
Gloomfell
Living Auberean
asheron4fun
Disciples Of Bael’Zharon
LostWoodsAC
ACPrime
Nightfall
RisingSun
Thistlecrown
as well as all of the private worlds known and unknown alike

We cannot express our gratitude enough to all of those people who have participated in this project over these past four years in helping to preserve, restore, host and continue this game we’ve been enjoying since 1999.

Thank you for your passion, time and energy!

From the beginning, our principle goals have been to provide a completely open sourced emulator with content that accurately reproduced Asheron’s Call as of 1/31/2017, and we’re proud to have achieved so much progress in that goal, and to continue the good work of ultimately seeing those through to completion in the future!

And to that end, we’re pleased to bring to you the 19th binary and 209th content release of ACEmulator:

Latest Server release v1.19.3805 includes the following:

– Added support for newly restored content in latest world database release
– Minor adjustments to several different systems to better emulate some
game world mechanics
– More thread safety/crash prevention code changes

Latest Database release v0.9.209 includes the following:

Newly restored content:
– Crystalline Crag
– Virindi Rescue
– Liberation of Uziz
– Seed of Power
– Raising Grael’s Island
– Mukkir Aspect of Grael (Mukkir Slayer)
– Splitting Grael (High)
– Shadowfire Stone Quest Updates (Shadow Slayer)
– Nexus Crawl (Ned the Clever has returned!)
– Dream Reaver Investigation
– Aerbax’s Prodigal Tumerok
– Fuzzy Bunny Slayer Quest (Seasonal)
– Fallen / Banished / Rare Kill Tasks
– Elemental Kill Task

Adjusted content:
– Update Undead Slayer Quest
– Update Quest Hamud’s Demise
– Adjust Hidden Presents giftboxes (text changes to match retail)
– Tou-Tou Fixes (Text changed to match retail, spawn adjustment)
– Update Gear Crossbows (Added WepSkill to X-bows)
– Update Mace Stamped Spectral Ingot
– Crafting Aqua Vitae now matches retail values
– Crafting Alchemy Gems now matches retail values

Take note that it is important to update both your server binaries/code and world database to at least v1.19.3805 and v0.9.209 to correctly experience newly restored content!

ACEmulator Report: January 2020 – June 2020

ACEmulator / ACE:
11 authors have pushed 503 commits to master
462 files have changed
31,538 additions
11,409 deletions
View Pulse
Changelog

It has been some time since we’ve posted an update. We hope everyone is staying safe and healthy.

Notable Changes:

Updated to .NET Core 3.1
Releases now available!
Docker now available!
Added support for ARM64 (RPI4 4gb+ Ubuntu x64)

The ACE Wiki has been updated to include hosting instructions for windows, linux, and raspberry pi.

Gameplay

  • Fixed issue with character creation skill bonuses
  • Fixed bandits dual wielding bow + melee
  • Fixed issue with SellPrice usage for AlternateCurrency
  • Fixed AlternateCurrency minimum cost
  • Fixed Black Thistle
  • Fixed Antius Blackmoor statue
  • Fixed copper / silver salvage
  • Fixed salvage fail msg
  • Fixed bug with marketplace recall
  • Fixed corpses spawning frozen in mid-air
  • Fixed issue with Quest stamp on pickup
  • Fixed display bug for enchantment messages
  • Fixed burning coals
  • Fixed summon into wall issue
  • Fixed no scrolls dropping when world precaching is enabled
  • Fixed chest reset interval
  • Fixed defense and attack bonuses for dual wielding
  • Fixed some rare cases of invisible player bug
  • Fixed pk logout bug
  • Fixed underclothes getting AL
  • Fixed monsters failing to navigate home
  • Fixed launching projectiles at point-blank range through doors
  • Fixed negative item magic spell resistance check
  • Fixed a bug where fellowship leader drops under abnormal circumstances
  • Fixed spell bar position save issue
  • Fixed casting spells on self-wielded target
  • Fixed missile bug + matron bug
  • Fixed wave spam
  • Fixed writability issue with opening “blank/empty” books
  • Fixed mega shields (scaling issue)
  • Fixed missing feedback when launching projectiles point-blank into environment
  • Fixed lack of Shield AL assignment
  • Fixed CS icon underlay color on initial application
  • Fixed players sometimes invisible after teleport
  • Fixed Defender spell
  • Updated fellowship vital updates to send to clients w/ fellowship window open
  • Updated Epic Slashing Ward
  • Updated healing
  • Updated healing movement fail range
  • Updated resistance checks for hotspots and falling damage
  • Updated Corpse permission conditions
  • Updated no stamina use chance
  • Updated melee/missile repeat cycle to sync more precisely to retail
  • Updated Melee D Bonus for no wield wands from 5% to 10%
  • Updated Lifestone usage to drain half of player’s current stamina
  • Updated crafting messages
  • Updated resist aug handling
  • Updated casting negative item spells on items wielded by target
  • Updated melee weapon tailoring to match the latest GDLE logic
  • Added support for fastbuffing
  • Added support to queue next pickup while previous pickup is in retraction state, as per retail
  • Added jump looting per retail
  • Added check to ensure npks can take falling damage when portal destination is aerial
  • Added check to prevent actions while suicide is in progress
  • Added check to prevent player-initiated dispels while pk timers active
  • Added rare timestamping and counters
  • Added Real-Time Rare chance modifier
  • Added ping to clients at character select (mitigates Thwarglauncher closing the client)
  • Added support for ‘lead missile targets’ character option
  • Added preliminary support for fast missiles
  • Added retail message for Enduring Enchantment
  • Added support for more fellowship spell types
  • Added support for fellowship spells from non-player sources
  • Added support for ‘crafting chance of success dialog’ player option to regular recipes
  • Added support for passive pets
  • Added trinkets
  • Added DefenseStanceMod
  • Added support for taboo table during character creation
  • Added missing swirlies to recall spells
  • Added caster effects to portal tie and lifestone tie
  • Added missing T4 Rares
  • Added dot resistance on appraisal panel
  • Added power bar reset on charge failed
  • Added sticky distance check for melee repeat attacks
  • Added support for cloak proc spells
  • Added equipment ratings for DR / DRR / CD / CDR
  • Added built-in damage bonus for some quest bows
  • Added additional fellowship xp sharing logic from Mirror, Mirror
  • Added AimLow/AimHigh animations for missile launchers
  • Added support for IgnoreShield
  • Added support for armor cleaving
  • Added busy checks to melee / missile
  • Added check to ensure melee target is alive before MoveTo
  • Improved instant vital updates for targeted creature
  • Improved swapping weapons while bow is reloading
  • Improved combat stance swapping
  • Improved loot gen
  • Improved monster sticky melee
  • Improved consistency for NPK falling damage
  • Disabled creating characters with names of creatures in world
  • Removed line of sight check for mob archers
  • Updated crit ratings to work on combat pets
  • Synced skill raise message up to retail
  • Ensured life projectiles take natural resistances into account
  • Ensured pk timer logout stops movement completely
  • Enforce quest timers for Portal.QuestRestriction

Spellcast/Movement

  • Fixed cast tick gap
  • Fixed minor sync issue in TurnToHeading
  • Fixed small movement gap
  • Fixed some spellcast angle issues
  • Fixed a gap in pk casting
  • Fixed global velocity for jump broadcast
  • Fixed combat stance and death gaps during pre-windup turn
  • Fixed some combat state thrashing for food and healing kits
  • Fixed attacking while airborne during pk battles
  • Fixed untargeted spell projectiles hitting scrum drudge
  • Fixed dormant spell projectiles
  • Fixed spell projectile in dormant landblock bug
  • Fixed spell projectiles sometimes jumping above target’s head on collision
  • Fixed target velocity for non-tracking spells
  • Fixed some player movement issues during pk spellcasting
  • Updated casting start pos to match retail
  • Updated LoS tests for recent changes to ProjectileTarget
  • Updated physics rotation on EmoteManager.Turn
  • Updated spell rotation
  • Updated multi-projectile spells to be closer to retail / match client descriptions
  • Updated ring projectile spawn position to match retail
  • Added ‘spellcast_recoil_queue’ server option
  • Improved peturbation formula
  • Improved responsiveness of first turn after cast gesture
  • Improved accuracy of ‘your movement has disrupted spellcasting / healing!’ distance check
  • Improved target tracking for spell projectiles
  • Improved collision detection for projectiles on players
  • Improved spell projectile target height
  • Improved spellcast_max_angle logic
  • Improved pk logout stop movement
  • Improved TurnTo during magic casting to allow for player manual control

Content

  • Fixed gap in admin vision
  • Fixed landblock instances content folder
  • Fixed /import-sql filename munging
  • Updated AwardSkillXP to optionally notify player as appropriate
  • Added support for minimums in AwardLevelProportional*XP
  • Added landblock instances to /clearcache content developer command
  • Added quest support to import-json and import-sql
  • Added landblock instance support to import-sql and import-json
  • Added support for recipes to DeveloperContentCommands
  • Added reguid support for json landblock conversion w/ relative guids
  • Added support for landblock / recipe / quest to export-sql and export-json
  • Added support for KillQuest processing
  • Added /reload-landblock command
  • Added /getinfo command to get basic weenie info
  • Added minor QoL improvements for content dev
  • Improved /createinst command for content dev
  • Improved json landblock export
  • Wired up adapter support for wieldedTreasure.json, region.json and encounters.json

Admin

  • Updated console commands to start with “/” or “@”. Would previously respond with “Invalid Command” if the command started with a “/” or “@”.
  • Updated boot command
  • Added global chat toggling
  • Added /dungeonname command
  • Added /verify-armor-levels command
  • Added /debugdamage support for all creatures
  • Added /debugdamage for SpellProjectile
  • Added /fellow-dist command
  • Added cylinder distance to /dist command
  • Added /removeitemspell command
  • Added ability to exclude specific IPs from max session count
  • Added support for account bans
  • Added server option for real time rares
  • Added server option ‘craft_exact_msg’
  • Added server option to scale hollow damage in pvp battles
  • Added server option for /pkl entry collision check, enabling door skipping glitch from retail
  • Added server option for players to ‘long hold’ doors open for other players, as per retail
  • Added support for PetDevice to /lootgen
  • Added support for magic resist to /debugdamage
  • Disabled account auto promotion when admin account is created via console

Technical

  • Fixed monster stop-and-go bug after sticky
  • Fixed issue with createinst in creating child objects
  • Fixed minor off-by-1 numbers
  • Fixed ethereal issue with DefaultOpen doors
  • Fixed god/ungod failing on SkillAdvancementClass
  • Fixed bug allowing a corrupt or malformed packet to crash the server when the fragment parser tries to read past the end of the data
  • Fixed sidestep clamp
  • Fixed ACE.Server.Network binaryReader.Align() function
  • Fixed read issue with GetContentFolder
  • Fixed issue with Recipe conversions
  • Fixed gap in UpdateQuest emote
  • Fixed EnchantmentManager Heartbeats
  • Fixed ‘require_spell_comps’ for freshly loaded acclient
  • Fixed possible gap for point-blank life projectile damage
  • Fixed pressure plate generators w/ RegenInterval 0
  • Fixed broadcast move to home
  • Fixed monsters sliding around if they have already started a MoveTo before CreateObject is sent
  • Fixed casting self spells while /attackable off
  • Fixed acclient skipping over ethereal animation hooks for known doors that are opened > 96 distance
  • Fixed sound on Switch weenie class
  • Fixed AuditItemSpells for spell sets
  • Fixed AllegianceManager/HouseManager mulit-thread corruption from database callback
  • Fixed jump skill in god mode
  • Fixed cliff slide, contact plane, and landblock transition bugs
  • Fixed missed line for multi-projectile spell targets
  • Fixed issue with VerifyUse
  • Fixed some combat pet maneuvers
  • Fixed colors for PFID_CUSTOM_LSCAPE_R8G8B8 type textures
  • Updated AnimationPartChange DatLoader accessibility for ACViewer clothing
  • Updated CheckUseRequirements for Portals
  • Updated Surge of Affliction + ‘show_dot_messages’ for something more appropriate
  • Updated legacy function for player melee skill
  • Updated coded recipes for trinkets
  • Updated hotspot cycle variance to use standard formula
  • Updated house query
  • Updated verify-armor-levels
  • Updated Corpse messaging
  • Updated LocalSignal emitting
  • Updated MonsterAwareness
  • Updated generators
  • Updated homesick
  • Updated GenerateNewFace
  • Updated CreateDestroyItems to gracefully fail if it can’t find Success/Fail item in DB
  • Updated default values for range and increment/decrement in EmoteManager
  • Updated SpendLuminance to use HeroXP64
  • Updated stance if /pkl is entered from combat mode
  • Updated OnActivate for deep-linked object activation propagation
  • Updated offline purge to clean up invalid allegiance data
  • Updated fix-allegiances command
  • Updated Doors to allow control via Open/Close Me emotes
  • Updated broadcasting of icon underlay changes for all recipe mods
  • Updated Fellowship messaging + better FellowPortalSending handling
  • Added z-bump to scatter gen
  • Added new adapter classes and models
  • Added support for IgnoreMagicResist / Armor on creatures directly
  • Added ‘Quest list is empty’ response to myquests
  • Added Variance to Burden
  • Added MutateBurden curve tables
  • Added MutateFilter, armor burden mod
  • Added sphere radius check when determining distance for mob aggro
  • Added support for more sealed bags of salvage to RecipeManager_New
  • Added handling to prevent server crashes
  • Added support for lockpick mod, fixing lockpick sound broadcast
  • Added support for mansion_min_rank 0
  • Added support for abdomen armor to Monster_Inventory
  • Added support for AiUseMagicDelay, synced up to retail
  • Added support for PowerupTime for monster melee attacks
  • Added support for caster weapons to Monster_Inventory
  • Added function to automatically fix any ‘invisible’ equipped items
  • Added null check to GetScrollWeenie
  • Added non-default server option to broadcast spell projectiles as ethereal to clients
  • Added find_cell_list debugging
  • Added player.IsDead check to Gem use
  • Added WoundedTaunt emoting
  • Added upper cap to max spell range
  • Added additional case for runrate_add_hooks
  • Added ACE.Database.WorldDatabaseWithEntityCache class
  • Added % loot counters that were missing. Changed Counters to Floats
  • Added InqCollisionProfile null check
  • Added preliminary support for PropertyInt.Unique
  • Added handling for multiple attack sequences sent by acclient
  • Added support to clean up house guest lists for deleted players
  • Added more TestNoQuality support in EmoteManager
  • Added multiplier to LumAugItemManaUsage to match client values
  • Added support for SpellFlags.NotIndoor / SpellFlags.NotOutdoor
  • Added time limit to Portal Space
  • Added Support for SpellFlags.IgnoresManaConversion
  • Added/Adjusted some emote handling
  • Added support for inferred %tqm and %tqc in EmoteManager
  • Added NumProjectiles verification
  • Added support for application startup from outside the directory
  • Added HasDungeon criteria to landblock (check if landblock is a dungeon with no traversable overworld)
  • Added more verbose retransmit logging
  • Added database logging
  • Added LootFactory Jewelry Simulator
  • Improved AuditItemSpells
  • Improved logging for scatter threshold z
  • Improved house root guid
  • Improved ShardDatabaseWithCaching Locking
  • Improved ring projectiles spawns for spells with even # of projectiles
  • Improved efficiency for large allegiances
  • Improved startup time and memory consumption
  • Improved the TakeItems message
  • Improved ‘Rolling Ball of Death’ handling
  • Improved Build/Version tracking
  • Improved AppVeyor build pipeline
  • Refactored food
  • Refactored Jewelry
  • Refactored Missile LootFactory
  • Refactored Melee LootFactory
  • Refactored appraisals
  • Switched ACE.Server over to the new ACE.Entity.Models.Weenie model
  • Tied monster aggro distance to VisualAwarenessRange
  • Set AppraisalLongDescDecoration on missile weapons
  • Separated CreateItem from MutateItem in loot generator, wiring up full support for /lootgen
  • Destroy projectiles on collision
  • Do not send Structure in Appraisal reply for TinkeringMaterial CraftTools
  • Disallow [re]entry into world if shutdown is in progress
  • Bumped up Healing_MaxMove for pks a small amount, based on player feedback
  • IsJumping consistency across pks and npks
  • Server broadcast motions back to self client
  • Cleaned up Server.Entity.Spell
  • Verify TimeSync
  • Exposed content folder in containers
  • Converted ShardDatabase/WorldObjects biota from the ACE.Database model to the new ACE.Entity model
  • Prevent create/ci from using specialized weenie types
  • Prevent ninja looting chests
  • Prevent vendor service spam / cast animation desync
  • Prevent monster initial snap forward when they start moving
  • Synced thrown weapons re-appearance time for monsters up to retail
  • Synced movement params (stop completely, distance to object) up between client and server slightly better w/ defaults
  • Synced bouncy housing barriers with server physics
  • Synced critical frequency for existing ice tachis
  • Synced up rotation on MoveToState
  • Synced get_ending_frame with acclient
  • Synced Player_Death network broadcasts up to retail
  • Synced up emotes for scream and newenemy
  • Ensured floating point values are retained for IgnoreMagicArmorScaled RL
  • Ensured pktypes are calling the correct MoveTo function
  • Ensured same PKType for healing other targets, and beneficial spells
  • Ensured gems used directly by player are not resisted
  • Ensured spell projectiles remain inactive if collided on world entry
  • Ensured sync between ace and physics motion state for magic casting
  • Suppress TakeItems output when player has 0 items
  • Use DefaultOpen / DefaultLocked properties from DB for Doors
  • Enforced CheckUseRequirements on portal ties and summons
  • Enabled post-windup turn for pve
  • Normalized some attuned / bonded logic
  • Broadcast windup motions as actions, as per retail
  • Normalized defaults for InqQuestSolves to match other emotes
  • Matched TakeItems stackSize default value up to other emotes
  • Added DDD_InterrogationResponse to check clients connecting for up-to-date dat files and display a warning upon login
  • Added ‘show_dat_warning’ command to display warning to clients upon login.

Wired up automatic database updates

  • Support automatic database patching
  • Support automatic updating of world database to latest release
  • Support automatic re-application of world database customization

ACEmulator Monthly Report – September 1, 2019 – January 1, 2020

ACEmulator / ACE:
12 authors have pushed 298 commits to master
View Pulse
Changelog

Notable Changes:

  • Merged fastcast branch into master: Advanced player movement and spellcasting techniques are now available
  • Added Network improvements
  • Added logging to HousePortal nulls
  • Added magic absorption for missile/magic weapons
  • Added some missing shield cantrips
  • Added support for Overpower and OverpowerResist
  • Added Additional checks for CombatMode
  • Added support for neutral casters and missile launchers to be tailored onto weapons with DamageType
  • Added support for PropertyBool.AffectsAis
  • Added support for PropertyBool.AiImmobile
  • Added support for PropertyBool.OpensAnyLock
  • Added support for PropertyBool.PortalIgnoresPkAttackTimer
  • Added support for monsters with PropertyBool.NonProjectileMagicImmune
  • Added support for SpellSets for Items that don’t level
  • Added support for luminance award on kills
  • Added support for luminance sharing in fellowships
  • Added luminance award message for quest turn-ins
  • Added server option for Aetheria healing over time message color
  • Added support for monster casting untargeted spells (ie. ring spells)
  • Added item give sound local boadcasting to match retail
  • Added item_dispel server config option to fix end of retail bug
  • Added support for Dark Idol recipe DataId mods
  • Added support for purging of deleted characters from database
  • Added support to limit the number of accepted connections per IP Address
  • Added DestinationType.Wield to corpse object selection
  • Added different pickup animations based on source/target height
  • Added /damagehistory developer command
  • Added protection and logging for house basements w/ missing location data
  • Added server option for create_list DestinationType.Wield items dropping to corpse
  • Added T6 rares for two-handed weapons
  • Added defense imbues to effective defense calculations
  • Added valid skills hashset, check valid skills upon entering god mode
  • Added support for WeaponMissileDefense and WeaponMagicDefense
  • Added debug logging for failed player transitions
  • Added some missing calls to allegiance house boot
  • Added preliminary version of pickup busy state handling
  • Added developer commands to test the loot generator
  • Added /resist-info developer command
  • Added player /config command
  • Added /addenc command for content creators to add encounters
  • Added support for RelativeDestination on portals
  • Added support for emote branching with events
  • Added support for Creature.QuestManager
  • Added server option for adjusting quest timers
  • Added support for ‘confirm use of rare gems’ player option
  • Added server option to include viewer name in ‘container already opened’ message
  • Added post-windup range check to spellcasting
  • Added support for ‘FirstEnterWorldDone’ on players
  • Added RecipeManager verifications for source and target usability flags
  • Added lifestone_broadcast_death server option, clamping to local broadcast range
  • Added PetClass commenting to SQLWriter
  • Added missing function for physics @ plateau
  • Added support for creeping mobs
  • Added verify console commands for admins
  • Added LootFactory simulator
  • Added support for ‘no drop on death’ landblocks
  • Added ShardDatabaseWithoutCaching
  • Added support for dual-wielding mobs
  • Added support for EmoteManager.CastSpell untargeted spell projectiles
  • Added more EoR spells to Player_AllowedSpellIDs
  • Added PurgeOrphanedBiotas
  • Added verifications for RecipeManager
  • Added CurrentLandblock checks to Slumlord
  • Added checks for /verify-skill
  • Added IsDead checks for magic casting
  • Added verifications for DamageHistory.CheckInternal()
  • Added fix-biota-emote-delay server console command
  • Added PlayerFactory improvements
  • Added PlayerManager GetOnlineCount() and GetOfflineCount()
  • Added checks for IsDead
  • Added ResistanceMod check to never go below 0
  • Added rotation checks for EmoteType.Move
  • Added verifications for ‘item in trade window’
  • Added transferCap to both srcVital and destVital for life transfer spells
  • Added pcap properties
  • Added ManaConversionMod tweaks
  • Added Minor math optimization for CRC verification
  • Added support for standard and non-standard usage of %tqt and custom %CDtime
  • Improved handling for monster spell.IsResistable
  • Improved handling for attack sequences
  • Improved monster position sync and corpse sync
  • Improved /teledungeon name search
  • Improved multithreaded landblock group ticking (non-physics)
  • Improved accuracy for XP divvy
  • Improved test loot generator commands
  • Improved AI for missile combat mobs
  • Improved RunRate handling for players
  • Improved PK/PKLite top damager detection
  • Improved handling for overages for house payments
  • Improved speed for /import-json all content dev command
  • Improved NaN handling for projectiles
  • Improved monster combat maneuvers table
  • Improved corpse positioning for creeping mobs
  • Improved handling of json weenie metadata
  • Improved usage of body part quadrants for physical attacks
  • Improved /targetloc
  • Improved handling of house permissions
  • Improved magic defense and missile defense bonuses in loot generator
  • Improved spell projectiles
  • Improved raise attribute/vita/skill
  • Improved scope for generator wipe conditions
  • Updated EmoteType.AwardLuminance to use HeroXP64
  • Updated ApproachVendor to track last spent alt-currency better
  • Updated monster spellbook probabilities
  • Updated Killed by misadventure conditions
  • Updated Logging messages
  • Updated test loot generator
  • Updated setups for creature dressup
  • Updated ACE.Adapter to support spawn maps
  • Updated house storage chests to remain open while being viewed (no auto-close timer)
  • Updated EmoteType.DeleteSelf
  • Updated GameEventInscriptionResponse
  • Updated DamageMod enchantments from multiplicative to additive (ie., Eye of the Hunter)
  • Updated spell projectiles to use more spell / weenie data
  • Updated AugmentationDevice to use WeenieErrorWithString
  • Updated House.OnProperty() HasDungeon boot condition
  • Updated /generatordump information
  • Updated Pets and PetDevices for Summoning
  • Updated Enlightenment vitality formula for max health
  • Updated loot generator for missile and casting weapons to better match retail
  • Updated EmoteManager AddDelaySeconds() only when > 0
  • Updated drop rates in loot generator for better alignment to retail
  • Updated Obsidian Chittick spines to do DamageType.Undef as per PY16 data
  • Updated Move emotes to use default WalkRunThreshold
  • Updated DoT ticks to match with retail heartbeats
  • Updated target resistance check to use ItemSpellCraft when casting spells built into wands
  • Updated Clutch of the Miser augmentation to not apply to PvP deaths
  • Updated Lifespan to use RealTime instead of GameTime
  • Updated NetherDotDamageRating to only apply to direct damage
  • Updated Tailoring to not copy UIEffects to the destination item
  • Fixed bug with pickup/merge into a full container
  • Fixed some gaps with nested emote chains and EmoteManager.IsBusy
  • Fixed a bug with material probability
  • Fixed buy issue with AltCurrency Vendors
  • Fixed monster idle emote update sync
  • Fixed some gaps with PK logout timer
  • Fixed a bug where atlatl/thrown weaps were using power instead of accuracy bar
  • Fixed issue with EmoteType.Give handling stackable/nonstackable items
  • Fixed a bug with player missile defense
  • Fixed issue with opening empty hooks
  • Fixed issue with AlternateSetup for certain non-human models
  • Fixed issue with Umbraen Males and Female crown options
  • Fixed Hook Visibility Control in Basements
  • Fixed issue on Hook Appraisal
  • Fixed some gaps for DST
  • Fixed items that proc to cast untargeted spells
  • Fixed CharacterOption enum to match PlayerOption ordering in acclient
  • Fixed a bug where Critical Strike bonus wasn’t applying to life projectiles
  • Fixed EmoteType.AwardLevelProportionalXP when Max64==0
  • Fixed an issue with Sphere.FindPlacementPos
  • Fixed generator respawn retries
  • Fixed boost variance for life transfer spells
  • Fixed mobs casting flame wave
  • Fixed monster special attack fx
  • Fixed caster damage modifier to use appropriate PvP modifier
  • Fixed a bug that occurs when client sends only a cleartext CRC NAK
  • Fixed armor tailoring intermediate kit TargetType
  • Fixed scatter generators for Neftet plateaus
  • Fixed an issue with loot generator creating melee weapons with overcapped damage
  • Fixed client hourglass for applying encapsulated essence while in busy state
  • Fixed some minor issues with AwardSkillXP emotes
  • Fixed a possible system-dependent state crash in EnvCell constructor
  • Fixed ThreadSafeTeleportOnDeath -> SetLifestoneProtection
  • Fixed stance swap state thrashing
  • Fixed 2 tailoring bugs
  • Fixed death items for players < level 35 Fixed monster resleep -> wakeup cycle for combat mode
  • Fixed /buff for life spells
  • Fixed a double message bug for archers
  • Fixed a NullReferenceException with CurrentMovementData.Invalid
  • Fixed a DamageHistory static bug
  • Fixed a NullReferenceException in EnchantmentManagerWithCaching
  • Fixed a possible lockup in physical combat when repeat attacks is disabled
  • Fixed spell IDs for CreateRandomScroll
  • Fixed issues with nulls in EmoteManager.Replace
  • Fixed issues with shield tailoring
  • Fixed issues with CharacterExporter
  • Fixed no-delay emotes to execute immediately
  • Fixed issue with broadcasting incorrect RunRate for overburdened players
  • Removed PKTimer for Bael’Zharon battles
  • Removed non-retail vital regen cantrips
  • Removed some incorrect log / chat messages for SpellComponentsRequired
  • Removed Player.Rotate during looting that wasn’t in retail
  • Removed a bugged rare crystal
  • Removed unused pattern from CryptoSystem for slightly better performance
  • Cleanup ActOnUse for Ammo and move to debug only alert
  • Ensure that Impen spell is present on magical Covenant Armor
  • Backported hotspot accuracy from PR 1991
  • Refactored GetProjectileSpellType
  • Updated /ungod resiliency
  • Adjusted the way SpendCurrency spends currency
  • Re-order operations in GiveObjectToNPC
  • Adjust Split StackSize Checks
  • Sync HouseHooksVisible to root house object
  • Generate Random Faces for CreatureType.Empyrean NPCs
  • Validate int data for GenerateNewFace
  • Rebased SQL scripts, archived previous batch for legacy servers
  • Turned on Guid Recycling
  • Notify Generator of spawn failure for regen retry
  • Ensure level 8 item self spells take precedence over level 8 item other spells
  • Switch ThreadSafeRandom from lock to ThreadLocal
  • Pre-validating EnvCell transitions
  • Setting default CultureInfo to en_US
  • Moved UpdatePlayerPhysics to Player_Tick.cs
  • PlayScript cleanup
  • ThreadSafeRandom cleanup
  • Misc Housing Cleanup
  • Ensuring HealingOverTime does not tick up health for dead creatures
  • Moved ThreadSafeTeleport to WorldManager
  • Handle special case for PKType deaths + Enduring Enchantment + DoTs
  • WorldObject_Weapon / imbue refactoring
  • Minimized DamageHistory.WeakReferences
  • Send updates to Monarch ID over network

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

ACEmulator / ACE:
7 authors have pushed 118 commits to master
143 files have changed
11,779 additions
1,826 deletions
View Pulse
Changelog

Notable Changes:

  • Added content export commands (/export-json, /export-sql) for content developers
  • Added /createinst for content creators to spawn landblock_instances in-game
  • Added several updates from LSD
  • Added OverRobes to clothing drops
  • Added Facility Hub Gem to early exit NPCs
  • Added the ability to create stacks and multiple objects with /create
  • Added trophy drop rate config option
  • Added SpellComponentsRequired config option for
  • Added pk_new_character_grace_period, pk_respite_timer, and pk_server_safe_training_academy config options
  • Added new server configurable property account_login_boots_in_use. If enabled and you log in to the same account twice it will boot the original client and log in on the new client. If disabled you will receive a fail to login message on the new client. Enabled by default retail rule.
  • Added some config.js.example comments
  • Added more detailed landblock tick performance measurements
  • Added OS and vCPU to /serverstatus
  • Added support for Day/Night GeneratorTimeType generators
  • Added support for Pathwarden Salvage for newer items
  • Added warning / lockup prevention for RegenInterval < 0
  • Added some debug messages to GuidManager
  • Added Destroy() for items given to NPCs that are of AiAcceptEverything type
  • Added DamageType.Undef protection / logging
  • Added command to create named object, with specified count
  • Added some random null checks
  • Added SyncLocation() for enter_world() – This fixes a bug where scatter generators were sending the wrong position to the client
  • Added handlers for weapons w/ malformed offhand AttackType data
  • Added log4net.config.example
  • Added log4net.async and support for console colors
  • Added tinkering log
  • Added RestrictionDB to house combat barriers
  • Added versioning and ArmorTypes to Olthoi Armor
  • Added immediate save to items being picked up from player corpses to avoid falling into void if server crashes before next player save
  • Added house barrier protections for PK/PKLite
  • Added handlers for hand/foot armor without damage stats
  • Added IsDead check to falling damage
  • Added support for spell projectile traps
  • Added Risen Princess weenies
  • Added UseCreateItem + UseCreateQuantity support to Gems
  • Added EmoteType.RemoveVitaePenalty
  • Added failed physics transitions to the warning log
  • Added Sedgemail Leather Armor weenies, using PCAP and ac.yotesfan.com data
  • Added Haebrean armor pieces that are set to base AL of Platemail, being of similar material composition
  • Added PortalSummonLoc to Bur Lizk
  • Added elemental hatchets for summoned Undead minions
  • Added support for HomeRadius
  • Added Casting motion back to Vendors that have VendorServices
  • Added IsBusy state while dying
  • Added support for AdminEnvirons
  • Wired up support commands setlbenviron and setglobalenviron
    • setglobalenviron operates exactly as seen in retail worlds, in that it affects all players globally throughout the world
    • setlbenviron localizes effect to landblock and immediate adjacent landblocks for area-based events
  • Updated the PK altar MinimumTimeSincePk from 3 hours to 15 minutes to match end of retail
  • Updated logging with some missing tags.
  • Updated Aetheria and how ProcSpell is displayed for SpellBook
  • Updated [Fellow]PortalSending code to magic retail messaging
  • Updated Hooks to allow them to be accessible by roommates (characters on same account as house owner)
  • Updated TakeItems msg to match retail messaging and support “Take All”
  • Updated some quest weenies related to Hamud’s Demise quest
  • Updated Steel Chest with Clouded Soul scroll
  • Updated Guards for Clutch of Kings quest
  • Updated IOU handling code
  • Updated AttributeMod for finesse weapons
  • Updated salvaging output formula to match retail
  • Updated AddCharacterTitle statements to add missing titles and annotations
  • Updated Vile Scourge, Fist of Massacre, Vein-Thirst Kukri, and Yaja’s Reach for MoA
  • Updated Steel and Covenant Armor
  • Updated Tome of Blood and Bone
  • Updated PreCheckItem to be more specific about inventory/container slots
  • Updated ManaStone objects use message
  • Updated Facility Hub spawn map
  • Updated spell messages to match retail
  • Updated /god command serializer for better type handling
  • Updated drop location for several recall spells to match end of retail
  • Updated several misc Advocate systems
  • Updated Dark Tree Crystal Mine to MinLevel 100
  • Updated Scarlet Red Letters and sentries
  • Updated more logging relating to corpses for history tracking.
  • Updated start-server netcore version
  • Updated PK deaths to only go temporarily NPK from PK battles
  • Updated some properties for Armor Middle Reduction Tool
  • Updated TickOutbound back to parallel
  • Updated WEENIE_MAX wcid limit for custom content creators
  • Updated AuthenticationHandler to boot oldest connection to account when new one connects with valid login/password
  • Fixed / refactored clothing loot generator
  • Fixed the loot generator GetWield() method for magic casters
  • Fixed Aura of Infected Spirit Caress spell category / stacking
  • Fixed issue with Nekodes being created as LightWeapons, should have been Katars
  • Fixed crash with Pickup and Wield
  • Fixed issue with selling 0 value items to NPCs
  • Fixed an issue with thrown goblets
  • Fixed missing PropertyInt 159 on Squalid Leggings
  • Fixed issue CoinValue client desync
  • Fixed broken Kill Task quests
  • Fixed a possible null exception with RestrictionDB
  • Fixed a possible crash with Aetheria
  • Fixed some gaps for swapping weapons after launching a projectile
  • Fixed issue with invisible hooks on relinks (buy/abandon): bool/physicsstate mis-matches
  • Fixed issue with RDB on house buy: missing InstanceIID update
  • Fixed issue with logging into open houses: missing IsOpen check
  • Fixed some teleport issues
  • Fixed some reported issues with the visual display of different layered armor
  • Fixed some minor housing issues
  • Fixed stiletto animations
  • Fixed issue with UnlimitedUse ManaStones
  • Fixed issue with IsDecayable and TimeToRot
  • Fixed data desync issue with BiotaPropertiesSpellBook Probability
  • Fixed issue with encounter overrides not applying to cached value
  • Fixed an issue with Tenacity/Blight
  • Fixed casting gesture for built-in weapon spells
  • Fixed issue with EventIsPKWorld
  • Fixed GetDamageType() for UAC low power attacks
  • Fixed monster location desync after MoveHome()
  • Fixed untrained message for skill temple
  • Fixed some issues with item spells redirecting to unenchantable targets
  • Fixed various vital enchantment calc errors
  • Fixed mana on PathWarden Trinket
  • Fixed landblock monitors
  • Fixed issue with creatures dropping their wieldables to corpses
  • Fixed some bugs with Pickup and Wield
  • Fixed issue with accounts that own monarch-only housing to now allow the other characters to swear allegiance
  • Fixed a possible array out of bounds exception in LootGenerationFactory_Magic.cs that could happen with tier 8
  • Fixed some issues with teleporting

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

ACEmulator / ACE:
9 authors have pushed 132 commits to master
281 files have changed
8,798 additions
4,731 deletions
View Pulse
Changelog

Notable Changes:

  • Updated documentation to latest version of MySQL
  • Upgraded project to .NET Core 2.2.1
  • Added JSON weenie import, and live editing features for content creators
  • Added /import-json all, and /import-sql all commands for content creators
  • Added prevention / debug code for spellbook probability 0
  • Added support for global /filters by message type
  • Improved squelch system
  • Removed some redundant broadcasts
  • Added PK Arenas / PKLite Arenas
  • Added configurable ‘player_save_interval’ seconds config property for server admins
  • Wired up full support for contract system.
  • Added RestrictionDB null prevention
  • Clamped local broadcast range for pklite messages
  • Removed loot gen properties from quest item
  • Added support for RemainingLifespan
  • Added pkl_server admin config option
  • Add forced save to db for items being moved between players to prevent loss if crash occurs before normal save interval.
  • Added support for proper visual display of Layered Armor (Tailoring) and Reduced Armor (Tailoring) as well as future items such as Over-Robes.
  • Added IsBusy checks for recalls / PKLite commands
  • Added universal weapon masteries
  • Added /ungod command
  • Set NonTracking to True for later arc spells
  • Added Curse of Raven Fury spell
  • Ensure players are unattackable while in portal space
  • Removed attribute cantrips from jewelry loot generator
  • Include material type in give item message
  • Updated war/void magic projectile skill damage bonus to match retail
  • Syncing kill task shareable range with radar
  • Capped passup xp display to uint.MaxValue to match client
  • Added Critical Protection Augmentation message
  • Added support for Ebon Rifts multiple damage types
  • Improved database setup instructions in Readme.md
  • Add the four undead mobs for Vissidal from LSD
  • Add new treasure table entry used by Ghastly Priestess and Shambling Adherent
  • Update one of the Vissidal landscape generators to include the undead for spawning near the Temple of Xik Minru
  • Updated number of projectiles for Curse of Raven Fury to match retail pcaps
  • Adjusted drain and damage modifiers to match retail spell description
  • Added optional debug info for RecipeMods
  • Updated mana conversion to better match retail
  • Suicide refactoring
  • Improved calcs / appraisal info for Spirit Thirst
  • Cantrip and weenie updates
  • Temple of Xik Minru portal location update
  • Update Jedetj Eckhart and add more Vissidal region spawn data
  • Correct Dar Rell speech emote formating
  • Adding Surge of Regeneration tick messages
  • Added Medicated Healing Kits to Rare T3 tables, and elixirs to Rare T2 tables
  • Scaling SrcVital to DestVital for life transfer spells
  • Further adjust vendor sell fix to include correct error msg when 0 items are sold as a result of a fail.
  • Added EdgeSlide to Aetheria wisps
  • Improved / refactored enchantment messages
  • Increased spawns on Vissidal Island
  • Adjusting epic cantrip drop rates
  • Added support for HealOverTime enchantments
  • Update quest XP test notification messages
  • Added Spirit Thirst cantrips to LootGenerationFactory
  • Various updates to Housing objects related to assessment
  • Increase guestlist to 128 to match end of retail number
  • Stored Open status of house in different property to allow for future option to use HouseStatus to turn off rent.
  • Added WorldObject info to ActionQueue output
  • Adjusted Aetheria drop rates closer to retail, fixed drop rate mods
  • Updated Creature Combat Skills for MoA
  • Updated all weapon aura spells for MoA
  • Added Aetheria quest
  • Added Aetheria to LootGenerationFactory
  • Refactored LootGenerationFactory magic code
  • Updated Dat SubPalette and TextureMapChanges properties
  • Clean up error on sell to Vendor fail message.
  • Refactored ObjectDescriptionFlags
  • Added multihouse decomissioning system
  • Refactored HouseManager
  • Added house_per_char server config option
  • Added apartment deed location info
  • Improved /delete for admins
  • Updated Aetheria items
  • Add support for a version command response. Gives a basic idea of what version database is running currently and if running in debug/release mode
  • Converted HandleAugsForwardCompatibility -> SetInnateAugs during character creation
  • Added Tether and Core Plating recipes
  • Improved consistency for InventoryLoaded flag
  • Only allow use of Hookers on Hooks
  • Add in creation ip/time and last login ip/time to account creation/login
  • Refactored healing ratings
  • Additional IsBusy checks
  • Add DoNothing ActOnUse to CraftTool
  • Adjust EmoteManager
  • Add Landblock.EmitSignal to support localized object interaction
  • Updated PlacementPosition types
  • Improved handling for leveling up items casting spells
  • Adjusted some debug output
  • Add overridden properties for region encounter generators
  • Allow camp generators to despawn
  • Added data error protection for treasure data in generator profiles
  • Added account-wide house recall / account house permissions
  • Added dungeon landblock counts, and unique connection count to /serverstatus
  • Added ObjMaint v3 – much improved object visibility system, improved/clearer architecture, fixes many bugs
  • Fixed the deadly prismatic dart recipes
  • Fixed some bugs for PK/PKLite
  • Fixed animation bug for unarmed combat – low power, high attack
  • Fixed string buffer overrun / leaked memory in packet logs
  • Fix to allow null EncumberanceVal items to be carried
  • Fixed a bug with some emotes such as wave playing multiple times
  • Fixed a bug when multiple items level up simultaneously
  • Fixed a StackSize 0 bug in WieldedTreasure
  • Fixed Thrungus special attack
  • Fixed a bug with missing ManaRates
  • Fixed a bug with level proportional xp
  • Fixed a bug where Aetheria could be wielded into unopened slots
  • Fixed a bug with Aetheria DoT durations
  • Fixed Black Marrow Keyring Recipes
  • Fixed physical damage on Wave and Aqueous Golems
  • Fixed a weapon swapping client bug
  • Fixed a bug with monster Ranks -> InitLevel
  • Fixed issue with HousePortal permissions, IsOpen saving
  • Fixed a bug where bows and thrown weapons were showing (based on STRENGTH 100) during appraisal
  • Fixed a bug with item auras
  • Fixed issue with some recipe changes and ObjectDescriptionFlags
  • Fixed some bugs for two-handed weapons
  • Fixed a memory leak in the object visibility system
  • Fixed some issues with using certain Hookers that were previously broken
  • Fixed issues with Books on hooks, Chalk Boards now writable for all as expected, all other books readable
  • Fixed some miscellaneous Aetheria issues
  • Fixed a bug where Gharu’ndim and Empyrean caster appraisal wasn’t showing Heritage weapon mastery bonus
  • Fixed an issue with converting books from JSON to SQL
  • Fixed a bug with transferring items from side packs -> main pack @ max burden

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

ACEmulator / ACE:
9 authors have pushed 107 commits to master
99 files have changed
3,795 additions
1,953 deletions
View Pulse
Changelog

Notable Changes:

  • Improved Getting Started instructions in Readme
  • Fixed GetDynamicObjectsByLandblock uint/int problem.
  • Fixed spell IDs for Deception Self 7 / Salvaging Self 7 scrolls
  • Fixed AL on loot-generated clothing
  • Fixed a bug with negative skill #s and proficiency XP
  • Fixed Secure Trade to confirm both parties have enough pack space/burden to accept all items before trade completes
  • Fixed Chest.RegenOnClose issue with generators
  • Fixed weapon tailoring
  • Fixed house dungeon portal landblock detection
  • Fixed a bug with IsBusy check for consumables – vtank no longer consumes too much food / drink!
  • Fixed issues with Stack Split/Merge
  • Fixed a bug with player giving equipped items to NPCs
  • Fixed a bug with dispels only selecting the top layer
  • Fixed a rare concurrency bug in PlayerManager
  • Fixed some issues with chest regen
  • Fixed recipe skill check for pre-MoA skills
  • Fixed house hook items with emotes
  • Fixed issue with finger command not showing correct account for character
  • Fixed a rare bug with damage spikes
  • Fixed an AllegianceUpdate packet parsing bug for TreeStats / Decal
  • Fixed appraisal display for items with built-in defender spells
  • Fixed Naughty Skeleton Kill Task NPC and mob emotes to match quest in DB
  • Fixed concurrency issue in DelayAction
  • Fixed extra pack slot aug
  • Fixed ordering of enchantment masks on login
  • Fixed a bug where summoned creatures would sometimes not spawn
  • Added more logging info for player corpses
  • Make sure corpses are saved if created indoors (dungeons)
  • Added ResetSkill and Adjusted EmoteManager to use it for UntrainSkill
  • Adjusted Decay for Corpses to ensure Inventory is loaded before decay is allowed to process
  • Added percentages for jewelry slot drops
  • Added Left-hand Tether and removal wcid and stub recipe for RecipeManager_New format
  • Added Asheron’s Island entry portal in Eastham and Asheron’s Castle spawns
  • Added Core Plating Integrator and stub recipe for RecipeManager_New format
  • Updated ClothingBase of many Isparian weapons
  • Updated TsysMutationData of 2 handed weapons
  • Added wcids for Alchemical Throwing Phials and recipes to support those added so far
  • Added Halls of Metos portal near Zaikhal
  • Added database info for RenegadeGenerals.sql
  • Improved Shard database indexing
  • Added further stack exploit mitigation and logging
  • Added QuestManager to Fellowship
  • Added IsLocked to Fellowship
  • Updated QuestManager to support Fellowships for basic quest stamping
  • Updated Fellowship to support locking via emotes. Allow members who were in fellowship at time of lock to rejoin if they get booted from game
  • Updated EmoteManager emotes: InqFellowQuest, LockFellow, StampFellowQuest, UpdateFellowQuest
  • Swapped underlay colors for pierce/slash rends to match retail
  • Moved MinimumTimeSincePk change upon PK death to occur before flag changes. This fixes issue with PKs recovering from death being able to attack other recovering PKs.
  • Added /landblockstats command
  • Improved InboundMessageManager network exception handling
  • Improved Shard query performance when loading landblocks
  • Added Dinnerware to Mundane lootgen
  • Removed Mana Scarabs from lootgen
  • Monster_Tick profiling additions
  • Updated /listplayers to accept optional accesslevel parameter
  • Updated Green Garnet salvage
  • Apply position corrections for teleports using magic
  • Adjusted Stack Split/Merge Handling
  • Added vendor dupe prevention
  • Adjustment to loot percentages
  • Added optional assess creature mod w/ release formula
  • Corrected properties on Overlord’s Sword
  • Updated numerous creature loot tiers, as per wiki
  • Added PhysicsObj.Destroy() on AddPhysicsObj failure
  • Added ObjectMain.ServerObjects.Count to /serverstatus
  • Added OnGeneration emote handling
  • Updated fellowship death message
  • Added item material to tinkering broadcast message
  • Updated / consolidated spell assignment in loot generator
  • Added support for lower armor reduction kit applied to leggings
  • Excluded augs from SkillAlterationDevice spec count
  • Change pickup for items to also count as destruction for generators to regenerate. (Branith’s Staff linked to a Linkable Monster Generator)
  • Allow the few items incorrectly marked as “Treasure” and not “ContainTreasure” or “Contain” to appear on monster corpses.
  • Improved / refactored Skill XP Rank increases
  • Improved mem leakage by Generators
  • Added more scrolls to loot generator
  • Added some missing spells to drop as scrolls
  • Updated Fellowship hashtables to match client order
  • Moved Jack Of All Trades aug bonus from Skill.Base to Current
  • Standardized spells and cantrips for armor pieces
  • Cleaning up loot generator system
  • Added support to ACE.Adapter to convert ACE weenies to LSD weenies
  • Added emote tables for Summoning Mastery statues in Arwic
  • Updated appearance for Summoning Mastery statues
  • Added new spells and cantrips to loot generator
  • Updated Heritage masteries to default masteries for retraining
  • Updated object appraisal code to properly show Wield/Activation Requires lines
  • Updated RecipeManager for Ivory. Recipe in DB already handles mod application correctly
  • Improved trade system to work with additional Decal plugins
  • Reclassify Shields as WeenieType.Generic and Updated ValidLocations, for those wcids without correct values for shields
  • Change lvl 8 spell comps from Generic to Stackable
  • Change some Jewelry items from Clothing to Generic
  • Added the seven Geomancer summoning CombatPets
  • Changed House Warning Messages filter
  • Set HousePortal destinations based on data from database with fallback to SlumLord
  • Init House from World DB if not found in Shard DB
  • Added StartCooldown to EnchantmentManagerWithCaching
  • Fixed GetFreeInventorySlots() counting packs and foci.
  • Updated House SQL writer
  • Updated CombatPet to not drop loot, not spawn things
  • Removed Spells, Emotes from CombatPets
  • Added Pet and CombatPet to IsCreature in WorldDatabase load function
  • Always Allow ID for Pets
  • Excluded combat pets from cleaving damage
  • Added missing skills to /buff
  • Changed RecipeManager.ModifyX to Fixed dye (and other) mods
  • Reduce Entity Framework biota tracking to only Players. Other objects will be reattached when saved
  • Release NetworkSession resources when a session drops
  • Adjusted rare generation code to apply expected icon underlay if wrong or missing
  • Adjusted corpse world entry to issue rare alert text/sound after corpse is spawned and not before
  • Removed all properties from corpse assessment except those seen in pcaps
  • Updated stack values for death items

ACEmulator Monthly Report – April 1, 2019 – May 1, 2019

ACEmulator / ACE:
8 authors have pushed 226 commits to master
302 files have changed
45,764 additions
44,328 deletions
View Pulse
Changelog

A special thank you to all the players reporting bugs and feedback.
If you intend to submit a bug report please review how to collect Packet Captures

Notable Changes:

  • Loot tier adjustments and updates from LSD
    • Adjustments for loot tier 7
    • Added new skills Gems of Enlightenment
    • Added Enhanced Mana Elixir
    • Added Redspire Portal Gem that uses newer LinkedPortalOne
    • Updated new skills Wardens of Enlightenment to issue their gems
    • Updated Enhanced Health Elixir
    • Updated Sanamar Portal Gem to use newer LinkedPortalOne
    • Updated 10 Friend & Foe kill task NPCs
    • Updated Caliginous Aegis
    • Updated Platinum Golem
    • Updated Olthoi Slayer and Slasher Carapace and Ripper Spine
    • Updated Collectors
    • Updated Cave Penguin Egg

 

  • Fixed recipe mods for keyrings
  • Fixed some combat lockups after healing, particular with vtank + missile
  • Fixed combining older bags of mahogany salvage
  • Fixed monster retired skill #s
  • Fixed slippery item drop / rares popping when looted
  • Fixed spirit essence busy state
  • Fixed /hr for some apartments
  • Fixed summoned portal spawning
  • Fixed equipped item overlap
  • Fixed vendor overloads
  • Fixed hotspot damage
  • Fixed blank allegiance officer title crash w/ decal
  • Fixed dispel filters
  • Fixed apartment landblock loading speed
  • Fixed boot command throwing exception when used at console
  • Fixed a bug with disappearing icon when players give partial stacks
  • Fixed gems not dropping in loot
  • Fixed more issues with hotspots
  • Fixed Olthoi Rippers spawning too many ninjas
  • Fixed bug with players giving equipped items to other players
  • Fixed allegiance ranks
  • Fixed AnimationHook and GameActionChatChannel line endings in source repo
  • Fixed some apartment bugs
  • Fixed salvage workmanship bug
  • Fixed player DoT damage history
  • Fixed a bug with with kill tasks
  • Fixed a bug with packet crafting during character creation
  • Fixed a bug with scrolls and vtank
  • Fixed the Mite Queen Staff to drop 1 instead of 250 and 1 Crumbled Note instead of 250
  • Fixed some situations where multiple deaths could occur at the same time
  • Fixed tinkering values with pine and gold material
  • Fixed fellowship XP earning distance to be based on distance from XP earner, instead of leader
  • Fixed skill credit refunds for untraining skills in Temple of Forgetfulness
  • Fixed issue with attuned items being places in packs, packs placed in other containers
  • Fixed double use issue on some containers
  • Fixed issue with clapping motion repeating
  • Fixed giving stackables to NPCs that accept everything (Town Criers, Garbage Barrels)
  • Fixed giving or dropping packs with attuned items
  • Fixed issues with crafting sending 0 burden to client
  • Fixed mis-matched mana on lootgen’d missile weapons
  • Fixed wonky mana on Missile weapons in LootGen
  • Fixed quest names in San Ming’s emote table
  • Fixed ClothingPriority on Olthoi Celdon armor
  • Fixed issues with player corpse decay
  • Fixed bug with picking up items from your own corpse, hooks or storage that had quest stamps
  • Fixed bug with naked corpses not appearing correctly
  • Fixed issue with non-player objects activating other non-player objects
  • Fixed some issues with hotspots
  • Fixed rapid player corpse decay upon server restart
  • Fixed issue with npcs activating other objects
  • Fixed bug with IDing items in Trade Window
  • Fixed bug with trade causing receiver to turn to initiator when trade starts
  • Fixed exit portal from Karlun’s Hall to remove level restriction
  • Fixed Void Scriveners attacking
  • Fixed reported issue with corpse at the end of the Lugian Ice Tunnels; ActivationResponse was incorrectly set to 1, instead of 2
  • Fixed Nullified Statues
  • Fixed issue with RealTime generators that have either no StartTime or EndTime set. (eg: Heart of the Innocent Event Gen)
  • Fixed multiple death stacking. You can only die one time until you resurrect at lifestone
  • Fixed issue with long chat messages
  • Fixed SetSanctuaryPosition for Jonathan (29325) for Sanamar Academy instance
  • Fixed minor issue with scrolls when IDing them
  • Fixed major issue with recipes not scoping the requirements and mods to indexes which indicated where the checks or mods applied to
  • Fixed OnDeath crash
  • Fixed tells issue
  • Fixed PK status for all objects on radar bug
  • Fixed apartment issues for Empyreans
  • Fixed network session multithreading
  • Fixed a null crash with CombatPets
  • Fixed corpse null exception
  • Fixed landblock adjacency sync / visible objs
  • Fixed RestrictionDB table size
  • Fixed physics landblock memory leak
  • Fixed an issue with ClassName writer
  • Fixed allegiance sync bug
  • Fixed GetVariance
  • Fixed crash on null CurrentMotionState (statues).
  • Fixed CraftTool weenies mistakenly marked as WeeniType.Generic instead of WeenieType.CraftTool

 

  • Updated Tusker Guard loot tier profile to T4, up from T3, to match wiki
  • Updated Atlan weenies
  • Updated Healer messages and support for Stamina/Mana kits
  • Updated Olthoi Swarm mobs for loot tier Updateds, per wiki
  • Updated Olthoi Larvae body height entries
  • Updated loot generator for light dagger / multistrike
  • Updated two Facility Hub Wardens
  • Updated Gem_MaterialType odds in loot gen
  • Updated Ulgrim the Unpleasant’s location to AB
  • Updated Ulgrim’s Recall scroll
  • Updated Tusker Wish statues for MoA skills
  • Updated Flinrala Ryndmad to once again hand out Facility Hub Portal gems
  • Updated the Temples of Forgetfulness and Enlightenment
  • Updated Marauder Eater to always drop jaw, up from zero chance
  • Updated Base of the Timaru Plateau Portal to drop player near the NPC that sends the player to the top of the plateau
  • Updated Jonathan’s emote table; token is attuned so cannot be lost. NPC doesn’t need to reissue token to player
  • Updated landblocks in Stonehold, Nanto, and Tou-Tou-Tou
  • Updated Gold Golem and Banderling Mauler to tier 5 loot profiles, per wiki, as other mobs still using former loot profile ID should remain as tier 4
  • Updated generated loot values
  • Updated spell component burn rate, and mana conversion for item spells
  • Updated 2-handed weapon skill check
  • Updated Mad Cow event
  • Updated Storage permission error message
  • Updated handling of scribe related functions
  • Updated Enchantment Heartbeat to expire 0 duration spells
  • Updated pickup timers for Grael’s Rage untranslated texts to align with info on wiki
  • Updated three dungeon entry portals with quest restriction, as specified on portal text
  • Updated three NPCs involved in Grael’s Rage quest to stamp and erase quest stamps, as appropriate
  • Updated Generic and Stackable WeenieType
  • Updated Soldier 31290 with Attackable false and Soldiers 31290, 70035, and 70036 with AiImmobile true
  • Updated shutdown sequence to support notifications to players at intervals and adjusted shutdown lockout to apply when server is less than 3 minutes from shutdown
  • Updated CreateList output to not sort by weenie class id
  • Updated harm spell text color
  • Updated UpdateMaxVital for some spells
  • Updated SummonPortal for Gateways
  • Updated DamageHistory to use WeakReference
  • Updated fellowship to WeakReference
  • Updated Player.Examine success conditions
  • Updated kill tasks in fellowships
  • Updated Event generators for two staged on/off
  • Updated Crafting SQL Writer
  • Updated null spell -> spell.NotFound
  • Updated various log messages to Debug level
  • Updated Generator.StopConditionsInit and StopConditionsMax log level
  • Updated Generator.AddWorldObjectInternal failures to Debug
  • Updated LSD converter to support enum shifting

 

  • Added support for IOU trade ins
  • Added possible fix for Mowen portal not spawning – IsBusy reset OnDeath
  • Added Covenant Armor, default Material Type, and thrown weapons to loot
  • Added allegiance name to appraisals
  • Added caster effect to spells that have them
  • Added door opening ability for some newer Olthoi
  • Added rot after 5 minutes to player sold items on vendors
  • Added rares to loot system
  • Added support for Barber NPCs
  • Added Shoichi for Tusker Guard KT to Lin
  • Added support for new recipe formats
  • Added support for broadcasting tinkering result message
  • Added AttributeTransferDevice
  • Added quest restrictions for summoned portals
  • Added the ability for any player to loot monster corpses after 2 mins
  • Added logging for player corpses
  • Added /myquests player command, and quest_info_enabled admin option
  • Added Mountain Sewer entry portal
  • Added support for non-house owner rent payments
  • Added Lifestone Sending spell
  • Added some missing spawn maps: Mountain Sewer, new Yanshi town spawns, Keminub, Iaret, and Sacmisi
  • Added support for prismatic arrows
  • Added fellowship sharing to kill tasks
  • Added prevention for being dropped into / through walls
  • Added some null checks to try to catch issue with SelectDispel
  • Added logging to Spell.Init
  • Added warning to players about potential rollback issues when SaveBiota fails
  • Added support for preloading landblock groups (Apartment Landblocks)
  • Added check for RecallsDisabled to command recalls
  • Added CraftTool WeenieType
  • Added missing EncumbranceVal to Olthoi Amuli Armor
  • Added text to corpses that generated rares
  • Added Tomb Rubble weenie
  • Added in use error message for some objects
  • Added missing Missile DamageMod property for loot gen
  • Added Void Gem of Enlightenment
  • Added shirts and pants to loot drop
  • Added new Fetish of the Dark Idol recipes for new TOD missile weapons
  • Added missing Enhanced Isparian weapon recipes
  • Added modified tinkering recipes
  • Added Moina NPC
  • Added Olthoi Amuli armor weenies
  • Added Jaffres Dini’s spawn data to Sanamar
  • Added Scrivener of the Void to Holtburg, Yaraq, Shoushi, and Sanamar locations
  • Added Jacob’s Axe weenie for loot drop by Hard-Headed Skeleton
  • Added the three Trade Alliance sub quest stub quest registry DB entries
  • Added updated Free Ride to Sanamar spell (3535)
  • Added missing Monster Fly Trap weenie
  • Added Donatello Linante
  • Added support for AwardXP emote taking away from available xp (Donatello Linante -> Asheron’s Lesser Benediction)
  • Added rares to server logs
  • Added disable_gateway_ties_to_be_summonable configurable option
  • Added biota id:name to db
  • Added in support to ACE.Adapter for converting GDLe recipes
  • Added fix to prevent players from deceiving themselves
  • Added more code protection for TOD salvage data
  • Added null check to Corpse.Open
  • Added busy check for food / consumables
  • Added CanAddToInventory / pre-check for Player.Give
  • Added more null checks to Fellowships, ConfirmationManager, and GetDeathMessage
  • Added rollback mitigation for players receiving items from NPCs
  • Added SpellbookCache
  • Added WeakReference option to GfxObjCache
  • Added missing WieldSkillType to loot generation factory melee weapons
  • Added Treasure Material tables and Treasure Color tables to apply appropriate colors and materials to items in the LootGenerationFactory
  • Added “lootgen” Developer Command to aid in testing the loot generator. Currently only applies materials and colors to items; no other properties factored in at this time
  • Added GetBlockDist pre-check to IsDirectVisible()
  • Added /ciloot dev command for RNG loot generation factory
  • Reduced fizzle mana usage
  • Changed Ruschk Iceberg Key from fixed spawn to generator based
  • Remove extra Ianto and Lady of Aerlinthe’s Ornate Chest weenies
  • Aligned Scroll loot with wiki
  • Re-added random colors to clothing in loot gen
  • Mosswart Worshipper Kill Task fix
  • Refactored Elemental damage bonus
  • Removing leader from disbanded fellowship
  • Removed some incorrectly added thrown weapons from loot gen
  • Sorting appraisal properties to better match up with client hashtables
  • Ensuring self spells are never resisted
  • Loot refactoring for clothing
  • Removed bad keyring recipes
  • Fixes for Give to Player issues: Send contents of a container when given, Return object to giver when it fails to be given
  • Replaced character errors with confirmed list
  • Creatures with loot and NoCorpse will drop their loot to the ground upon death
  • AdjustCells cleanup
  • Updating tinkering message to match retail, adding /cisalvage dev command
  • Initial fix for item heartbeats
  • Adjust wield requirements and method used
  • Sequence validation and negative response
  • Change weapon damage to be based on wield difficulty, instead of tier number
  • Lower essence drop rate to ~17%
  • Converted many magic numbers to descriptive, enum based values
  • Changed shortcut code to fix some collision issues
  • Clamping broadcast range on some recalls
  • Improved monster ReturnHome logic
  • Physics GC cleanup
  • Synced WieldSkillType with WeaponType
  • Move some messages to WorldBroadcast filter
  • Remove PropertyInt 159 from base melee weapon weenies
  • Remove two Encounter table entries, as they cause landscape mob spawns within Fort Tethana and the rebuilt Yanshi
  • Landblock Dormancy after 1 min of no player activity
  • Reduce rogue physics landblocks loaded by portal destination parsing
  • Dispose ShardContext on RemoveBiota
  • Send RestrictionDB in order of client hash
  • Removed deprecated skill check formula
  • Improved fellowship vital update rate / sync
  • Ensuring BF_OPENABLE flag for inventory containers
  • Fix body part heights of Fiun mobs
  • Moved IsBusy check
  • Session termination and boot command enhancement
  • Adjusted grant level propotional xp
  • Adjusted two-handed stance swapping / slots
  • Removed slash animation from thrust weapons
  • Ensuring impen/bane applies only to enchantable items
  • More fixes for player corpse appearance issue
  • Retry failed shard db queries
  • More fellowship null checks
  • More allegiance fixes
  • Ensure cooldown spells aren’t evaluated for dispels
  • Adjusted OnDeath to use LastDamager instead of foreach
  • Network stability improvements
  • Major refactoring to fellowships to fix concurrency issues
  • Moved order-insensitive items earlier in packet processing pipeline
  • Process inbound GameAction packets in order received
  • Save Player Corpses if dropped.count > 0
  • Reject new connections when server shuts down
  • /serverperformance command added. Optional parameters: start, stop, reset
  • Use ServerGarbageCollection instead of Workstation GC
  • Change the way GiveObjecttoNPC and HandleNPCReceiveItem deal with emotes
  • Exclude Cooldowns from HandleMaxVitalUpdate
  • Physics memory related additions
  • Fix session timeout values
  • Code cleanup

Packet Captures

A PCAP (Packet Capture) is network data collected during an active client session to provide more concrete information for the developers to track and squash bugs

PCAPs are an invaluable tool to see behind the graphics in to what is actually occurring.

Download ACLog https://github.com/ACEmulator/aclog/releases/download/1.0.0/msxml4.dll

  • Make a copy of your Asheron’s Call folder next to your existing folder (not inside)
  • Place the msxml4.dll in the new folder
  • Open Thwarglauncher and click Open User File
  • Find the specific account for the server you’re testing
  • Add a LaunchPath pointing to the new acclient location – The top of the UserFile details the LaunchPath syntax

If you do not do the above the packet logger will open for every single client/world you log in to, causing a mess of packet logs in your main folder.

When you come across a bug in game while the packet logger is running, please type in chat “PCAP BUG” so the timeframe can be narrowed down.

Either exit the client or hit Stop on the packet logger and a new file will be created in the AC folder with the format “pkt_YYYY-MM-DD_TIMESTAMP”

Provide this file along with your bug report.

ACEmulator Monthly Report – March 1, 2019 – April 1, 2019

ACEmulator / ACE:
7 authors have pushed 131 commits to master
253 files have changed
22,358 additions
3,479 deletions
View Pulse
Changelog

Notable Changes:

  • Added Chess. Much thanks and credit to Anahera for originally authoring this code!
  • Added Tailoring. Much thanks and credit to Phenyl for originally authoring this code!
  • Added support for Asherons’s Benediction and Augmented Understanding
  • Added support for Aetheria
  • Added support for Luminance augs
  • Added support for Enlightenment
  • Added preliminary content for Friend and Foe monthly patch
  • Added landblock spawns from Friend and Foe patch
  • Updated monster corpse looting permissions – after the top damager finishes looting, other players may loot
  • The fellowship ‘disband’ button when clicked by non-leaders no longer acts as a ‘leave’ button, as per retail
  • Added option to enable/disable DoT messages
  • Updated PKLite messages to match retail
  • Improved jump with low stamina
  • Updated War Magic spell projectile and resisted messages to match retail exactly (this was causing a delay in vtank between spellcasts)
  • Added Monarch/Patron/Vassal prefixes to allegiance login messages, updated colors
  • Added support for Encapsulated Spirit
  • Added alternate currency for vendors
  • Appraised items on housing hooks now show the details on the hooked item.
  • Ensure monsters have a targeting tactic
  • Updating burden from ammo / spell component usage
  • Support AdvocateItem changing/updating Radar Blip Color in similar fashion to retail servers.
  • Improved handling for edge cases for refreshing spells w/ augs
  • Additional ratings added to appraisal panel
  • Updated spell info, added spells for item sets
  • Added spell procs / cast on strike
  • Added support for item leveling
  • More visual updates for dye recipes
  • Updated barber shop
  • Additional checks for built-in weapon spells
  • Added rare timers
  • Added fellowship names to player appraisal panel
  • Ensure prior container is closed before opening a new one
  • Added Natural Resistances for players
  • Adjusted trained skill check for reading magic scrolls
  • Added the ability for player to use all Augmentation Gems
  • Cleaned up welcome message / server mtod
  • Added RNG ratings to Summoning essences
  • Disabled the portal messages to match retail
  • Added Void Magic scrolls and Summoning essences to loot generator
  • Added support for Magic Professors
  • Updated spellcasting / healing movement check messages to match retail
  • Updated salvaging result message

 

  • Network stability:
    fixed bug causing disconnects due to NAK requests being ignored.
    fixed bug causing session to enter an unspecified state after connect request packet sent to the client is corrupted in transit
    fixed bug during handshake causing defunct session to linger
    fixed bug whenever a bad handshake occurs causing crash
    added asynchronous verification of encrypted CRCs
    added checksum caching to ClientPacket
    added handling of trusted packet with ClientSentNetErrorDisconnect flag
    added parsing of optional “flow” header data
    added more network logging
    removed “generational ISAAC” debugging tools

 

  • Improved allegiance data sync
  • Added IsBusy checks to healing and recipe crafting for vtank
  • Change action that occurs for selling items to vendors so they appear in the buy window if they aren’t destroyed on sell.
  • Prevent selling objects (via drag-drop on vendor) that vendor doesn’t accept in its MerchandiseItemTypes field. These same items would red-circle using traditional drop into panel method.
  • Set minimum for hotspot cycles. Prevents hotspot of doom (HotspotCycleTime == 0)
  • Added /teledungeon command for Sentinels / Admins
  • Additional fixes for decal crashes when entering Portals, and around Holtburg
  • Added IOUs for EmoteType.Give w/ missing wcids
  • Emote skill check: ranks -> current
  • Updated Active flag and chest logic
  • Improved spell duration logic
  • Update Logout to include server population and limits when character list is resent.
  • Updated @acehelp and @acecommands to not be individual messages, so not to be broken up by other chat spew.
  • Added @pop command — Tells you how many players are online.
  • Added @telereturn — Teleport a character to their previous position saved when using @teletome.
  • Added @watchmen command — Displays accounts of a specific access level.
  • Added @finger command — Displays information about a character and/or account.
  • Better organization and restructuring for -Patches folders (now grouped by date)
  • Additional error messages for allegiance swearing
  • Added local broadcast range to spell words
  • Revised indoor fellowship distances
  • Continued refactoring of HandleUseOnTarget
  • Exclude Burden in CreateObject messages for Creatures.
  • Update Player Description Event to reflect WeenieType and HasHealth accurately and not hard-coded values.
  • AddWorldObjectInternal fix
  • Changed TrackObject to only send Selectable child objects wielded by their parents (No more oversending of everyone’s complete equipables)
  • Improved ‘out of missile ammo’ animation state / feedback
  • More consistency for create lists and moving items to corpses
  • Consolidated pyreals in death messages, added corpse_destroy_pyreals server option (defaults to true / end of retail)
  • Added some missing types / info to login
  • Enqueue action message cleanup
  • Cleaned up UseWithTarget and GameMessageInventoryRemoveObject
  • Changed the way Name property is handled with regards to + (Admin/Sentinel characters)
  • Set up basic path to support replicating accesslevel changes on to existing characters
  • Added @pk command
  • Revise @cloak command
  • Loot Generator refactoring / organizing
  • Added LanguageInfo to DatLoader (0x41 in client_local_English.dat)
  • Added improved feedback when issuing invalid console commands or using incorrect syntax
  • Exclude GamePiece from saving to Shard DB
  • Corrected DatDatabaseType values
  • Changed account authentication to use BCrypt
  • Added configurable BCrypt WorkFactor for password hashing
  • Update Shard DB Enchantment Registry composite key
  • Additional null checks for allegiances and fellowships
  • Added passwd and set-accountpassword commands for self-service password changing and admin-only override password changes
  • Added migration coding to support migrating from previous SHA512 Hash/Salt method to BCrypt
  • Script for Updating Auth database added to default passwords to BCrypt
  • Added /teletome command for admins
  • Added substates to initial player broadcasts
  • Added system for reusing dynamic guids. The database is now queried for guid fragmentation on startup, with support for recycling guids during the game

 

  • Fixed some issues with CombatPet aggro
  • Fixed a bug with vitae not expiring
  • Fixed a salvaging bug with Green Garnet and Mahogany items
  • Fixed Gear Knights being literal buttheads. (Their abdomen was being swapped with their heads)
  • Fixed CharGen issue for Dual Wield characters. 2x Melee Weapons are created if Dual Wield is trained or specialized
  • Fixed a bug where crafting components were being removed from the shortcut bar on usage
  • Fixed a bug where players could cast spells from inside portal space
  • Fixed Holtburg sentries running in circles
  • Fixed chests stuck in open state
  • Fixed Cow Tipping Quest
  • Fixed scroll usage in vtank
  • Fixed a bug with items in chests sometimes appearing incorrectly in client
  • Fixed an outdoor->indoor visibility bug
  • Fixed a bug with run backwards state / jump frozen bug
  • Fixed a bug with spell trap durations
  • Fixed a bug where enchantments from items were being cleared on death
  • Fixed vendors to handle 0 value items properly in buy/sell
  • Fixed an invisible player bug when players re-enter visibility to an unmoving player
  • Fixed a bug with dropping items from scatter generators

 

To contribute to bug reports or simply check out the progress, log in to Coldeve via Thwarglauncher.

Join the Coldeve discord – https://discord.gg/dDZh5dQ