Skip to content

Releases: ACRealms/ACRealms.WorldServer

ACRealms Release v2.1.4

20 Jul 22:05

Choose a tag to compare

  • Fix crash with colosseum and RelativeDestination position type

ACRealms Release v2.1.3

17 Jun 11:47

Choose a tag to compare

Adds a compiler extension to the build process to prevent accidental transmission of 64-bit guids to client (which would cause a client crash)

Fixes a potential client crash with friends lists

ACRealms Release v2.1.2

17 Jun 07:26

Choose a tag to compare

Version 2.1.2 has been released to address some bug fixes:

Fix issues with character creation when not using the realm selector, including one crash
Fix crash that occurred when dying without a lifestone set
Add acr-fix-null-sanctuary command
Fix edge case with SetHomeRealm

ACRealms Release v2.1.1

15 Jun 05:49

Choose a tag to compare

Fix stability in JsonSchemaGenerator

Fix a couple cases where portal sending/teleport would send to home realm instead of same realm's default instance id

Add dungeon-sets and peripherals system

Fix typo in DB migration script

Fix crash with HouseManager.GetHouse

Fix issues with message sent to player when switching instances

ACRealms Release v2.1.0

12 Jun 09:39

Choose a tag to compare

Changes from v2.1.0-rc1:

Bug fixes with SetHomeRealm, Mass Realm Migration, Realm Selector

Removed all content from base content folder - Weenie files required for Duel Realm, Realm Selector, or the Tech Demo are located in their respective folders under "extensions" and (for now) must be copied to the content folder if you wish to include them.

AutoApplyWorldCustomizations and AutoUpdateWorldDatabase features are now supported

Add Automatic Realms From ACE Migration - On Startup, there is automatic detection if any players have a null home realm, and the players and housing will be transferred to the default realm specified in the Config.realms.js file.

RealmPropertyInt.RulesetStampVendorCategory is now deprecated and will be removed in a future release

Database setup scripts now have a slightly different format over the ACE equivalent. They will no longer contain a "USE " statement. If you run the script, you'll know for sure what database is being used, instead of it having the potential to corrupt the default database in a sneaky way. Why this wasn't fixed sooner, I have no idea.

2.1.0-rc1

04 Jun 08:16

Choose a tag to compare

AC Realms v2.1, Release Candidate 1

Change log is since v2.0

Features

  • Update to ACE v1.61 (was v1.58)
  • Add JSON Schema Generator to automatically create schema files. These files are used for autocompletion hints when editing the realm json files from within VSCode or a compatible editor that can use JSON Schema Draft 07 or higher.
  • Add Config.realms.js, a required config file to be configured alongside Config.js. Depending on this configuration, players may be automatically assigned to a home realm, or not permitted to log in with a character that has not yet been assigned a home realm via the admin commands. This login prevention only applies to characters created when the server was using ACE, or a version of AC Realms prior to this release.
  • Add /compile-ruleset admin command to dump a log (to a text file) of the ruleset compilation diagnostic trace for the current landblock. This can be done with "landblock", "ephemeral-new", "ephemeral-cached", or "full" modes. landblock mode shows approximately what happens during the loading of a new landblock.
  • Add /ruleset-seed command (Envoy or higher for now) to show the random seed for the ruleset
  • Add /set-home-realm admin command to set the home realm command of a player who is online or offline. This command will also attempt to move any houses owned by the character to the default instance id for the target realm.
  • Add /get-home-realm Admin command to show the home realm for a player
  • Improvements to /adminhouse dump commands to be usable from server console. Added an option for a shorter output
  • Add acr_validate_realm_position_for_admins server property. If this property is enabled (not the default), admins will be booted to their home realm if not permitted to be in that realm, and will be prevented from teleporting to realms they are not permitted to enter. This can be useful for testing or troubleshooting purposes
  • Other commands added: /force-all-characters-to-new-home-realm, /mass-transfer-home-realm, /showallplayerhomerealms, /allplayersinrealmid, /move-player-house-instance /evict-player-houses. Longer commands with no hyphens are intended to be safer to run. I'm not sure if that's a system we'll stick with though, because it can get ambiguous. I tried to make these in a way that makes it very hard to accidentally type the wrong command and do something bad. Better documentation will be written for these in the future.
  • New house deeds will now show the name of the realm where the house was purchased
  • realms.jsonc is no longer required to be manually written, but the file should still be committed to the repository. The file may be edited manually but it must match the ID and Name combinations previously in the database, for rulesets that have previously been loaded at least once. If it does not match, the server will fail to start. This is a safety measure to prevent accidental data corruption from mishandling of the data files.
  • Removed all landlock content files, including the realm selector starter area, as it may conflict with custom content. The realm selector will now be placed in a dark rectangular area confirmed to be unreachable, and is done so without any interaction with the world database.
  • The duel realm content is optional and still included in the git repo for convenience, under an optional folder. However, there may be issues with using this before the planned v2.3 release when realm-specific content files are planned to be supported
  • /sloc command will now output the instance ID as a hex number
  • Characters will no longer automatically level to 275 after selecting a realm (was an artifact from the alpha / beta days)
  • Moved all projects to .NET 8, not just a mixture of .NET 8 and .NET Standard like ACE uses.
  • Moved all projects to x64 platform from AnyCPU. I'm not sure if ARM64 was ever supported but if we ever need it I'll look into that.
  • Add ItemGeneratedAtRealmID and ItemLootedHomeRealmID properties to track realm IDs where an item was looted or generated. This is still a work in progress but will serve as a foundation to ensure that cross-realm play can take place without risking items being transferred between the realms (unless the ruleset allows for it).
  • Updated Application Icon with ACRealms Logo

Bug Fixes

  • Fixed a bug with ActivationTargets. The Casino wheel will spin again, and the Lich will open that damned door at the three towers.
  • Fixed a bug where ruleset file would not compile without "properties" key being defined
  • Fixed a bug with inheriting or applying rulesets that used properties_random_count
  • Fixed a bug where Int64 realm properties caused a crash
  • Fixed a bug where ValidateRealmPosition returned false for reserved realms that were also home realms
  • Fixed a display issue where "You are temporarily leaving your home realm" was shown erroneously when teleporting from one realm to another
  • Fix Console.Title crash when running from Linux

Developer Notes

  • Added GetRealmByName helper method
  • GetRealm and GetRealmByName methods will now require a boolean flag whether to include rulesets. This is important to prevent rulesets being used in place of realms unintentionally
  • Add WorldRealm property to InstancedPosition
  • Add some additional properties to ObjectGuid to pull realm ID from the guid, if it is a static guid. Use carefully. It is intentional not to have a WorldRealm property on the ObjectGuid as well, to discourage overuse of this.
  • Realm names are no longer case-sensitive and will be compared with OrdinalIgnoreCase. This may not be perfect, so please report any issues.
  • Add HouseManager.GetHouseSynchronously method, which will block the current thread for up to 5 seconds if waiting for the house inventory to load.
  • Implement auto correction for GetPosition and SetPosition position types. This provides an additional safeguard in cases where GetPosition or SetPosition (which takes either an InstancedPosition or LocalPosition) is used with the wrong class. It is also recommended to not use these methods, but instead to use the properties on WorldObject_Positions.cs, which are already scoped to the correct type of Position.
  • Significant refactoring of old code
  • Session has been moved to an interface (ISession) to facilitate automated testing
  • NetworkManager is no longer a static class, but is still a singleton
  • NetworkManager moved to an interface to facilitate automated testing
  • Moved from coverlet to MS Code Coverage API to measure Test Coverage

Full Changelog: v2.0.0...2.1.0-rc1

ACRealms Release v2.0.0

05 May 23:31

Choose a tag to compare

The first officially supported release of ACRealms is here!

Note that this is a long-term-support branch. Support will be provided until v2.4 is released, at which point the minimum supported version will be v2.2.

Key highlights:

  • 64-bit GUID and Biota system for full support of instancing
  • Tested and confirmed to work on a PvP server with 20+ online players.
  • All known bugs with AC Realms are fixed.

IMPORTANT NOTE:
This is very much still a "hacker's release" meaning you'll have to make some modifications if you want to use this in a serious server. For example, all characters start at level 275 right now. I will work with you to fix any issues you have. By version 2.2 this will be addressed so that it will be more functional out of the box. Instructions will not be provided through documentation until version 2.2. I'll still be glad to help via the Discord server.

  • FlaggAC