A river surrounds a great walled city.

Patch Notes

EmpireMUD 2.0 beta 5 patch notes

Note: If you are running an EmpireMUD and have trouble with a patch update (due to conflicts, incompatible code, or any content issues) I am happy to help you with those.

Skip to live patches...

Patch b5.189: Untitled (not live)

  • Implementation notes:

    • Books: This patch makes a change to books that are contained in the 1.book in the repository but will be written to 0.book by the EmpireMUD engine if any low-vnum books are edited. This error has generally not been corrected in the past because of the high chance for file conflicts with running EmpireMUDs. If any of your book files conflict when applying this patch and you are not experienced with resolving conflicts, please contact me (Paul) for assistance.
  • Abilities:

    • Brutal Bite: Renamed melee vampire ability.
  • Adventures:

    • 12300 Fur Dragon: Renamed the jungle variant of the fur dragon.
  • Immortals:

    • Show: Added "show cropregions" as a tool to ensure all wild crops are available to players.
  • PHP Utilities:

    • map.php: Fixed instructions in the header of this file to correctly give "generated" as the parameter for using the data from the map generator rather than the game engine.
  • Updates:

    • Savage: This patch removes the word "savage" from several places including a werewolf morph, a fur dragon variant, and combat messages. It has been brought to our attention that this word has a long, troubled, and ongoing history as an ethnic slur. People with questions are encouraged to read the Wikipedia article on "Savage (pejorative term)". The use of this word on EmpireMUD was intended to convey a sense of wild, animal-like traits, and we have chosen replacement words that don't carry the same history.

Live Patches:

Patch b5.188: Chocolate Bugs (November 3, 2024)

  • Abilities:

    • Bonus abilities: Players can now have bonus abilities, which are granted and removed by quests or scripts.
    • Ready Fireball: Updated some of the text to make it clearer that fireballs only exist while attacking and can't be used for light or lighting things.
  • Adventures:

    • 11800 The Tower Skycleave: Ashes of History: Fixed several small typos.
    • 12100 Antara Golden's Spices and Recipes: Added chocolates, cocoa, and lemonade. Small typo fix in the royal feast eating message.
    • 12350 Hoarfrost Serragon: Typo fix in an ice message.
  • Buildings:

    • Immune-damage: New building flag that prevents player siege damage. Also prevents yearly decay unless resources are set. Does not affect burning (which is controlled by the burnable flag).
  • Commands:

    • Accept: Minor text update for readability.
    • Quest: Fixed a bug which, in some rare cases, allowed a player to start a quest they didn't qualify for. The "quest share" option will now give additional feedback if group members don't qualify. You can no longer offer to share another quest until the player accepts or rejects the last one, as they don't stack.
    • Reject: Minor text update for readability.
    • Roster: Now sorts online members to the top, and sorts members by level within the online and offline member groups.
    • Who: Fixed a potential crash bug.
  • Content:

    • Beehive: Fixed a bug with the beehive where it was still crafting the old object version and then converting to the vehicle version when complete, causing it to default to unclaimed. The craft is now for the vehicle version directly.
    • Castle: Fixed typoes in the Castle progress goal.
    • City dailies: Fixed some misgendering statements in 3 of the city dailies.
    • Clay pit: Added retrieve and store to the command display.
    • Cloves: Renamed/redescribed the clove seeds to avoid conflict with the "nails" item and to update the appearance of the seeds.
    • Fire breath: Fixed a typo when a flame dragon or other creature "breaths fire fire at" an immortal.
    • Olives: Added larder storage to the small olives.
    • Quarry: Added retrieve and store to the command display.
    • Sand pit: Added retrieve and store to the command display.
    • Trade Routes: Added text to the progress goal to indicate that the trading post building requires Architect.
    • Wineskin: Typo fix.
    • Yak's wool cloth: Typo fix.
  • Displays:

    • Cooldowns: When you try to use an ability on cooldown, the message now shows hours/minutes/seconds when longer than 1 minute, rather than always showing the count in seconds.
    • Missing player tech: More displays will suggest ability names when the player is missing a player tech, e.g. when identifying or trying to hold a bow without the Ranged-Combat tech.
  • Generics:

    • Currency: Added a "custom origin" field for currencies where the SHOW-ADVENTURE flag doesn't give good information. Applied this to the Binding Circle weights, Tutorial spirit tokens, and Celestial Forge shards.
  • Help files:

    • City points: New help file with more information on city points.
    • City types: Updated with more information on city size limits.
    • Powerful magic gem: Added as a keyword to the gem help.
    • Prismatic crystal: Updated help file for this item.
    • Various: Added specific armor ability requirements to related help files such as Magic Attire and Leatherworking.
  • Immortals:

    • Reload: Added better error reporting when reload fails.
    • Set: Added "set bonusability".
    • Show: Added "show bonusabilities". Added empire information to "show account".
    • Stat: Added more text coloration to "stat object".
  • Mobiles:

    • Consider-info: Added a new field for text shown when a mob is considered by a player.
  • Objects:

    • Identify-info: Added a new field for text shown when an object is identified by a player.
  • OLC:

    • Adventure editor: Fixed the error message when you don't provide a linking rule type.
  • Quests:

    • Rewards: Quests can now reward or take away bonus abilities.
  • Scripting:

    • Players: Scripts can now add and remove bonus abilities for players.
  • Vehicles:

    • Identify-info: Added a new field for text shown when a vehicle is identified by a player.

Patch b5.187: Bug fix patch (May 18, 2024)

  • Adventures:

    • 11800 The Tower Skycleave: Ashes of History: Added "table" as a keyword to the buffet.
  • Characters:

    • Companions: When damaging your own companion, the now stop being your companion at the same time as they stop following you.
  • Commands:

    • Dismiss: Can now target your current companion even if they aren't following you.
    • Identify: Fixed an error in how storage is shown on some items (from b5.186).
    • Room interactions: Fixed an issue in the gen_interact_room system where it couldn't detect undepleted interactions in room templates. This fixes a bug with digging (etc) in adventures.
  • Contents:

    • Baker's quests: These now allow you to see the quests even if you do not have the right ability, so long as your Trade skill is in range. Added a note in the Baker's Journeyman progress goal to indicate that it requires Family Recipes as well.
    • Garlic bread: This recipe now appears in the basic list and does not require garlic in your inventory. Also added to the Cook help file.
  • Crafts:

    • Some: Added a new craft flag, SOME, for things that should say you are making "some" of something rather than "a something" (for example, "baking some bread" instead of "baking a bread"). Applied this flag to 289 existing crafts. Also removed some code that attempted to detect this for the start-crafting text using a trailing "s" in the craft name, which was not reliably accurate.
  • Displays:

    • Time since: Commands like history that show a short version of elapsed time will now show "1w" instead of "7d", "1h" instead of "60m", and similar.
  • Help files:

    • Channels: Added a note about joining and leaving channels to the regular channel help.

Patch b5.186: Minor Fixes; More Spice (May 8, 2024)

  • Commands:

    • Identify: Improved storage information on objects like "wild fire" which cannot be stored due to being permanently lit.
    • Mount: Fixed a bug when trying to ride a flying mount in the ocean. Also fixed a small issue with aquatic mounts on land.
  • Content:

    • Baker's quests: Fixed minor typos in these quests.
    • Chili peppers: These can now be processed into chili powder. Can now be stored in the spicery.
    • Cloves: Added the name "clove" to the harvested buds.
    • Cocoa powder: Can now be stored in the spicery. Removed decay timer.
    • Collecting Herbs: Typo fix in this progress goal.
    • Ginger root: Removed "seeds" component type.
    • Onion: Added storage to the small onion.
    • Process: Added how to speed up processing (e.g. spices) to the help files.
    • Saffron: Removed "glass" from the keywords list and text to avoid a full keyword overlap with the glass vials.
  • Help files:

    • Gourmet Chef: Mentioned spices in this help file.
    • Process: Mentioned the Gourmet Chef requirement in this help file.
    • Onions: Added to the help file for crops.
  • Immortals:

    • Create: Added poultry, pork, eggs, and sugar to the create command.
    • Export/Import: Immortals can now use export/import analyze even if their empires are not allowed to trade.
  • OLC:

    • Auditor: No longer warns of a bad attack type on mobs with no attack.
    • Fullsearch: Object fullsearch can now search values 0, 1, and 2 numerically.
    • Mapedit: Adding a tile to an island now adjusts its edges, as shown on "chart".

Patch b5.185: Antara Golden's Spices and Recipes (April 30, 2024)

  • Abilities:

    • Bite: Now includes the new Vampire-Siring player tech.
  • Adventures:

    • 12500 Clockwork Colossus: Updated the ankle brace to properly link to the instance even if the brace isn't completed before the adventure ends.
    • 12650 Magiterranean: The Grove: Increased the drop rate on wild fire.
    • 18200 The Guild of Adventurers: Improved the quest instructions for raising the atlasian egg. Added an note about the time limit on the egg to the quests. Increased the time limit by roughly 7%.
    • 19000 The Swamp Hag: Fixed an issue where items and vehicles were not moved between rooms when setting a difficulty, which could leave vehicles stuck in an unreachable part of the instance.
    • Instances: Fixed a bug where vehicles inside adventure instances were deleted when the instance ended, even if they didn't belong to the instance. Fixed an additional bug where a player somehow inside a vehicle in an instance could be left in the extraction pit when the instance closed.
    • Various: Updated how scripts process arguments so that "harness the stag to the sleigh" and "harness stag sleigh" both work for the same script, just like normal game commands. This affects many adventure items. Many vehicle "load" triggers are now "complete" triggers instead.
  • Bug fixes:

    • add_room_to_building(), get_extraction_room(), get_ship_pen(): These functions now provide a meaningful syserr and exits rather than just crashing when there's no default to fall back on.
    • construct_building(), construct_tunnel(): Now give a syserr when they receives an invalid building type.
    • load_one_room_from_wld_file(): Now validates building type before trying to add it.
  • Commands:

    • Drink: Fixed a bug where you could not drink from containers in public-flagged rooms unless you were an ally or member.
    • Eat: Fixed a bug where you could not eat feasts in public-flagged rooms unless you were an ally or member.
    • Herd: Fixed the error message when you try to herd a mob you're already leading.
    • Mark: Fixed a bug where this could crash the game under rare circumstances.
    • Score: Will now show the MUD's name at the top rather than the engine name and version.
    • Sire: Now requires a new player tech, Vampire-Siring, which is attached to Bite. This tech has its own skill gain and runs ability hooks.
  • Content:

    • Recipes: This patch adds several new recipes (With special thanks to Antara Golden).
    • Spices: This patch adds a set of spices, processing recipes for them, and a spicery building. It also adds the "apothecary" flag to existing alchemist buildings so they can process spices. Spices may also be processed with a grinding stone (With special thanks to Antara Golden).
    • Various: Updated how scripts process arguments so that "order the familiar to energize" and "order familiar energize" both work for the same script, just like normal game commands. This affects a bunch of the game's basic scripts. Many vehicle "load" triggers are now "complete" triggers instead.
  • Displays:

    • Game name: Updated the logout statistics, war declaration, book editor, full-game error, screen-reader question during character creation, score, and several no-command commands to show the configured game name instead of always saying "EmpireMUD".
  • Help files:

    • Block cap: Added info on boss mobs.
    • Familiar: Fixed small typo.
  • Immortals:

    • Morph: Immortals are no longer affected by the !MORPH affect.
    • Oset: Can now set the 3 numeric object values.
    • Stat: Fixed a color leak when statting an ability that paints a building.
  • OLC:

    • Auditor: Added warning thresholds for the interaction auditor rather than special-casing for conjure-liquid or chop.
    • Object editor: Fixed blank line when there are no object values (from b5.179).
    • Room template editor: Changed the highlight on matchexits to not show as a "changed" field.
  • Players:

    • Morphs: When a morphed player dies with the !MORPH affect on them, they will no longer automatically un-morph.
  • Scripting:

    • Arguments: Added %string.argument#% for getting a particular argument from the string, accounting for fill words and quotes.
    • Complete trigger: Vehicles now support the "Complete" trigger type, like buildings. This fires when the vehicle is completed if crafted, or when loaded by any other means.
    • component: Added a special variable for fetching a component name by vnum and quantity.
    • component_vnum: New object field.
    • Help files: Fixed the information about the quest_triggered output in CHAR-VAR.
    • Load trigger: Vehicle load triggers now run when the vehicle is first loaded, even if being crafted. Previously, crafted vehicles didn't fire the load trigger until they were complete. This functionality has been split into "Complete" triggers; many load triggers were changed to complete triggers.

Patch b5.184: More Fish in the Sea (April 3, 2024)

  • Adventures:

    • 10965 Giant!: Small tweak to one of the hill giant's scripts to avoid a rare and meaningless script error.
  • Characters:

    • !Morph: New affect flag that blocks a character from manually morphing (or fastmorphing).
  • Commands:

    • Portal: Minor update to an error message for clarity.
    • Room interactions: Fixed an issue in the gen_interact_room system where actions used on ocean tiles that share data, such as fishing, would try to set depletions, which are not supported on this type of tile.
  • Content:

    • Water tutorial: Fixed the quest completion text in this new quest from b5.183.
  • Displays:

    • Beehive: Fixed the messaging when you tend/repair a beehive.
    • Mob stacking: Fixed an issue with restringed mobs stacking incorrectly if mob stacking is turned on.
  • Help files:

    • Gedit Flags: Added notes on which 'global' types support the adventure-only flag.
    • Portal: Minor text adjustment for clarity.
  • Islands:

    • Always-Dark: New island flag that makes outdoor tiles dark all the time.
    • Always-Day: New island flag that causes the sun to always be up.
    • Always-Night: New island flag that causes the sun to always be down.
  • Scripting:

    • Empire variables: Added add_diplomacy, remove_diplomacy, and has_diplomacy empire variables.
    • end_adventure_summon: Fixed a bug preventing this script function from working.
    • %log%: New script command allowing the script to log a message to the syslog, mortlog, or an empire's elog.
    • next_follower: Fixed a bug in detecting the next follower where it would skip immediately to the last follower.
    • Saving: Fixed a bug where changing the 'type' of a trigger did not update the list of trigger types on things with live copies of the trigger.

Patch b5.183: The Fiend Rises (March 23, 2024)

  • Adventures:

    • 12350 Hoarfrost Serragon: Fixed the text on the struggle instructions. Fixed a typo in its difficulty instructions.
    • 18000 Molten Fiend: Renumbered this adventure from number 281, updated the name, added a difficulty selector, reworked the fight, added new gear, and updated the equipment exchange system.
    • 18200 The Guild of Adventurers: The atlasian tortoise vehicle now gives a larger nearby range in its observatory. Added hints in Malfernes's quests on how to get back to him.
    • 18450 That Dammed River: Updated the help file with correct information.
    • Startup: The game now checks instances at startup and removes any whose adventure is set in-development.
  • Buildings:

    • Counts-as: Added new building relation properties, counts-as-bld and counts-as veh, which apply to the buildcheck command, progress goals, and quests.
  • Commands:

    • Buildcheck: Will no longer show basic guard towers or shipyards as missing when you have the upgraded version.
    • List: Fixed a minor display issue from b5.179.
    • Play: Fixed a b5.137 bug in the messages sent to the room when playing an instrument.
    • Rework: Items with the generic-drop flag can now be made superior with rework so long as you have the craft recipe.
  • Content:

    • Pole tutorial: Added a pole tutorial for scraping saplings.
    • Water tutorial: Added a tutorial to the gourd water bottle teaching how to drink and refill it.
  • Displays:

    • Partial icons: Fixed a bug in how partial icons for buildings were generated that caused several display issues including one where political/informative view showed too short an icon for a dock with 1 ship on it.
  • Help files:

    • Mountain paths: Added "mountain roads" as a keyword to the help file.
    • Obsidian: Added as a keyword to the rocks help file.
    • %slay%: Fixed the example in the help file to show real_name not current name.
    • Tips: Updated a tip that said seeded fields could only be removed with the Devastation Ritual.
  • Immortals:

    • Stealing: Immortals taking items from mortal rooms no longer counts as stealing, will not require the stealthable toggle, and will not log as theft. Immortals no longer require the stealthable toggle for any action.
  • OLC:

    • Adventure auditor: Fixed over-reporting of overlapping vnums.
  • Players:

    • Starting bonuses: The mana-regen, move-regen, and blood pool starting bonus traits are now based on your highest-ever level, not current level.
  • Scripting:

    • Bad scripts: Fixed an issue that would cause a crash when a while or switch statement uses 'end' instead of 'done' while nested inside another statement.
  • Vehicles:

    • Counts-as: Added new vehicle relation properties, counts-as-bld and counts-as veh, which apply to the buildcheck command, progress goals, and quests.
  • Website:

    • help-viewer.php: Fix for bad input processing.

Patch b5.182: Look At My Horse, My Horse Is Amazing (March 18, 2024)

  • Notes for EmpireMUDs:

    • Empire admin flags: This patch changes several traits of immortal empires to be admin flags (HELP EEDIT ADMIN FLAGS); existing immortal empires will automatically get these flags in this patch for consistency, but all future new immortal empires must set them manually. This patch also updates the free-newbie-move flag on existing empires.
  • Adventures:

    • 12350 Hoarfrost Serragon: Fixed the death log when a morphed player provides too much nourishment.
  • Bug fixes:

    • Formatter: Fixed a bug where running the formatter on allocated strings could result in trying to write off the end of the string in what appears to be an OLD bug. It was possible, rarely, to hit this bug in commands like 'affects'.
  • Commands:

    • Affects: Fixed an error where it always showed you as the caster of DoTs on the target.
    • Craft info: Fixed a missing comma when getting craft info on various lights.
    • Drive/Pilot/Sail: Better error message when you give it bad input such as a large number.
    • Look: Players can now look at their current mount or other active mounts in the room. Can also now look at mobs harnessed to vehicles. Looking at a vehicle now lists the mobs pulling it.
  • Configs:

    • New: immortal_empire_restrictions 1
    • New: immortal_empire_restrict_stealth 1
    • New: immortal_empire_restrict_war 1
  • Display:

    • Cities: Fixed a bug where the background highlight was incorrectly appearing on roads claimed by other empires, including chameleon roads you cannot see, when in your own city's outskirts. This also affected other buildings with large-city-radius flags. Also fixed a city highlight issue when a vehicle is on the tile.
  • Empires:

    • Admin flags: Renamed !WAR to NO-WAR, !STEAL to NO-STEAL, and !RENAME to NO-RENAME, for clarity.
    • All-Techs: New admin flag that gives an empire all technologies without the required buildings (this was formerly automatic for immortal empires).
    • Free-Needs: New admin flag that removes "needs" such as feeding workforce (this was formerly automatic for immortal empires).
    • Free-Newbie-Move: Renamed the did-newbie-move flag to free-newbie-move, inverting its purpose.
    • Free-War: New admin flag that removes war costs for or against the empire.
    • Ignore-Overages: New admin flag that prevents territory and city loss due to timeouts or overages (this was formerly automatic for immortal empires).
    • Immortal empires: Added configs and flags for the various existing restrictions on immortal empires.
    • No-Decay: New admin flag that prevents building and vehicle decay (this was formerly automatic for immortal empires).
  • Help files:

    • Generics: Improved OLC help files related to generics.
    • Share: Clarified sharing bound and unbound items.
  • Immortals:

    • Create: Added basic beeswax to the create command.
    • Reload: Added logs and warnings when reload fails for several reasons.
    • Vstat: Improved the hinting that there's more to show with "vstat -d".
  • OLC:

    • Fullsearch: Added fullsearches for adventure, archetypes, augments, and events. Fixed the repeat options in the quest fullsearch.
    • Lookup: Removed the b5.178 ".lookup" command, which sometimes conflicted with abbreviations of other editor commands, and is now covered by adventure fullsearch.
    • Triggers: Fixed a bug where deleting a trigger that's attached to a building prototype would cause a crash.
  • Players:

    • Blood: Added an extra check to ensure blood pools are never smaller than 1.
    • Equipment: Players can no longer equip items that would drop their health or blood pool below 1.

Patch b5.181: Memory/Food (March 16, 2024)

  • Abilities:

    • Room affect: This type of ability no longer works on basic ocean tiles.
  • Adventures:

    • 11800 The Tower Skycleave: Ashes of History: Typo fixes.
  • Bug fixes:

    • Building: Fixed a bug where starting to build a vehicle set the "original builder" data in the wrong spot. This patch includes an auto-repair for any extra data set on an ocean tile as a result.
  • Code updates:

    • Checkpointing: Prevent the checkpointing system from shutting the game down in the middle of a long "shutdown complete" sequence.
    • Intros: Fixed a minor issue where the index file for intro screens was never closed.
    • Ocean: Now blocks attempts to set a custom name/icon/description on basic ocean tiles, as well as other properties like "extra data", and will log an error message if it tries. "Shared" room data will no longer save on these tiles at all, to prevent accumulation of errors. Tracks can no longer be set on ocean tiles (they weren't, normally, anyway) but won't trigger an error.
    • Tips: Fixed a minor issue where the tips file was never closed.
  • Commands:

    • Give: Moved the trigger section back up to fix a b5.180 bug where some quests that use give/receive triggers no longer functioned correctly.
  • Content:

    • Foods: Added the new no-decay-in-storage flag to all processed foods (but not raw foods).
  • Immortals:

    • Invis: Added more info and keywords to the invis help file.
  • Objects:

    • No-decay-in-storage: New flag that pauses the object's timer while stored.
  • Scripting:

    • Variables: Fixed a bug from b5.180 that affected scripts using the %skill% getter and several others, including the Letheian icon.

Patch b5.180: Pyrops candelaria (March 8, 2024)

  • Abilities:

    • Over-time: Fixed an issue where the last message of an over-time ability was being suppressed by the action-spam toggle. Fixed an issue preventing over-time abilities from continuing through a reboot/shutdown.
  • Bug fixes:

    • Last IP: Added code to update a player's last IP address as soon as they're in-game to fix a bug where idling out or disconnecting would lose your current IP and revert to the previous one.
  • Code updates:

    • Autostore: Rearranged some code for forcing autostore, which was formerly part of the immortal autostore command.
    • Last IP/logon: Moved the data for a player's last IP and logon time to a place not shared with mobs.
    • Reboot/shutdown: Now log the start time of the reboot or shutdown.
    • World loading: Missing part of a world file is no longer a fatal error; it will simply attempt to load the rest. (It already allowed them to be missing entirely.)
  • Commands:

    • Abandon: Immortals using 'abandon' on other people's territory must now always type 'confirm' as the last argument.
    • Dismantle: Now allows an optional 'confirm' as the last argument to override no-dismantle.
    • Drag: Better error message when trying to drag items.
    • Drink: Minor fix to prevent a warning when an item has a custom drink message.
    • Give: Fixed the order of triggers and other checks in this command. An immortal giving an unscaled item to a mortal will now ensure scaling, too.
    • Lead: Mobs you are leading can now enter portals with you.
    • Tame: Better error message when trying to tame a mob that's being led by someone else. Now allows you to tame mobs you are leading.
    • Workforce: Fixed uncleared page display when there are no problems.
  • Content:

    • Shore: Added the missing magic-growth evolution for shore tiles.
  • Displays:

    • Death: The /death log will now say (unknown) instead of coordinates when in a location with no coordinates (e.g. Gobbrabakh of Orka).
  • Empires:

    • Auto-abandon: When tiles are auto-abandoned by workforce or by territory limits, they will now autostore first.
  • Help files:

    • Buildings: Added a note in the help files for buildings that cannot be painted.
  • Immortals:

    • Syslogs: Using alternate to switch characters or reconnecting with a "usurp"-type reconnect will now log the IP address.
  • Mobiles:

    • Custom corpse: Added a new field to mobs to give them a custom corpse.
  • OLC:

    • Map editor: Blocked icon, name, and description edits on the ocean, which does not support these properties.
  • Scripting:

    • Empty variables: Fixed a bug where trying to get a property from an empty variable resulted in whatever the previous replacement was. For example, if %obj% is empty, %obj.vnum% might have returned "mecho".
    • Get triggers: Getting an item from a vehicle, object, or room now ensures the item is scaled before get triggers run, rather than after. Rolled back a b5.161 change where get triggers were called during load actions (such as mining).

Patch b5.179.1: Who's counting? (March 1, 2024)

  • Code updates:

    • run_ability_hooks(): Made the limiter static so that storing it briefly to the character does not cause warnings or potential issues.
    • Map generator: Added code to prevent an out-of-bounds error that could happen with some map configurations.
    • Evolver: Adjusted the string sizes in two functions to prevent a warning about the size.
    • Playerfile converter: Added some code to the old beta-3 playerfile converter to prevent warnings that a variable could be accessed after it was freed. (It couldn't, but the code is styled after pasta and the compiler could not sort it out.)
  • Commands:

    • Who: Fixed the count of players online now, after breaking it in b5.179.
  • Immortals:

    • Missinghelps: Converted this to use the page_display system, which also removes some real old, real bad string-writing code.
    • Tedit: Converted this to use the page_display system, which also removes some old string-writing code.

Patch b5.179: Meeeeeeeeemories all alone in the mud light (February 29, 2024)

  • Note for implementors:

    • safe_snprintf(): If anybody has a compiler that does not accept the new safe_snprintf() macro, please let me know. If so, you can circumvent it by replacing the large "#define safe_snprintf(..." macro with "#define safe_snprintf snprintf".
  • Abilities:

    • Master Tracker: Fixed a bug where this could gain too much skill experience if used near a lot of players.
  • Bug fixes:

    • Book editor: Fixed a very minor memory leak.
    • Shipping: Fixed a memory error where shipping the last item in your local storage would reference the stored item prototype after deleting the reference to it.
    • String editor: Fixed a possible bug where over-length strings could have caused a memory error when saving.
  • Code updates:

    • act(): Now supports the TO_PAGE_DISPLAY flag to send messages to the target's page_display.
    • Buffer safety: Added buffer length checking to get_class_skill_display() and show_resource_list().
    • format_text(): Added support for wide formatting, improved commenting, and fixed many places that called this function. Also renamed the script formatter's FORMAT_IN_x consts to avoid confusion with FORMAT_x consts.
    • msg_to_char(): Changed char_data pointer arg to a const char_data pointer.
    • send_to_char(): Changed char_data pointer arg to a const char_data pointer.
    • show_quest_tracker(): Merged with show_tracker_display().
    • snprintf(): Replaced 1500 uses of snprintf() with a new macro, safe_snprintf(), which checks the result as required by newer compilers (and recommended by older ones). There are an additional 186 snprintf() functions to replace that will require more work.
  • Commands:

    • !: Fixed a bug in the exclamation mark where it did not accept 1 of your recent commands even when that command is definitely still in the command history.
    • !!: New feature where you can view your command history by typing two exclamation marks.
    • Buildcheck: Now displays in columns.
    • Conjure: Added column view.
    • Elog: Applied the new page_display system so elogs shouldn't overflow. Also limited the number of lines it can return.
    • Morph: Now shows 3 columns instead of 2.
    • Page Display: The following mortal commands now use the page_display system for pagination: affects, alias, alt list, bookedit, buffs, buildcheck, cast, chant, coins, companions, conjure, craft/build list, drink, eat, efind, einventory, elog, empire (list, details), equipment, events (leaderboard, recent, reward), factions, findmaintenance, friends, helpsearch, home, import/export, inventory, lastname, learned, library, list, look (at character, in object/vehicle), messages, minipets, morph, mount list, mudstats, nearby, offenses, plant, portal (list), progress, quest, ready, ritual, roster, score, ship status, skills, socials (list), speak, steal, tomb, trade, warehouse, workforce (chore, keep, limit, near, where, why), where, and who
    • Ready: Added column view.
    • Score: This command can now use the paginator when it's long.
    • Summon: Added column view.
    • Where: Viewing unusually high number of players can now trigger the paginator on this command, using the page_display system.
  • Content:

    • Astral Cartography: Typo fix in the progress description.
    • Trapper's posts: Added "desert" and "jungle" to the names of two of the trapper's posts so they don't all share identical names on commands like "buildcheck".
  • Displays:

    • Columns: Displays that use columns may now be slightly wider when the player has a NAWS-capable client and is using a wider window. Fewer displays will show in columns for screen-reader users as most of these are now routed through 1 function which does not show columns to these users. Most column displays also no longer have trailing spaces at the end of each line.
    • Page Display: Wrote a new page_display system for collecting lines and building long displays for the paginator without overruning any buffers.
  • Immortals:

    • Page Display: Updated the following immortal commands to use the new page_display system: automessage, config, instance (list, nearby), stat, util islandsize, vnum, vstat, where
    • Show: Show libraries now shows owners and a total. Fixed a bug where show currency didn't work correctly on offline players; merged code for show currency with the coins command. Added columns to the displays for buildings, minipets, mounts, and site. Added vnum to show ammotypes. Applied the page_display system to: ammotypes, author, buildings, companions, components, crops, currency, dailycycle, data, droppeditems, editors, factions, friends, homeless, ignoring, inventory, languages, lastnames, learned, libraries, lostbooks, minipets, moons, mounts, oceanmobs, piles, produced, quests, spawns, site, startlocs, storage, subzone, terrain, tools, unlockedarchetypes, and uses.
    • Stat: Now shows the next timeout check on "stat empire" (this is the time when the next member is estimated to time out). Added macros to "stat sector" where direct variable access was used instead.
    • Vnum: The output from this command is now paginated with the new page_display system.
    • Vstat: Books now support -details view on vstat.
  • OLC:

    • Columns: A few editors gained column displays, especially for affects.
    • Page Display: Converted all olc views and the fullsearch, list, and search commands to use the new page_display system.
  • Players:

    • Command history: Increased the size of the command history from 5 to 20 and improved how it cycles commands, especially when using the "!abbrev" syntax to repeat specific ones from the history.
    • Sector editor: Added macros to the sector editor, which was missing them.
  • Website:

    • Map viewer: Immortal-owned cities can now show on the map viewer. I'm not certain why there were excluded before.

Patch b5.178: Bug-Hunting (February 21, 2024)

  • Notes for implementors:

    • Evolver: This patch contains changes to the evolver, a separate tool used to check for map updates. Reboot your MUD as soon as possible after compiling this patch to avoid having it send the old version of the command to the new evolver.
  • Adventures:

    • 128 Colossal Red Dragon: Added a distance limit to keep them from spawning on top of each other.
    • 10980 Renegade Spellcaster!: Can now spawn on forest tiles, too.
    • 12400 The Golden Goblin: NPC followers and companions can now pass the mobs in the underwater maze if their player can. Added the keyword "goblin" to the two mobs who were missing it.
    • 18300 Pyramid: Hidden Chamber of Neferkare: The bandages now quit when you're dead.
    • Various: Applied the new avoid-buildings mob flag to many wandering adventure mobs.
  • Buildings:

    • Ruins: When a building hits double its maximum damage, it will always fall into ruin. Previously, the 50% chance to ruin each year could keep a building alive 10x longer than expected.
  • Code updates:

    • find_city(): This function now works for tiles with the large-city-radius flag, too.
    • is_outdoor_room(): New function replacing the IS_OUTDOOR_TILE() macro.
  • Commands:

    • Deposit: Fixed the error message in a vault you can't use.
    • Enchant/augment: If an augment requires an object, it now works even when that object is equipped.
    • Equipment: Abbreviating the name of an existing equipment set when re-saving the set now gives the correct name of the set you saved. Also fixed an issue where "remove" triggers were not firing when using the equip command to swap gear sets. Add "equipment summary" (eq -sum) for a summary of stats from gear.
    • Findmaintenance: Fixed a bug in grouping the tiles that was causing it to show too few.
    • Identify: Now shows if a vehicle has climate requirements.
    • Morph: If a morph requires an object, it now works even when that object is equipped.
    • Ship: Fixed an issue where having 0 of something left would cause an unexpected error trying to ship.
    • Territory: Fixed a bug in grouping the tiles that was causing it to show too few.
  • Content:

    • Resources: Added resource keywords to all scrape- and saw-able items so they only auto-repeat on the same type of item. Previously, saw would auto-repeat from regular trees to enchanted ones on its own.
  • Displays:

    • Cities: Fixed which city is shown as the owner of a tile when using look or survey. Previously it could show a smaller city whose center is closer even if you're within the radius of a larger city that's slightly further.
  • Empires:

    • Auto-abandon: Added an elog when auto-abandon runs due to all members being timed out.
    • Timeouts: Fixed a bug where the next-timeout system never stored a time and thus never activated.
    • Workforce: Fixed a bug in "workforce keep" from b5.176 or b5.177 that was losing keep settings.
  • Evolver:

    • Crops: The evolver now loads crop data.
    • Unwatered crops: The evolver will now remove crops that require water but no longer have it.
    • Water distance: The "water_crop_distance" config is now passed through to the evolver.
  • Immortals:

    • Aggro mobs: Immortals are no longer ignored by aggro mobs unless they are set no-hassle or are invisible.
    • Drop: Fixed an issue where immortals could not drop (or put) bound items in a claimed room.
    • Manage: Immortals can now use manage on tiles they don't own. This will result in a syslog.
    • Reboot: Fixed a bug where using the "reboot" command with no arguments to check shutdown status would change the shutdown type from die/complete/pause to normal.
    • Slay: This command can now target yourself if you add a "confirm" argument at the end.
    • Stat: Now supports the -details option. Updated its out-of-date help file, too.
    • Vstat: Added support for the -details option to more types.
  • Mobiles:

    • Avoid-Buildings: New mob flag that causes the mob to avoid entering buildings. Applied this to many existing mobs.
  • OLC:

    • Lookup: Added a new OLC utility, .lookup, to show which adventure a given vnum belongs to.
    • Refresh companions: Added a new OLC utility, .refreshcompanions, which pushes updates to the script list on one or more companion mobs out to all players who have the companion. Also added an OLC control flag for it.
  • Scripting:

    • Dead: Added %ch.dead% getter.
    • Hassle: Drop, give, and remove object triggers now ignore immortals with hassle off.
  • Vehicles:

    • Outdoors: Being on the deck of a ship (or a similar open room of a vehicle) now counts as being outdoors if the vehicle is outdoors.

Patch b5.177: Little Fixes Everywhere (February 19, 2024)

  • Abilities:

    • Basic Crafts: Added a "cord rope" recipe for turning basic cordage into ropes, although there are not currently any basic cord items available.
    • Boost: Fixed the amount of dodge from boost, and improved the numbers from boost slightly for all traits.
    • Buffs: Added a flag for the buffs command; only abilities with the flag will appear on the command (rather than all buffs). Applied this flag to the appropriate abilities.
    • Level: Fixed a bug from b5.176 that limited all abilities to level 100 or lower.
    • Master Survivalist: Fixed a bug where this affect was not being removed when it triggered and could cause multiple auto-resurrects within the 15-second timeframe.
    • Phoenix Rite: Fixed a bug where this affect was not being removed when it triggered.
    • Shimmering Anvil: Fixed the messages (it was sending an unnecessary default message).
  • Adventures:

    • 51 Trade Tutorial: Museum of Early Man: Now accepts any type of rope.
    • 10950 Viscous Muck Dragon: Small fix for the Burrow Charge trigger when the player is no longer in the room.
  • Commands:

    • Buffs: Restricted which abilities show up on the buffs command.
    • Exchange: Prevented minor rounding errors, for example when exchanging 3 miscellaneous coins for 1 empire coin. It will also now infer the word "coins" if you don't type it.
    • Inventory: No longer shows empire inventory available if the building is incomplete (as part of a larger fix for checking if an object can be stored at a given location).
    • Look: Fixed a bug where look-in-direction could show invisible and hidden mobs.
    • Movement: Fixed bugs in b5.176's updates to riding/dismounting while moving.
    • Saw: Moved the timer setting to a new config and also sped it up.
    • Scrape: Moved the timer setting to a new config and also sped it up.
    • Workforce keep: Can now target any storable items, not just ones currently in storage.
  • Config changes:

    • New: log_eof_on_socket_read 0
    • New: saw_timer 8
    • New: scrape_timer 4
  • Content:

    • Coffee: The coffee cherries from forage are now called "bright red berries" to distinguish them from the generic red berries.
    • Fortifications: This progress goal now requires Walled Town before it appears.
    • Mine: Fixed the base name on the mine.
    • Mining tutorial: Corrected the text regarding mudstats time.
    • Salterns: Added missing "dig" command to the commands line.
  • Crafts:

    • No-Buildcheck: New craft flag blocking it frmo appearing on the buildcheck command.
  • Empires:

    • Name: Commands that match an empire name will now automatically accept the name without a leading "the", "an", etc; for example, "The Kingdom of Fire" will accept "kingdom of fire" as an abbreviation.
  • Help files:

    • Designate: Added a castle note to the laboratory.
  • Immortals:

    • Enroll: Immortals can now use enroll on other empires by typing the name of the empire as the first argument.
    • Expel: Immortals can now use expel on other empires by typing the name of the empire as the first argument.
    • Show: Now includes the show function name in error messages to help you be sure you're using the right one.
  • OLC:

    • Buildings: When saving a building, first removes it from all empires, then saves, then re-adds it, to ensure techs and progress goals are correctly updated.
    • Undeplete: New mapedit tool for removing depletion.
    • Vehicles: When saving a vehicle, first removes room traits and removes it from all empires, then saves, then re-adds it, to ensure lights, techs, and progress goals are correctly updated.
  • Progress goals:

    • Own-Roads: New requirement type for progress (and quest) tasks. This counts real roads as well as completed buildings that use road icons (Steps, Bridge, Mountain Path, Swamp Walk, and Boardwalk). Updated road goals with this.

Patch b5.176: Fixes, Tweaks, and Updates (February 18, 2024)

  • Abilities:

    • Experience gain: Fixed a bug where activated abilities were triggering ability gains twice in the new ability engine.
    • Heal Party: Added the missing "pulse" message when using this on a single target.
    • Levels: Fixed an issue where players below skill level 100, but above total level 100, could use abilities above level 100 and, for example, ready blood weapons of a level they couldn't use. Updated the "ability levels" help file with an explanation.
    • Limitations: Fixed the message on the target-is-human limitation.
    • Messaging: Added quotes around the affect name on the default messages for affects like 'pulsified' that can't be used again until they wear off. These now support custom messages, as well. Added one-at-a-time messages to Counterspell, Vigor, Ritual of Defense, Chant of Illusions, Pulsify, and Shimmering Anvil.
    • Resurrect: Fixed messaging, which previously showed a NULL when targeting an object.
  • Adventures:

    • 104 Magiterranean: Permafrost: Minor script fix to prevent a rare error.
    • 201 The Cursed Chalice of Mill Manor: Added better error messages when trying to use the locked hex box.
    • 10370 An Uninvited Guest: Minor script fix to prevent a rare error.
    • 12600 Elemental Escape: Minor fix for the water elemental's struggle. Added the "light" flag to the apprentice to make him easier to see/use in the dark.
    • 12650 Magiterranean: The Grove: Added the flag to hide the real name of morphed NPCs. The grove now clears the "breath" variable from players as they enter, to prevent most cases where the player can die with low breath remaining in the water portion, come back in, and get the "take a breath" message as soon as they get near the water section again.
    • 18500 The Lost Temple: Script fixes to prevent rare errors especially if the player has left the room.
  • Bug fixes:

    • Mines: Ensure mine data has been initialized when you finish building a mine, fixing an issue where it can end up without mine data if there was a world reset before it was finished.
    • Mounts: Improved how/when it runs autodismount to prevent it from letting the player enter a tile that would autodismount them and then allow them on a tile they shouldn't be able to enter, such as a water tile.
  • Commands:

    • Buildcheck: New command tells you what buildings and vehicles your empire is missing.
    • Designate: Now gives a better error message when the user picks a direction that isn't available.
    • Forage: Now works while sitting.
    • Gather: Now works while sitting.
    • Help: Now trims trailing spaces from help requests.
    • Mount: Added a short wait when using "mount swap". Fixed a bug where you could mount in places you can't be mounted (it would allow it, but then almost immediately dismount you).
    • Library: Fixed the error messages, which were out of order and showing the wrong thing when you tried to use a library without permission.
    • Light: Lighters with the (keep) flag can now be used, even if it would use them up. Blocking kept lighters from being used was making it difficult to use keep to prevent dropping them.
    • Pick: Now works while sitting.
    • Score: Improved how hunger and thirst are shown. Prevented them from being shown twice in some cases where they appeared in the affects section, too.
    • Scrape: No longer shows the "you scrape at" message on the final scraping tick, to cut down on the number of messages you get at once when you finish scraping.
    • Smessages: Fixed an issue where NPCs trying to use this command would trigger a code warning because the NPC check was too late in the function.
    • Track: Fixed a bug where tracking players wasn't working correctly.
    • Workforce: Split the code for 'workforce keep' out into its own function. Typing 'workforce keep' with no argument will now list keep settings for the island. Empires will no longer lose "workforce keep 0" settings when keep is set to 0 and default keep was set to something else (sorry, Geras).
  • Content:

    • Amazing reward box: This item is now BOP.
    • Fibers: Added custom building messages to some fiber items.
    • Furniture: Added the new "tiny" flag to all furniture so that it can now be dragged again.
    • Handful of seeds: Fixed the one type of seed that did not store in the seed silo.
    • I Dream of Weirdwood: Added an explanation for how to get an enchanted oasis on this progress goal.
    • Poles: Added custom building messages to basic poles. Renamed the "sapling or pole" component type to "crude pole" to avoid confusing information on identify for both saplings and poles.
    • Salt: Increased the amount of salt produced in salterns and salt mines each year.
  • Displays:

    • Hunger/thirst: Now shows slightly more granular hunger, thirst, drunk, and blood-starved text on commands like affects and score. Eat and drink now also show how hungry or thirsty you are when typed with no argument.
    • Swimming: Added warning text when you are running low on movement points while swimming.
  • Empires:

    • Workforce: Production and crafting chores that produce food no longer cost food (similar to farming and fishing, except these still shut down when starving).
  • Help files:

    • Fire: Added a disambiguation note to see "cooking fire".
    • Shipping: Fixed "minytes" typo.
    • Solo: Clarified how the solo role works.
    • Synergies: Clarified how the solo role affects synergy abilities.
  • Immortals:

    • Show: Increased the buffer size on "show learned" and removed the craft type from the output. Show lostbooks now shows the full name of the author, not the lowercase short name. Updated "show spawns" to show more places a mob can spawn. "Show inventory" will now indicate which entries are empires rather than players.
    • Stat: Updated how icons are shown on the stat/vstat command to centralize code and give better previews.
  • OLC:

    • Icons: Updated how icons are shown in OLC menus to centralize code and give better previews.
  • Players:

    • Affects: Changed when affect timers are converted, ensured the timers are saved correctly, and ensured they're schedule for a valid expiration time on login. Also repaired players with bad affect timers. Affects no longer change order when quitting and re-entering the game.
    • Swimming: Players who are swimming without a swimming ability (that is, in the water without a canoe or mount) now lose movement points faster.
  • Vehicles:

    • Tiny: New vehicle flag allows the vehicle to be made/dragged/moved in locations that otherwise would not allow vehicles.

Patch b5.175: Vehicular Features and Bug Fixes (February 14, 2024)

  • Important Notes:

    • Autorun: This patch updates the game's autorun script to clean up excess core files. For autorun changes to take effect, existing EmpireMUDs must do a full "shutdown die" to kill the existing autorun, then start up the autorun again after updating.
    • Canoes and carts: This patch helps the game more reliably put characters back on their carts or in their canoes when they quit on/in one. However, players saved before this patch will be missing the data that enables this and will enter the game standing.
    • New code file: This patch adds act.show.c to the code. Existing EmpireMUDs need to re-run the configure script to generate a new Makefile, or import act.show.c from Makefile.in manually.
  • Adventures:

    • 129 A Gigantic Nest: The nesting materials craft now accepts poles, in addition to saplings.
    • Instancer: Fixed a 9-year-old bug in the instancer that could purge mobs from other adventures when spawning an instance of any adventure on the tile where the mob is. This accounts for occasional missing colossi and dragons over the last decade.
    • Vehicles: Applied new half-icons and quarter-icons to adventure vehicles that need them. Updated the ruins on some adventure vehicles with new smaller ruins.
  • Bug fixes:

    • Spawning: Fixed a minor issue where spawning mobs in vehicles appeared to run twice in a row despite not being able to spawn twice.
    • Storage timers: Fixed a bug where data from a storage timer was used after being freed.
  • Buildings:

    • Icons: Added support for smaller building icons. If vehicles are on the same tile as the building, the game can now show a smaller building icon and one or more vehicles.
    • Show-vehicles: New building flag that allows a vehicle to be shown when on an open building tile.
  • Code updates:

    • Adding rooms: Centralized code that adds a new room to an existing building or vehicle. This also fixes a minor bug where scripts adding a room never called the complete trigger on the room. This completes a todo item from 7/14/2016.
    • Autorun: The game's autorun will now save only the oldest and 4 newest core files, and delete any others, to prevent the unlikely but dangerous situation where repeated crashes could fill up the storage drive and prevent the game from saving files.
    • Building techs: Changed how techs (docks/seafaring), fame, military, and population are added for buildings/rooms. This allows these traits to move when a ship moves onto or off of an island. The most noticeable effect will be that an island's population count now includes the population of vehicles that are on it, for vehicles that NPCs can live inside.
    • Empire techs: Renamed the 'techs[]' string array 'empire_tech_types[]' for clarity in the code.
    • search_block_int(): New function similar to search_block() but for integer lists with the NOTHING constant as a terminator. Updated techs_requiring_same_island to use this.
    • Show command: Moved the 3700+ lines of the show command (and its functions) to a new file, "act.show.c", (from act.immortal.c).
  • Commands:

    • Build: Will no longer auto-herd animals that have the sentinel or aggressive flags.
    • Chart: Added type-safety on territory counts.
    • City: Added "city survey", which shows if the area around you might be good for a city.
    • Craft info: Now shows more details about vehicles including size, speed, fame, animals required, and capacity. Buildings will show rooms and fame.
    • Customize: When customizing a vehicle, now shows the name at the end of the long description in more cases.
    • Dismantle: Updated when citizens are evicted during a dismantle command to prevent showing the player a bunch of "Name is ejected" and/or "Name leaves" messages for citizens that were not already in the same room as the person starting to dismantle.
    • Drink: Fixed some issues with trying to drink from a vehicle that has the drink-water flag. Added such vehicles to the display when you type "drink" with no arguments.
    • Identify: Fixed an error in showing the timer and added more information on items with long timers.
    • Islands: Now shows citizen count, too.
    • Learned: Fixed an error from b5.174 that removed all but 1 learned entry per line.
    • Survey: Added "survey city", identical to "city survey".
    • Territory: Updated the back-end of this command and its display to be able to group multiple results on the same tile better. Also reduced how much it groups territory.
  • Content:

    • Bread: Added the adjective "good" to the common loaf of bread so it has a distinct keyword from other loaves.
    • Chickens: Removed the egg-laying script from the wandering chicken that spawns in cities.
    • Flour: Removed the decay timer from all flour components, including cornmeal.
    • Handful of kernels: Now stores at the seed silo.
    • Heroic galleon: Fixed the main interior room, which was using the generic "On Deck" rather than the one originally created for this ship.
    • Oils: Removed the decay timer from all oils.
    • Ruins: Added more types of vehicle ruins for different vehicle sizes. Updated vehicles that needed these new ruins instead of the old large ones.
    • Salterns: Fixed a typo in the description.
    • Shipping: The icons for ships used for shipping are now gray/dark-white.
    • Vehicles: Applied new half-icons and quarter-icons to basic vehicles that need them.
  • Displays:

    • Informative: Fixed a bug in how vehicles detect when they have minor or major disrepair, which was showing incorrectly. Vehicles now correctly show when public.
  • Empires:

    • Cities: Removed population and military traits from city data; these were never used.
    • MSDP: Can now slightly delay MSDP updates for empire members (usually regarding claim counts) to avoid doing this several times in a row when a vehicle with an interior is claimed or abandoned.
    • Population: Fixed some population counts. NPCs living in vehicles now count toward population; no longer counts island population when not on an island.
    • Vehicles: Empires can now attach citizens and artisans directly to vehicles, track them, spawn them, and manage them like other citizens.
    • Workforce: No longer runs vehicle-related chores when the vehicle is not on any island. Fixed a recent bug where production was over-charging food including on cycles where nothing happened.
  • Events:

    • 18800 Halloween of the Dead: Removed the ruins from the corpse wagons. These should not have had building-style ruins.
  • Help files:

    • Architect: Added a note on how to gain experience.
    • Buildings: Added a help file explaining types of buildings and how to enter them.
    • Vehicles: Updated the information about where vehicles are displayed and added boarding information.
  • Immortals:

    • Ruins: New help file with a list of basic ruins, to help with building.
    • Show: Updated and moved show command code. Revised the help file text. Added shipping counts, territory counts, population, and techs to show islands.
    • Util: Removed the old 'b318buildings' utility, which detected flags that were removed many years ago and have since been replaced, causing it to give false positives.
  • Vehicles:

    • Abilities: Player abilities targeting vehicles will now save and resume more reliably when the player logs out or the game reboots.
    • Artisan: Vehicles now have an artisan field, like buildings.
    • Citizens: Vehicles now have a citizens field, like buildings.
    • Handling: Updated how and when vehicle technologies, population, fame, and military are applied to empires and islands. This can now better handle things like docks, if they were applied to a movable (or non-movable) vehicle.
    • Icons: Added support for smaller vehicle icons. The game can now build icons with multiple vehicles if they support smaller icons.
    • Identify: Hid the no-building and no-load-onto-vehicle flags when identifying a building-type vehicle that has them; they're common and should go without saying in this context.
    • Idnums: Vehicles now have permanent idnums when loaded/built. Vehicle script ids are now reboot-safe as a result.
    • Ownership: Changed the ownership text when looking at a vehicle if it has the "building" flag.
    • Players: Can now more reliably put a player back into/onto the correct vehicle, such as a canoe, when they quit in/on one, including a fix for people sleeping on a sleep-only vehicle.
    • Shipments: If a vehicle is somehow extracted or abandoned while holding a shipment, it will deliver it first, rather than lose it.

Patch b5.174: Libraries, Taverns, Druids, and Time (January 28, 2024)

  • Adventures:

    • 16000 Invasion of: The Goblin Necromancer: Long bones now have their own component type. Crushed skeletons can no longer be stored.
    • Druids: Converted all references to druids to manaweavers, nature mages, or similar. See HELP DRUID.
  • Books:

    • Library data: Library data is now in its own table, not tied to the book prototypes. It is no longer saved in the book files and now has its own data file. All related code was updated. Players should not see a change.
  • Bug fixes:

    • Coins: Fixed an recently-discovered but truly ancient bug where spending the last of a type of coin could lead to errors.
  • Characters:

    • Hunger/thirst: Changed the 50% chance to gain hunger and thirst each hour to a 66% chance to reduce the randomness of it a little.
  • Code updates:

    • Annual world update: Separated the maintenance and depletion reset from the actual cycle of the year; it is still set to "every 7.5 real days" by default. This includes new and changed config options. This update also no longer has a chance to knock players down.
    • Config: Cleaned up the deprecated-configs section of config.c.
    • Hunger/thirst/drunk: Updated some places where these were magic-numbered in the code; they now depend on the length of game hours.
    • Odd compiler warnings: Spent some time updating code that emits warnings on some compilers before determining some of them cannot be accommodated without big code updates; recommend instead to compile with -Wno-format-truncation, -Wno-format-overflow, -Wno-stringop-truncation, and -Wno-unused-result.
    • Time settings: Will now assert at startup that the length of a game hour is even divisible by the length of a real update, as several things rely on this.
    • Yearly maintenance/reset: In all places, including buildings and vehicles, "yearly maintenance" is now called "regular maintenance" and "yearly reset" is now referred to as the "world reset" or "reset cycle".
  • Combat:

    • Burning buildings: Burn-down time is now linked to building hitpoints.
  • Commands:

    • Mudstats: "Mudstats configs" now show how long game hours/days are. Added "mudstats time" for time left until the daily reset or maintenance reset.
    • Plant: Changed the "planting_base_timer" config from real seconds to game hours to support varying time settings.
  • Config Changes:

    • Changed default: planting_base_timer 192
    • Changed default: prospecting_workforce_hours 30
    • Deprecated: burn_down_time 600
    • Deprecated: newyear_message The ground under you shakes violently!
    • New: planting_workforce_timer 24
    • New: world_reset_hours 180
    • New: world_reset_message The ground under you shakes violently!
    • Update: "imports_per_day" now represents imports per 30 minute cycle. Its text was updated but name is left the same.
  • Content:

    • Chant of Magic: Renamed the Chant of Druids and gave it all new text.
    • Druids: Converted all references to druids to manaweavers, nature mages, or similar. See HELP DRUID.
    • Egg: Now a "white egg" to ensure it has a second keyword.
    • Library: Added a script to libraries that allows 'browse', 'checkout', and 'shelve' to be used without typing 'library' first.
    • Rice: Fixed the rice recipe, which only required 2x (grain) and could be made with any of them before.
    • Taverns: New scripts allow the tavern to sell its barrels to guests.
  • Crops:

    • Lock-icon: Added this flag, same as the one available on sectors, for locking crop icons.
  • Displays:

    • Lasts longer when stored: Removed this text from inventory/room lists of items; it wasn't intended to appear there.
  • Empires:

    • Guard towers: The base timer on the arrow-to-the-knee effect is now 1 real minute instead of 1 game hour.
    • Imports: Now processes imports every 30 real minutes rather than every 24 game hours.
    • Shipping: Now updates every 10 real minutes rather than every 6 game hours.
    • Storage: Now tracks storage timers even if decay in storage is turned off (stored items will still retain their time when stored).
    • Theft logs: These are now checked once per real minute rather than once per game hour. They still have a 5-minute delay on the theft logs.
    • Workforce: Added a minimum amount per hour to fire brigade so unusual time settings don't result in no fire being extinguished. Workforce cycle is now 75 seconds and offset by 1 second from game hours. Updated workforce to consume food and report needs once per 30 minutes rather than if it's 8pm during a workforce cycle (which was causing occasional skips with 76-second cycles). Empires now run their workforce needs and logs on separate cycles rather than all on the same one. Added a config for how long it takes crops to grow after the workforce plants them (equal to the existing 1-day hard-coded timer). The prospecting_workforce_hours config is now in real hours, not game hours.
  • Islands:

    • Always-light: New island flag available.
  • Scripting:

    • Char-var: Updated this help file to indicate hunger/thirst/drunk are measured in hours.
    • Emp-var: Fixed a typo in this help file where "adjective" said "adj" instead.
  • World:

    • Evolver: Now runs every 30 minutes instead of once per game day.

Patch b5.173: The Newbie Relocation Project (January 23, 2024)

  • Existing EmpireMUDs:

    • Conflict: On all my ports, the game_configs file conflicted when I applied this patch due to "rogue_flag_time 1440" being in the wrong place alphabetically. When resolving this conflict, the 3 lines in that area should default to: "pk_mode b", "pvp_timer 5", "rogue_flag_time 1440".
    • Newbie Islands: Any empire with storage on a newbie island and a city elsewhere will have their newbie island inventory transferred automatically to their main island as they trigger the new "one free move" system automatically.
  • Abilities:

    • Ability info: Hid the cooldown line when there is no cooldown.
    • Sanguine Restoration: Adjusted the amount of healing again, this time based on percent of health consumed.
  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Removed decay timer on the vigilant vines object.
    • 12400 The Golden Goblin: Can no longer drink blood from Scylla.
    • 12650 Magiterranean: The Grove: Minor text update to avoid whispering into the air underwater.
    • 18300 Pyramid: Hidden Chamber of Neferkare: The pharaoh's bandages now respect that the character has left the room.
    • Foods: Some adventure food recipes now require Gourmet Chef, require salt, create level 100 food, and create food that does not expire. This was applied to: steamed mussels, ironbread, fruitcake, dragon roast, roast goose, and cranbread.
    • Various: Most adventure tokens will now show what adventure they come from on the 'coins' command.
  • Code updates:

    • check_nowhere_einv(): Renamed this function to check_einv_auto_move() to reflect is broader scope.
    • Taverns: Removed all of the tavern and tavern-related code and replaced it with a progress/workforce-based solution that's much easier to add to.
  • Combat:

    • Player-killing: Moved the setting for PK mode to the config system and added more options.
    • Speed: Fixed a bug where it did not take disarm into account for attack speed.
  • Commands:

    • Circle: Now cancel running when you circle, rather than corrupting the path.
    • Disembark: Fixed a bug where you could not disembark on an incomplete building, even an open one, as it was incorrectly detecting it as an unfinished interior room (like a tunnel).
    • Douse: Now correctly triggers the 1-USE flag and consumes-to interactions on drink containers when used to douse.
    • Drag: Added standard vehicle movement validation to drag to prevent dragging vehicles into buildings they cannot go in, such as dragging a solar barge into a house.
    • Drink: Drinking from a 1-USE drink container will now prevent it from being stored.
    • Drive: Fixed a bug where you could not drive into open buildings when incomplete.
    • Fill: Filling something from a 1-USE drink container will now prevent it from being stored.
    • Home: Can now list homes in the empire.
    • Inventory: Added -b for bound, -u for unbound, -# for first # items. It also now allows multiple options if they're before the search keywords.
    • Look: Will show the name of a building when possible, when looking in the direction of a building.
    • Mudstats: Added a "configs" option that shows some critical game configurations to players.
    • Pledge: Updated the messages and elogs when a player pledges an entire empire.
    • Pour: Now correctly triggers the 1-USE flag and consumes-to interactions on drink containers when poured out. Pouring part of the contents from a 1-USE drink container will now prevent it from being stored.
    • Quest: Now accepts the number-dot-name syntax for looking up completed quests with identical names. Now shows if quests are available when you use "quest list". The "quest" command with no arguments now hides the usage line when you toggle tutorials off.
  • Config changes:

    • Deprecated: potion_apply_per_100
    • Deprecated: potion_heal_scale
    • Deprecated: tavern_brew_time
    • Deprecated: tavern_timer
    • New: autoreboot_minutes 0
    • New: pk_mode b (war-only)
    • New: reboot_warning_minutes 15
  • Content:

    • Beekeeping: This progress goal now also adds mead barrels to the tavern workforce list.
    • Disenchant Trinkets: Added the in-city-only flag to this quest due to its location.
    • Feasts: Fixed an error in b5.170 where feasts had their timers increased as if they were portable or storable foods.
    • Foundations: No longer grants the Tavern building.
    • Smoked fish: Fixed craft name.
    • To the Tavern When the Job's Done: A new progress reward that gives the tavern building, the barrel craft, and workforce crafts for the barrel, ale, lager, wheat beer, and cider.
  • Displays:

    • Exits: Now accepts the hide-real-name flag when showing custom room names on exit lists.
    • Pursuit: Now shows a message when a mob attacks a character due to pursuit.
  • Empires:

    • First city: When an empire founds its first-ever city, any items stored on a newbie island will automatically transfer to the island of that city. This one-time move can be reset by an immortal with "eedit empirename adminflags".
    • Imports: Adjusted price rounding in the import/export system to try to fix slightly-off prices.
    • !Rename: New admin flag that prevents an empire from changing its name or other text.
    • Warehouse: Drink containers can now be stored with contents. If the contents expire, they will expire at the empire's warehouse on the island or be lost if there isn't one.
  • Events:

    • 10700 Winter Wonderland: Geese now give goose meat specifically rather than raw poultry generically. The roast goose recipe is now a Gourmet Chef recipe.
  • Generics:

    • Show-Adventure: New flag for currencies and languages that will show the adventure of origin on coins/speak.
  • Help files:

    • Root Cellar: Clarified that it stores some fruits.
    • Sense Life Ritual: Fixed the usage line.
  • Immortals:

    • Config: Minor improvements to the config display for complex types like who_list_sort and lastname_mode.
    • Reboot/shutdown: Big updates to this system including a "cancel" command, better control over modes, config options for auto-rebooting and messaging, and some code cleanup.
    • Restore: Now clears deficits when restoring h/m/v/b.
    • Show currency: Updated this display to put vnums at the start similar to the 'coins' command.
    • Show editors: New show feature for seeing who's editing what.
    • Stat: Now shows the vnum of the original mob or ID of the original player when statting a corpse.
    • Vnum: Now lists available types when an invalid type is given.
    • Vstat: Now lists available types when an invalid type is given.
  • Mobiles:

    • Morph: Now preserves mob morphs through a reboot.
    • Pursue: Mobs now track the animal morph and disguise of the player they are pursuing and can be fooled by changing them unless over-leveled. Fixed how player tracks are checked (mobs were having trouble following them).
  • Objects:

    • 1-Use: This flag now prevents fill/pour-into on drink containers.
  • OLC:

    • Flags: Widened the display of the flag editor interface to fit slightly longer flags.
    • Mapedit decay: Can now target vehicles.
    • Resources: Fixed columns on the resource display in OLC (and vstat) and removed columns and truncation for screen-reader users.
    • Types: Widened the display of the type picker interface to fit slightly longer types.
  • Players:

    • Home storage: Drink containers can now be stored with contents. If the contents expire, they will expire at the home's location or be lost if there isn't currently a home.
  • Quests:

    • In-City-Only: New quest flag restricting the start/finish of the quest to in-city locations.
  • Scripting:

    • %build%: Can now complete or decay a building, too.
    • Empire vars: New empire getter %empire.has_storage(vnum,location)% that returns the number of something the empire has stored on a given island. Added %empire.charge_coins(amount)% and %empire.give_coins(amount)%.
    • empty: Using %obj.empty% to empty a drink container will now check its 1-USE flag and timer.
    • Room vars: New %room.has_evolution(type)% getter and %room.is_on_map% getters.
    • %load%: Consolidated the code for loading books from b5.169 and added the ability to load from empire inventory.
    • %mod%: Added magic-growth as an option for rooms.
    • Random: The %random.ally% and %random.enemy% functions now skip mobs that cannot be attacked, like mini-pets.
  • Socials:

    • Annoint: New social requiring oil.

Patch b5.172: Bugs, Mostly (January 21, 2024)

  • Auto-updater:

    • City centers: This patch re-applies the custom name to city centers to fix it showing the building's real name.
  • Abilities:

    • Ancient Blood: Fixed the functionality of the Drink-Blood-Faster player tech and added a 2nd tech, More-Blood-From-Humans, which takes over what it was actually doing. Ancient Blood should be slightly improved on both speed and amount (amount, though, only benefits from humans now).
    • Limitations: Added a "target is human" ability limitation.
    • Pulsify: New ability that increases the blood pool of human victims, briefly.
    • Sanguine Restoration: Boosted the amounts healed based on the amount of blood consumed so drinking faster does not result in less healing.
  • Adventures:

    • 12000 Binding Circle: Anat: Small script fix to prevent an error.
    • 12350 Hoarfrost Serragon: Small script fix to prevent an error.
    • 12650 Magiterranean: The Grove: Small script fix to prevent an error. Added drinkable water to flooded rooms.
    • 18200 The Guild of Adventurers: The superintendant no longer blocks the vault when sleeping or disabled.
  • Bug fixes:

    • Outdoors: Incomplete buildings without the "closed" flag now count as outdoors.
    • Resource system: Fixed a bug where it allowed being below the required amount of a given pool (e.g. mana). For example, prismatic crystals could be crafted when below 100 mana. Fixed a second bug where you only needed half the required coins, currency, or pool amount to qualify as having the resources for an action, due to counting them twice.
  • Characters:

    • Blood: NPCs now benefit from max-blood affects, too. Gaining max-blood from gear or an affect will now also increase your current blood to match, and decrease it when lost. Added a blood deficit to prevent blood dropping below 1 from this.
  • Code updates:

    • Help files: When there's an error loading a help file, the log will now say which one.
  • Commands:

    • Look: Fixed a small issue with the output of "look sky".
    • Tunnel: Can no longer end on top of a building or on water.
    • Use: New error message when you try to use something that's already in your 'use' slot, similar to wield/hold.
    • Warehouse: Fixed a bug where using multiple keywords such as "store battle axe" would fail with a bad error message.
  • Content:

    • Baths: Minor scripting fix so it clears its 'stop' data when finished.
    • Henge: Chant of Druids no longer works when the henge is incomplete.
    • Leader of the Community: Will now allow alliances to count, too.
    • Making a Friend: Will now allow alliances to count, too.
    • Pepper spray: Now requires a glass vial like other poisons.
    • Sausage link: Is now cooked meat.
    • Scraper: Updated long description on workforce mob.
  • Displays:

    • Long descriptions: Ensured mob and vehicle long descriptions are capitalized when they start with a replacement token like #n.
  • Empires:

    • Auto-delete: Now syslogs when auto-deleting an empire due to no members or long timeouts.
  • Help files:

    • Bug/typo/idea: Added more keywords to this help file to help players find it.
  • Immortals:

    • Efind: Privileged immortals may now use efind on other empires.
    • Immortal Command: Updated this help file with missing commands.
    • Syslog: Fixed the syslog when an immortal gives coins to a mortal; it now says the actual amount.
    • Vehicles: Vehicles owned by immortals no longer decay (just like buildings).
  • OLC:

    • Skills: Adjust the code that builds columns for the skill tree in OLC.
  • Players:

    • Deficits: Fixed a bug where a player would have ever-increasing deficits if their maximum moves or mana were negative. These stats now stop at zero.
    • Movement: Buildings that count as roads or attach to roads now also give faster movement to players.
  • Progress goals:

    • Diplomacy-Over: New task type that considers whether a diplomatic status is equal to or greater than a given level. This is different for each status. Nothing is a better version of trade relations; an alliance is better than peace or a non-aggression pact; war is better than thievery or distrust.
  • Scripting:

    • Echo: Fixed an issue where immortal echoes could set off Act triggers.
    • Emote: Fixed an issue where this could set off Act triggers.
    • Slay: Fixed an issue where this could set off Act triggers.
    • Wait: Updated the 'wait' help with missing info and better text.
  • Skills:

    • Vampire: New Natural Magic synergy ability: Pulsify.

Patch b5.171: Wash and Decay Less (January 19, 2024)

  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Added a "robust" adjective to the axeroot to give it a clearer 2-word keyword for commands like import.
  • Commands:

    • Bathe: Removed the bathe command and associated code. This functionality is now handled by scripts on the baths.
    • Fish: Fixed code that takes the tool level into account for fishing time.
    • Friends: The accept/deny command now list open requests when typed with no argument.
  • Config changes:

    • new: min_timer_after_retrieve 12
  • Content:

    • Baths: New scripts now handle the bathe command in the baths. Added a buff after bathing.
    • Egg: Now smashes open when thrown.
    • Sapling or pole: Fixed an issue from b5.170 with the (sapling or pole) component type.
  • Help files:

    • Discord: New help file pointing people toward the EmpireMUD Discord server.
    • Facebook: New help file with a link to the EmpireMUD Facebook page.
    • Friends: Clarified how to see open friend requests.
  • Objects:

    • Decay timers: There is now a grace period after retrieving resources that are about to expire, defaulting to 12 game hours (15 minutes), to prevent resources from decaying immediately after retrieving them.

Patch b5.170: The Flavor Saver Patch (January 18, 2024)

  • Abilities:

    • Cooking: Added more cooking recipes, especially for dried, smoked, or salted foods.
    • Family Recipes: Added various relatives to the craft names in order to make it easier to see them in your cook/bake lists.
    • Forge: Added a pole to basic forge.
    • Gourmet Chef: Recipes of this tier now require a bit of salt. Rephrased the help file to indicate this ability is now used for high-level buff foods in general, not just feasts.
    • Red Mist: Tuned the blood restoration upward.
  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Updated the decay trigger on the basket of gemfruit, which would likely have sent a junk message when decaying in the room.
    • 103 Magiterranean: Monsoon Rift: Shortened the range on the eclipse echo; it should have been shortened when we added time zones.
    • 125 Ruins: The Goblin Challenge: Added a now-necessary "link_instance" command to the difficulty selector to fix loot missing since b5.169.
    • 140 The Sewer: Ratskins: Removed the decay timer from the vial of sewage.
    • 11800 The Tower Skycleave: Ashes of History: Added a new hint item with the last available vnum.
    • 12500 Clockwork Colossus: Added the missing SENTINEL flag to the arms; they started wandering after the bug fix that prevented mobs from moving in shipward directions.
    • Various: Many foods were updated. Recipes level 100 and higher that create buff foods now require Gourmet Chef and a bit of salt.
  • Buildings:

    • Decay: Fixed the amount of yearly decay, which was not adding enough damage on certain buildings.
  • Characters:

    • !Disarm: New affect flag prevents disarm.
  • Code updates:

    • fread_string(): Fixed an issue where this function could iterate backwards past the start of a string.
    • Includes: Removed some unneeded includes in some code files and updated the Makefile. I suggest re-running the "configure" script to update Makefiles.
    • Interactions: Now supports tools as interaction restrictions. For example, cinnamon might require a knife to pick the bark.
  • Commands:

    • City: Fixed a small bug preventing city centers from hiding the real tile name after automatically renaming themselves.
    • Crafting: Improved the message when you start crafting plural items. Fixed a bug in pottery crafts where they were not accepting the pottery function on the building.
    • Identify: Now indicates if an item will expire soon. Improved how it displays negative traits to screen-reader users who may have punctuation turned off. Will now list interaction types for the item (formerly only showed combine and separate).
    • Process: New crafting command to be used for spices.
    • Room interaction commands: Fixed an issue where these would not auto-repeat under certain configurations (dig, etc). Added error messages when the player is missing a special tool.
    • Sacrifice: Added bounds checking in the event sacrifices hit unusually high numbers.
  • Config changes:

    • decay_in_storage 1
  • Content:

    • Ancient Tree: Added wood resources when this tree decays on the ground or in empire inventory; the decay timer could not be removed for other reasons.
    • Animal whip attack: Fixed the strings for this attack.
    • Axe Tutorial: Fixed the list numbering.
    • Cannery: Revised which items store in the cannery.
    • Chicken coops: New open building.
    • Crafts: Minor update to the name of some crafts to indicate it creates more than one (e.g. "imperium spike" is now "imperium spikes" in the craft list).
    • Dried calabash: Removed the decay timer.
    • Egg: A new item from chickens, geese, and chicken coops.
    • Feasts: Feast recipes now require a bit of salt.
    • Foods: Most or all foods can now be stored somewhere. Updated decay timers on virtually all of them, usually to make them longer. Some received the new long-timer-in-storage flag. Added and assigned more component types for foods.
    • Grain: Added the missing "basic" flag to the (handful of grain) component type.
    • Granary: Revised which items store in the granary.
    • Honeycomb: Removed the decay timer.
    • Kitchen: Removed most foods which stored in the kitchen and moved them to the larder or root cellar.
    • Larder: Revised which items store in the larder.
    • Livestock Livelihood: A new progress purchase that gives chicken coops, pigsties, and pastures, and opens up a new goal to produce resources from them.
    • Magic herbs: Renamed the (herb) component to (magic herb) to separate it from upcoming cooking herbs.
    • Mutton: A new meat from sheep and sheepish animals.
    • Nuts: Added new component types for (handful of nuts) and (bunch of nuts), and applied to existing ones as well as the road biscuit and nutty squash flatbread recipes.
    • Pasture: New open building.
    • Pickled vegetables: Now require a bit of salt.
    • Pickles: Now require a bit of salt.
    • Pigsty: New open building.
    • Poles: New component type that largely takes over sapling's uses.
    • Potatoes: Fixed a typo in the magic-growth text.
    • Root Cellar: A new building and similar designated room for vegetable storage.
    • Salt: New resources found mainly by the sea. It is processed by milling.
    • Salt of the Earth: A new progress purchase that gives salt-related buildings and opens up a new goal to produce them.
    • Salt mine: New building for digging rock salt.
    • Salt pork: Now requires salt rather than sweetener.
    • Salt silo: New building for storing salt.
    • Salterns: New building for making and digging sea salt.
    • Sapling: Saplings now scrape into poles, which are used for most things that formerly used saplings. Some things will use either one. Scraping most saplings yields occasional sticks. Workforce will also scrape them.
    • Seals: These mobs no longer waddle; they now slide.
    • Seed silo: Revised which items store in the seed silo.
    • Stable: Moved this building to the Livestock Livelihood goal.
    • Stealth guildmaster: Fixed text that indicated the wrong gender in the look description.
    • Stone spear head: Now stores in the store room, too.
    • Storage goal: Added the root cellar to the Storage progress goal.
    • Tasty weeds: Found this forage item in the database; not sure what it was originally found on. Added it to irrigated tiles as forage.
    • Trapper's posts: Now produce some meat.
    • Wax: Removed decay timers.
    • Yak wool cloth: Yak wool now weaves a unique yak wool cloth rather than basic wool cloth.
  • Crafts:

    • Apothecary: New function flag for buildings and crafts with no inherent properties.
    • Full-dismantle-refund: New craft flag that will refund all materials when a building or vehicle is dismantled, regardless of the amount of damage.
    • Tool-or-Function: New flag that causes a craft to require the tool or function, not both.
    • Undamaged-dismantle-refund: New craft flag that will refund all materials when a building or vehicle is dismantled if it has full health, rather than 90% of materials.
  • Display:

    • Honed items: Fixed a typo in the recent message update when you can't use honed items.
  • Empires:

    • Members: Fixed a bug where empires were not detecting that members had deleted or that their accounts had been merged, resulting in a high member count until a reboot.
    • Rescan: Now checks city decay.
    • Workforce: Now sorts the soonest-expiring items to the top of the list for workforce to eat and use. Added "secondary" and "tertiary" depletion types for workforce buildings that produce different items. Workers on the production chore no longer eat if they randomly fail to produce something, e.g. due to a low random chance. Skilled-labor chores still eat every hour if they COULD produce something, even when they don't. Fixed workers who were trying to repair vehicles as they were being dismantled.
  • Events:

    • 10700 Winter Wonderland: The goose farm reward now has an artisan and produces poultry and eggs.
    • 18800 Halloween of the Dead: The slaughterhouse now generates meat resources.
  • Help files:

    • Butcher: Clarified that some corpses have only rare butcher results.
    • Huntsman: Clarified that some corpses have only rare butcher and skinning results.
    • Skinning: Clarified that some corpses have only rare skinning results. Also moved this help file to the correct file.
  • Immortals:

    • Moveinv: Added bounds checking when adding storage counts.
    • Show inventory: Added bounds checking when adding up counts.
    • Show lostbooks: Added author name to the display.
  • Objects:

    • Decay timers: Items with decay timers can also now decay in storge including basic storage, warehouse storage, home storage, and the shipping system. Most commands and automated systems will use the oldest (soonest-expiring) resources first, including retrieve. Items that decay in storage will still run their decays-to interactions (for example, paints become jars) if those interactions produce storable items. Stored items with decay triggers will now appear in the world at their storage location and run the trigger in-place (and may later autostore), only if you have the correct storage location.
    • Long-timer-in-storage: New object flag applied to some foods that extends the decay timer when properly stored.
    • No-Storage: Renamed the !STORE flag NO-BASIC-STORAGE and split out NO-WAREHOUSE from it.
    • Storage: Items with decay timers are now eligible for home and warehouse storage. Partially-used lights, poisons, and similar items are now eligible for home or warehouse storage.
  • OLC:

    • Auditors: Suppressed a warning for scalable items when the min and max levels are the same. Keyword auditors now ignore a short list of words like "and". Objects now warn on BoP items with storage locations.
    • Fullsearch: Fixed a typo in the craft fullsearch where it required "quantitysover".
    • Object storage: Objects now reject adding the same storage location twice.
  • Players:

    • Home: Player characters now have a reference to their private home. This was formerly only stored as data on the room. An auto-updater in this patch ensures all players have this data set.

Patch b5.169.1: Critical Bug Fixes (January 10, 2024)

  • Bug fixes:

    • affect_total(): Big updates to this function and places that call it.
    • Bonus health/move/mana: Fixed a bug where the character bonus traits for health, move, and mana could cause those pools to be slightly less than full on login.
    • Greet triggers: b5.169 over-combined greet and entry triggers and was running them twice in some cases, making adventures that rely on these triggers behave oddly. Fixed these.
    • Player loading: Now pauses affect_total() while loading characters from file, preventing doing it for each item equipped to them. This reduces a chunk of the work of scanning empire members, as well as when the game starts up or when a character logs in.
    • Player saving: Changed how stats are reset during the save and removed some unnecessary work.

Patch b5.169: A Home For Lost Bugs and Forgotten Projects (January 9, 2024)

  • Abilities:

    • Erode: Fixed a typo where it said "your your" instead of "of your".
    • Room-affects: Fixed a bug where room-affects abilities such as Darkness were not working correctly since b5.166.
  • Adventures:

    • 127 Wandering Dragon: Now resets the adventure location when it's killed. Also swapped the script on the mount whistle for the general one that checks whose territory you're in before summoning the mount.
    • 128 Colossal Red Dragon: The rooms with the dragon and knight are now light, not dark, to avoid trapping players. Level-locked the dragonsteel ingots to 100.
    • 11800 The Tower Skycleave: Ashes of History: Added custom enter/exit messages on the mirror, walking mausoleum, and walking tower. The hanging gardens now provide a tiny amount of herbs each year.
    • Various: Ensured adventure scripts that load vehicles as rewards don't link those vehicles to the instance they came from. Updated difficulty selectors in several adventures to not work if other players are elsewhere in the adventure.
  • Books:

    • Code updates: Replaced all direct property access for books with macros.
    • Dismantling: Starting to dismantle a library will now dump all the books stored in it as objects in the room.
    • Map wipe: Will now clear library locations when the game detects a new map.
    • Libraries: Fixed a bug where dismantling a library never removed it from the list of locations a book was stored. This patch includes an auto-updater that will remove this junk data. The library list for each book is now a hash table.
    • Vnums: Created a new vnum range for player-created books, above the normal vnum range for OLC. This solves an issue where player books would appear in the middle of adventure vnum blocks. This patch includes an auto-updater that will re-number all existing player books.
  • Code updates:

    • Catch-up system: Removed the last remains of the old catch-up system for mobs; no functional parts of it remained already.
    • constants.c: Ensured all constants are annotated correctly; found 2 that were missing entries in the middle (about 430 total lines of fixes).
    • DG Scripts version: Moved this string to constants.c with the EmpireMUD version string.
    • dg_triggers.c: Cleaned up and organized this file; added function header comments.
    • dg_scripts.h: Cleaned up and organized part of this header file, and improved commenting.
    • Player wipe detector: If the game detects a player wipe has occurred, it will now reset the top idnum, delete all accounts, and clear all book authors.
    • Time format: Added a new function for quickly formatting cooldowns and durations into minutes, hours, and days as necessary. Applied this to a bunch of things that were building the same time displays themselves.
  • Commands:

    • Alternate: Now transfers the "reply" command for your online friends when you alt to another character and don't have no-friends toggled on.
    • Build: Improved the ability for build/craft commands to match the name of the room for resuming buildings. For example, in an unfinished advanced guard tower, "build guard" and "build advanced" can now both resume the work.
    • Butcher: Now supports custom resource messages. Also now shows which corpse was butchered in its default message. Quantity moved to the end of the message.
    • Craft: Various craft commands will no longer try to split out a direction from the argument unless the craft/build recipe faces a direction. This means "craft info fire st" and "craft fire st" now both hit "fire sticks"; before the latter interpreted as "craft fire starboard" and hit "fire drill". This also means buildings that don't face a direction can no longer accept a direction.
    • Empty: New command that can dump out a vehicle or object.
    • Findmaintenance: Can now find maintenance costs on vehicles targeting the room they're in.
    • Nearby: When used from a newbie island, now only shows locations on the newbie island, to reduce overload on newbies.
    • Sail: Fixed a bug where ships could sail across single tiles of land if there was water on both sides. This now only applies to draggable vehicles like canoes, not to large ships.
    • Scan: Added a new option where a scan with a dash before the distance and no search term will still find all tiles up to that distance, rather than an 8-direction scan.
    • Shear: Now supports custom resource messages. Quantity was moved to the end of the message.
    • Skills: Now mentions if there are higher-level abilities not being shown, and how to see them, on the skill display.
    • Skin: Now supports custom resource messages. Quantity was moved to the end of the message.
  • Content:

    • Buildings: Added a burnable flag to the following buildings: foundry, smokehouse, boardwalk, bridge, herb gardens.
    • Fisheries: Removed the HIGH-DEPLETION flag as fishing interactions now set their own depletion.
    • Forges: All types of non-moving forges now have the same storage items as the regular forge (e.g. handles).
    • Handles: Added storage locations to all handles for the store room and forge.
    • Irrigation: Fixed an issue where irrigated forests and jungles did not spread correctly on irrigation or off it.
    • Lost books: Added a world drop for lost books -- ones that don't appear in any libraries or are in the game's basic book library.
    • Marsh: Will now spread jungle onto plains.
    • Potter: Removed the cooking fire and oven flags from the potter. A kiln is too hot for these tasks.
    • Trappers: Removed the cooking fire from the trappers posts and modified the text to indicate it's merely smouldering, for smoking meat.
  • Displays:

    • Bonus traits: The bonus trait menu now tells you how many hours of playtime you have.
    • Healing abilities: Fight messages now only filter out healing abilities when used in-combat.
  • Empires:

    • Cities: The center of a city is now automatically renamed to include the city's name.
    • Fire brigade: Fixed a bug where fire brigade workers spawned on all interior rooms.
    • Workforce crafting: Fixed a bug where workforce could craft learned recipes that the empire had not learned yet.
  • Events:

    • 10700 Winter Wonderland: The enchanted snowball now accepts abbreviations of "freezing" for its enchantment. Fixed an issue where the sleigh wax could link the flying sleigh to an adventure instance and lose it.
    • 18800 Halloween of the Dead: Fixed a keyword issue with ghostly duplicates of the player. Added a missing message when you stand too fast whilst bobbing for apples. Fixed an issue where the flying spell could link the pumpkin coach to an adventure instance and lose it.
  • Help files:

    • Interactions: Updated information on OLC interactions and split up the interactions help file, as it's very long.
    • Rejuvenate: Fixed typo with a double "your".
  • Immortals:

    • Automessage: Added a safety check of 255 characters because fread_string() won't be able to load it beyond that.
    • Load: Can now load books by book vnum.
    • Show author: A new show function for looking up books by author id.
    • Show libraries: A new show function for looking up where a book is shelved.
    • Show lostbooks: A new show function for finding books that are not in any libraries.
    • Stat: Now shows room vnum on stat vehicle, when it's in a room.
    • Vstat: Fixed a minor bug where objects, mobs, and vehicles were getting new script ids during vstat, when they do not need them. Fixed a bug where "vstat empire" targeted the empire by rank number, not vnum.
    • Where: Fixed numbering on the immortal where list.
  • Objects:

    • Portals: Added custom string options for enter/exit messages on portals.
  • OLC:

    • Auditor: Fixed incorrect audit on global levels.
    • Books: Can now edit higher vnums for books.
    • Descriptions: Raised the maximum length on quest and item descriptions.
    • Strings: Added a safety check of 255 characters for normal strings because fread_string() won't be able to load it beyond that. This is also way beyond what's reasonable for short descriptions.
  • Players:

    • Login: Greet triggers now right slightly later in the login process.
    • Swimming: Players who are on a partially-complete bridge or other water building are no longer considered swimming and won't drown.
  • Scripting:

    • Ability triggers: Added ability triggers for vehicles.
    • Allow-Multiple: Applied the allow-multiple trigger flag to way more trigger types, including ones for objects and vehicles.
    • Dismantle triggers: Now run on rooms inside vehicles during dismantle, ruins, or destruction. This fixes a bug where boards in designated studies would survive the destruction. Vehicles themselves can now also have dismantle triggers, which can prevent the dismantle.
    • Enter triggers: Cleaned up all greet, entry, and enter triggers.
    • Entry triggers: Cleaned up all greet, entry, and enter triggers.
    • Greet triggers: Objects can now fire greet triggers when someone enters the room they are in. Cleaned up all greet, entry, and enter triggers, which were a mess. They now run consistently in all 38 locations.
    • %instance.players_present%: New getter that counts all the players in the instance.
    • Load triggers: Vehicles can now indicate when the vehicle was purged while running the trigger, to prevent further execution.
    • %load%: Can now load books, including lost books. Fixed conditions where a mob or vehicle is linked to an instance when loaded by this command. Added detailed notes in the %load% help file for instance linking.
    • Objects: Added %obj.in_obj% to get the containing object, if any.
  • Vehicles:

    • Messages: Added custom strings to be shown when a person enters/embarks or exits/disembarks from a vehicle.

Patch b5.168: Depleted But Not Forgotten (January 6, 2024)

  • Abilities:

    • Devastation Ritual: Updated this for one-at-a-time chop interactions.
    • Ready Blood Weapons: Lowered the cost to activate these but added a 1 blood per hour upkeep, which fixes them not vanishing in the sun since b5.166. Added a custom string when the blood weapons are removed.
    • Ready Fireball: Added a custom string when removing the fireball.
  • Adventures:

    • 104 Magiterranean: Permafrost: Spruce forests now give slightly more trees.
    • 128 Colossal Red Dragon: Now sells dragon stones in the shop for 3 tokens.
  • Code updates:

    • depletion_types[]: Renamed depletion_type[].
    • Headers: Moved some structs and defines from structs.h and interpreter.h to constants.h.
    • Interactions: Combined the growing amount of data for interactions into a new struct.
    • Workforce: Reduced how often workforce has to look up workers in a room, and generally reorganized the code for many existing chores.
  • Commands:

    • Chop: Now uses a one-at-a-time style interaction and evolves when depleted. Most tiles still only chop 1 time before evolving; this will be most visible in desert groves.
    • Dig: Removed all code and merged dig into the generic-interaction system.
    • Fish: Removed all code and merged gather into the generic-interaction system.
    • Forage: Removed all code and merged gather into the generic-interaction system. Forage no longer requires approval.
    • Friends: Fixed a bug where certain uses of this command could reveal the alts of people who have not accepted your friend request. Added alt info when you check the status of a friend with "friend NAME".
    • Gather: Removed all code and merged gather into the generic-interaction system.
    • Generic-interaction: Updated this system to allow configurable action times and special procedures. Added support for targeting adjacent rooms on some commands. Fixed some minor errors with depletions.
    • Pan: Removed all code and merged pan into the generic-interaction system.
    • Quarry: Now causes nature burn to earthmelded players, like dig.
    • Survey: Now shows an indicator of how depleted the area is.
    • Whois: Now shows if you are friends.
  • Config changes:

    • Deprecated: chop_depletion
    • Deprecated: gather_depletion
    • Un-deprecated: pick_base_timer
  • Content:

    • Bakery: Items made by the 'bake' command can now store at the bakery.
    • Bricks: Now also stored at the Potter.
    • Chopping: Revised all chop interactions that had random results.
    • Clay: Now also stores at the Clay Pit.
    • Digging: Updated all "dig" interactions to use the one-at-a-time interaction system where maximum quantity is set on the interaction itself. Removed the HIGH-DEPLETION flag from diggable buildings as it's no longer needed there.
    • Fish: Various fish can now be stored at the fisheries they're caught in, in addition to any other locations.
    • Fishing: Updated all "fish" interactions to use the one-at-a-time interaction system.
    • Flint: Now also stores at the Quarry and Sand Pit.
    • Foraging: Updated all "forage" interactions to use the one-at-a-time interaction system.
    • Gathering: Updated all "gather" interactions to use the one-at-a-time interaction system.
    • Panning: Updated all "pan" interactions to use the one-at-a-time interaction system.
    • Rock: Now also stores at the Quarry and Sand Pit.
    • Sand: Now also stores at the Sand Pit.
    • Stone block: Now also stores at the Quarry.
    • Swamp: Fixed a bug where swamp would not spread onto some riverbank tiles.
  • Empires:

    • Greatness: Characters now contribute their highest-ever Greatness to their empire, not their current Greatness. This number resets when they join or found a new empire.
    • Workforce: Updated the fishing chore including new depletion limits. Removed the digging chore; it is now part of the production chore. Updated all chores to remove unnecessary worker checks.
  • Immortals:

    • Stat room: Now shows percent depleted on each depletion if possible.
  • OLC:

    • Auditor: Now audits one-at-a-time interactions for ones with different quantities.

Patch b5.167: Friends Forever (January 4, 2024)

  • Important:

    • friends.c: This new code file requires EmpireMUD administrators to re-run the 'configure' script or else manually import its part of the Makefile from Makefile.in.
  • Abilities:

    • Cleanse: Changed the fail message to prevent double-messaging.
  • Adventures:

    • 10400 Hamlet of the Undead: Due to fires, this area is now warmer in cold weather.
    • 10775 Tree of Knowledge: Level-locked the fruit of knowledge.
    • 12350 Hoarfrost Serragon: Minor change to the text sent when the serragon dies.
  • Character Creation:

    • Archetypes: No longer accepts abbreviations of the "list" command and won't accept shorter than "inf" for "info".
  • Commands:

    • Friend: New command to view and manage your friends list.
    • Skills: The skill command now defaults to only show abilities in your level range (up to 50, up to 75, or all abilities). Added a "-all" argument to see the full list. Giving a level range will still show the full list.
    • Unfriend: New command to manage your friends list.
    • Toggle: Added a no-friends toggle for secret alts.
    • Who: Fixed who -s which was broken in b5.166.
  • Displays:

    • Mortlog: Players now see mortlogs for logins, logouts, and alternates of people on their friends list.
    • Vampires: Updated the conditions for seeing the low-blood "sway" while drinking from a victim, to make it easier to stop in time.
  • Events:

    • 10700 Winter Wonderland: Fixed a bug in "Got Your Goat" where the stealth/hide checks were not working, and updated the quest description with a hint. Minor cooldown fix on Winter Robin Hood. Fixed the difficulty setting on Max.
    • 18800 Halloween of the Dead: Added a missing 'global' flag to the random despawn trigger for the Macabre Menagerie.
  • Generics:

    • Liquids: Added a BLOOD liquid flag, replacing the hard-coded blood liquid vnum. This allows more types of blood to count as blood for vampires.
  • Immortals:

    • Access level: Reviewed and updated access level restrictions on many commands that can target other immortals including most "show" functions, anything related to account notes or IP, freezing/muting, and playerdelete. In some cases restrictions were added or, in other cases, dropped.
  • Mobiles:

    • Champion: Mobs with this flag, such as the giant tortoise, will no longer try to rescue players from a mob that does not attack.
  • Players:

    • Friends list: A new account-wide feature for keeping track of each other with mutual consent. Supports a new no-friends toggle for alts you want to keep secret.
    • Vampire starvation: Will now attempt to drink blood from containers in the vampire's inventory before lunging at the nearest neckline.
  • OLC:

    • Quests: Fixed a bug where removing the daily cycle ID from a quest that was not active did not activate it.

Patch b5.166.1: Minor Fixes (January 2, 2024)

  • Bug fixes:

    • act(): Removed an incorrect new system error from b5.166.
    • Companions: Fixed a b5.166 bug where this could crash if used on a companion that does not come from an ability.
  • Displays:

    • Who: The short wholist (who -s) now correctly shows a single column to screenreader users.

Patch b5.166: Patch of Dreams: The Ability Engine (January 2, 2024)

  • Important:

    • If you are running a copy of EmpireMUD and need assistance with this enormous patch, contact Khufu on empiremud.net:4000 for help.
    • olc.attack.c: This new code file requires EmpireMUD administrators to re-run the 'configure' script or else manually import its part of the Makefile from Makefile.in.
    • Auto-Updater: This patch includes an auto-updater that fixes Counterspell and Phoenix rite affects, un-buys Heal Friend or Bash if each player is below their new level requirement, and grants a free skill reset in all skills each player knows.
    • Mountain paths: There is a new version of mountain paths which is an open building, not a regular road. Old mountain paths on existing EmpireMUDs will now appear as regular roads in the mountain and can still be removed with the "lay" command, but cannot be constructed that way.
  • Abilities:

    • Ability hooks: A new feature in the ability engine that lets an ability trigger after certain events or other abilities.
    • Actions: Added a new "action" ability type for specific effects that used to be hard-coded for individual abilities.
    • Ancestral Healing: Moved into the ability engine and reworked as a passive buff to bonus-healing.
    • Backstab: Moved to the new ability engine. This changes its damage slightly. Now gets a boost from strength. Increased the cost slightly.
    • Bash: Moved into the ability engine. Raised to skill level 80 as this is a stun move.
    • Big Game Hunter: Moved into the ability engine with some changes. Now gives a message when it goes off and informs you of the amount of damage.
    • Bite: Split the functionality to use a player tech.
    • Blood Fortitude: Moved into the ability engine.
    • Bloodbound Arcanum: New Vampire ability gives a passive boost to mana-regen.
    • Bloodborne Tenacity: New Vampire ability gives a passive boost to move-regen.
    • Bloodsweat: Moved into the ability engine. Lowered the cost to 20 blood. Now also cancels the drunk state.
    • Buffs: Fixed a bug in how the values of buffs are computed when they affect more than one trait.
    • By Moonlight: Fixed a bug where it could gain experience in rooms where it didn't function (indoors).
    • By the Sun and Stars: A new passive ability that replaces Solar Power.
    • Chant of Illusions: Moved into the ability engine.
    • Chant of Nature: Moved into the ability engine. Added custom messages for crops and sectors to show when magic-growth occurs.
    • Charge: Moved this ability into the ability engine.
    • City Teleportation: Moved into the ability engine. Removed the ptech it had before. Now requires you to type its name as the ritual to teleport to a city.
    • Cleanse: Moved into the ability engine.
    • Claws: Moved into the ability engine. Reworked as a ready-weapons-style ability with its own command. Claws can now be used for skinning and butchering. Added Red Mist as a mastery ability.
    • Collapse Portal: Split the 'collapse' command out of 'Portal Master' and gave it its own High Sorcery 75 ability.
    • Colorburst: Moved into the ability engine. It now scales with level.
    • Concealment: Moved into the ability engine by moving its effects to ptechs.
    • Conjure Fruit: A new Natural Magic power.
    • Counterspell: Separated the counterspell ability from its effect. Moved the ability into the ability engine. Any ability with a counterspell affect can now counter a spell, trigger experience gain, and triggering ability hooks. Also fixed a bug where abilities that are counterspelled would not engage combat.
    • Crucial Jab: Moved into the ability engine.
    • Cut Deep: Moved into the ability engine.
    • Damage: Tuned the damage of abilities in the parameterized ability engine upward. Fixed a bug where matching role was applying twice.
    • Darkness: Moved this ability into the parameterized ability engine. Its ability to see through its own darkness is now a player tech, See-In-Magic-Darkness. Added support to the ability engine for this kind of ability. Its effect flag has been renamed MAGIC-DARKNESS (from DARK).
    • Darkshroud: New high-level Stealth ability with an AoE damage and DoT.
    • Deathrise: New vampire ability to self-resurrect.
    • Deathshroud: Moved into the ability engine.
    • Devastation Ritual: Moved this into the ability engine.
    • Difficult-anyway: New ability flag. Targeted abilities now ignore the difficutly check if the victim is sleeping or can't see you, unless the difficult-anyway flag is present.
    • Disarm: Moved into the ability engine.
    • Disenchant: Moved into the ability engine. Added an interaction type for what an object disenchants to. Added a global type for a global list, similar to pickpocket.
    • Dispel: Moved into the ability engine.
    • Diversion: Moved into the ability engine with small changes.
    • Durations: An ability's long duration is now used if it is not assigned to a skill, or if the skill is at its maximum (rather than just over 75). Both durations will fail over to the other one if blank.
    • Earthmeld: Fixed logical inversion that would have allowed un-earthmelding on a barrier.
    • Enervate: Moved into the ability engine.
    • Escape: Moved into the ability engine.
    • Evasion: Moved into the ability engine.
    • Familiar: Renamed to Feline Familiars; moved the giant tortoise to his own ability.
    • Feline Familiars: Renamed from 'Familiar'. Removed level restrictions on the saber-tooth cat and the sphinx; raised the level cap on the black cat. The sphinx now has the SLOW effect. Removed the giant tortoise.
    • Finesse: Moved into the ability engine.
    • Firstaid: Moved into the ability engine.
    • Fleet: Moved into the ability engine.
    • Gain hooks: Added a DYING experience gain hook, called right before auto-resurrect. Added a DO-HEAL gain hook, when the player performs healing.
    • Giant Tortoise Familiar: New level 75 Natural Magic ability for the existing giant tortoise familiar.
    • Heal, Heal Friend, Heal Party: Moved these into the ability engine. Heal Friend now requires 55 Natural Magic. All heals now scale more with level.
    • Heartstop: Moved into the ability engine.
    • Hone: Updated how this ability works under the hood; no functional changes.
    • Howl: Moved into the ability engine with small changes.
    • Interactions: Abilities can now have interaction lists.
    • Jab: Moved into the ability engine.
    • Kite: Moved into the ability engine.
    • Limitations: New ability property to support abilities with unusually restrictions such as "must be used on a barrier tile."
    • Linked traits: Reduced the impact of linked traits on abilities and ensured abilities without linked traits are not siginifcantly worse.
    • Magivore: New High Sorcery ability gives a huge short-term boost to mana-regen every 6 minutes.
    • Majesty: The affect used by this ability can now check the linked trait on the ability it comes from, and use that to determine how hard it is to hit them (this affects nothing until another majesty-type ability is added). It defaults to Charisma if no ability is present, for example if majesty is on an NPC. Characters more than 50 levels above someone with majesty are now immune to the affect.
    • Messaging: Overhauled the messaging system in the ability engine. It now supports suppressing each message individually, more custom messages, the ability to match up sets of random messages, and a messaging structure that's better overall. Shortened the key name on counterspell strings to counter-to-room, etc.
    • Manashield: Moved into the ability system. Its penalty to mana pool is now scalable and will be lower at low levels.
    • Master Survivalist: Moved into the ability system. Now grants an auto-resurrect effect when it triggers. Added a 75-second cooldown.
    • Mummify: Moved into the ability engine.
    • Moonrise: Moved into the new ability engine.
    • Mountain Paths: Renamed "Lay Paths". This is now a building with the chameleon flag and its own resource list.
    • Multiple targets: The parameterized ability engine can now handle abilities that target multiple characters.
    • New types: Conjure-liquid, which can fill a drink container. Conjure-object, which create objects in your inventory or in the room. Conjure-vehicle, which creates a vehicle in the room. Room-affect which buffs the room. Paint-building which applies a color. Action, which has a variety of special behaviors. Building-damage for attacking buildings and vehicles. Teleport for moving the player. Resurrect for raising players from the dead. Attack for doing a weapon hit as part of the ability. Restore abilities for healing, moves, mana, or even blood.
    • Noble Bearing: Moved into the ability engine.
    • Not-in-combat: New ability flag allows abilities to be used while resting or sitting but not in combat.
    • Not-in-dark: New ability flag requiring that the player be able to see.
    • Null Mana: Moved into the ability engine.
    • One-at-a-time: New ability flag that prevents using the ability when it's already active.
    • Outrage: Moved into the ability engine.
    • Over-time: New ability flag that makes it take multiple terms like a ritual. These types of abilities can now be configured to be used even in combat.
    • Passive-buffs: Fixed a bug in how the values of passive-buff abilities are computed when they affect more than one trait. Passive buffs now detect if their linked trait changes.
    • Phoenix Rite: Split out the auto-resurrect portion of this spell as a new affect flag. Some of the messages are no longer phoenix-related. Migrated this ability to the ability engine.
    • Prick: Moved into the ability engine.
    • Quick Block: Converted from a hard-coded ability to a passive buff ability.
    • Quick Draw: Moved into the ability engine.
    • Portal Magic: Removed this ability. Its functionality is now covered by the Portalmancy progress buy.
    • Portal Master: Removed this ability. It is now covered by the Astral Cartography progress goal.
    • Ready-weapons: This ability type is now managed more directly by the ability engine and now supports abilities with their own command, not just the ready command.
    • Ready Blood Weapons: Added Red Mist as a mastery ability.
    • Red Mist: New Vampire ability that regains blood in combat.
    • Refashion: Merged into Rework.
    • Reforge: Merged into Rework.
    • Regenerate: Moved this into the ability engine. Can no longer specify an amount.
    • Rejuvenate: Moved into the ability engine.
    • Reflexes: Converted from a hard-coded ability to a passive buff ability.
    • Rescue: Converted this to use the ability engine. It now requires a target.
    • Resist Poison: Moved into the ability engine using a new ptech.
    • Resource cost: The ability engine now supports a resource cost on command abilities.
    • Resource (type): New ability type for ones like Find Herbs that have no properites and are merely required for interaction restrictions.
    • Resurrect: Moved into the new ability engine.
    • Rework: Merged Reforge and Refashion into Rework. Rework works on all equippable items. Changed the rules on renaming items slightly. Renew and superior now use the fresh_copy_obj() function to better preserve data. Renew and superior now require that you know the ability and craft that make the item. All rework functions now use any magic gems, not specific ones. Rework is now at a shallow position in the Trade tree, not deep in specific branches.
    • Ritual of Burdens: Moved this into the ability engine. Now scales higher.
    • Ritual of Defense: Moved this into the ability engine. Added supporting features such as painting the building. Removed inherent magenta coloration and "Enchanted" room names for walls with the no-fly affect.
    • Ritual of Detection: Moved into the ability engine.
    • Ritual of Teleportation: Now moves companions, too, if they were with you. Basic teleportation now has a 10-minute cooldown shared with home teleportation.
    • Sanguine Restoration: Converted the remaining part of its functionality to a ptech.
    • Sap: Moved into the ability engine.
    • Scaling: Updated the formulas for ability scaling. Mastery abilities will now modify any scalable ability. Matching role flags are now ignored under level 100.
    • Search: Split the search command from the search ability. It now uses a player tech.
    • Sense Life Ritual: Moved into the ability engine.
    • Shadow Jab: Moved into the ability engine.
    • Shadow Kick: Moved into the ability engine.
    • Shadowcage: Moved into the ability engine with small changes.
    • Shadowlash: Moved this into the ability engine.
    • Shadowstep: Moved this into the ability engine. It now has a slight charge-up time.
    • Shimmering Anvil: New synergy ability for High Sorcery 100/Trade 75 and Trade 100/High Sorcery 75 which summons an anvil for an hour, anywhere.
    • Siege Ritual: Moved into the ability engine.
    • Siphon: Moved into the ability engine.
    • Skybrand: Moved into the ability engine.
    • Slow: Moved into the ability engine.
    • Sneak: Moved into the ability engine.
    • Solar Power: Removed this ability (replaced with By the Sun and Stars).
    • Soulsight: Reworked this as a player tech that gives more details on the 'affects' command when used on others.
    • Sparring: Converted from a hard-coded ability to a passive buff ability.
    • Spoken: New ability flag that can be blocked by the SILENT room affect.
    • Stablemaster: Converted both its features to player techs and imported it into the ability engine.
    • Stagger Jab: Moved into the ability engine.
    • Steal: Converted to a player tech and imported into the ability engine.
    • Stunning Blow: Moved into the ability engine.
    • Summons: All summon abilities got minor updates. The main ability engine now handles more of the work for the summon command, supporting future summons that are on their own command as well. This resulted in minor changes to the messages for summon abilities; all 4 existing summons were updated.
    • Surge: New Battle ability gives a huge short-term boost to move-regen every 6 minutes.
    • Taste Blood: Removed this ability entirely; it hasn't been useful since the Obama administration.
    • Technologies: Player abilities no longer affect empire technologies at all -- portals were the last to go. This means empires no longer gain or lose techs when players join, leave, time out, skill reset, or skill swap.
    • Track: Now uses a player tech ability.
    • Trick Shots: Moved into the ability engine.
    • Veintap: Moved into the ability engine. However, the argument order has changed.
    • Vigor: Moved into the ability engine.
    • Wait time: Added more wait options.
    • Weapon-hit: New ability flag means the ability counts as a weapon hit (and can apply poison).
    • Weapon Proficiency: Moved into the ability engine.
    • Wilderblaze: New high-level Natural Magic ability that burns all enemies at once.
    • Whisperstride: Moved into the ability engine.
    • Worm: Moved into the ability engine. The "worm look" feature now uses a new command: earthpeek.
  • Adventures:

    • 129 A Gigantic Nest: Added ability requirements to the descriptions of all the pattern items so they can be viewed before purchase.
    • 180 Misplaced Mother Goose: Clarified that you only need to teleport if you're not already on a newbie island.
    • 10450 The Sewer: Goblin Outpost: Can no longer try to pickpocket the goblins before a difficulty is set and they become attackable.
    • 11800 The Tower Skycleave: Ashes of History: Converted the Search ability trigger to a command trigger and merged it into the existing search trigger. Minor improvement to some hint text. Typo fix in the queen's story.
    • 18500 The Lost Temple: Converted the Search ability trigger to a command trigger. Removed the INFRA affect from the solar raiment and replaced it with +2 night-vision.
    • Configs: Added a configuration option to ignore island levels globally when spawning adventures.
    • Various: Minor fixes to the order of some object keywords.
  • Bug Fixes:

    • DoTs: Fixed a bug where bonus-physical and bonus-magical were under-applying to DoTs.
    • Easy: Abilities set to "easy" difficulty were stated to "always pass at level 50" but the easy modifier was 1.5x, meaning at level 50, it was a 75% chance not 100% chance. This is fixed.
    • Timed actions: Fixed a minor bug where portaling or circling did not cancel an action immediately (it canceled silently seconds later).
  • Buildings:

    • No-Abandon-When-Ruined: Renamed this building flag from no-auto-abandon-when-ruined because the name was too long for the flag display in OLC.
  • Characters:

    • Bonus-Magical: No longer requires a matching role to apply.
    • Bonus-Physical: No longer requires a matching role to apply.
    • Player techs: Added "Command" to the names of these player techs: Chop-Command, Dig-Command, Fish-Command, Forage-Command, Gather-Command, Harvest->command, Herd-Command, Milk-Command, Mint-Command, Pick-Command, Quarry-Command, Shear-Command, and Tan-Command. Also renamed Tame to Tame-Animals.
  • Code updates:

    • act(): Big cleanup of the perform_act() function and all the TO_/ACT_ flags. Some flags are now mandatory when the 'obj' parameter is not an object or the 'vict_obj' parameter is not a mob, and will log if missing. Added a lowercase $f to match capital $F.
    • Action string: Renamed the "movement string" as "action string"; it's now used by more types of abilities.
    • Attack messages: Structs renamed. Code components moved from db.c to the new olc.attack.c. Fixed an issue where DoTs did not always show to the person who caused them, and another where they might show from the wrong room.
    • call_ability(): Moved some its validation to perform_ability_command, which is responsible for target validation.
    • check_start_combat(): Renamed to check_start_combat_meters() to avoid confusion over what it starts.
    • Copyright: Updated copyright lines to 2024.
    • Custom messages: Added support functions for looking up custom messages by number and updated instruments and scripts to use it, simplifying a process that has become more common.
    • do_ability(): Removed this function and merged its functionality with perform_ability_command(). Rewrote parts of the ability engine.
    • do_damage_spell(): This command and its associated code have been removed as its last ability, Shadowlash, is now supported by the parameterized ability engine.
    • end_action(): New function replaces basic calls resetting a character's timed action variables.
    • fresh_copy_obj(): Now preserves current binding flags when an item had changed them due to a loot script. Added options for preserving/dropping custom strings and augments.
    • perform_ability_command(): Moved validation from other ability functions to this one. Renamed variables to match other functions in the chain.
    • Quaff: Moved to act.item.c as it is not specific to natural magic.
    • Player techs: All player techs that come from abilities can now check if the abilities come from synergies and whether or not the player is on the solo role, allowing ptech abilities to be shut off when not really solo.
    • Resistances: Changed the scaling values on resist-physical and resist-magical to give more of them per scale point.
    • Room affects: Any unlimited-duration room effects are now removed when a building is dismantled.
    • skills.h: Rearranged and cleaned up this header file, renamed some defines and converted some macros to functions. Moved ability and skill definitions from structs.h to here. Moved externs and prototypes related to classes, skills, and abilities here from other headers. Removed a large number of defines for things that are now entirely data-driven.
    • Staves: Removed special-casing for the game's original staff items as these all have the more recent 'staff' tool type.
    • total_bonus_healing(): Removed this function and replaced it with direct calls to the player's bonus healing; there are no more special-cased abilities that modify this internally.
    • update_class(): Renamed this function to make it clearer it updates more than the class.
  • Combat:

    • Attack messages: Completely reworked this system, including the non-sensical struct names. Merged data for each attack type with attack messages. Disarmable and apply-poison are now flags on the attack types. These messages now support custom death logs. Attacks can now count as other attacks, e.g. if a custom type is still a 'stab'.
    • Default attacks: Moved the default physical (hit) and magical (mana blast) attacks from code definitions to game configs.
  • Commands:

    • Ability: Split this from the skills command; it only looks up abilities now. New header on ability info. Cleaned up the cooldown display when it has large numbers. Abilities will show any other abilities you have that chain from it. Will now show crafts that come from the ability, including learned ones.
    • Affects: You can now use this command to see affects on others.
    • Cast: Re-introduced the cast command as an option for abilities. Any ability with 'cast' as its command will route through here.
    • Chant: Overhauled this command for the new over-time ability process. Any ability with 'chant' as its command will use this command.
    • Conjure: New command that can hold various conjure abilities.
    • Craft info: Fixed a minor issue where items could show the same level both before and inside the parentheses if the item only had a range of 1 level.
    • Burn: Added a missing period to the non-flammable error message.
    • Get: Now gives a better error message when you try to get a vehicle.
    • Help: Fixed an issue with help keywords that prevented getting help on " (quotation mark).
    • Identify: Now mentions when an item is a poison.
    • Lay: Removed special-cased code for laying roads in rough terrain. Allowed laying roads on: Desert Copse, Desert Shrub, Small Copse, Forest Edge, Riverside Copse (for consistency with similar tiles).
    • Passives: Output is now sorted alphabetically because it otherwise could change order.
    • Quest: You can no longer start or finish building/vehicle quests at incomplete buildings/vehicles.
    • Ready: Reworked the ready command to use the ability engine directly for its actual effect.
    • Ritual: Overhauled this command for the new over-time ability process. Any ability with 'ritual' as its command will use this command.
    • Role: Now prevents duplicates in each line if two different things give you the same ability for the same role.
    • Search: This command is now available to all players. However, it will not be effective without the Search-Command player tech.
    • Skills: This command now prefers skill abbreviations over ability names (it still gets ability info too, but cannot be used to look up the "Steal" ability because it's an abbreviation of "Stealth"; use the ability command for that). Buying abilities now indicates which ability you cannot buy if you can't buy the one you abbreviated.
    • Smessages: Added fight prompt.
  • Config changes:

    • new: default_magical_attack 28
    • new: default_physical_attack 15
    • new: ignore_island_levels 0
    • new: skills_at_max_level 2
    • new: skills_at_specialty_level 2
    • new: skills_per_char 6
  • Content:

    • Astral Cartography: New progress goal that replaces Portal Master.
    • Hit: Updated the attack messages so hit does not include any punches.
    • Imperial cooling potion: Added missing "cooling" keyword.
    • Mountains: Removed the lay-roads flag on mountains.
    • Necrovandal: Updated the necrovandal script with sector vnums.
    • Nexus crystals: Now require the Portalmancy goal and Basic Crafts ability to create.
    • Portals: Now require the Portalmancy progress buy, not a player ability. They are upgraded by completing the Astral Cartography goal.
    • Portalmancy: New progress buy that enables portaling, building portals, and crafting nexus crystals. Empires no longer lose access to these due to players timing out or skill-swapping.
    • Punch: New attack type that's explicitly punching with fists.
    • Roast fruit on a stick: New recipe for small fruit.
    • Self-hiding animals: These animals now stop trying to hide after 50 times, as they may just be hiding every few seconds in a stable forever otherwise.
    • Scorpion Sting: This script now checks if the attack will hit.
    • Snake Venom: This script now checks if the attack will hit.
    • Workers: Fixed two worker mobs who had unprintable characters showing as blank lines in their long descriptions.
  • Crafts:

    • Dismantle-without-ability: New craft flag allows some things to be dismantled without needing the original ability.
  • Displays:

    • Affects: Fixed an issue where a wear-off message showed before removing the flag, leading to hidden characters displaying incorrectly.
    • Bad password attempts: Fixed a bug where a player would never be alerted that their character had bad-password attempts if they were online when it happened.
    • Deathshrouded: The 'deathshroud' affect is now called 'deathshrouded'.
    • Earthmelded: The 'earthmeld' affect is now called 'earthmelded'.
    • Flying: The 'fly' affect is now called 'flying'.
    • Fight prompt: Can now be hidden with smessages.
    • Fmessages: Abilities used out of combat are no longer filtered by fmessages.
    • Full inventory: Fixed a full-inventory message that was showing when chopping ancient trees or otherwise producing items that can't be picked up.
    • Healing: Fixed amount of health shown after healing (from b5.165).
    • Hidden: The 'hide' affect is now called 'hidden'.
    • Mummified: The 'mummify' affect is now called 'mummified'.
    • Paginator: Fix display of paginator on clients that wait for IAC GA.
    • Prompt: Fixed a combination of settings that may have caused the wrong prompt to display.
    • Roads: Removed special-cased code that showed roads as mountain paths on rough terrain.
    • Room affects: These now show the apply-to-room message on activation.
    • Sense-Hidden: The 'sense-hide' affect is now called 'sense-hidden'.
    • Vampires: Fixed a bug where dying vampires would see the low-blood message as their effects wore off, despite not being low on blood.
    • Waterwalking: The 'waterwalk' affect and mount type are now called 'waterwalking'.
  • Empires:

    • Workforce: Fixed a bug where workforce could get stuck doing the production chore if it's depleted but not at the chore's cap.
  • Events:

    • 10700 Winter Wonderland: Minor text fixes. Upgrade glitter will also now update the item's level. Fixed script errors.
    • 18800 Halloween of the Dead: Upgrade ectoplasm will also now update the item's level.
  • Generics:

    • DoT affects: Removed the dottochar, dottoroom, deathtochar, and deathtoroom custom messages from generics. Added a field called "dot attack" that instead lets you specify an attack message to use.
  • Globals:

    • Obj Interactions: New global type for global disenchant lists.
  • Help files:

    • Ability levels: New help file to understand ability power scaling.
    • Return: Added a note to the immortal 'return' help indicating how to get to the help file for script return statements. Also improved the return statement help.
    • Skill caps: Updated to reflect new rules.
    • Skill reset: Split this from the main skills help.
    • Trade relations: Typo fix.
    • Various: Rearranged some helps between various help files.
  • Immortals:

    • Abandon: Fixed a bug from b5.104 where a privileged immortal who is not in an empire could cause a crash when abandoning an owned tile.
    • Kill tracker: Immortals no longer get added to a player's killed-by tracker.
    • Notes: When a player logs in, immortals with autonotes now see the notes header before the notes, rather than after.
    • Offenses: Immortals no longer cause offenses.
    • Peace: Now also cancels pursuit mobs.
    • Restore: Now clears and deathshroud/mummify affects to avoid immortals getting permanently stuck in them.
    • Stat: Items inside a vehicle now stack on stat vehicle.
  • Mobiles:

    • Movement: Updated how mobs wander indoors to let them wander in more directions. Fixed a bug where non-human mobs would not cross open buildings.
    • Speech: Random mob speech is now blocked by the SILENT room affect flag.
  • Objects:

    • Scaling: Fixed a bug where negative applies on items were contributing their face value in scaling points rather than how much they were worth. I don't think this effects any real items if all negative applies are for core attributes and bonus-*.
  • OLC:

    • Abilities: Revised the file format of abilities to save any data present, not just types used by the ability. The ability editor now does a better job of filtering what options each type needs.
    • Attack types: Added a full editor for attack messages and data. Existing fields that had attack/weapon types now take vnums and names, and can validate the chosen type.
    • Custom messages: Added better displays of the available custom message types on abilities, mobs, and objects. Added a sort option. Lists of custom messages now pad their number to 2 spaces so custom messages line up better, for copying. Added custom messages to crops and sectors (specifically, magic-growth).
    • Displays: Fixed an issue where type lists and flag lists with long names could cut them off.
    • Editors: The names of editors should no longer mask field names in other editors. For example, when editing a mob, .attack now correctly sets the mob's attack instead of trying to send the command to the .attackmessage editor.
    • Extra descs: Auditor now checks keyword length limit.
    • Sectors: Suppressed a warning on the sector auditor when there's no climate set but the sector inherits its climate.
  • Rooms:

    • Magic-darkness: Renamed the DARK room effect for clarity.
    • Permanent affects: Room affects with no expire time will now have a 5% chance to vanish from unclaimed tiles each game year.
    • Permanent-paint: New room affect changes how paint is displayed and prevents players re-painting.
  • Scripting:

    • %aoe%: Now supports a #VNUM argument that will send attack message.
    • Complete triggers: Fixed complete triggers, which were reading the wrong return value. Added a note in the help file that returning 0 will prevent further complete triggers.
    • Counterspells: The %char.trigger_counterspell()% function now accepts another person as an argument, for ability hooks so chained abilities can target the person who caused the counterspell.
    • %damage%: Now supports a #VNUM argument that will send attack message.
    • Fight triggers: Now passes a %hit% variable indicating if the attack will hit or not. Also now accepts 'return 0' to cancel the mob's regular attack.
    • Placeholders: The @ (at-sign) placeholder now works for vehicles as well as objects. Added type-safety for these placeholders.
    • Player techs: Added missing trigger calls to player techs for: barde, chip, chop, customize, dig, forage, gather, harvest, herd, hunt, milk, mint, pick, plant, quarry, saw, scrape, see-inventory, search, shear, tame, and tan.
  • Skills:

    • Natural Magic: Rearranged the Heal branch. Heal Friend now requires 55. Rejuvenate and Eartharmor now only require basic Heal. Added Wilderblaze at 80. Feline Familiars (formerly Familiar) no longer requires Ready Fireball. Added Giant Tortoise Familiar at 75. Counterspell and Hasten no longer require Familiars.
    • Skill caps: Revised the rules for skill caps to remove the confusing and rarely-used "extra level 50 skills or extra 75" system.
    • Stealth: Added Darkshroud at level 80.
    • Survival: Lay Paths was renamed Mountain Paths and dropped to level 75.
    • Trade: Rework (formerly reforge/refashion) now only requires Trade 95. Master Blacksmithing now only requires Forge. Master Tailor now only requires Sew.
    • Vampire: Added Bloodborne Tenacity at 55, Bloodbound Arcanum at 60, Red Mist at 80, and Deathrise at level 90.
  • Vampires:

    • Claws: Removed the CLAWS affect type and redesigned the claws ability to equip claws to your weapon slot. These can be used for skinning and butchering.
    • Low blood: Equipment with blood-upkeep that is removed due to low blood will now show custom removal messages.
    • Sun: Equipment with blood-upkeep is now removed in the sun if the player lacks Daywalking.
  • Vehicles:

    • Scaling: Vehicles now round up to the next 5-level mark like objects and mobs.

Patch b5.165: Demise of the Bugs (December 8, 2023)

  • Abilities:

    • By Moonlight: No longer gains experience while asleep.
    • Cut Deep: Now respects the 'abilities' fmessage toggles.
    • Darkness: Fixed visibility inside rooms blanketed by magic darkness.
    • Firstaid: Now shows the amount healed. This line is toggled by fmessages.
    • Gain hooks: Added a NOT-WHILE-ASLEEP gain flag that prevents skill gain when the character is not awake.
    • Heal: Now shows the amount healed and new total health on the same line as the healing message, not a second line. This line is toggled by fmessages.
    • Predator Vision: No longer gains experience while asleep.
    • Regenerate: For health, now shows the amount healed. This line is toggled by fmessages.
    • Shadowstep: No longer works while distracted.
    • Stunning blow: Now respects the 'abilities' fmessage toggles.
  • Adventures:

    • 104 Magiterranean: Permafrost: Removed hard-stuns from the fight scripts and added respect for stun immunity.
    • 125 Ruins: The Goblin Challenge: Removed anomalous ENCHANTED flag on the warg-bone earring.
    • 181 Goblin Mines: Will now report exactly what coins were spent using the triggers. Also level-locked some of the items.
    • 10400 Hamlet of the Undead: Will no longer auto-abandon when its ruins decay, as it spawns on claimed land.
    • 10450 The Sewer: Goblin Outpost: Adjusted the temperature inside the goblin tents. Replaced the difficulty-hint command trigger with a real can-fight trigger.
    • 11800 The Tower Skycleave: Ashes of History: Now lets player stop watching the races with "watch none". Adjusted the release triggers for floor 3 characters who could have blocked releasing the water-logged cage from the Guild of Adventurers. Adjusted the timing and messaging on the giant's respawn.
    • 12000 Binding Circle: Anat: Minor change to the difficulty selector to ensure the mob resets (this script is also used by Ba'al Hadad).
    • 12300 Fur Dragon: Replaced its difficulty-hinting command trigger with a proper can-fight trigger.
    • 12600 Elemental Escape: Updated the summoned ember's script to try to ensure it's target is in combat so it doesn't just keep pinging the player with fire.
    • 18200 The Guild of Adventurers: When boarding or disembarking the atlasian tortoise, companions and pets will now follow. Adjusted the script on the water-logged cage so it won't interfere with releasing characters in Skycleave. The Pay Off Dryleef quest will now report exactly what coins were spent.
    • 18450 That Dammed River: Added a two-hour delayed despawner when the dire beaver is killed.
    • Various: Updated some mobs with the new "animal whip" attack type. Added the new IMPORTANT flag to lots of objects and mobs that control adventures. This affected too many to list.
  • Archetypes:

    • Character creation: Improved the archetype menu so it prefers abbrevs of archetypes that are available, not locked.
    • Quests: Added a lead-in quest for the vampire archetype quest to make it clearer that you should come back at night.
  • Bug fixes:

    • Idnums: Fixed a minor issue where a new player creates then self-deletes, then the mud reboots, then a new player is created and gets the same idnum as the one who deleted before the reboot.
    • Multi-isname: Fixed a bug where a string containing only fill words (like "at") would match everything.
    • Reboot: Fixed a bug in regrouping players after a reboot. It will also now preserve group options.
    • fread_string: Updated this function to a later version of CircleMUD and fixed a bug where it added progressively more crlfs when re-reading and re-saving the same very long string. For example, some history commands would add more and more blank lines each time a character logged in.
    • Stuck at menus: Added a 5-minute idle-out for characters stuck at menus, for example when the client has a one-sided disconnect and the server thinks the character is still at the menu. Previously, this could lock out a character until the game reboots or an immortal disconnects it.
    • Targeting: Fixed some commands, like unquest, that did not accept 0.name for players (because they only accept players) and also didn't support the number-dot-name syntax for multiple players who share an abbrevation.
    • Vehicles: Fixed a bug where vehicles would generally not remove their fame or tech contributions when abandoned.
  • Buildings:

    • No-auto-abandon-when-ruined: New flag to prevent the room auto-abandoning when the building is ruined.
  • Character creation:

    • Echo: Fixed a bug where typoing your alt's password during character creation led to an enormous stream of echo on/off message.
    • Referral: Increased the referral string length so it stops cutting off URLS.
  • Code updates:

    • Auto-updater: Restored auto-update functions for beta 2 through beta 4 which were removed partway through beta 5. These may be necessary if someone creates an older EmpireMUD from the GitHub trunk and then updates it.
    • match_char_name(): Can now return whether the name match was exact or an abbreviation.
    • Name matching: Added a shortcut when the requested name is a script id, to avoid lots of string work for a string that will never match.
    • Storage: Changed code that deleted empire storage entries that were empty and updated other code to check that the store amound is greater than 0 before using it. This allows it to retain "workforce keep" data even when all copies of an item are retrieved.
  • Combat:

    • Disarmed: Characters in ranged combat who are disarmed are now forced to run into melee range. Bow and other ranged types are now disarmable (note the disarm ability requires melee range to work).
    • Fight messages: Added healing toggles to fmessages. Firstaid, heal, and regenerate all count.
  • Commands:

    • Ask: Now supports an optional language argument. Now fires speech triggers.
    • Chop: Adjusted the chop formula. The maximum number of chops should now be roughly 8 and this is roughly equivalent to a level 33 axe. Lowered the contribution from the superior flag; level 250 normal or 200 superior should now be enough for the maximum chop rate.
    • Companion: Fixed a bug where you could summon characters above your skill level (e.g. giant tortoise). Will now prefer ones you have the skill for over ones you don't and will clarify when it's your skill level preventing you summoning the companion rather than total level.
    • Dedicate: Will no longer hide the building's real name when an already-renamed building is dedicated.
    • Drive/fly/pilot: Empires you're at war with or distrust no longer block you from driving/sailing vehicles into a room. This fixes an issue where canoes could be used to block sailing by filling up the rooms around an enemy's dock.
    • Eat: When you target an invalid item, now says which item it was.
    • EEdit: Now displays an elog when you change the description or motd.
    • EInventory: Fixed a bug where having all of something on the ground would cause it not to appear on "einv [name]" or "einv all" despite contributing to totals.
    • Get: Now prefers to find containers (or corpses) when trying to get something out of something else.
    • History: Fixed a b5.164 bug where the first history item is not shown.
    • Keep: No longer works on quest items, which cannot be dropped anyway, to prevent interfering with quests.
    • Lead: Vehicles with lead but no driving/sailing/piloting flag now default to leading on land.
    • Look: Now prefers containers (or corpses) when trying to look in something.
    • Mine: Lowered the contribution from a superior pick. Level 200 superior or 300 normal should result in the maximum pick speed.
    • Nearby: Will now always show a city if you're on a tile that's in-city or outskirts territory for it, even if the city center is beyond your nearby range.
    • Progress: Fixed a bug where some goals showed 0/1 on the list when they had more than 1 task.
    • Put: Now prefers to find containers (or corpses) when trying to put something into something else.
    • Quest: Fixed a bug where some quests showed 0/1 on the list when they had more than 1 task.
    • Summon: Now prefers name matches you're high enough level for over ones you're not. Also clarifies when it's skill level rather than total level that's holding you back.
    • Taste: When you target an invalid item, now says which item it was.
    • Tell: Now prefers exact matches for the name, preventing one player name from masking a shorter name. This also applies to other player lookups.
    • Whisper: Now supports an optional language argument. Now fires speech triggers.
  • Content:

    • Anaconda: Replaced the constrict trigger on the anaconda with one you can struggle out of after it dies.
    • Animal whip: Replaced the attack on some animals with the new "animal whip" attack type.
    • Beach: Added the missing lightning stone to the beach's dig list.
    • Feral vampire: Gave this mob the wanderer bite script, removed its PURSUE flag, and put it on the Hostile Night Spawns list as a very rare spawn.
    • Important: Put the new IMPORTANT flag on message boards and magic portals.
    • Lighters: The firesteel, fire sticks, and fire drill can be crafted in the dark now.
    • Sharks: Combined the skin interactions on the basking shark and whale shark into single entries.
    • Tower of Sorcery: Removed the HALL and SKYBRIDGE designate options.
  • Crafts:

    • Dark-ok: New crafting flag allows some crafts to be made in the dark.
  • Displays:

    • Affects: Fixed an issue where two characters with the same affect wearing off at the same time would not see the second player's message.
    • Coins: Places where players spend coins, such as shops, will now report the exact coins spent, rather than the listed price (for example if you used a mix of coins).
  • Empires:

    • ELogs: Added a new "Alert" elog type. Starving citizens now log there instead of trade.
  • Events:

    • 10700 Winter Wonderland: Minor text fixes.
  • Generics:

    • Search/delete: Added missing checks for poison and potion objects that use generics.
  • Immortals:

    • Advance: Will now auto-approve new immortals when they are advanced.
    • Forgive: Will now cancel the hostile delay.
    • Help: Immortals can now view mortal help files with "help -m keyword" to avoid hitting the immortal help of the same name.
    • Peace: Fixed an error where this cleared DOT effects on the wrong person. It now also cancels paused fight scripts on mobs.
    • Reboot: Added a safety limit on "reboot N" when N is so comically large that it comes out negative when parsed.
    • Roster: Fixed a bug where a certain argument order would cause roster to silently ignore the "all" argument for immortals.
    • Set level: Will now auto-approve new immortals when they become an immortal via "set level".
    • Ship status: Privileged immortals can now view other empires' shipping status with 'ship "empire name" status'.
    • Show: Fixed an issue with "show learned" when an empire has the same name as a player.
    • Vnum: The "vnum skill" command no longer searches the description field, which is now covered by ".skill fullsearch".
  • Mobiles:

    • Attacks: Added a non-disarmable animal variant of the whip attack type.
    • Important: New mob flag that blocks casual use of the purge command. May also be used by scripts.
  • Objects:

    • Ammunition: Fixed a bug where BOE ammunition did not bind when shot.
    • Enchanted: Removed 1.3333x scaling on objects with the enchanted flag. Enchantments are separate and gear does not come with this flag.
    • fresh_copy_obj(): This function now copies hone effects, too. Added some data to ensure any future player-added applies will also copy.
    • Important: New obj flag that blocks casual use of the purge command. May also be used by scripts.
  • OLC:

    • Abilities: Fixed a bug where gain hooks don't update on in-game players when an ability saves.
    • Adventure auditor: Now checks for overlapping vnum ranges.
    • Craft auditor: Suppressed the warning about invalid build-on flags if the craft makes a vehicle.
    • Fullsearch: Added fullsearches for generics, quests, and skills. Added timer options and nowear/noworn to object fullsearch. Fullsearches now support searching for extra desc keywords.
    • Mobiles: When a minipet mob is a saved in OLC, any copies in-game despawn themselves.
  • Players:

    • Companion: Idling out will now correctly despawn your companion.
    • Hostile Delay: No longer cumulative.
    • Login: When a character logs back in and their old location is gone, e.g. when an adventure has moved, will now try to send them home before sending them to a starting location.
    • Name validation: Revised the process that validates names. It now gives better error messages when rejecting a name at login/creation.
    • Start locations: Respawning players without tombs will now generally go to the closest starting location rather than a random one. This should reduce some confusion with newbies when there are multiple newbie islands.
    • War Delay: No longer cumulative.
  • Quests:

    • Daytime: New quest requirement type.
    • Nighttime: New quest requirement type.
  • Scripting:

    • %aggro%: No longer errors when the victim is missing; will now just fall through to a general aggro.
    • charge_coins: The %actor.charge_coins()% function now also returns a string with the exact coins spent.
    • dg_affect: Added support for @caster as an optional argument to set the "cast_by" property of the affect. Also applied this to dg_room_affect.
    • Formatter: Updated the script formatter to follow nested control structures better, allowing it to format breaks that are inside of while statements as well as chained case/default statements.
    • Speech triggers: Now strips color codes.
    • Variable lookups: Added a shortcut where DG Scripts was doing a huge number of name matching in mob scripts for things it already knew were script ids, not names. This could have contributed to lag.
  • Vampires:

    • Biting: You can no longer stop biting while still blood-starved. But fixed some code where it must be able to cancel biting and couldn't before. Toggling autokill off will no longer prevent killing a character if the vampire is too low on blood.

Patch b5.164: Text Fixes and QOL Update (December 5, 2023)

  • Abilities:

    • Bite: Now ignores the cooldown when doing a non-attack bite (e.g. on an unconscious victim).
    • Bonus-magical/physical: Fixed some abilities that were not applying these traits when the user has no role set (or is under level 100).
    • Earthmeld: Now checks more types of water flags, including the frozen water climate, to prevent earthmeld.
    • Inspire: It was possible for some inspire options to fail 100% of the time. They now give at least 1 point in the stat.
    • Pickpocket: Now shows a message to members of your group when you pickpocket NPCs.
    • Worm: Now checks more types of water flags, including the frozen water climate, to prevent worming.
  • Adventures:

    • 52 Tutorial Quests: Added more text to the vampire tutorial to make it clearer how the game tracks success.
    • 11800 The Tower Skycleave: Ashes of History: Minor improvement to an error message trying to race. Added a custom chop message to the tedium shard.
    • 12350 Hoarfrost Serragon: Fix crop room title. Shorten the leash to shrink the ice patch.
    • 16000 Invasion of: The Goblin Necromancer: Added the !NEARBY flag.
    • Level: Applied level-rounding to adventure levels, too, for adventures which lock their level.
    • Mining tools: Added custom action messages to mining tools from adventures.
    • Morphs: Added missing look descriptions to all remaining adventure morphs.
  • Bug fixes:

    • Alternate: Remove the character faster by running extract_pending_chars() in hopes of preventing an issue where invisible copies of a character persist after alternating sometimes.
    • DoTs: It now clears damage-over-time effects at the beginning of extracting a character to avoid a timing issue where they could die mid-extraction from the DoT.
  • Buildings:

    • Maintenance: Will no longer add yearly maintenance to the resource list if an incomplete building has not had at least 1 resource added.
  • Commands:

    • Ability: The ability info now shows cost, cooldown time (if available), and how many times you've gained skill from an ability, if you're still gaining. Will also now show if it's purchased on either skill swap. Trying to do "ability drop" to drop an ability now gives a better error message.
    • Bug/idea/typo: Will now tell you what you submitted unless you have no-repeat toggled on.
    • Chant: No longer cancels when you type "chant" with an argument, or "ritual".
    • Contents: Now shows vehicles before objects, instead of after.
    • Cooldowns: Now shows cooldowns that are at 0 to avoid omitting a cooldown right before seeing its wear-off message.
    • Crafting: All crafting commands will now suggest the correct one if you try to use the wrong one. For example, 'brew pepper spray' now results in "Unknown brew. Try 'mix' instead."
    • Craft info: Now indicates whether or not you have the required ability and its mastery ability.
    • Customize: Now echoes to the room when customizing a room or vehicle.
    • Dismantle: Improved the error message when you typo the target.
    • Efind: Using "efind all" now skips vehicle-style buildings (which are now on the "territory" command). Efind with a search keyword will still find them.
    • Einventory: Now shows keep amounts from other islands. Can now be used in the ocean.
    • Esay: Fixed a bug where you could send messages above your own rank, which you could not see on history.
    • Group: Added missing options to the list of group commands. Toggling tutorials off now suppresses the group options. Fixed code that was supposed to show skills and role after level. Added color highlighting for role as well.
    • /History: Slash histories will now attempt to show up to 20 messages even if there were some in the middle you couldn't see.
    • Learn: Now indicates which command your new recipe falls under.
    • Morph: With no argument, now indicates your current morph on the list.
    • Ritual: No longer cancels when you type "ritual" with an argument, or "chant".
    • Scan: When scanning in a direction, now alterates gray/white to make tiles easier to distinguish.
    • Skills: Trying to use "skill drop" to drop an ability now gives a better error message.
    • Tents: Level-locked the tent and cabin tent items.
    • Territory: Major updates to this command allow more search options. Can also now find vehicle-style buildings on unclaimed tiles.
    • Whois: Now shows an estimate of how long since a player last logged on.
    • Workforce: When typed with no argument, now points you toward the help file for options; this is not shown if tutorials are toggled off. Now uses the tags (one island) and (some islands) instead of (partial) on screen reader view, for clarity.
  • Content:

    • Campaign of Triumphs: Fixed the GC target, which was Garlgarl instead of Furl.
    • Fried rice: Added the missing dexterity buff that is listed in the help file.
    • Morphs: Added missing look descriptions to all remaining morphs.
    • The Wilder Heart: Removed the oasis from the visit list for this quest because there's not a great way for it to require "any oasis". Swapped the lake for foothills for a similar reason.
  • Displays:

    • Archetype menu: Added more text clarifying the menu options.
    • Companions: Invisible companions no longer show a "leaves" message when despawning. This improves the text when a companion upgrades itself to a different one.
    • Crafting: Updated how some character strings are displayed while crafting. Crafting commands will now accept optional "quotes" around recipe names.
    • Damage: Added a bunch of new damage messages up to 551 damage rather than ending at 126.
    • Intro screen: Added a new line to the name prompt on the default intro screen to help ensure the name prompt appears to all users.
    • Loot quality: Identify, warehouse identify, etc will now show loot quality in words, like "boss drop", rather than showing raw flags.
    • Map memory: Fixed a couple of issues with icons that contain ampersands. They should now both save and display correctly.
    • Mines: With informative mode on, empty mine tiles now say "ore depleted" instead of just "depleted".
    • Mob leaves: Suppressed "leaves" messages when the mob is hidden or invisible.
    • (null): Fixed a bug from b5.162 where some empty damage messages were showing as null (e.g. a DOT effect on a mob that's immune to damage).
    • Quests: Fixed an issue with some quests showing high task counts on the quest list due to the task type.
    • Reboot: Changed the text that claimed reboots take 10 to 15 seconds.
    • Reputation: Added text so it can now say you are "Neutral to" the faction rather than "Neutral by" the faction.
    • Resources: Some actions, like chop and mine, will now warn if your inventory was full and the item ended up on the ground.
    • Skill gain: Will now show how many times you've gained skill from an ability when reporting the skill gain. If tutorials are off, will not show the line indicating how many ability points you have available each time you gain skill.
    • Vehicles: Vehicles can now stack when identical in a room. Vehicles are now shown before objects when looking at the room. When using 'scan' in a direction, or the normal screen-reader view, buildings with multiple large vehicles (or vehicle-style buildings) will show a count of the ones not displayed, for example: Lake <caravel, +2>.
    • Weather: Clarified that weather is going on outside, when the player is seeing it through a window.
  • Empires:

    • Chat history: Empire history is no longer limited to the character who saw the message and is stored for the whole empire.
  • Events:

    • 10700 Winter Wonderland: Fixed the straw goat vandals who sometimes showed up early, and sped up the script overall. Added protect notes to the goat for players who forget the command. The grinchy demon will no longer summon Max on normal difficulty. Added instructions to the gift from "The Winter Robin Hood". Added a 50-tile limit to how close the wintry portal can spawn to itself, to spread them out better. Raised the instance count to 50. The Christmas tree stand no longer requires a fire for pottery.
  • Help files:

    • Bonus-Magical/Physical: Added a note that these generally only apply in the matching roles.
    • Help screen: Added ELOG to the basic help screen, replacing the duplicate ESAY.
    • Housing guide: Added info on home storage.
    • Screen-reader: Added a note about using the tip command. Added a tip about how building entrances work to this help file, by request. Also added some of this info to the "tip" command.
    • Store: Added home storage info to the regular storage help.
    • Tips: Added home storage and building entrances to tips.
  • Immortals:

    • History: Privileged immortals can now target other empires to read empire history.
    • Reward minipets: Added 6 new reward minipets, vnums 9930-9935. Reworked the amazing reward box to have a random order and added the new pets to it. Removed dismissable and lonely-despawn scripts from all reward minis; these have not been necessary for quite a while.
    • Set: Using set to remove a companion from a player will now also despawn the companion.
    • Stat player: Now shows connection info such as color support and window size, where available.
    • Stat vehicle: Now shows the interior line when there is no interior, rather than omitting it.
    • Where: Now shows coordinates to immortals even when the player is in a no-location adventure.
    • Wiznet: The immortal channel now uses a global history, not a personal one. Added support for non-slash channels to have global storage. Also applied this to the god channel.
  • Objects:

    • Custom messages: Added mine-to-char, mine-to-room, chop-to-char, and chop-to-room custom messages to objects. Added them to most picks and some axes.
  • Quests:

    • Dailies: Daily quests that are on a cycle will now guarantee that a quest is active in that cycle at startup.
  • Vehicles:

    • Maintenance: Will no longer add yearly maintenance to the resource list if an incomplete vehicle has not had at least 1 resource added.

Patch b5.163: Unlockable Archtypes (November 30, 2023)

  • Abilities:

    • Ritual of Detection: Can now detect players up to your "where" range and adventures up to your "nearby" range, when cast from a city. Now shows the distance and direction to each result.
  • Adventures:

    • 126 Mountain Cave: Flame Dragon: Removed the !NEARBY flag. Can't imagine why nobody ever reported seeing a giant dragon scorching the countryside before.
    • 129 A Gigantic Nest: Added the DETECTABLE flag.
    • 10370 An Uninvited Guest: New city mini-venture.
    • 10400 Hamlet of the Undead: Added the DETECTABLE flag.
    • 10450 The Sewer: Goblin Outpost: Added the DETECTABLE flag.
    • 11800 The Tower Skycleave: Ashes of History: Fixed minor script error.
    • 12000 Binding Circle: Anat: Added the DETECTABLE flag.
    • 12030 Binding Circle: Ba'al Hadad: Added the DETECTABLE flag.
    • 12350 Hoarfrost Serragon: Clarified the shrine instructions in the progress goal. Added missing help file.
    • 12500 Clockwork Colossus: Added the DETECTABLE flag.
    • 16000 Invasion of: The Goblin Necromancer: Added the DETECTABLE flag.
    • Detectable: New adventure flag that makes it appear on Ritual of Detection.
    • Instancer: Sped up the instancer from "every 3 minutes" to "every 2".
  • Archetypes:

    • Menu: The archetype menu during character creation now lists unlocked archetypes in magenta, and offers a list of only unlocked ones with 'list unlocked'.
    • Unlocks: Player accounts now have a list of unlocked archetypes. These are unlocked by quest rewards and become permanently available for the player's account.
    • Quests: Added new archetype-themed quests for unlocking new starting archetypes. These generally require level 51 in each skill tree to start. Added 11 new archetypes (7 origins, 4 hobbies) that are unlocked by these quests.
  • Commands:

    • Prompt: Now warns if you shut your prompt off with smessages.
  • Content:

    • Sandals: Fixed text in the look description of the basic sandals.
    • Shoes: Added new basic newbie shoes for some archetypes.
    • Skill quests: All skill trees now have a new quest available somewhere in your city.
  • Displays:

    • Creation: Character creation will now send the IAC GA telnet code after its prompts to ensure screen readers read the last line, hopefully.
    • Prompt: Now sends the IAC GA telnet code after prompts.
  • Empires:

    • Citizens: Fixed a bug where the "citizen leaves" message still showed when a citizen was deleted while invisible.
  • Immortals:

    • Set: Can now set "unlockedarchetypes" on players.
  • Promo codes:

    • skillups: This now gives +10 to starting skills instead of +50%, to make it possible to start players with higher skill from archetypes.
  • Quests:

    • Completed-Quest-Ever: New quest task/requirement that ignores the instance id on previously completed per-instance quests.
    • Rewards: Added unlock-archetype as a quest reward type.
    • !SEE: Mobs that have the !SEE flag no longer offer or complete quests.
  • Scripting:

    • Archetypes: Added player vars for add_unlocked_archetype, remove_unlocked_archetype, and has_unlocked_archetype.
    • Coins: Added %player.coins(empire)% for getting the total number of coins of a given type or in total.

Patch b5.162.1: Fixes for patch b5.162 (not live)

  • Adventures:

    • 12350 Hoarfrost Serragon: Fix required level on crafts. Fixed progress goal typo.
  • Bug fixes:

    • fresh_copy_obj: Reloading an object, e.g. due to changes, now preserves object values on more types of items.
    • Warehouse: Fixed an error in stacking restringed items.

Patch b5.162: Climate Changes, Temperature, and the Hoarfrost Serragon (November 26, 2023)

  • Abilities:

    • Dangerous Leathers: Added warm leather outfit.
    • Magical Vestments: Added snakeskin robe (cooling) and white fur robe (warm).
    • Rawhide Stitching: Added warm hide clothing.
    • Sew: Added breezy clothing (cooling) and layered clothing (warm) to the basic clothing list. The traveling hat now provides cooling. The fur hat and shawl now provide warmth.
  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Fixed an issue where the crop circle was ignoring old-growth forests.
    • 104 Magiterranean: Permafrost: Added the new "frozen water" climate flag to the terrains used to freeze water around this adventure. Fixed a command trigger. Typo fix in the evergreens.
    • 126 Mountain Cave: Flame Dragon: Scorch tiles now have the "harsh" climate flag. Firefruit now gives a minor warmth buff when eaten. Added missing check-outside-fights flag to the adventure.
    • 127 Wandering Dragon: Added missing check-outside-fights flag to the adventure.
    • 180 Misplaced Mother Goose: The warm fleece is now warmer.
    • 11800 The Tower Skycleave: Ashes of History: Added the new "water" liquid flag to the enchanted water and pure morning dew. Added warming and cooling flags to some liquids in the adventure. Fixed the struggle command trigger. Minor fixes to Rojjer and Trixton's fight script. Fixed death logs.
    • 12350 Hoarfrost Serragon: New adventure in the desert.
    • 12650 Magiterranean: The Grove: Fixed the Tranquility quest which broke in b5.161.
    • 19000 The Swamp Hag: Added the warming flag to the hag's coffee.
    • Temperature: Adventures can now specify whether they're warmer or cooler than the local temperature, or even use it at all. Applied this to: Monsoon (warm), Hidden Garden (warm), Primeval Portal (warm), Permafrost (freezing), Skycleave (various), Hadad (comfortable), The Grove (comfortable), and Unstable Portal (various).
    • Various: Locked the level of many recipe/pattern items from adventures, usually to the level required by their craft. This affected: Monsoon, Renegade Spellcaster, Flame Dragon,

      Wandering Dragon, Goblin Outpost, Permafrost, Colossal Red Dragon, Giant, Gigantic Nest, Anat, Ba'al Hadad, Fur Dragon, Clockwork Colossus, Lost Temple, and Swamp Hag.

  • Auto-updater:
    • Fmessages: New fight messages are enabled by default on existing characters.
    • Smessages: All status messages are enabled by default on existing characters.
  • Bug fixes:

    • Includes: Several code files were previously including utils.h more than once.
    • Season: Fixed a bug in determining the season for a room which could have resulted in bad memory access.
  • Buildings:

    • Temperature: Buildings can now specify whether they're warmer or cooler than the local temperature, or even use it at all. Applied this to some buildings.
  • Combat:

    • Damage: The basic damage() function now supports custom fight messages.
    • Fight messages: These messages are now stored in a hash table, not a fixed-size array. There is no longer a limit. Sets of strings within each message type, ironically, are now stored as an array instead of 4 pointers. Added functions for creating and freeing fight messages. More abilities now use fmessages, including any that go through the generic ability engine. Added "damage numbers", "buffs in combat", "affects in combat", and "ability" options.
  • Commands:

    • Alternate: Alt import can now import status messages.
    • Buffs: New command lists your buff abilities and whether or not they are active.
    • Drink: Fixed some ids for liquid values. Updated for warming/cooling liquid. Players will now drink at least 4 hours of a liquid if it provides warming/cooling and they need it.
    • Eat: Improved message-building when eating part of a large food item.
    • Fightmessages: Reworked the code for command to be generic to also handle the new smessages command. Now allows optional on/off arguments rather than strictly toggling. Fmessages can now suppress buffs, abilities, and affect messages in combat. Added damage numbers as an option.
    • Nearby: Minor capitalization fix on cities.
    • Recolor: Now supports sun, temperature, and weather messages. Added color to the display when you type "recolor" by itself. Cleaned up some code that shows recolors.
    • Score: Now shows if you are too hot or cold.
    • Statusmessages: Also called "smessages". This command will let players turn off some of the game's status messages. This shares code with fmessages.
    • Survey: Now shows ambient temperature.
    • Temperature: New command shows the ambient temperature and your current temperature.
    • Toggles: Moved mortlog, channel-joins, and travel-look from toggles to status messages.
    • Weather: Now shows the ambient temperature. Can now show snow instead of rain when it's cold.
    • Version: Now displays the exact version (currently b5.162) rather than just "beta 5".
  • Content:

    • Always comfortable: The following buildings now always have a comfortable temperature: Celestial Forge
    • Cold weather spawns: Added "frozen water" as an exclusion flag on the global spawn lists for "cold" tiles. Aggressive tundra animals will no longer spawn on frozen lake tiles.
    • Cooler: The following buildings are now cooler than outside: Burial Cavern, Mountain Crypt, Tunnel, Crypt
    • Cooler when warm: The following buildings now have this temperature: Mud Hut, Pueblo, Shady Garden
    • Enchanted forests: All enchanted forests now have the "mild" climate flag.
    • Enchanted oasis: Removed spreading rules from this tile that were inadvertently left in b5.161.
    • Frozen Lake: Added the "frozen water" climate flag to this terrain.
    • Heroic adventuring pack: Now gives +25 nearby range.
    • Hot: The following buildings now have this temperature: Volcanic Forge
    • Imperial potions: Added a warming potion and a cooling potion to the global imperial formula lists.
    • Imperial traveling pack: Now gives +10 nearby range.
    • Irrigation: All irrigation tiles now have the "mild" climate flag.
    • Liquids: Added cooling and warming flags to liquids that need it, such as tea.
    • Milder: The following buildings now have a milder temperature than outside: Underground Complex, Mine Complex, Tavern, Tower of Sorcery, Castle, Palace, Oasis Garden, Rickety House, Strange Burrow, Old Pueblo, Obscure Cave, Top of the Tower
    • Oases: All oasis tiles now have the "mild" climate flag.
    • Peas: Small change to the icon to make it distinct from plains.
    • Tundra: The arctic tundra now has the "harsh" climate flag. Some items made from tundra creatures now provide warmth.
    • Various: Level-locked some items that don't have meaningful levels, including: paint recipes (level 1), imperial patterns (100), heroic patterns (200), crafter item recipes and materials (100, 200, or 300).
    • Warmer: The following buildings are now warmer than outside: Ship's Forge, Wagon Smithy, Wagon Galley, Forge, Potter, Foundry, Smokehouse, Bakery, Glass Blower, The Galley, Wagon Cooking Area, Small Forge
    • Warmer when cold: The following buildings now have this temperature: Imperial Carriage, Wagon Bedroom, Inside Caravan, Small House, Cliff Dwelling, Stone House, Large House, Mountain Hall, Mountain Garrison, Mountain Lodge, Wagon Sleeping Area, Carriage, Cabin Tent
    • Water: Added the new "water" liquid flag to basic water and coconut water. Most types of water are now "cooling".
  • Config changes:

    • Anonymous hosts: Added MudVerse and Mudslinger to the list of anonymous public hosts. This feature denies most accounts from logging in and will only allow un-approved new players.
    • new: temperature_discomfort 20 -- End of temperature zone.
    • new: temperature_extreme 30 -- Temperatures beyond this incur damage.
    • new: temperature_from_fire 10 -- Cold relief from certain items.
    • new: temperature_from_water 10 -- Heat relief from water tiles.
    • new: temperature_penalties 0 -- Controls whether or not the players must manage warmth and cooling. Defaults to "off".
    • Scaling: A new option, "round_level_scaling_to_nearest", is available in config.c (not the in-game configuration system). It is set to "5" by default and will round up all scaling values to the next 5.
  • Displays:

    • Anonymous host rejection: Added info on installing your own MUD client to the text displayed when connecting to an approved account from an anonymous host.
    • Prompt: Added too hot/cold to %c and %C (conditions), which only appear if temperature penalties are turned on. New prompt code %T shows ambient temperature.
    • Seasons: The strings that previously had a full line of text for each season now only contain the name; temperature is now displayed with them separately.
    • Weather: Now mentions snow and blizzards instead of rain and lighting, if the temperature is low. Weather messages are now shown in indoor rooms with the LOOK-OUT flag.
  • Events:

    • 10700 Winter Wonderland: Level-locked recipe/pattern items to level 1. Inside the wintry portal is always a comfortable temperature despite the snow.
    • 11505 Supplies for the Guild of Adventurers: Added the new "water" and "cooling" liquid flag to the "pure water" from the dragonskin canteen.
    • 11520 Pixy Pursuit: Added the new "water" and "cooling" liquid flag to the pixy water from the enchanted dewdrop. Locked the level of the pixy house schematic.
    • 18800 Halloween of the Dead: Level-locked recipe/pattern items to level 1.
  • Factions:

    • Hide-on-mob: New faction flag that prevents it from appearing under a mob's look description.
  • Generics:

    • Affects: Added four new strings: dot-to-char and dot-to-room for periodic damage messages from DoTs, and death-to-char and death-to-room when a DoT is fatal.
    • Liquids: Added new "liquid flags" to generics of this type: water, cooling, and warming. Liquids with the water flag can be used in places that currently use water (douse, pour out in a trench, and cooking with recipes that have the soup flag). Identifying a drink container will indicate if it contains water.
  • Help files:

    • Burn: Fixed typo.
    • Guild of Adventurers: Fixed errors in the help file for this adventure.
    • Help: Added the temperature command to the basic help screen.
    • Light: Fix usage.
    • Quest: Minor improvements to quest command helps.
    • Screen reader: Added fmessages and smessages to the list of commands to reduce spam. Also added channel join/leave info.
    • Status messages: Added notes in various help files, such as "temperature", that you can turn off their alert messages with the "smessages" command.
    • Sun: New help file for sun/sunrise/sunset.
    • Tips: Added status messages to the tips display. Fixed the patch-notes link in another tip.
    • Treasure: New help file.
  • Immortals:

    • Config: Fixed a bug from b5.127 or b5.132 (or maybe b5.152) that blocked categories from view if their name was also an abbreviation of any config key.
    • Help files: Added helps for SECTOR and BASE SECTOR, which were conspiculously missing.
    • Reload: Can now reload fight messages.
    • Restore: Added temperature as a restore option.
    • Show: Added show fmessages and show smessages to help diagnose player trouble.
    • Stat character: Now shows temperature, warmth, and cooling.
    • Stat room: Now shows ambient temperature and computed climate.
    • Utility: Added 'temperature' to the utility command for better analysis.
  • Islands:

    • !TEMPERATURE-PENALTIES: New island flag that disables penalties from heat/cold.
  • MSDP:

    • Alternate: Player should now receive correct MSDP info after using alternate to switch characters.
    • Attributes: Fixed a bug where attributes generally did not receive updates via MSDP.
    • Temperature: Added four new MSDP entries: TEMPERATURE, TEMPERATURE_LABEL, AMBIENT_TEMPERATURE, AMBIENT_TEMPERATURE_LABEL.
    • WORLD_SEASON: Now shows just the season name, not the message for the season.
  • MSSP:

    • Database size: Updated what counts toward this data.
    • Help files: Fixed the count of help files, which was including duplicates.
    • Quest system: Corrected this to say "integrated" rather than "no".
    • Roleplaying: Corrected this to say "encouraged" rather than nothing.
  • Objects:

    • Reloading: Objects that are reloaded via the fresh_copy_obj() function, for example, when a player's items are updated while they're offline, it will now correctly preserve equipment sets the item was assigned to. If the level is unchanged, it will also try to copy the enchantment.
  • OLC:

    • Sectors: Added a ".checktemperature" command to the sector editor to preview temperatures.
  • Players:

    • Bonus traits: Implemented the previouly-disabled fireborn (warm weather resistance) and frostborn (cold weather resistance) bonus traits.
    • Cooling: New extra attribute (and matching apply type) that indicates how much your gear and effects are cooling you down in the heat. Cooling is penalized by half of your warmth trait.
    • HASTE: This affect flag no longer works when you also have SLOW.
    • HUNGRIER: New affect flag that increases the rate at which the player becomes hungry.
    • IMMUNE-TEMPERATURE: New affect flag that prevents temperature penalties. Players now receive this for 30 seconds after dying and respawning.
    • POOR-REGENS: New affect flag that significantly reduces the regen rate on players similar to when hungry or thirsty.
    • SLOW: This affect flag no longer penalizes you if you also have HASTE.
    • SLOWER-ACTIONS: New affect flag that specifically slows down slowable timed actions, such as chopping. This is similar to the SLOW affect.
    • Status messages: Also called "smessages", a new player preference that can disable some spammy messages.
    • Temperature: New player trait that shifts with ambient temperature and is protected by warmth/cooling gear. Players generally log in at a comfortable temperature and then adjust toward the ambient temperature.
    • THIRSTIER: New affect flag that increases the rate at which the player becomes thirsty.
    • Warmth: New extra attribute (and matching apply type) indicates how much your gear and effects are providing warmth against the cold. Warmth is penalized by half of cooling.
  • Room templates:

    • Temperature: Room templates can now specify whether they're warmer or cooler than the local temperature, or even use it at all. This overrides the adventure's setting unless the room template is set to "use climate".
  • Scripting:

    • Character temperature: %person.temperature% to get a player's current temperature. Also supports %person.temperature(base)% to get unmodified temperature and %person.temperature(amount)% to set temperature.
    • Looker: Added a generic version of Skycleave's "looker" on vnum 9680 in the script library.
    • %mod%: Can now set, change, or clear tags on a mob using %mod%.
    • Storytime: Copied Skycleave's storytime script to vnum 9620 in the script library.
    • %teleport%: Now supports teleporting an object into a container object, into a vehicle, or into a person's inventory.
    • Temperature: Added %room.temperature% to get ambient temperature as a number and %temperature.NUMBER% to convert numbers to text.
  • Sectors:

    • Climate: Sectors can now inherit the climate of the base sector underneath them with the new INHERIT-BASE-CLIMATE flag, which has been applied to the appropriate terrains.
    • Evolutions: Added evolutions for adjacent, near, not-adjacent, and not near sectors with particular flags. The "value" field in evolutions is now an signed long long (sbitvector_t) to accomodate this.
    • Frozen water: New climate flag indicating there would be water but it's frozen.
    • Harsh: New climate flag that increases temperature extremes.
    • Irrigates-area: New sector flag which, combined with new evolutions, greatly simplifies the irrigation tiles. Updated all irrigation evolutions. Frozen canals will no longer cancel irrigation.
    • Mild: New climate flag that reduces temperature extremes.
    • Temperature: Sectors can now specify whether they're warmer or cooler than their climate indicates.

Patch b5.161: Enchanted Forests and Better Quests (November 3, 2023)

  • Abilities:

    • Backstab: No longer works while disarmed.
    • Jab: No longer works while disarmed.
    • Moonrise: Now restores blood up to 20% but no longer penalizes blood on the target.
    • Resurrect: Now restores blood up to 10% but no longer penalizes blood on the target.
    • Rituals/chants: Now support tool requirements. Also fixed the order of mana checks and when triggers are called.
    • Tools: Abilities can now require tools in their configurations.
    • Two-Handed Weapons: Now gives 50% extra damage when uses 2H weapons instead of its old effect.
  • Adventures:

    • 103 Magiterranean: Monsoon Rift: The "Quench the Desert" quest can now show its specific count in the quest tracker.
    • 104 Magiterranean: Permafrost: The "Pacify the Permafrost" quest can now show its specific count in the quest tracker.
    • 10250 Portal to the Primeval: The dracosaur tooth robe now correctly has max-mana, not max-move.
    • 10400 Hamlet of the Undead: Added a dismantle hint on the burnt ruins.
    • 11800 The Tower Skycleave: Ashes of History: Made it easier to target the putrid sap with conflicting inventory items.
    • 12650 Magiterranean: The Grove: The "Tranquility of the Grove" quest can now show its specific count in the quest tracker.
    • 18200 The Guild of Adventurers: Quests with multiple scripted tasks, such as Feeding Rodentmort, can now show their specific count in the quest tracker. Fixed a message when the atlasian egg hatches.
    • 18460 Unstable Portal: Minor improvement to the Twisty Little Passages portal and the Precipice of Anticipation portal.
    • Various: Added the 'staff' tool type to adventure staves that were missing it.
  • Bug fixes:

    • Morphing: Ensured no division by zero and fixed a bug with mobs morphing when they don't have mana.
  • Combat:

    • Death: All players now have full blood after dying and respawning.
  • Commands:

    • Abandon: Fixed a bug where remote abandons were unnecessarily pedantic about coordinate formatting.
    • Alternate: Now displays any login messages from the automessage system when you switch characters with alternate.
    • Build info: Will no longer show "dismantle" recipes.
    • Consider: Fixed an issue in code that determines what level to scale to as its use in the consider command caused an incorrect level determination when considering a low-level NPC following a high-level player.
    • Forge: Fixed a minor issue where some requirements were only re-checked while forging if the player lacked a hammer.
    • Kill: Fixed a bug where this command did not work while fighting.
    • Nearby: Now shows your current nearby range at the top.
    • Quest: Improved the error message when the argument is invalid. Fixed an old issue where some types of quests show (0/1) for tasks completed rather than their real number of tasks such as (3/4) on the quest list.
    • Redesignate: No longer works in a room with a linked instance.
    • Where: Reformatted the output slightly. Now also shows your current where range at the top, when typed with no argument.
  • Content:

    • Catapult: Removed the non-functioning driving flag.
    • Chimpanzee: Now has meat when butchered.
    • Disenchant Trinkets: This quest can now show its specific count in the quest tracker.
    • Enchanted forests: Temperate enchanted forests have been renamed "starwood". Both types of enchanted forests no longer spread themselves, although weirdwood will still spread to an oasis. Chant of Nature now works on enchanted forests and triggers a time-delayed growth cycle, meaning players can now gain additional magewood by chanting on these tiles periodically. Fixed icons for some sectors. Updated all related progress goals, which will now start themselves when the player receives a seed. Lowered the rate slightly on natural growth.
    • Gorilla: Now has meat when butchered.
    • Hammers: Removed the hammer requirement from crafts that only required it because they contain nails. Also removed the hammer requirement from forged items that had it set because forge already requires a hammer.
    • Letheian icon: Now stores at the utility shed and store room.
    • Nascent crystal seed: New craft, taught by a new progress goal, that allows players to move enchanted forests.
    • Rare map spawns: Removed the animal flag and added meat to the butcher list for two rare creatures.
    • Staves: Added the 'staff' tool type to crafted staves that were missing it.
  • Displays:

    • Lock-icon: Now correctly copies the base terrain color when locking a map icon due to this flag.
    • Login messages: Adjusted the spacing slightly on the tips, mail, and auto-messages that appear during login.
    • Objects: Looking at an object will now mention that it starts or finishes a quest for you.
    • Paginator: Fixed an issue with the paginator detecting line width on lines with color codes since the switch to using "tab codes" in b5.151.
    • Room affects: Fixed the wear-off message, which was using the to-char message, not the to-room message.
    • Tips: No longer shows a tip automatically during login if the player has toggled tutorials off.
  • Events:

    • 10700 Winter Wonderland: Added a new minipet to the mount whistle. The miniature polar vortex can now re-start its own quest and no longer purges itself while the event is still running if you drop its quest. Lowered cooldowns on some quest tasks. Minor quest fixes. Quests with multiple scripted tasks, such as "Terrorize the Terriers", can now show their specific count in the quest tracker.
    • 18800 Halloween of the Dead: The pillaging pillowcase can now re-start its own quest and no longer purges itself while the event is still running if you drop its quest. Minor quest fixes. Quests with multiple scripted tasks, such as "Magic Mirror", can now show their specific count in the quest tracker.
    • Login: Players are now notified if they have uncollected event rewards when they log in.
  • Immortals:

    • Drink containers: Updated the help file for making this kind of item.
    • Event points: No longer logs if a player gains 0 points due to being at the event's points cap.
  • Objects:

    • Tools: Objects now have a requires-tools field for tools required when building/maintaining with the object. Applied this to crafts that required hammers because they use nails. Now only the nail portion of the building will require a hammer and it will not require a hammer to start the building.
    • Two-handed weapons: Raised the scaling bonus for this type of item. All players can now use 2H weapons.
  • OLC:

    • Applies: Now accepts a leading plus sign on apply amounts.
    • Mobs: Added minipets to the mob search/delete code.
  • Players:

    • Nearby-range: New extra attribute (and matching apply type) that increases the range of the "nearby" command.
    • Vampires: Starving characters will now automatically wake up before auto-biting. They will also cancel timed actions first.
    • Where-range: New extra attribute (and matching apply type) that increases the range of the "where" command.
  • Progress goals:

    • Famous Forests: New hidden progress goal that appears when an empire has both types of enchanted forest (at any stage).
    • No-tracker: New flag that prevents players from seeing the tracker on a progress goal. To be used when the tracker looks ridiculous.
    • Own-sector: This type of task now only checks the list of tiles for the sector it needs, not the whole world. This prevents a large game freeze-up that would happen if a goal checked a lot of sectors.
    • Startup: Progress goals are now refreshed at the end of the startup process, not immediately after startup finishes, preventing delayed lag after a reboot.
    • The Power to Move Forests: New goal purchase that grants the recipe for nascent crystal seeds, which allow you to move an enchanted forest.
  • Quests:

    • Tracker: Scripted quest conditions can now show how many tasks remain rather than being binary. Existing quests and scripts are backwards-compatible.
  • Scripting:

    • Get triggers: Added a %preventable% var to indicate whether or not the get can actually be stopped. Applied get triggers to a large number of things that were missing them: canceling a morph that required a consumable object, chopping, digging, fishing, forging, harvesting, panning, scraping, generic room interaction chores, untie, the gods' create command, combine, light, buying a money object from a shop, shear, skin, butcher, generic crafts, quest/event rewards, retrieving resources, the corpse left when dying, pickpocket, and items loaded by immortals. Help files now also suggest a "wait 1" before purging itself.
    • Load triggers: Now detect if an object purged itself in the load trigger, and safely proceed from there. Previously, it was probably possible to create a crash bug with this. The help file now also recommends a "wait 1" before purging itself in the load trigger.
    • %quest%: Now triggers or untriggers 1 task count at a time. Added resettrigger for clearing the whole task count and settrigger for setting it to a specific number. Existing quests and scripts are backwards-compatible.
    • quest_triggered: This character getter now returns the number of times the quest has been triggered.

Patch b5.160: Quest QOL (October 23, 2023)

  • Adventures:

    • 10450 The Sewer: Goblin Outpost: Typo fix on the war rat.
    • 18200 The Guild of Adventurers: Added helpful reminder text to "Fathom a Little Goblin Aid".
    • Various: Very minor text tweaks.
  • Commands:

    • Finish: You can now just type "finish" instead of "quest finish".
    • Start: You can now just type "start" instead of "quest start".
    • Prompt: Added %E for enemy's name to prompt/fprompt/display.
    • Quest: You can now get info on a quest without the word "info" using just "quest <name>". Combined the lines that show daily quests and event dailies remaining.
    • Skills: Minor change to how noskill is displayed.
  • Displays:

    • Daily reset: When a player logs into the game, it now shows daily quest and bonus experience resets immediately after the tips and mail, rather than a few seconds later. Changed the color on this message to make it stand out from the tips message.
    • Sire: Now correctly shows a death log when sire fails.
  • Events:

    • 18800 Halloween of the Dead: Minor quest fixes. Changed the name of Dracula's mirror to avoid conflicting with "look mirror" for another holiday quest.
  • Help files:

    • Bother: Added missing punctuation.
    • Iron guide: Typo fix.
    • Workforce limit: Now also mentions the other way to set a limit.
  • Immortals:

    • Show skills: Now indicates if the player has no-skilled a skill.
    • Show quests: Now shows daily counts even if the player is not on any quests.

Patch b5.159: Halloween/Bug Fixes (October 17, 2023)

  • Adventures:

    • 11800 The Tower Skycleave: Ashes of History: The dew item now allows 'sip' in addition to 'drink' and 'use'.
  • Bug fixes:

    • Combat: Fixed a bug where companions without attacks could repeatedly jump to your aid if nothing was hitting them.
    • Git ignore: Added *.yml to some gitignore files because certain compilers now seem to generate yml files not needed by the MUD.
  • Commands:

    • Chart: If you abbreviated multiple islands when charting, it will now list other matches, too.
    • Craft: All crafting commands now prefer recipes you have the resources for over ones you don't (this also applies to 'craft info'). For example, 'smelt copper' creates bars if you have ingots, but creates ingots instead if you only have ore. Fixed the level display on 'craft info' to account for level restrictions on the item.
    • Customize: Island names must now be unique.
    • Quest: Using 'quest list' when you have no quests will now correctly show your daily quest counts.
    • Where: Fixed a bug wherein using this command with no argument (with a mortal) was not seeing linkdead characters. Fixed a bug in name matching that was unable to see morphs.
  • Content:

    • Guard towers: Changed the wear-off message for the "distracted" affect of the guard tower arrow to avoid confusion with the "slow" portion.
    • Script Fight system: Fixes to the generic dodge/interrupt/struggle handlers.
  • Displays:

    • Paint: Fixed a bug where a painted open building would re-color a player's icon on the ASCII map.
  • Empires:

    • Guard towers: Fixed the duration of the "slow" effect from being shot by a guard tower. It was supposed to be 1 game hour; it was 30 minutes instead.
    • Login penalties: Fixed the order of applying penalties to players who log in inside hostile territory (or while at war). These were applying before affect durations were converted, incorrectly adding the current timestamp to the duration.
  • Events:

    • 10700 Winter Wonderland: First updates to this event to prepare for the 2023 season including fight updates and quest fixes.
    • 18800 Halloween of the Dead: Small demons from the portal can now be attacked. Added "ancestor" and "grandmother" to the keyword list on the faded spirit. Added a wear-off message to the "picking candy" cooldown. Lowered crafting time on the costume trunk. Minor script fixes. Citizens will now react to unleashed creatures from the bone cage. The skeletal wagon wheel now indicates its use when you look at it.

Patch b5.158: Macabre Menagerie (October 3, 2023)

  • Commands:

    • Compare: Moved this command to be alphabetically after "companions", not before, for abbreviation purposes.
  • Events:

    • 18800 Halloween of the Dead: Added a new quest, Macabre Menagerie, to alternate with the Natural Magic daily quest.
  • Immortals:

    • Quests: Event daily quests now show active/inactive on the quest list.

Patch b5.157: Halloween of the Dead 2023 Updates (September 30, 2023)

  • Adventures:

    • 11800 The Tower Skycleave: Ashes of History: Fixed mobs that sometimes had the wrong stats after difficulty selection. Minor typo fix in the dormitory.
  • Events:

    • 18800 Halloween of the Dead: Added a new minipet to the goodie bag and reduced last year's minipet to 1%. Added dodge/interrupt prompts to the boss's fight scripts.
  • Website:

    • Map-viewer.php: Now defaults to "pixelate when zoomed".

Patch b5.156: Minor Adventure Updates (September 13, 2023)

  • Adventures:

    • 51 Trade Tutorial: Museum of Early Man: Added a "Museum:" prefix to the quests.
    • 103 Magiterranean: Monsoon Rift: Moved the 'enter rift' hint from the Commands line to the rift objects, since the rift closes before the adventure despawns. Fixed the infuse script that only worked at one type of oasis. Added a prefix to the quest names.
    • 104 Magiterranean: Permafrost: Added a "Permfrost:" prefix to the quests.
    • 125 Ruins: The Goblin Challenge: Added messages to indicate when the goblins are each ready to fight.
    • 128 Colossal Red Dragon: Added a prefix to the quest names.
    • 129 A Gigantic Nest: Added a prefix to the quest names.
    • 201 The Cursed Chalice of Mill Manor: Fixed a small issue with the chalice if you took it to another adventure without finishing it. Also added a delayed despawner to the adventure in case the player does not finish the chalice inside the adventure. Fixed bugs in the dragonflies and titanaconda which prevented them from aggroing when spawned.
    • 10250 Portal to the Primeval: Fixed the 'track' script to support the Guild of Adventurers version of Malfernes.
    • 10400 Hamlet of the Undead: Players may now sneak past the trash mobs.
    • 11800 The Tower Skycleave: Ashes of History: Fixed the script that tracks the name of the player who started each floor. Raised the drop rate on diary pages.
    • 12400 The Golden Goblin: Added a "Golden Goblin:" prefix to the quest names.
    • 12500 Clockwork Colossus: Added a prefix to the "hire" quest's name.
    • 12600 Elemental Escape: Added a prefix to the quest names.
    • 12650 Magiterranean: The Grove: Added a "Grove:" prefix to the quest names.
    • 18200 The Guild of Adventurers: Updated some quest names to include adventure names in them. Small improvements to some quests from b5.154. Revised the Rodentmort quest to involve the swamp hag slightly.
    • 19000 The Swamp Hag: Changed the color of the adventure's building tile to make it stand out from other swamp buildings more. Added a (difficulty) hint to the selector.
  • Content:

    • Shady enchanted oasis: Added the missing lock-icon flag.
  • Displays:

    • Reputation: "Revered" is now bright green, rather than the same dark green as Venerated.

Patch b5.155: Burrow Canyons and Mill Manor updates (September 7, 2023)

  • Adventures:

    • 104 Magiterranean: Permafrost: Added the (difficulty) hint to the difficulty selector.
    • 200 Burrow Canyons: Increased the level range to 75-175. Added a difficulty selector. Blocked teleportation until a difficulty has been selected. Selecting a difficulty now starts the delayed despawn timer, formerly started just by entering. Fixed mob despawning. Poison fight scripts now respect poison resistance/immunity.
    • 201 The Cursed Chalice of Mill Manor: Increased the level range to 100-200. Added a difficulty selector. Titanaconda and the sleeping ivy now respect stun immunity. Added INFRA to mobs that were missing it and added PURSUE to spawned dragonflies.
    • 18200 The Guild of Adventurers: Minor fixes to quests from b5.154.
  • Help files:

    • Combat gimmick: Removed extra ampersand.
    • %door%: Clarified parts of the %door% script command.

Patch b5.154: Guild of Adventurers Expansion (August 30, 2023)

  • Abilities:

    • Buffs: Updated Intensify, Amplify, Withstand, Adapt, Prepared, Gleam, which are all self-buffs with durations identical to cooldowns. Since b5.152 allows these to happen at exactly the same time, the cooldown and wearoff messages have been merged. In most case, this resulted in a new message entirely.
  • Adventures:

    • 125 Ruins: The Goblin Challenge: Fixed an error in the difficulty selector that set group mode instead of boss mode.
    • 10450 The Sewer: Goblin Outpost: Added difficulty selector hints to the mobs' long descriptions and updated the adventure description and help file to mention them. You can now use the goblin forge as a forge.
    • 12650 Magiterranean: The Grove: Added a hint to type 'list' on Grandmother Poplar.
    • 18200 The Guild of Adventurers: Added a new tier of 15 daily quests at the end of the existing content. Added the larger-nearby feature to the guildhall in the Tipsy Tortoise. Lowered the reputation needed for the tortoise trinket, which also got renamed. The signalling stone is now removed when its quests are complete. Added flying mounts. Improved the names of all the mount whistles to be clearer.
    • 18460 Unstable Portal: Made the schooner is unclaimable.
    • 18500 The Lost Temple: Added a difficulty selector hint to the long description of the orb.
    • 19000 The Swamp Hag: Added the number of tails for each difficulty to the help file.
    • Various: Added no-mint flags to many wealth items that don't represent mintable metals.
  • Commands:

    • Build: Changed the message when you start working on an already-started building.
    • Craft info: Now shows the exact level you will craft an item at.
    • Survey: No longer shows negative elevations (which are used for direction-of-flow in rivers).
  • Content:

    • Leather Tutorial: Added more information on which abilities you need to both the quest description and the completion message.
    • Various: Added no-mint flags to many wealth items that don't represent mintable metals.
  • Displays:

    • Resources: Some commands, such as crafting commands, will now mention the name of the craft before the list missing resources, for example when you type 'forge sword' with no iron. This should help players make sure they hit the right craft.
  • Help files:

    • Combat Gimmick: Added a help file to help explain gimmicks like dodge.
    • Difficulty: Added a help file for difficulty and difficulty selectors.
  • Immortals:

    • Show: When multiple accounts are online from the same IP, it will now correctly indicate this on "show account".
  • Objects:

    • Wealth: Changed value 1 on wealth items from "automint yes/no" to a flagset with automint and no-mint.
  • Scripting:

    • Command triggers: Fixed a pair of bugs where a command trigger that's the same command as a social or ability only worked on exact matches, not abbreviations of the ability or social name.
    • People: Fixed the optional vnum subfield of %room.people(vnum)% to allow negative numbers (for shorter scripts).
  • Socials:

    • New socials: flutter, fomo, glide, ijbol, jump, lmao, pirouette, sashay, skip, slide, spin, stomp, stretch, sway, tiptoe, twirl
    • Point: Can now target objects and vehicles.

Patch b5.153: Critical Hunger Fix With Text Updates (August 21, 2023)

  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Magic beans are now storable and have a component type of "small magic vegetable"; they no longer count as junk.
    • 11800 The Tower Skycleave: Ashes of History: Fixed a mount that should not have left a corpse and was also blocking regular uses of the mount command for some players.
    • 12650 Magiterranean: The Grove: Added a note in the help file that the wild fire burns out.
  • Code updates:

    • SAFE_ADD: Added full bounds checking to the SAFE_ADD function which only checked bounds in some cases. This fixes a bug from b5.152 in hunger and thirst. This patch includes an auto-updater to repair any players who inadvertantly have bad hunger/thirst values.
  • Commands:

    • Distance: Fixed a bug from 5.150 where distance would not accept coordinates with parentheses.
    • Empire: Can now paginate the empire detail page.
    • Paint: Improved the error message when the player is missing an argument.
    • Reclaim: Your own empire now receives an elog when you reclaim someone else's territory.
    • Territory: Lowered the maximum number of entries before it starts combining them but reduce how aggressively it combines them, in order to avoid accidentally forcing the paginator on long results (this will also affect findmaintenance).
    • Workforce: Fixed the names of artisans who are not currently spawned on 'workforce nearby'; it was only showing their first name.
  • Content:

    • Castle/Palace: Renamed the portcullis building to castle and the great hall building to palace. They also received new icons and room descriptions.
    • Enchanted Oasis: Added more icon variants.
  • Help files:

    • Crops: Mentioned crop regions.
    • Dismantle: Add info about ability requirements.
    • Forage: Mentioned crop regions and traveling.
    • Help command: Added "scan" to the basic help display. Added a screen-reader-friendly version of that display.
    • Keep: Added notes about keep'd items not counting on the quest tracker to the 'keep' and various 'quest' help files.
    • Paint: Added examples to the help file.
    • Regens: Added a help file for normal regeneration and added notes to helps for SLEEP and REGENERATE.
    • Workforce: Added notes to the help files for clay pits, quarries, and sand pits to more clearly explain what workforce does there.
  • Immortals:

    • Show: Updated show "crops", "buildings", and "terrain" so that they won't use the two-column view for screen reader users.
    • Stat: Added the crop vnum to the "plants" section of stat object.

Patch b5.152: Tickers and Schedulers (August 19, 2023)

  • Abilities:

    • Enervate: Updated the code so the cooldown is always 75 seconds as stated in the help file, not tied to the length of a MUD hour.
  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Fixed keywords on the spadebrush crop's extra description.
    • 103 Magiterranean: Monsoon Rift: Minor fix to the Suppress Weather script. Fix for a quest that had a pair of "or" conditions that should have been "and" conditions.
    • 180 Misplaced Mother Goose: Added a quest in the Soulstream tutorial that leads to this adventure using nearby and scan.
    • 181 Goblin Mines: Added a quest in the Soulstream tutorial that leads to this adventure using nearby.
    • 11800 The Tower Skycleave: Ashes of History: Added a joke to Orlin's dialogue. Added dust to the gift shop to match an emote.
    • 12600 Elemental Escape: Added a quest in the Soulstream tutorial that leads to this adventure using nearby.
  • Affects:

    • Auto-updater: Wrote an updater to convert affects on existing mobs, rooms, and players for the following changes:
    • Display: On score, stat, and the affect command, this now shows time as 0:05, 1:00, or 1:00:00 rather than, for example, "1.1min". These should be exact times, not approximate.
    • DOTs: When a person becomes incapacitated, it will no longer clear their DOT effects unless the incapacitator is a player with autokill turned off (or a companion of that player). DOTs now go to a temporary list before their memory is free'd to avoid issues when a player dies in the middle of processing a DOT and it's removed from them.
    • HOTs: Heal-over-time effects now use a scheduled DG event instead of running on the 5-second iterative updates.
    • Timer: Character affects and DOTs (from spells, scripts, etc) no longer tick down by iterating over all mobs every 5 seconds; they now run on DG event timers. This will make their durations more consistent and removes some of the need to iterate over all mobs in the game every 5 seconds. Room affects already had this feature.
    • Note for implementors: All code functions for creating affects and DOTs now take duration in number of seconds, not the

      number of 5-second "real update" ticks.

  • Code Updates:
    • DG Events: Changed how DG Events (which handle things that happen on a timer) are stored. This was a hash table but they are always very short lists so it is now a linked list. Added a function for canceling all events in a list.
    • Player character list: Created a new global list, player_character_list, which includes only players (no mobs). This shortens iteration time for several common activities.
    • Pools: Health, moves, mana, and blood now require set_health() functions (etc) to change them in the code. This enables the game to schedule updates on mobs that need them.
    • Ticks: Moved all the mob and object updates that were on 5- and 75-second ticks to new DG event functions. These now schedule and run themselves, with no further need to iterate over all characters or items in the game every 5 seconds. Players and vehicles still run these updates in the old way.
    • Timing: Updated some comments in the code related to timing to clarify they are on the "real update" cycles.
  • Commands:

    • Burn: Separated from the light command. Can now burn buildings, including from adjacent tiles. Can now burn vehicles from within. You must have dismantle privilege to burn your own empire's buildings and vehicles. Can now burn crops. No longer lights objects. Buildings and crops trigger an elog when they are burned (vehicles already did).
    • Chart: Now shows names that other empires call the island, if you have diplomatic relations with them.
    • Douse: Allows 'fire' as an argument for dousing buildings. Can now be used for free on water tiles (oasis, well). Immortals no longer require a water source anywhere. Douse can now put out a torch (and many other lights) without destroying it, at the cost of 1 hour of remaining fuel. Some lights cannot be doused; some lights are still destroyed when doused. Dousing a light will make it unstorable, if it was not destroyed by the douse.
    • Light: Separated from the burn command. Now only lights objects. Lighting the new LIGHT object type, which does not replace the object with a different version, will make the object unstorable.
    • Pour: Using 'pour out' with a water container in a burning building will now automatically perform a douse action.
    • Quest: Typing 'quest list' while on no quests will now hint at 'quest start' if used in a room with startable quests.
    • Sip: Fixed the messages sent by using sip rather than drink.
    • Tomb: Now lists available tombs on your current island when typed with no argument. Also warns if you have no tomb on this island.
  • Configs:

    • idle_action_rent_time: This is now in minutes, not ticks/hours (default did not change).
    • idle_linkdead_rent_time: This is now in minutes, not ticks/hours (default did not change).
    • idle_rent_time: This is now in minutes, not ticks/hours (default did not change).
  • Content:

    • Canals: Temperate canals will now irrigate nearby desert, too, as they did before b5.151.
    • Candle: The basic candle now lasts 8 hours. Added a (candle) component type so more than one candle can exist.
    • Crops: Added burns-to data for the crop and seeded terrains. Crops should now be burnable, similar to stumps. Workforce will not burn them.
    • Docks: Fixed a typo in the extra description.
    • Herb gardens: Added a drink-water flag to the raft and oasis gardens as they are built on drinkable tiles.
    • Irrigated Crops: Added the missing evolution rules that will remove irrigated crops when not near an irrigation source.
    • Irrigated Forest: Added a 2nd level of Irrigated Forest called "Shady Irrigated Forest" and adjust the trees.
    • Lantern: You can now 'put' more candles in the basic lantern. It no longer expires when it burns out.
    • Quiver of Flaming Arrows: Is no longer a light source.
    • Various lights: Any light that had both an unlit and lit version (e.g. lantern) now has 2 identical versions that both work the same way (only one can be created/stored now, though).
  • Displays:

    • Burning: The whole interior of a building now receives a message when the building catches fire.
    • Extended radius: Added an indicator when a tile counts as in-city but is actually in the outskirts. This is shown as "(extended radius)" after the city name. There is now a help file for this as well.
    • Lights: Lights (e.g. torches) in your inventory now only say (light) when lit, and say (burnt out) if they have no remaining light and cannot be re-lit. Unlit lights with more fuel left are unmarked. Lights dropped in vehicles can now set the vehicles on fire, following the same rules as buildings. Fixed the location of the offense caused by a player dropping a torch.
    • Tips: Fixed the tip for identifying items in your inventory.
  • Empires:

    • Auto-abandonment: Extended-radius territory such as mines that are in your outskirts (but still count as in-city territory) are no longer ignored by the auto-abandoner when an empire is idle and it's abandoning things that are not in-city. It now only protects the true radius of the city in these cases.
    • Citizens: Empire NPCs are now updated every 119 seconds, not "1 + the number of seconds per MUD hour".
    • Workforce: Now runs every 76 seconds rather than on the MUD hour.
  • Events:

    • 10700: Winter Wonderland: Added more information to one of the progress goals.
  • Help Files:

    • Fish: Now mentions how to fish faster.
    • Identify: Updated the suggestion for identifying items in your inventory.
    • Insult: Added a help file as this is technically a real command, not a social.
    • No such command: Added help files for the following commands from CircleMUD that don't exist on EmpireMUD: gossip, ungroup, practice, wimpy, rent, report.
    • OOCsay: Added the quotation mark " as an alias of this help file as it is also an alias of the command.
    • Point: Added a help file as this is a real command, not a social.
    • Various: Minor typo fixes.
    • Yearly reset: Added a help file for this (also called help earthquake).
  • Immortals:

    • Missinghelp: Updated this command to also list skills and abilities without help files. Also gave it a help file, as it did not have one. Widened its display columns as well.
    • Oset: Now schedules timer events when used to change an object's timer. Also now correctly updates the light count in the room if used to add or remove a LIGHT flag.
    • Peace: This command now clears DOT effects, too.
    • Stat: Added plural-checking to the number of ticks left on a timer on stat object.
  • Mobiles:

    • Activity: Removed the run_mobile_activity() function and scheduled all of its actions as DG Events that run when needed rather than on every mob every 10 seconds. These activities include: movement, pursuit, scavenging, and aggro/cityguard behaviors. This should reduce periodic lag a little.
    • Despawn: Mob despawns are now scheduled as DG events. Spawn times now save through reboots, reducing the large number of mobs that despawn at once 5 minutes after one. Changing the mob_spawn_interval config will now update all despawn events.
    • Scavenger: This mob flag now supports a new custom string: scavenge-corpse. Increased how often it eats a corpse, slightly.
    • Stored events: Mobs now have a list of stored DG events, which will allow certain things to happen on an event timer instead of iterating over all mobs every 5 seconds.
  • Objects:

    • Autostore: This is now scheduled as a DG Event, only on objects that need it, rather than checking on the 75-second object update ticks (which are gone).
    • Lights: Added a LIGHT item type with more properties. Most or all existing lights were converted to use this. The original LIGHT flag is retained for cases where something MUST provide light but needs to be a different item type. Some lights can now be used as lighters and some can now be doused and re-lit (at the cost of 1 hour of light). Storable lights become unstorable when they use up an hour of light.
    • Timed updates: All 5-second and 75-second updates for objects, which iterated over all objects in the game, have been removed. These are now scheduled as DG Events by objects which need them due to floating/sinking, timers, or non-infinite lights.
  • OLC:

    • Ability auditor: Now checks that DOTs don't have unlimited durations.
    • Fullsearch: Added the following options to object fullsearch: lighthours, lighthoursover, lighthoursunder, lightislit, lightisunlit
    • Requirement editor: Fixed the usage line for requirements when you type e.g. ".task change".
  • Players:

    • Cooldowns: All cooldowns now schedule their expirations as DG events, rather than constant ticker updates.
    • Hunger/thirst/drunk: These are now stored as ints (rather than short ints) to accomodate cases where the number might be unusually large on some EmpireMUDs. Added bounds-checking. Redefined the maximum value from "750" to "2 days worth of ticks" (which defaults to 720). Updated the definition of hungry/etc to explicitly be "24 hours of hunger/etc" (defaults to 360) rather than the magic number 350. Messaging is now "once per 60 seconds per condition per player" instead of "on the hour ticks".
    • Idle: Moved where idle time is stored (NPCs weren't using it anyway). Idle time is now stored in seconds and updated on the "real updates" (every 5 seconds). Now consistently shows you idle at 5 minutes (some things used 10 minutes).
    • Vampires: Moved the feeding/biting update from the real_update_char() ticker function to a scheduled event that happens every 5 seconds. This shouldn't have an impact at all, but is 1 less thing to run in the 5-second ticker.
  • Scripting:

    • %dot%: Block negative/unlimited durations.
    • Objects: Now correctly updates the light count in a room if script functions are used to change the light status of an object.
  • Sectors:

    • Evolutions: Split the BURNS-TO evolution into BURNS-TO and BURN-STUMPS. Workforce now only operates on the BURN-STUMPS evolution, and players only use BURNS-TO.
  • Vehicles:

    • Burning: Now ensured that a vehicle which takes damage from burning will need at least 1 year's maintenance. Otherwise, workforce won't repair the damage.

Patch b5.151: Extra extra desriptions (April 24, 2023)

  • Abilities:

    • Cook: Added the missing "fire" requirement to the following recipes: pickles, gruel, rice, pickled vegetables, meat, poultry, fish, porkchop, fruit preserves
    • Rawhide Stitching: Items from this ability that were ARMOR are now WORN instead.
  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Typo fix on the puppy pod.
    • 104 Magiterranean: Permafrost: Added Frozen Irrigation Canals and updated the river-freezer script to use vnums instead of names.
    • 18450 That Dammed River: The "rising water" terraformer and the dire beaver now use sector vnums instead of names to avoid permanently changing terrain. The beaver can now dam estuaries and canals, which it already spawned on. Added more variants of the flood tiles and improved the script that floods them. All flood and dam tiles gained a drink-water flag. Flooded desert tiles now dry much faster.
    • Various: Added extra descriptions to all crops, terrains, and open buildings.
  • Commands:

    • Abandon: Improved coordinate detection.
    • Customize road: Now hides the real name tag that said (Road).
    • Execute: Can now be used while a vampire is feeding.
    • Findmaintenance: Improved coordinate detection.
    • Kill: Can now be used while a vampire is feeding.
    • Murder: Can now be used while a vampire is feeding.
    • Portal: Improved coordinate detection.
    • Transport: Improved coordinate detection.
    • Workforce: Improved coordinate detection on "workforce why", "workforce copy", and "workforce CHORE".
  • Content:

    • Buildings: Added extra descriptions to all of the open buildings. Some buildings had descriptions from when they were originally enclosed; those were all retained for this. Most of the rest were written with the help of ChatGPT to test its ability to write game text.
    • Canals: Added an Irrigation Canal variant for deserts. Desert canals no longer go through an oasis stage. Oases no longer convert to canals.
    • Clay Pit: Can now be built next to an oasis.
    • Crops: Added an extra description to every crop. You can now e.g. "look wheat" or "look crop". Many of these were written with the help of ChatGPT to test its ability to write game text.
    • Enchanted Oasis: Now has three stages: normal, Lush, and Shady. Only Lush and Shady provide trees when chopped. Removed the "open-building" build flag. Enchanted Oasis will now stick around even if you chop the weirdwood around it (so long as the weirdwood doesn't die completely); it still requires a full Weirdwood Weald to transform the Oasis in the first place.
    • Irrigated tiles: Raised the conversion rate on some irrigated tiles where it was inexplicably low. Updated the names and icons on many irrigated tiles. Irrigated tiles now use sandy trenches and become irrigation canals. Improved the resources on some irrigated tiles. Added new seeded/crop tiles for irrigated terrain. All irrigated tiles now have drinkable water. Verdant Canals (on a natural oasis) also irrigate desert tiles.
    • Oasis: Now has three stages: Oasis, Lush Oasis, Shady Oasis. Lush and Shady Oasis provide rough wood when chopped and provide similar resources to groves when you gather. Removed the "open-building" build flag on the oasis -- it should not have had this as it's not a building. Added a dry oasis for oasis drainage; it slowly converts back to a regular oasis when unclaimed. Added an irrigated oasis. Added gather resources to all oases. Added oasis crop tiles; you can now plant on regular, dry, and irrigated oases. Dry oases can be excavated into trenches and have their own trench and canal terrains.
    • Oasis Drainage: This building now converts a tile to Dry Oasis, from any other Oasis type.
    • Seeded field: Now colored dark tan instead of green (as it was appearing) or yellow (as it was configured).
    • Terrains: Added extra descriptions to all of the sector types. You can now "look plains" or "look forest" when on the same tile. Many of these were written with the help of ChatGPT to test its ability to write game text.
  • Crops:

    • Extra descriptions: Crops now support extra descriptions.
  • Displays:

    • Graphical map: Gray (&w or non-bright white) banners now show as "medium gray" not "dark gray" on the graphical map so they don't look like unclaimed buildings.
    • Icon locking: Fixed a bug where tiles that changed due to the evolver utility while not loaded in RAM were not locking their icons when their sector type was flagged for it. Fixed a second bug where it did not always remove the customization when changing the terrain again, causing the wrong icon after the tile changes from things like chopping. Can also no longer attempt to lock the icon on the ocean.
    • Icons: Fixed a widespread bug where the initial color on an icon came from its base tile, not current tile. This was invisible in most cases since these are usually the same, but seeded fields frequently displayed the wrong color for years.
  • Documentation:

    • Help files: Added a new doc explaining help files and their options.
  • Help files:

    • Crafter items: Added more info about tiers 2 and 3.
    • Crafting abilities: New help file that lists crafting abilities. Other crafting help files were updated with a see-also for this.
    • Formatting: Help files now convert ampersand codes (color codes, etc) to "tab codes" which have a broader variety of options but are normally only allowed for hard-coded displays. These are converted automatically at startup; help files still use ampersand codes when written.
    • Lumber yard: Now mentions that you don't need a saw tool here.
    • Saw: Revised and updated this help file.
  • Immortals:

    • Autowiz: You can now configure the text at the top of the wizlist and godlist using "config game".
    • Goto: Improved coordinate detection.
    • Transfer: Improved coordinate detection.
  • OLC:

    • Auditor: No longer warns on interaction sets totaling more than 100% as these are relatively common when there are restrictions or catch-alls. Added extra descriptions to the crop and sector auditors, as well as the building auditor when the building is set "open".
  • Rooms:

    • Custom name: Removing a room's custom name (for any reason) will now also remove the HIDE-REAL-NAME flag.
  • Sectors:

    • Evolutions: The NOT-ADJACENT and NOT-NEAR-SECTOR evolution rules are now checked as a group. For example, if a sector has rules for not being near both Irrigation Canal and Verdant Canal, it now only evolves if it's not near either of them. Added new SEPARATE-NOT-ADJACENTS and SEPARATE-NOT-NEARS sector flags to disable this feature.
    • Extra descriptions: Sectors now support extra descriptions.

Patch b5.150: Ana (April 6, 2023)

  • Adventures:

    • 11800 The Tower Skycleave: Ashes of History: Fixed the task order on 1 quest. Improved the error message when searching in 1 room without the skill. Improved the response to the flute. Added a reaction for Knezz when the player dies of hubris. Fixed the sap-o-port message when not using taste. Fixed a mob emote that should have been an echo. Fixed script commands that worked while sleeping. Added custom pickpocket messages to more mobs.
    • 12500 Clockwork Colossus: Can no longer board, disembark, or dodge while fighting, sleeping, etc.
    • 18200 The Guild of Adventurers: Fixed a typo on a tortoise patron.
    • Various: Updated scripted strings to show "an" instead of "a" where needed.
  • Commands:

    • Craft, etc: Will now show the name of what you start to craft.
    • Distance: Improved how this command parses coordinates.
    • Drink: When used with no argument, now lists available drink containers.
    • Eat: When used with no argument, now lists available edibles. Fixed a small bug where you could eat food off the floor in a room owned by someone else (now requires membership/alliance).
    • Plant: When used with no argument, now lists plantables in your inventory.
    • Scan: Added distance as an optional argument: scan will use this distance instead of your mapsize radius (and have the same limits). Added -direction as an optional argument: this restricts a scan-by-tile to only tiles in the given direction(s), separate from the existing direction-without-a-dash argument. Added a new scan mode where giving only a direction and/or -distance argument will perform a basic scan (similar to typing 'look' in screen reader mode) limited by those arguments.
  • Content:

    • Gate: Added the large-city-radius flag to match the Fence.
    • Rings: Removed the "golden" keyword from the wedding and engagement rings because they can also be made from other metals.
    • Various: Updated scripted strings to show "an" instead of "a" where needed.
  • Displays:

    • An/a: Fixed a bunch of messages that start with "You don't seem to have thing" to account for "an" when the thing starts with an a. Also updated some other strings that needed "an" sometimes.
    • Map: Fixed a bug where screen reader view was not getting reduced mapsizes when moving a lot in a short period of time.
    • Progress goals: Fixed the display which said your empire had not "started" goals you had not purchased yet.
  • Empires:

    • Workforce: Added "workforce nearby", which lists workers who live in range to work the tile you're standing on.

Patch b5.149: Fixes and Adventure Updates (March 26, 2023)

  • Abilities:

    • Crowd control: Added a new LIMIT-CROWD-CONTROL flag for abilities. Like sap or entangle, this ensures that only 1 mob in the room has the effect.
    • Entangle: Moved this ability into the parameterized engine. It now works at range. Lowered the duration to 20 seconds.
    • Mist Form: Added the waterwalk effect to this morph as it is possible to have a build with Vampire at 75 and no flying abilities.
    • Soulsight: Fixed a bug where players said "creature" not "human".
    • Sneak: No longer works while blind. Tweaked the error message when immobilized.
    • Summon Materials: No longer works on items without a TAKE flag (e.g. ancient tree). No longer works while stunned.
    • Unscaled-buff: Fixed a bug in the unscaled-buff flag that caused it not to work for buff abilities (it was working for passives).
    • Workforce Sawing: Deleted ability 249 "Workforce Sawing" which is from a much older version of the Workforce system and used by nothing.
  • Adventures:

    • 125 Ruins: The Goblin Challenge: Fixed a bug where an unconsicious Filks/Walts would still re-summon the other one. Summoned duplicates now have a no-corpse flag. Fixed Filks's long description and gender confusion.
    • 10450 Goblin Outpost: Added no-unconscious flags to the goblins. Also added a no-drink-blood flag as they need to run away at the end of the fight.
    • 11800 The Tower Skycleave: Ashes of History: Added taunts to some goblins. Tour quests now have an additional reward/hint. Diary quests now start the "Skycleave Variations" progress, which no longer auto-starts. Improved text on "Legacy of Skycleave" regarding the calamander trees. When Scaldorran finishes floor 3, it now logs who released him as the completer. Fixed capes on some mobs that were missing them. Added a custom pickpocket rejection message to a mob that was missing it. Added another way out of an area. Added more activation verbs for the lich repository. Reduced the time limit on the shade.
    • 12300 Fur Dragon: Minor text fix for the name of the fledglings.
    • 18200 The Guild of Adventurers: Fixd "Procure a Roc Egg", which was not giving out the quest item.
    • 18500 The Lost Temple: Added Normal and group difficulties. It now supports all 4.
    • No-Unconscious: Applied this new flag to some mobs in the following adventures: The Sewer: Goblin Outpost, The Tower Skycleave: Ashes of History, Binding Circle: Ba'al Hadad, Clockwork Colossus, Elemental Escape, Oceanic Hydra, Winter Wonderland, Halloween of the Dead, Pyramid: Hidden Chamber of Neferkare, Magiterranean: Monsoon Rift, Magiterranean: The Hidden Garden, The Cursed Chalice of Mill Manor
    • Subzones: Fixed a minor bug where two different no-location subzones in the same adventure were counting as the same subzone.
  • Buildings:

    • Move cost: Fixed a bug from b5.146 where it used the base sector's move cost on finished buildings rather than unfinished ones. This mainly affected mines and mountain adventures.
  • Commands:

    • Crafting commands: Fixed a bug where you could resume work on a vehicle that was mid-dismantle.
    • Compare: New version of 'identify' that also identifies the item you have equipped (or identifies 2 items together).
    • Follow: Now has a short command lag after a successful follow.
    • Dismantle: You can no longer start dismantling something while someone is working on building it.
    • Land: You can no longer use 'land' to cancel flight while in a flying morph form. Previously, this would cancel all buffs and debuffs from the morph instead.
  • Content:

    • Fire sticks: Corrected the description text.
    • Necrovandal: Now has the power to destroy an enchanted oasis.
    • No-Unconscious: Applied this new flag to the mirror image and walking tree.
  • Displays:

    • Login: When items are updated during login, this now shows before the "Password" line rather than ON that line.
  • Mobiles:

    • No-Unconscious: New mob flag prevents being knocked unconscious instead of dying from players with autokill toggled off.
  • Objects:

    • Autostore: Items without the TAKE flag can now autostore if they go into normal storage.
  • OLC:

    • Delete: Now logs the name of what was deleted. Also now logs when something (e.g. quest, social) loses data or gains an IN-DEV flag due to the deletion of another thing (ability, generic, etc).
    • Save: Now logs the name of what was saved.
  • Players:

    • Idle: Dead players now idle out again.
    • Respawn: Fixed the auto-respawn again.
  • Progress goals:

    • No-Autostart: Renamed the SCRIPT-ONLY flag NO-AUTOSTART to better reflect what it is and to add more ways to start it.
  • Quests:

    • Finish: Fixed a bug where it was possible to finish a quest in an adventure room that has the same vnum as the object that's meant to finish the quest. This required a very specific and coincidental set of circumstances but could happen accidentally in Skycleave for a small number of quests.
    • Rewards: Added "grant progress" and "start progress" quest rewards.

Patch b5.148: Ability info (February 27, 2023)

  • Abilities:

    • Pickpocket: Fixed this command's ability to detect when the player got nothing from a global interaction list. This required adding a return value to global functions (GLB_FUNCTION).
    • Types: Added "custom", "morph", and "augment" as ability types so they can be shown on the new ability info. Existing abilities were updated with these types. "Custom" abilities are ones that are hard-coded, not parameterized.
  • Adventures:

    • 281 Mountain Valley: Molten Fiend: Fixed small issues in the fire elemental's fight script including when the fiend dies first.
    • 10105 Ruins: Three Bandits: Fixed a minor error in Tranc's fight script when the target dies in the middle.
    • 10980 Renegade Spellcaster!: Fixed the message when polymorphed by the witches. Also changed that polymorph from a hard-stun to a regular one.
    • 11800 The Tower Skycleave: Ashes of History: Fixed a quest that inexplicably rewarded the wrong item. Minor fixes to combat scripts.
    • 12300 Fur Dragon: Fixed a minor error in the pounce script when the target dies in the middle. Added a dark tan highlight color plus an explicit (scratch) indicator to the dragon's fight gimmick to make it more visible. Toned down the fledgling adds based on difficulty; they should now be less of a problem unless you ignore them. The fledglings were also renamed "fluffy" rather than "furry" to keep them from masking the "fur" keyword. Reduced the intensity of the fledglings.
    • 12500 Clockwork Colossus: Combat messages and alerts are now in gray (dark white) to make them stand out more visually. Combat instructions now appear at the end of messages in parentheses.
    • 12650 Magiterranean: The Grove: Fixed a minor error in the crow druid's fight script when the target dies in the middle.
    • 16100 Oceanic Hydra: Fixed a minor error in the majestic head's heal script when the hydra dies in the middle.
    • 18500 The Lost Temple: Fixed a minor error in the Sun King's fight script when the target dies in the middle.
    • Various: Fixed several scripts that had "else if" as two words instead of "elseif" as required by DG Scripts.
  • Commands:

    • Ability: Added ability/abilities commands that are aliases of "skills".
    • Identify: Now indicates if you already know the craft recipe or already own the minipet given by an item.
    • Reclaim: Fixed which empire sees the periodic logs during the reclaim. This likely also affected who was receiving offenses for it as well.
    • Sip: Updated the "sip" messages, which were saying the name of the liquid twice.
    • Skills: Improved the output for screen readers and tweaked the display for all users. Added sorting (level and alpha). Added optional level ranges. Sorting and ranges apply to individual skills and to the list of skills. You can now look up individual abilities with this command, too. For consistency with some other commands, it will also allow "skill INFO <name>".
  • Content:

    • Letheian icon: Locked this item to level 1 to help it stack.
  • Displays:

    • Actions: Sitting and resting now give explicit messages when they cancel a timed action.
    • Crafting: Attempting to resume crafting (building, maintaining, manufacturing, etc) a building or vehicle when you aren't standing will now give a positional error message.
    • Maintenance: Now shows as "repairing" instead of "maintenance" in prompt/display and other places for consistency with other timed actions.
    • Skillswap: Now shows as "skill-swapping" instead of "skillswap".
  • Empires:

    • Banner: Changing the empire banner will now force an update on the political graphical map. It previously updated them one-by-one if the tiles changed.
  • Events:

    • 10700 Winter Wonderland: Fixed a minor script error in the Winter Robin Hood quest.
    • Participants: When a player character is deleted during an active event, they are now removed from the event leaderboard and ranks. This does not apply to finished events.
  • Help files:

    • Chop: Provided more instructions on how to chop.
    • Saplings: Changed "rare" to "uncommon".
  • Immortals:

    • Interaction: Ensured the words "interaction" and "interact" go to the OLC interactions help file. Previously they hit OLC depletions instead.
  • OLC:

    • Ability type: Fixed the confirmation message when removing an ability type.
  • Scripting:

    • parse_dir: The %actor.parse_dir(direction)% getter now returns an empty string on invalid directions so they can be detected in scripts.

Patch b5.147a: Pixy Pursuit updates (February 16, 2023)

  • Code updates:

    • Logging: Shut off an accidental debug log from b5.147 related to partial directions.
  • Commands:

    • Circle: Now correctly calls entry mob triggers.
    • Distance: Now shows partial directions (east-northeast).
    • Look: Looking at a portal will now show the coordinates of the target.
    • Mark: Now shows partial directions (east-northeast).
    • Portal: The portal list now shows partial directions (ene or east-northeast).
    • Scan: Now shows partial directions (ene or east-northeast).
    • Where: Now shows partial directions to mortals (east-northeast).
  • Displays:

    • Acre: Removed all remaining text that referring to map tiles as an "acre". Replaced this word with "tile" or "area".
  • Events:

    • 11520 Pixy Pursuit: Sprite-sniffing hog will now prevent you from accidentally having more than one of it. Improved some of the messages sent by scripts during the event.
  • Mobs:

    • Light: Fixed a bug where all mobs were providing light to the room since b5.147.

Patch b5.147: Tweaks, fixed, reclaim, and Pixy Pursuit (February 16, 2023)

  • Abilities:

    • Refashion: Moved this ability up in the Sew branch of the Trade skill.
  • Adventures:

    • 125 Ruins: The Goblin Challenge: This adventure now has the four standard difficulties: Normal, Hard, Group, and Boss. Removed the TANK flag from Garlgarl and added HASTE instead. Filks and Walts are one difficulty lower than the others (and on Normal they lose their TANK/DPS flags) since they appear together. Added a TANK flag to Nilbog and a DPS flag to Furl to ensure they're the most difficult part of the challenge.
    • 11800 The Tower Skycleave: Ashes of History: Lowered the requirement to 125 on some features that required level 150. Some quests that ended in the fountain room now end at the fountain itself instead. Added a new diary quest for players who don't meet the requirements of the other diary quest. Raised the drop rate on mounts to 10%.
  • Commands:

    • Consider: Now color-codes the level difference.
    • Cooldowns: Now shows hours for long cooldowns, rather than large numbers of minutes.
    • Drive/sail/pilot: Now suggests the correct command if you use the wrong one (e.g. using drive on a boat).
    • Equipment: Added an analyze option (eq -ana) that suggests which slots you should work on to improve your gear level.
    • Hunt: Now explicitly blocks NPCs from using the command, which would not have worked for them anyway.
    • Identify: Now color-codes the level based on your level.
    • List: Fixed a bug in 'list identify' that would claim a BOP item could be stored in the warehouse.
    • Mine: Fixed an oversight where it was computing mining speed using level, but disregarding it in favor of dps (the old way).
    • Nearby: Now shows partial directions like north-northeast (nne) using a new function that returns these as strings (they are not true exit directions).
    • Quest: Fixed the error message in "quest start all" when there's a quest that's too high for your level.
    • Recipes: No longer shows workforce recipes (which you couldn't necessarily make anyway).
    • Reclaim: You can now reclaim tiles without a war in certain circumstances (listed in the help file). Reclaim will now work from an adjacent tile and does not require you to infiltrate. Reclaim now causes an offense. This should help empires solve small, stray claims that are far from the owner's cities.
    • Score: Fixed the length of trailing whitespace after the "Resist" section, which caused line-wrapping on some clients at 80 characters.
  • Content:

    • Long grass: New gather material for temperate plains. This is a soft plant fiber.
    • Newbie island terrains: Created duplicates of most temperate terrains; these are in the 100 vnum block. They have lower move costs and a slightly higher flint output.
  • Displays:

    • Color-by-difficulty: Updated the list of colors and the level cutoffs for things like quests and adventures, which are colored by their difference in level compared to the viewer. Moved the cutoff for gray coloring to 51 levels below you, matching the level where you stop gaining experience from abilities used on NPCs.
    • Dismantling: When a building finishes dismantling, it will now announce what type of terrain the tile becomes.
    • Item-details: The level on the item-details toggle is now color-coded based on its difference from your level, if you have item-quality toggled on too.
  • Documentation:

    • Getting Started: Added instructions for setting up some adventures to the getting-started doc for EmpireMUD administrators.
  • Empires:

    • Shipments: Fixed the island name in the elog for delivering shipments. It was incorrect for empires that renamed their islands.
  • Events:

    • 11520 Pixy Pursuit: Minor updates to scripts and text. Added a new minipet to the ranked rewards.
    • Logging: Event point gains/losses are now logged permanently.
  • Help files:

    • Block cap: Added a note on the minimum to needed to block.
    • Feeding workforce: New helpfile on how workforce consume food.
    • Lead: Added more information about lead to related help files such as herd.
    • Level colors: New help file to explain the colors on commands like 'nearby' and 'quest list'. Also added a see-also for their help files.
    • Various: Fixed minor text errors and see-alsos.
  • Immortals:

    • Help files: Added missing "mapedit decay" help file.
    • Show quests: Increase buffer size and improve buffer overflow protection.
    • Syslog: Added a new 'event' syslog category. Event points now syslog on this type. Event logs are now preserved in logs/event. Self-deletes are now login logs like new characters and other related logs, rather than info logs. War and thievery timeouts are now empire logs rather than info logs.
    • Where: Added 7-digit precision to help line up columns on the immortal version of 'where'.
  • OLC:

    • convert2newbie: New option in the map editor for converting an island to or from newbie terrains.
    • Evolution editor: Improved the error message when you skip a sector argument.
  • Vehicles:

    • Short description: Converted some places to use the get_vehicle_short_description() function instead of the VEH_SHORT_DESC() macro.

Patch b5.146: Epic bug fixes and language support (Feburary 7, 2023)

  • Warning:

    • This patch fixes the order of the lib/misc/game_configs file and is virtually guaranteed to conflict when you update. Move 'auto_update_items 1' up to the begining of "Items configs" and keep 'default_language_vnum 150 under "Mobs configs".
  • Abilities:

    • Bite: No longer cancels bite if you type this command with a target while biting. This should help players who spam "bite NAME" as an attack in combat.
    • Buff abilities: When a buff with the "violent" flag, usually a debuff, is used on an incapacitated character, that character will now die.
    • Forage: Reduced the chance of non-plantable food items to 33% on: temperate plains, forests, copses, stumps, and foothills, as well as jungles and jungle copses. Reduced it to 25% on: riverbanks with or without forests and on oases. Reduced it to 50% on deserts and desert groves, copses, and shrubs, as well as marshes and swamps. Forage no longer tells you that you must be outdoors; it also will allow indoor foraging if there's anything to find.
    • Sap: No longer works on unconscious/dead people.
    • Summons: Now correctly grants experience when the summon fails entirely due to a skill check.
    • Sunder: Now linked to Dexterity instead of Charisma.
  • Adventures:

    • 104 Magiterranean: Permafrost: Minor script updates to prevent script errors when the target dies in the middle of a special move. Changed how evergreens spread to use rules on their own tiles rather than adjacency rules on plains/forest (it still spreads to the same tile types). Evergreens will now spread to shore and riverside tiles.
    • 140 The Sewer: Ratskins: Basic rats outside this adventure now also give rat skins.
    • 201 The Cursed Chalice of Mill Manor: Created a copy of the dragonfly mob with the SPAWNED flag. Dragonflies spawned by the chalice will no longer stick around forever.
    • 10250 Portal to the Primeval: Added a 30-minute delayed despawner, replacing the previous script where killing the miniboss or boss would cause the adventure to close as soon as it's empty.
    • 10450 The Sewer: Goblin Outpost: Haxaw now has the LIGHT affect and drops a torch as loot. The rare giant war rat now has a difficulty selector.
    • 12300 Fur Dragon: Corrected the maximum level on the bows to 375.
    • 12500 Clockwork Colossus: Fixed attack type on the clockwork lower cannon.
  • Buildings:

    • Move cost: Incomplete buildings (including ones being dismantled) no longer lower the move cost of the tile from its base cost.
  • Code updates:

    • Color codes: Replaced many instances of '&' in the code with the COLOUR_CHAR const. Fixed an issue where only the ampersand color codes were accounted for in string capitalization.
    • OLC crash bug: Discovered and fixed an unexpected and ancient crash bug where new mobs created in OLC were missing critical data until a reboot.
  • Combat:

    • Siege damage: No longer adds maintenance cost to buildings that are being dismantled.
  • Commands:

    • Adventure summon: Summoning (and unsummoning) a person now brings along any charmed NPC followers (such as companions); this applies to Astral Nexus summoning as well. Fixed a bug where players did not cause greeting triggers to fire when unsummoned.
    • Dismantle: Can no longer start dismantling in the dark (previously it let you start but not continue).
    • Distance: Fixed a bug where mortals could not put a space before the x-coordinate inside the parentheses.
    • Feed: You can now feed blood to incapacitated players without the botherable toggle.
    • Junk: Can no longer be abbreviated.
    • Mark: Now lets you set a mark from an interior room.
    • Nearby: Now shows if a city is distrustful.
    • Retrieve: Using 'retrieve all' in a home or warehouse will no longer automatically reroute to 'home/warehouse retrieve all'.
    • Say: Added syntax for choosing a language by starting a say command with "#language-name". It now displays the name of the language to anyone who speaks or recognizes it, if it's not the language they are currently speaking. Players who can only recognize a language will not see the text of the speech.
    • Selfdelete: Now logs IP address.
    • Ship: You can now check ship status while sleeping.
    • Shout: Added syntax for choosing a language by starting a shout command with "#language-name".
    • Speak: New command to view the languages you speak and choose which one to use.
    • Store: Using 'store all' in a home or warehouse will no longer automatically reroute to 'home/warehouse store all'.
    • Weather: Can now see the sun and moons from a room with the LOOK-OUT flag. This also applies to 'look sky'.
    • Workforce: Fixed the display of coordinates for interior rooms on "workforce why".
  • Config changes:

    • auto_update_items: This should have been an item config; it was in the mobs category.
    • new: default_language_vnum 150
  • Content:

    • Common language: Added language vnum 150, "Common", with the basic flag. This is the default language for EmpireMUDs.
    • Earthenware bowl: Added storage in the Kitchen.
    • Gate: Now links visually to roads.
    • Jungle: Now properly spreads over seaside temperate trees.
    • Large bear: Changed level range to 30-60.
    • Light: New affect flag that provides light from a character as if they have a torch.
    • Little monkey: Changed level range to 30-40.
  • Generics:

    • Language: New generic type for languages spoken by mobs and players, and also learned by empires. Added languages to archetypes, quest rewards, and quest/progress requirements.
  • Empires:

    • Cities: Now ignores cities less than 12 hours old when checking for cities without buildings to "abandon as ruins".
    • Languages: Empires now have a list of languages, granted by progress goals or scripts, which all members automatically (and permanently) learn.
  • Help files:

    • Cities: Improved the text about cities being auto-abandoned "as ruins".
    • Mine: Corrected information about which ability it uses and when it gains experience.
    • Swamp walk: Added the missing info on it counting as a city at 4x radius.
  • Immortals:

    • Instance: The "instance info" command will now automatically target the one you're in if you don't give an argument.
    • Restore: Now adds all languages to immortals.
    • Set: Added set language.
    • Show: Added show languages, show home, and show tomb.
    • Stat building: Now shows "Artisan: none" rather than omitting this section when there is no artisan.
  • Mobiles:

    • Language: Mobs now have a field for their default language.
    • Scaling: Fixed a minor scaling error that caused mobs to have 1/0 mana rather than 0/0.
    • Spawning: Now spawns immediately before placing a player in a room, rather than immediately after. This prevents "arrives" messages from being shown to that player.
  • OLC:

    • Craft auditor: Turned off a warning for vehicle crafts with time set.
    • Icons: Fixed previews for icon lists in the OLC editors so that special icon codes with &at; signs will now display correctly.
    • Interaction auditor: Fixed a small floating point error that could warn when interaction percentages total 100.00.
    • Resource editor: Fixed a small issue where trailing spaces on component names caused errors when adding/changing resources.
    • Triggers: When a trigger is saved, its arguments are now correctly copied to live instances of it.
  • Players:

    • Languages: Players now have a table of which languages they speak and how well they understand them. Which languages a player can speak are checked on login. Languages can be granted by archetypes and quests.
    • Newbie gear: BoE starting gear is now bound to the player when they first create their character.
    • Timed actions: All timed actions are now canceled by taking damage from a DoT.
  • Progress goals:

    • Cache of Resources: Lowered quantities to 150 of each resource.
  • Scripting:

    • Destroy trigger: The "destroy" vehicle now provides a %method% variable with burning, siege, ruins, or despawn.
    • flush_queue: New character variable called with "nop %actor.flush_queue%" that sends all messages queued with the # syntax on echo commands.
    • Language: Added %language.name(vnum)%, %language.short(vnum)%, and %language.vnum(name)% getters to the special vars. Added %char.can_speak(lang)% and equivalent for recognizing a language; these have an optional 2nd arg for granting/removing the language. Also added empire verisons of those. Added %actor.speaking% for default/current language.
    • Speech triggers: Added %lang% and %lang_name% variables.
  • Vehicles:

    • Decay: Unclaimed vehicles which need no maintenance, in unclaimed rooms that are not part of instances, with no players present, now have a random chance to decay each year. This helps clean up stray furniture from long-gone empires.

Patch b5.145: Subzones and Adventure Updates (January 26, 2023)

  • Abilities:

    • Reforge/Refashion: Fixed an issue where this would call an object's load trigger if it had to reload it; this is almost certainly an error as it also copied all data. Making an item superior will now work on hard/group/boss items (if you meet the other conditions) but will take away the loot quality and replace it with superior.
  • Adventures:

    • 101 Magiterranean: The Hidden Garden: Assigned a subzone id to the rooms and added a !LOCATION flag to make it consistent with other Magiterranean adventures. Fixed quantities on the pick interaction for the garden rooms.
    • 103 Magiterranean: Monsoon Rift: Assigned a subzone id to the rooms.
    • 104 Magiterranean: Permafrost: Assigned a subzone id to the rooms and added a !LOCATION flag to make it consistent with other Magiterranean adventures.
    • 140 The Sewer: Ratskins: Rat skins are now always level 1, to improve stacking. Fixed the message when you do the city official's job.
    • 10250 Portal to the Primeval: Assigned a subzone id to the rooms.
    • 10450 The Sewer: Goblin Outpost: Goblin pipes are now level 50, not level-restricted.
    • 10700 Winter Wonderland: Assigned a subzone id to the rooms.
    • 11800 The Tower Skycleave: Ashes of History: Assigned subzone ids to some areas. Added new actions in part of the adventure for flavor reasons. Added better hints that you can attune rough-cut jade. Raised the drop rate on some quest items. Fixed some combat scripts with minor errors. More combat scripts now have shouts or other area messages. The shard cultivator now raises the level of the shard to the highest level you can use (with a max of 250). The tedium shard can now be used for fishing. Shortened the waiting period between arena challenges. Changed the move type on the mausoleum. Certain mobs now move faster in certain situations. Page gossip now uses a shuffled (but sequential) order rather than a true random order. Lowered the intelligence on a potion where it was too high. Fixed a greet trigger that was not working correctly with groups. The fishing net is now level 150 and BOP. Fixed the warpstone when the user has no home. Players will now see a message when other characters enter a room that had no entry message before. Removed the group-completion flag from most dailies so players can choose which dailies to turn in when grouped. Added group-completion to several non-daily quests to ensure the whole group keeps up. Fixed some broken room commands. Updated some adventure text for typoes, consistency, and hints. Raised the timer for rescuing Knezz on higher difficulties.
    • 12000 Binding Circle: Anat: Added missing mob descriptions.
    • 12030 Binding Circle: Ba'al Hadad: Added missing mob descriptions.
    • 12400 The Golden Goblin: "Find Fathma" will now automatically chain to the next set of quests. All Golden Goblin quests now have group-completion. The underwater area no longer requires a light.
    • 12500 Clockwork Colossus: Added missing mob descriptions.
    • 12600 Elemental Escape: Players over level 50 can no longer benefit from this adventure.
    • 12650 Magiterranean: The Grove: Assigned a subzone id to the rooms and added a !LOCATION flag to make it consistent with other Magiterranean adventures.
    • 18460 Unstable Portal: Assigned subzone ids to each portal.
    • Subzones: Added a new 'subzone' id field to room templates. This allows parts of an adventure to be separate from other parts in conceptual space and is meant to be used with the !LOCATION flag in most cases.
  • Commands:

    • Craft commands: You can now help build a vehicle even without the crafting level it requires (if someone else starts it).
    • Glass blower: Added missing storage commands.
    • Identify: When an item gives you a new long description, it now shows your real name rather than morphed name in the preview. Morphs do not use these descriptions.
    • Keep: Fixed a bug where it sent no confirmation message when sleeping.
    • Respawn: Fixed a bug where auto-respawn wasn't happening at the end of the countdown.
    • Shout: Now uses adventure subzones to determine if a player is in range of a shout.
    • Where: Now uses adventure subzones to determine if a player is in range for the where command.
  • Content:

    • Enchanted oasis: Will now spread weirdwood to adjacent desert, beach, and irrigated plains tiles.
    • Jungle animals: Added the scavenger flag to tigers and giant anacondas. They will now eat corpses. (Other large jungle animals had this already.)
    • Kitchen: Removed the artisan (a baker) from this room. It should not have had one.
    • Mines: Now rename themselves when complete, not when started.
    • Painter's workshop: This building no longer requires Architect, bringing it in line with the rest of the Advanced Artisans goal.
    • Reward minipets: Fixed an issue in the amazing minipet reward box where it did not check the target for the 'use' command and could intercept other 'use' scripts.
  • Empires:

    • Data: Now frees the memory for workforce production logs when an empire is freed from memory. This was previously a very minor memory leak.
  • Help files:

    • Fiber: Explicitly mention that animal fibers are soft fiber.
  • Mobiles:

    • Animals: Hard/group/boss animals will no longer automatically try to flee from ranged combat.
  • Objects:

    • 1-use: Objects with the 1-USE flag will no longer vanish when you share and then unshare them.
    • Home/Warehouse: Fixed an issue where home/warehouse retrieve was incorrectly calling the load trigger on an item.
  • Scripting:

    • highest_level: New character property to get the highest-ever level for a player or maximum level for an NPC.
    • real_name: New character property that gets non-morphed, non-disguised name.
    • %regionecho%: Now works inside subzones to send messages to other adventures with the same subzone, too.
    • %subecho%: New script command that sends a message to everyone in the same subzone in the same adventure instance.

Patch b5.144: Bug and typo backlog (January 5, 2023)

  • Abilities:

    • Basic Crafts: Now shows most smeltable items on 'smelt' even without ore in your inventory.
    • Summon Materials: No longer works while sleeping.
  • Adventures:

    • 52 Tutorial Quests (Soulstream): Added more quest help to the mobs' look descriptions. Quests no longer cap at 49 skill. Reduced the number of tokens for the reward from 4 to 3.
    • 125 Ruins: The Goblin Challenge: Now gives a better message when the mobs are briefly unattackable after spawning.
    • 126 Mountain Cave: Flame Dragon: Firefruit seeds now store in the seed silo.
    • 129 Gigantic Nest: Added the missing look descriptions to the mobs.
    • 181 Goblin Mines: Updated the description on the raft so it appears correctly in the store. The delayed despawn timer is now 10 minutes instead of 5.
    • 11800 The Tower Skycleave: Ashes of History: Added the missing wield flag on the tedium shard. The crafting shard is also now a wieldable weapon. Fixed a hint that was bad. Fixed claw game rewards that should have been BoP but were BoE. Added an indicator when the Shade has started its timer. Teleporters now cancel their effect sooner after succeeding.
    • 12400 The Golden Goblin: Added the missing look descriptions to the mobs. Removed unnecessary scripts from the minipets.
    • 12500 Clockwork Colossus: Added 'examine' to the look trigger for one of the hints.
    • 18300 Pyramid: Hidden Chamber of Neferkare: Added the missing look descriptions to the mobs. Removed unnecessary scripts from the minipets.
  • Commands:

    • Alternate: Now logs the location of both characters when alternating.
    • Crafting commands: Fixed an issue where no-building vehicles could not be built in open buildings like Courtyards, even if you could drag/drive them there later.
    • Craft info: Will now indicate which traits come from a superior craft, e.g. "+greatness if superior".
    • Dismantle: Improved the error message when you type 'dismantle' by itself in the room with a vehicle or building.
    • Dispatch: You can no longer dispatch a ship with no owner.
    • Drive: Fixed the error message when driving onto a building that's being dismantled.
    • Equipment: In screen reader view, using "equipment -all" will now say "(nothing)" next to empty slots.
    • Examine: Fixed this command's targeting. It was using a separate lookup for looking inside items, resulting in sometimes targeting different items for the description and contents. This included updates to the look_in_obj() and look_at_target() functions.
    • Identify: Fixed an issue where it could show storage locations on an item that cannot be stored due to flags like SUPERIOR. Weapons now show blunt/sharp/magic info on the attack type. Plantable crops now indicate if they require water.
    • Inventory: Expanded inventory view (e.g. when searching or using options like -k) now shows the full inventory description of an item, including information from the item-details and item-quality toggles. The -i option no longer works; it now asks the player to toggle item-details instead. Added hard-drop, group-drop, BoE, and BoP flags to the list that separates items in the inventory.
    • Look: Minor changes to how an item appears when you look in it.
    • Pilot: Fixed the error message when piloting onto a building that's being dismantled.
    • Quest: Completed quests are now sorted by timestamp. Viewing the quest info for a quest you are currently on AND have completed in the past will no longer show the completion message and rewards.
    • Sail: Fixed the error message when sailing onto a building that's being dismantled.
    • Socials: Can no longer use socials while drinking blood (or when someone is drinking your blood) if the social requires 'sleeping' or a higher position.
    • Whereami: Now shows room vnum if the user is immortal.
  • Content:

    • Fruit preserves: New workforce (and player) cooking recipe that upgrades large fruits into preserved food.
  • Displays:

    • Death cry: Rooms which link to themselves no longer show echoing death cries.
    • Tips: Added the 'news' command to the tips list.
  • Events:

    • 10700 Winter Wonderland: Updated the holiday dog/cat companions to not leave corpses when running away scared.
    • Points: When you gain event points while at/near the maximum available points, the message will now indicate how many you effectively gained rather than saying e.g. you gained 10 points when already at the cap.
  • Help files:

    • Adventures: All adventures now have help files.
    • Group: Added info on how to use 'group options', which was previously undocumented.
    • Herd: Mentioned 'load' in this help.
    • Newbie islands: Clarified when empires lose territory on newbie islands.
    • Skill swap: Clarified the cost of swapping.
  • Immortals:

    • Naturalize: New help file for immortals explaining what this means.
    • Set: Now correctly logs the amount something was set to. Previously, numeric values logged the amount the player typed, not the final value.
    • Show oceanmobs: New show feature finds mobs permanently lost in the ocean and potentially wasting resources.
    • Show quests: Completed quests are now sorted by timestamp.
    • Stat: Added weapon/damage type to stat object. Stat empire nows shows base territory per greatness, too. Fixed a color issue on stat room when there are a lot of characters present.
  • Objects:

    • Autostore: Fixed a bug where items in the cargo area of a vehicle would autostore to the empire's home island, not the current island.
  • OLC:

    • Generics: Updated help files for GENEDIT FLAGS and also for the 'removeindev' command.
  • Players:

    • Deficits: Fixed an apparent bug in health deficits that was applying health without using the deficit. This might be the cause of players unexpectedly restoring health.
    • Healing: Prevent some work when heal() is called to gain 0 health. It will still update the player's position if needed.
    • Pack Mule: This bonus trait is now level-based. Moved the inventory size calculation from a macro to a new function.
    • Regeneration: Fixed some minor player regen code that did unnecessary math.
  • Progress Goals:

    • Henge: Added the building's cost to the goal description.
    • Sorcery Tower: Added the building's cost to the goal description.

Patch b5.143: Bandits and Skycleave fixes (December 31, 2022)

  • Abilities:

    • Familiar: Added missing skill gain hook.
  • Adventures:

    • 10105 Ruins: Three Bandits: Renamed adventure 122 (Ruins: Three Banditos) and moved it to 10105 to match its vnum range. It also now appears on 'nearby'.
    • 10250 Portal to the Primeval: Fixed the difficulty selector script, which sometimes tried (and failed) to modify players.
    • 11800 The Tower Skycleave: Ashes of History: Fixing issues on this new adventure including typoes, script errors, mob attributes, drop rates, and the help file. Clarified some quest text. Tedium shard is now a weapon so it can be sheathed. The arena daily now turns in at the arena. The skycleave controller now tracks who starts/finishes each floor. Mobs should now have the correct health after raising the difficulty (sometimes they didn't scale up). Shortened the penalty for mistimed dodge/interrupts. Added another hint in the lab. Fixed luck in race hazard rolls (it was always rolling a 0). Fixed the queen's death message.
    • Instancer: Fixed a bug where items in mob inventories were not cleaned up when an instance de-spawned.
  • Commands:

    • Bite: No longer works while stunned.
  • Help files:

    • Adventures: Removed the "big list of adventures that don't have help files" help file, which was out of date and not meant to have been left in.
  • Scripting:

    • unscale_and_reset: A new mob command, %char.unscale_and_reset% to ensure a mob fully resets, e.g. when a difficulty is selected. This includes moving the out-of-combat reset from limits.c to its own function.

Patch b5.142: The Tower Skycleave: Ashes of History (December 21, 2022)

  • Abilities:

    • Sap: When a mob is sapped, this is now shown when you look at the room. Also added a wear-off message to the room.
  • Adventures:

    • 122 Ruins: Three Banditos: Minor update to Liza's combat script to avoid an error message when combat ends early.
    • 160 The Tower Skycleave (original): Disabled this version of the adventure. Its skystones are now wealth items. Its skycleaver trinket will replace itself with the new version when used.
    • 10980 Renegade Spellcaster!: Minor edits to the teenage witch's combat scripts to avoid script errors when the target dies in the middle.
    • 11800 The Tower Skycleave: Ashes of History: New version of the adventure with all new content. See HELP SKYCLEAVE.
    • 18200 The Guild of Adventurers: Updated the quests and items that relate to the Tower Skycleave. They now use the new version.
  • Commands:

    • Identify: No longer shows the storage line if the object is always no-store (also applies to 'list id').
  • Events:

    • 10700 Winter Wonderland: Made a small tweak to the grinchy demon's script to prevent a error messages.
  • Help files:

    • Extra descriptions: Added a help file explaining extra descriptions to players. It is referenced from "help look".
  • Mobiles:

    • Coins: Giving coins to mobs no longer causes the coins to vanish. They now appear as items in the mob's inventory. However these do not save through reboots.
  • Players:

    • Stunned: Being stunned (or hard-stunned) will now cancel timed actions.

Patch b5.141: Winter Wonderland fixes and feature support (December 7, 2022)

  • Commands:

    • Look: Fixed a bug where 'look sky' would ignore an item in your inventory called 'sky' and fall through to looking at the sky above, causing 'look sky' or 'look 1.sky' to miss extra descriptions and go straight to the sky above if you had an inventory item called 'sky', while 'look 2.sky' inexplicably hit the extra description.
    • Minipets: Now accepts the number-dot-name syntax like "minipet 2.present".
    • Morph: Now accepts the number-dot-name syntax like "morph 2.werewolf".
    • Quest: Players can now get info on quests they have completed. This will show the completion message and the rewards, in addition to data it normally shows.
    • Shout: Shout now accounts for rooms that are in "no location" in adventures. Also cleaned up the pub-comm code to be more readable.
  • Events:

    • 10700 Winter Wonderland: Fixed an issue with the Krampus that caused it to heal constantly at low health. Updated instrument messages to bring them in line with recent code changes. Raised the drop rate on minipet whistles on the demons from 1% per whistle to 4%, at the cost of Christmas spirit.
  • Factions:

    • Bring-a-Friend: This mob flag now requires both mobs to have the same faction (or both have no faction).
    • Default reputation: Fixed display issues on "look <mob>" and "faction <name>" when the player has no reputation. It now shows the faction's starting reputation instead of 0/None.
    • Hide-in-List: New faction flag that prevents the faction from being listed when a player types 'factions'.
    • Information: Players can no longer see faction info for a faction they have no reputation with. They must now generally gain/lose reputation or kill a member of the faction to view its info.
  • Mobiles:

    • Morphs: Mobs with hard/group flags now get more scaling points for affects when morphing.
  • Scripting:

    • Damage: Fixed a recent change that changed hard/group mobs to do too much damage in scripts by adding these modifiers twice.
    • IDs: Fixed a bug where things with scripts/variables could have no script ID after a reboot if no script had targeted them, making it impossible to delete their variables and scripts.
    • Progress goals: Fixed a bug where granting a progress goal with a script did not delete the tracker if the empire was already on the goal.
    • Pronouns: When you can't see a person due to blindness or invisibility, it will now still use their gender-based pronouns, rather than changing all pronouns to it/its. Code-based messages already do this.

Patch b5.140a: 2022 Holiday Event update (November 30, 2022)

  • Adventures:

    • 12000 Binding Circle: Anat: Minor text fix.
  • Commands:

    • Fastmorph: It should now be possible to order a companion to 'fastmorph normal'.
    • Order: Added a new special case for "order companion".
  • Events:

    • 10700 Winter Wonderland: Minor fixes for the cookie collection quest. Added a new minipet. Updated the points cap and added a note about it in the description.
    • 18800 Halloween of the Dead: Minor text fix.
  • Morphs:

    • Stats: Fixed a bug where anyone with more than 32767 health, moves, or mana would have bad results when morphing.

Patch b5.140: Bug fixes (November 28, 2022)

  • Displays:

    • Spacing: Removed some remaining places where a double space is shown after a period like it's the 20th century.
  • Events:

    • 18800 Halloween of the Dead: Minor fix to the boss's combat script. Fixed the name of "blood feed tracking object". Changed how the skeletal wagon wheel is stored.
  • Help files:

    • Wait types: Added details about wait times to this immortal help file.
  • Scripting:

    • Damage: Fixed a bug where script damage could lead to a crash in certain cases.

Patch b5.139: Bug fixes and QOL (November 17, 2022)

  • Notes:

    • Books: You may get a conflict with 1.book when pulling this update. This is caused by some EmpireMUDs moving book 5511 from the 1.book file to the 0.book file. If 1.book conflicts during this update, you can safely remove book #5511 from it because it should already be in your 0.book file.
  • Commands:

    • Consider: Now resets a spawned mob's despawn timer.
    • Drink: When you target an invalid item, now tells you which one.
    • Herd: Now resets a spawned mob's despawn timer.
    • Lead: Now resets a spawned mob's despawn timer.
    • Load/unload: Now resets a spawned mob's despawn timer when loading them into or unloading them out of a vehicle.
    • Pickpocket: No longer gains experience or tries to start combat on no-attack mobs.
  • Content:

    • Affects: Many generic affects, including ones in adventures, received new 'look at char' and 'look at room' strings, especially if they used to benefit from hard-coded strings.
    • Gray creatures: Largely standardized the spelling on gray/grey creatures but ensured they have both keywords.
  • Displays:

    • Color codes: Added &Z and &z "color" codes to make the next letter upper or lowercase, respectively. This is mainly for the scripting system where the next letter can't always be modified any other way.
  • Events:

    • 18800 Halloween of the Dead: Raised spawn rate on the risen guard.
  • Generics:

    • Affects: Added support for 'look at char' and 'look at room' strings on generic affects. These previously were hard-coded strings that show after the character in the room or the description when looking at the character. Most hard-coded messages have been moved to generic data.
  • Immortals:

    • Goto: Made a small change in targeting to improve "goto 2.name" when there's a matching person in the room with you.
  • Mobiles:

    • Fighting: Now resets a spawned mob's despawn timer.
    • No-command: New mob flag explicitly prevents command/order without blocking any other features.
  • Objects:

    • Tools: Fixed a bug where an item in the tool slot could be superceded by a lower-level superior item in another slot.
  • OLC:

    • Buffer sizes: Increased the buffer sizes on several OLC editors to account for the wordcounts on recent projects. The extra desc editor is now able to prevent buffer overflows. Most OLC editors will need more work for this.
    • Trigger auditor: Now warns on 0% chance to trigger.
    • Wordcount: New olc command, wordcount (e.g. .adv wordcount 11800) can give a count of the player-facing words (skipping internal-only text like shop names) on any olc-editable thing.
  • Progress goals:

    • Abbrevs: Progress goals now accept additional types of abbreviations for their names.
    • Display: Now shows flags when a progress is viewed by an immortal with roomflags on.
    • No-Preview: New progress flag that blocks viewing a goal until the empire has started it.
    • Trackers: Added custom task text to the save-able trackers.
  • Scripting:

    • Allow-Multiple: Expanded this flag to encompass many more mob and room trigger types: load, zone reset, enter, entry, speech, drop, ability, leave, door, act. Object and vehicle triggers are still unsupported.
    • command_lag: New character field that reports whether or not the character has command lag (the short delay after entering a command before you can enter the next one), and can be used to give command lag.
    • dg_affect: Now accepts "off silent" as a mode for turning off affects without sending their wear-off message.
    • %slay%: Fixed a bug where there was no death log or syslog for %slay%. It now allows a custom log message, too.

Patch b5.138: On the Precipice (October 25, 2022)

  • Adventures:

    • 18460 Unstable Portal: Added a new portal, called "precipice".
  • Commands:

    • Junk: Minor text update to remove double space.
    • List: Fixed a bug in "list id" when an invalid name was given.
    • Put: Fixed a typo in an error message when putting items in other items. Fixed a bug where you could put bound items in someone else's vehicle and could put quest items in vehicles at all.
  • Content:

    • Custom vehicle build messages: Updated the craft-to-char and craft-to-room messages on most types of lumber, and added ones to types of rocks and large leather.
  • Events:

    • 18800 Halloween of the Dead: Changed the order of craft costs on the corpse wagon. Fixed an issue with the bog-rolling guard dropping limitless coins. Reduced the cooldown from 30 seconds to 20 on:

      Citizens Will Be Toad, Costume the Town, A Traditional Bog Roll, and Get the Blood Pumping. Fixed a minor issue from b5.137 in the Dracula quest.

  • Help Files:
    • Strength: Removed outdated chop/mine info.
  • Immortals:

    • Show dailycycle: Fixed a minor bug from b5.137 where it could show a lot of quests incorrectly with certain arguments.
  • OLC:

    • Fullsearch: All fullsearches now support -vmin and -vmax for limiting the search to a specific range.
  • Scripting:

    • Consume triggers: Added 'taste' and 'sip' as valid commands in consume triggers.

Patch b5.137: Update of the Dead (October 20, 2022)

  • Abilities:

    • Pickpocket: Fixed a bug where certain mobs could not be pickpocketed even if they were flagged with COINS.
  • Adventures:

    • 10775 Tree of Knowledge: Raised the spawn rate on unique mobs at the trees.
    • 16100 Oceanic Hydra: Minor change to prevent the additional heads from leaving tracks.
  • Characters:

    • No-tracks: New affect flag that prevents leaving tracks.
  • Commands:

    • Play: Instruments now play their instrument-to-char/room strings in order and then repeat, rather than randomly.
    • Where: Fixed a minor issue where this command incorrectly worked between parts of the same instance that are in "no location" and ones that have a location.
  • Content:

    • Pickpocket: The global pickpocket list for humans now has a level cap of 125; humans above that will need their own lists.
  • Displays:

    • Vehicles: Building-type vehicles are no longer hidden when someone is sitting on them. Looking out from a vehicle now shows other large vehicles in the room with it. Using "look out" in a building-type vehicle can now correctly show a building you're inside of.
  • Events:

    • 18800 Halloween of the Dead: New "Keep the Blood Pumping" daily quest rotates with "Get the Blood Pumping" (Vampire skill required). New "Pillage for Candy" meta-quest earns a new reward for work throughout the event. "Ancestor's Offering" now shows better

      error messages when you type its commands at the wrong time. The flower buffs no longer go away when you drop a flower at the wrong location. "Get the Blood Pumping" can no longer be completed by scaring the same citizen repeatedly; you can now scare some additional city npcs. "Costume the Town" now allows some additional NPCs to be costumed. Minor sanity fix to the Halloween boss's combat script to prevent an error message. "Pick or Treat" now has its missing cooldown. "A Traditional Bog Roll" is now blocked by cityguards. Reduced many quest cooldowns. Added a new mount. (Thanks, Domino)

  • Immortals:
    • Help files: Improved the OLC LIST help file by mentioning what it shows for the detailed view of each thing.
    • Quest list: Added more information to the detailed version of the quest list.
    • Show dailycycle: If you use this on the vnum of a quest that's on a cycle, but the number you typed has no quests on it specifically, it will now also search for the cycle the quest is on.
    • Stat trigger: Fixed an issue with displaying very long triggers.
  • Mobiles:

    • Movement: Added the following movement types to the list (also used for vehicles): barges, bolts, charges, clambers, coasts, darts, dashes, draws, flits, glides, goes, hikes, hobbles, hurries, inches, jogs, journeys, jumps, leaps, limps, lurches, meanders, moseys,

      parades, plods, prances, prowls, races, roams, romps, roves, rushes, sashays, saunters, scampers, scoots, scrambles, scutters, sidles, skips, skulks, sleepwalks, slinks, slogs, sneaks, staggers, stomps, streaks, strides, strolls, struts, stumbles, swims, tacks, tears, tiptoes, toddles, totters, traipses, tramps, travels, treks, trudges, vaults, wades, wanders, whizzes, zigzags, and zooms.

  • Objects:
    • Custom strings: Changed eat-to-char and eat-to-room to consume-to-char/room. This can now also be used on drink containers with $p for the container and $T for the liquid name. This is now also used for quaffing potions and using lighters.
  • OLC:

    • Room template editor: Doubled the length of the text buffer as some rooms in Skycleave have a LOT of text.
  • Rooms:

    • No-tracks: New room affect flag that prevents anybody leaving tracks and blocks the track command.
  • Scripting:

    • Action: Fixed an issue where the "feeding" action did not show up in %char.action%.
    • Biting: Added %char.biting% and %char.bitten_by% getters for vampire feeding.
    • linked_to_instance: New mob property that indicates if it's linked to an instance here.

Patch b5.136: Quest bug fix (October 8, 2022)

  • Code updates:

    • Git ignore: Updated the git ignore file to include more things.
    • Quest iteration: Added protection for iterating over player quests. There are several conditions where quests can be dropped, failed, or lost in the middle of finish, dropping, or failing another quest. This resulted in an extremely rare crash bug that should no longer be possible.
  • Commands:

    • Chop: Chop time is now based on axe level and whether or not the axe is superior, not on strength or axe DPS. Due to minimum chop time limits, non-superior axes level 34 and below are all equal in terms of chop time.
    • List: Fixed a bug where 'list id' failed with no error message when used on 2.item, 3.item, etc. Both list and list id will now allow this syntax.
    • Mine: Mining time is now based on pick level and whether or not the pick is superior, not on strength or pick DPS. Due to minimum mining time limits, non-superior picks level 44 and below are all equal in terms of mining time.
  • Events:

    • 18800 Halloween of the Dead: Adjusted the cost on the Bylda.

Patch b5.135: Bylda Terror (October 6,2022)

  • Code updates:

    • Depletions: Wrapped set_depletion() to support vehicles as well as rooms; rooms now use set_room_depletion().
  • Events:

    • 18800 Halloween of the Dead: Added "Bylda Terror", a new daily Trade quest that rotates with "Costume the Town". Increased the variety of small demons for "Delegation of Demons".
  • OLC:

    • Requirements: Fixed a bug in the requirements (tasks/prerequisites) from b5.133 that incorrectly dropped the group letter during an 'add'.
  • Scripting:

    • Depletions: Added a getter/setter for room depletions: %room.depletion(type,amount)%, where 'amount' is optional. Also added this for vehicle depletions.
    • Enter room triggers: Fixed bigs where this trigger did not fire when players logged in or respawned.
    • Movement methods: Enter, entry, greet, and leave triggers now all support a new %method% variable that indicates how the person moved.
    • Player-in-Room: This trigger modifier flag now works on the following triggers (in addition to random triggers): memory, entry, enter, greet, pre-greet, leave, speech, act.
    • players_present: This room variable now returns the number of players in the room rather than true/false.
    • Pre-greet trigger: Fixed a small bug in how this trigger fires.
    • Triggers: Fixed triggers that were missing depth checks when running. Updated all triggers to use the TRIGGER_CHECK macro.
    • Variables: Added a shorthand getter %thing.var(varname)% that fetches a var if it exists, or empty string if not. It takes an optional second argument for a default return value, e.g. %ch.var(line,1)%. This reduces a common script operation from multiple lines with if/else and eval statements to a single getter that can be used inline or with set.

Patch b5.134: Halloween, fixes, and QOL updates (September 23, 2022)

  • Adventures:

    • Various: Minor typo fixes.
  • Buildings:

    • No-Customize: New building flag prevents customization.
    • Small Forge: Renamed the designated version of the forge to "Small Forge" to avoid some ambiguity on the storage list.
  • Commands:

    • Butcher: Can no longer attempt to butcher a corpse with no butcher interactions.
    • Crafting commands: Will now accept partial and disordered names for crafts, such as 'craft hest trink' or 'forge low can'. This is third in priority after exact matches and regular abbreviations.
    • Customize: Fixed a bug where "customize road" could not detect a valid keyword if it was at the very start of the name.
    • Refashion: Fixed a typo in the verb conjugation of the message seen in the room.
    • Reforge: Fixed a typo in the verb conjugation of the message seen in the room.
    • Nearby: Adventure names are now color-coded by level (like the room titles inside an adventure). Nearby now lines up the colons separating the distance/direction and the name of the location.
    • Skin: Can no longer attempt to skin a corpse with no skin interactions.
    • Quest: The "turns in at" list for the quest is now separated by semicolons instead of commas, as commas appear in some mob names.
    • Where: No longer shows coordinates or distance for things on the same map tile as you (e.g. a mob in the instance you're in).
  • Content:

    • Flint: Now found at 15% rather than 9% when digging in most non-adventure tiles (except by rivers and oceans).
    • Lettuce seeds: Added missing "edible seeds" component type.
    • Mines: Now show the mine type in the room title.
    • Minipets: Standardized the name as "minipets" with no hyphen. All text and content has been updated with this.
    • Reward minipets: Updated the text on immortal reward minipets (9900 range).
    • Saplings: Now found at 15% rather than 12% when gathering in non-adventure tiles.
  • Displays:

    • Credits: Updated the game credits and related text.
    • Score: No longer shows skills with the in-development flag (this mainly appeared for immortals).
    • Slash history: Fixed an error where dollar signs were doubled in slash history.
  • Events:

    • 10700 Winter Wonderland: Added a cap of 1700 points (34 out of 37 days of dailies).
    • 18800 Halloween of the Dead: Added a cap of 1550 points (31 out of 33 days of dailies). Added a new minipet to the goody bags and reduced the zombie terrier whistle to 1%.
    • Daily quests: Events now support daily quests that use a separate 5-per-day pool from normal dailies. All existing event quests are now flagged for this.
    • Max-points: Events can now have an optional points cap. Points gained past this cap are ignored. Most displays now show the cap when showing your own points.
  • Help files:

    • Allow-Multiple: Added missing help files for the Allow-Multiple mob trigger type.
    • Depletion: Now mentions stumps and copses.
    • Dismantle: Added more text relating to resource refreshing, to clarify that only mines must be dismantled.
    • Guides: Minor updates to some of the getting-started guides and info.
    • %load%: Added missing text about loading an object into another object.
    • Various: Typo fixes and minor updates.
  • Immortals:

    • Event start: Now gives a better error on in-development events.
    • Show account: Changed how unlinked characters are displayed when they have the same IP address.
    • Stat object: Now shows object timers in minutes, in addition to ticks.
  • Mobiles:

    • Cityguards: Fixed an obscure and truly wild bug in the CITYGUARD flag that was scaling mobs without any visible output when present with a cityguard. This had two very notable but hard-to-reproduce effects: it was underscaling the fight and loot on the Halloween boss and the Old Gods.
  • Players:

    • Map memory: Fixed a bug where memories sometimes could not be loaded correctly for screen reader users. However, this patch will wipe all existing players' map memories in order to change the data format.
  • Quests:

    • Event quests: Added a new EVENT flag for quests. This marks all quests with an event tag and also causes daily quests to use a separate pool of 5 dailies.
  • OLC:

    • Quest auditor: Now warns if there are no tasks.
    • Room affects: The HIDE-REAL-NAME room affect can now be applied, carefully, in OLC.
    • Shop editor: Fixed a bug where the minimum reputation for shop items showed as ((null)) if it was not set (or didn't require reputation) on a shop with its allegiance set. Also now displays the vnum of any special token used to for a shop item.

Patch b5.133: Fire and Logs (September 14, 2022)

  • Adventures:

    • 104 Magiterranean: Permafrost: The seeds from this adventure now store in the Seed Silo.
    • 129 Gigantic Nest: Wispy seeds now store in the Seed Silo.
    • 18450 That Dammed River: Fixed an issue where the cleanup script could convert any tile to a River, including a Canal, if the adventure had spawned on it.
  • Commands:

    • Nearby: Now sorts by distance.
  • Content:

    • Conveyance trinket: Parameterized the messages for the trinket using the new script1-script5 custom strings. It is now possible to add more home-teleporters without writing a new script.
    • Fire drill: Now has 25 uses instead of 10.
    • Fire sticks: Now have 5 uses instead of 1.
    • Firesteel and tinder: Now has 25 uses instead of 10.
    • Hestian trinket: Parameterized the messages for the trinket using the new script1-script5 custom strings. It is now possible to add more home-teleporters without writing a new script.
    • Humans: Added the new COINS flag to all human npcs.
    • Roaring fire: Added missing roaring keyword.
  • Displays:

    • Factions: Reputation change announcements now say you are Liked/Hated/Revered "by" rather than "with" the faction.
    • Quests: Added code to remove duplicate names in the quest-info when the quest can be turned in at more than one identical mob. Also moved up the code that marks rooms as visited so they display correctly on the auto-look if the quest finishes in the room you enter.
    • Short-exits: Added 'disembark' and 'exit' for interiors to short-exits.
    • Skills: When you gain a skill level due to an ability, it will now tell you which ability.
  • Empires:

    • Elog: Production by workforce now appears on 'elog workforce' once per day.
  • Mobiles:

    • Coins: Added a new COINS mob flag to determine whether or not the mob drops coins. The HUMAN flag previously covered this.
    • Custom messages: Added new script1 through script5 options to mob custom messages, to be used by the scripting system.
  • Quests:

    • Tasks: Quest tasks can now have custom descriptive text. Applied this to all existing "scripted condition" quests.
  • Objects:

    • Custom messages: Added new script1 through script5 options to object custom messages, to be used by the scripting system.
  • OLC:

    • Custom messages: Added a move up/down option to custom messages to help with order-dependent strings for scripts.
    • Interactions: Fixed a bug in the smart copier for interactions that was ignoring restriction flags when determining if two interactions are identical.
    • Quests: Fixed a bug in the quest rewards that would not allow adding miscellaneous coins.
  • Scripting:

    • Custom messages: Can now fetch custom messages from mobs and objects using %mob.custom(script1)%, %mob.custom(script1,0)%, etc.
    • Pre-Greet-All: New trigger type that can detect entry to the room BEFORE the person arrives.

Patch b5.132: Scripting and Minor Fixes (August 11, 2022)

  • Abilities:

    • Appraisal: No longer shows when a person's inventory is empty. It previously had 3 lines indicating the inventory was empty.
    • Darkness: The DARK room effect from this now shows as a line below the room description for players who can see through it (rather than no indication it's active).
    • Ritual of Teleportation: You can no longer random-teleport out of room templates with the !LOCATION flag.
  • Adventures:

    • 11800 The Tower Skycleave: Patch b5.132 includes parts of a full overhaul to the Tower Skycleave in an inactive state, for testing reasons. This adventure is not complete and the older version, #160, is still active.
  • Characters:

    • Disarmed: The DISARM affect flag is now called DISARMED.
    • Immobilized: The ENTANGLED affect is now called IMMOBILIZED to separate it from the "entangle" ability.
    • Immunity affects: Renamed !BATTLE to IMMUNE-PHYSICAL-DEBUFFS. Renamed !HIGH-SORCERY to IMMUNE-MAGICAL-DEBUFFS and merged !NATURAL-MAGIC into it. Renamed !VAMPIRE to IMMUNE-MENTAL-DEBUFFS. Renamed !STEALTH to IMMUNE-POISON-DEBUFFS. Updated which immunities affect certain abilities including: abate, beguile, blind, crucial jab, diversion, howl, shadowcage, shadow jab, stagger jab, thornlash, weaken.
  • Commands:

    • Consider: Characters that cannot be attacked now skip the rest of their "consider" information and do not show the "character considers their chances against" message. Now hits the new Can-Fight trigger type, too.
    • Fill: Now allows you to fill a drink container from a no-take drink container in the room (like a fountain).
    • Look: No longer automatically diagnoses the character ("She is healthy") if they are at full health.
    • Toggles: The 'brief' toggle is now called 'room-descs'. It no longer affects mapsize.
  • Content:

    • Astral Nexus: No longer requires a 3rd person to help summon a member of your own empire.
    • Roaring fire: Now has the 'roaring' keyword.
  • Displays:

    • Drink containers: Removed the "of water" (or any liquid name) from the end of the drink container short description everywhere except in inventory/contents lists. For example, it will no longer say "Name drinks from a canteen of water."
    • Exits: Added a new short-exits toggle that gives CircleMUD-style exits on 1 line below the room description (excluding map rooms).
    • Look: Now indicates what object you're looking at, and where it is, if you targeted an object. This should help avoid confusion when 'look' hits your equipment. Also clarified the vehicle look message.
    • Movement: When a character moves up or down and is "walking", the text now says they "go" up/down. This results in better string-building especially as most up/down exits are stairs and ladders.
    • Size: If a mob has a look description, its size will no longer show below that ("It is small").
  • Help files:

    • Greet triggers: Fixed text that said %direction% could be empty — it actually says "none" if the player comes from no direction.
    • Info command: Updated this text with some of the changes that were missing from it.
    • Iron guide: Updated part about mines formerly requiring entrances.
  • Immortals:

    • Config: Fixed a bug where 'config game' did not work.
  • Mobiles:

    • Affects: Now saves affects on mobs through a reboot/crash.
    • Customizations: Fixed an issue where changing a mob's sex did not save through reboots.
    • Movement: Fixed a bugs where mobs would not wander up/down indoors.
  • OLC:

    • Extra descriptions: The auditor will now catch keywords that are masking other extra descriptions, for example 'upside-down' before 'up'.
    • Room template list: Now shows function flags, if present, on the -d list.
  • Scripting:

    • Adventure summons: Added additional scripting support for the adventure summon system: %ch.end_adventure_summon%, %ch.adventure_summoned_from%, %ch.mark_adventure_summoned_from%, and %ch.link_adventure_summon%.
    • Can-Fight: New type of mob trigger that can be used to prevent some attacks or to give better error messages when used with the !ATTACK affect. This is also called on Consider commands.
    • can_wear: Fixed a bug where %obj.can_wear(TAKE)% did not give the correct answer.
    • find_end(): Added a check to prevent a crash bug in scripts with mismatched nested if/ends.
    • is_scaled: Determines if an NPC has already been scaled by an attack, etc.
    • is_tagged_by: New mob getter that tells you if a player has tagged the mob (has loot rights).
    • %load%: Fixed an issue that prevented loading an object into a corpse.
    • Pronoun shortcuts: The various pronoun shortcuts such as *%actor% will no longer lose additional text attached to the variable. For example, the text "*%actor%self" used to eat the "self" portion and just show "him" or "her" instead of "himself" or "herself".
    • %room.people%: This variable now accepts an optional vnum parameter and will return the first person of that vnum in the room, even if they're not normally targetable.
    • Variables: Fixed a bug where the first script variable saved on a mob or room that had no triggers attached would be discarded during startup.

Patch b5.131: Missing Mob Descriptions (May 18, 2022)

  • Adventures:

    • 101 Magiterranean: The Hidden Garden: Added look descriptions to the mobs.
    • 102 Magiterranean: Interdimensional Whirlwind: Added look descriptions to all mobs and emotes to some of them.
    • 104 Magiterranean: Permafrost: Added look descriptions to the mobs.
    • 122 Ruins: Thee Banditos: Added look descriptions to the mobs.
    • 123 Ruins: Thieves: Added look descriptions to the mobs.
    • 125 Ruins: Goblin Challenge: Added look descriptions to the mobs.
    • 126 Mountain Cave: Flame Dragon: Added look descriptions to the mobs.
    • 127 Wandering Dragon: Added look descriptions to the mobs.
    • 128 Colossal Red Dragon: Added look descriptions to the mobs.
    • 140 The Sewer: Ratskins: Added look descriptions to the mobs.
    • 10775 Tree of Knowledge: Added look descriptions to the mounts and minipets. Raised the spawn chance on the mounts.
    • 12030 Binding Circle: Ba'al Hadad: Changed the "jar of date palm seeds" to "purse of date palm seeds" to avoid a problematic name collision with a better item in the same shop.
    • 12300 Fur Dragon: Added the missing SCALABLE flag to the fake corpse so it would correctly inherit hard/group/boss settings. This fixes an issue where the difficulty-dependent dragon scale did not drop. Added Domino to the credits line for critical contributions.
    • 12500 Clockwork Colossus: Fixed the script on the "other adventurer" so he won't block turn-in on other quests; this was a bug.
    • 16000 Invasion of: The Goblin Necromancer: Added look descriptions to the mobs.
    • 18200 The Guild of Adventurers: Added look descriptions to some mobs.
    • 19000 The Swamp Hag: Added look description to the manatee.
  • Bug fixes:

    • Depletions: Fixed an issue caused by "production depletion" sharing its counter with all other types. This solves a problem with workforce in quarries and also solves a bug where dismantling a production building led to the tile being unchoppable. Production depletion no longer counts toward other depletions, and they no longer count toward it. Additionally, the OLC now allows workforce production and skilled-labor to use different depletions if they produce multiple things in one building or vehicle.
    • discrete_load: Corrected the array of mode names, which were sometimes showing the wrong library file type in error messages. Theoretically this could have caused unpredictable behavior if a file type with a high ID number triggered an error.
  • Commands:

    • Look: Looking "out" or in a direction will now check for extra descriptions before showing the normal output or error message. This allows extra descriptions to replace directions for "look". Reworked the code that checks for extra descriptions to accommodate this.
  • Content:

    • Cooking: Recipes from b5.130b that had the wrong cooking-fire flag set have been fixed and can now be cooked at camp fires or with Touch of Flame.
    • Herb gardens: Now use 'pick' depletion for both the manual and workforce picking.
    • Trapping posts: Now use 'trapping' depletion for their skins.
  • Immortals:

    • Stat room: Now shows building and room template info.
    • Whereami: This command now shows additional information for immortals about where they are.
  • OLC:

    • Depletions: New help file, OLC DEPLETIONS, explains how to use depletions on interactions, and also lists depletion types.
    • Interactions: Can now specify "-depletion <type>" on production and skilled-labor interactions to give them specific depletion types.
  • Scripting:

    • %send%: Now works on sleeping people.

Patch b5.130b: Fur Dragon Content Patch (March 11, 2022)

  • NOTE: This patch includes an auto-updater that will refresh some trinkets and other teleport items to ensure they have the correct new scripts and features.
  • Adventures:

    • 51 Trade Tutorial: Museum of Early Man: Added look descriptions to the mobs.
    • 102 Magiterranean: Interdimensional Whirlwind: Fixed spawn tables on the dragonsteeth crop.
    • 103 Magiterranean: Monsoon Rift: Added look descriptions to the mobs. Moved mob emote scripts to custom strings where possible.
    • 104 Magiterranean: Permafrost: Added additional helpful information to its help file.
    • 180 Misplaced Mother Goose: Added look descriptions to the mobs. All quests now reward a short-lived "breadcrumbs" item that acts like a hestian trinket and teleports you home. The items that teleport you to the newbie island to turn in the quest now give a warning if you have no home set. This will prevent newbies from getting trapped.
    • 181 Goblin Mines: Added look descriptions to the mobs.
    • 10700 Winter Wonderland: Small text fixes on the pets.
    • 10950 Viscous Muck Dragon: Fixed a typo on the dragon carcass.
    • 10250 Portal to the Primeval: Fixed the "Search the Forest" daily quest. It now correctly requires only 1 of the bosses, not all 3.
    • 10450 The Sewer: Goblin Outpost: Fixed a typo in the pitfighter's cape.
    • 12300 Fur Dragon: A new high-level world boss with a difficulty selector, lots of great loot, and new mechanics for learning the recipes. And unlike other world bosses, you can adventure summon after setting the difficulty.
    • 12500 Clockwork Colossus: Fixed a bug that caused the "other adventurer" to show as morphed when first encountered.
    • 12600 Elemental Escape: Added look descriptions to the mobs.
    • 16100 Oceanic Hydra: Now uses the new waterwalk affect, which it applies to players while they are present to make the fight possible.
    • 18460 Unstable Portal: Added look descriptions to all the mobs.
    • 19000 The Swamp Hag: Added look descriptions to the mobs.
    • Various: Added useful text in the look descriptions of invisible helper mobs. Made small fixes to text in various events and adventures. Replaced the fly effect with waterwalk on a small number of mobs. Roast pumpkin is now storable.
  • Characters:

    • WATERWALK: New affect type which lets characters stand/walk on water tiles without drowning.
  • Commands:

    • Drive, Pilot, and Sail: Now gives a more useful error when you lack Navigation and try to use coordinates.
    • Identify: Now highlights the object's name in the same color as it would appear in the inventory if loot-quality is toggled on.
  • Content:

    • Court knight: Fixed a typo in the look description.
    • Crops: Added new foods in the 3800 block that are created by the workforce crafting chore in buildings with cooking/oven flags. Some of these also received player recipes, if they weren't similar to existing recipes. They all provide 48 hours of food and no buffs. These have the keyword "village" and include bread, gruel, rice, pickled vegetables, and oat cakes. This makes MOST wild crops edible for workforce.
    • Imperial potions: Fixed a bug with the imperial hex-purging potion where it did nothing because its script was not attached. Added the imperial waterwalking potion formula to the global potion list.
    • Meats: Added simple cooked versions of the four basic meats in the 3800 block, along with workforce crafting recipes to make them. Also added basic player cook options for: meat, poultry, fish, and pork.
    • Shatter/shards: Added a new, higher tier of shards to the shatter script.
    • Stop: Added a new command trigger, 9806, that lets the "stop" command work on some scripts. Applied this to the hestian trinket, conveyance trinket, the snowglobe of home, and the teleporters for Misplaced Mother Goose.
    • Teleporters: Rewrote parts of several common teleporter scripts including the hestian and conveyance trinkets. Both trinkets are now parameterized so the scripts can be reused with different (or the same) cooldowns.
    • Various buildings and rooms: Added "sleep" to the commands list for basic buildings/rooms that have the BEDROOM function. Added "bake" to some buildings that have the OVEN function.
  • Displays:

    • Text: Removed remaining references to "vitae".
  • Help files:

    • Component types: Fixed the description of metals.
  • Immortals:

    • Recognizing: Removed code in look, say, and shout that allowed an immortal to recognize disguised/morphed mobs/players while holylight is turned off. Holylight already allows immortals to see this information.
    • Stat craft: Now shows the ability and skill vnums on the required ability.
  • Mobiles:

    • Death: Ensured mobs are scaled when they start to die, solving an amazing but unseen bug where an unscaled mob dying (e.g. from %slay%) could drop high-level versions of things that only drop at low levels.
    • Mounts: Mobs that naturally have WATERWALK effect and a MOUNTABLE flag are now "waterwalk mounts" and grant their rider the ability to ride on all water tiles. Waterwalk mounts require the Riding-Upgrade ptech (e.g. All-Terrain Riding). Fixed a minor issue where a mountable mob that gained flying somehow would also become a flying mount if mounted with this effect (it now requires a natural FLY affect).
  • Objects:

    • Scaling: Changed the SUPERIOR flag from 1.6x to 1.73x, BOE flag from 1.3333x to 1.3x, BOP from 1.5x to 1.4x, HARD-DROP still at 1.2x, and GROUP-DROP from 1.4x to 1.3333x. This brings BOE+SUPERIOR to 2.25x and BOP+HARD+GROUP to 2.24x — roughly equalizing these common sets of flags.
  • OLC:

    • Craft fullsearch: Fixed an issue where the -levelover option was only accepting -levelsover (this was a typo in the code).
    • Shop items: Fixed the syntax display for the "change" option and its help file.
  • Scripting:

    • Players: Added %actor.is_waterwalking% to detect all forms of waterwalk.

Patch b5.129f (February 23, 2022): Adventure Updates

  • Adventures:

    • 10250 Portal to the Primeval: Renumbered the adventure. Level range is now 75-175; crafts are 1-200. Revised most of the existing items. Added full gear cycles for weapons, armor, feet, and wrists, plus new waist items. Added emotes and look descriptions to mobs. Revised resource costs and loot tables. Added a difficulty selector. The shop now buys and sells crafting materials. Various other improvements and updates.
    • 10400 Hamlet of the Undead: Renumbered the adventure. Level range is now 175-275. Added a difficulty selector which controls the bosses on all three wings. You can now skip the guard's speech. Improved gear and added head, worn/about, hand, leg, weapon, and held items. Added a minipet and a flying mount. Added emotes and look descriptions. The adventure now leaves burnt ruins behind if it ends with bosses still alive.
    • 10450 The Sewer: Goblin Outpost: Renumbered the adventure. All goblins now have difficulty selectors. Added a healer goblin inside a tent in Dryleef's room. Improved and added new fight scripts; on normal difficulty these scripts do not run. Added emotes and look descriptions. Gear is now 1-175 and is BOE if crafted or BOP if dropped as loot. Updated all craft costs. Shops now sell rat skins and the goblins drop rat skins as loot. Raised the spawn rate on the ultra-rare war rat.
  • Abilities:

    • Powerful Staves: This ability is now its own mastery ability and can make superior items.
    • Staffmaking: Now has Powerful Staves as its mastery ability.
  • Events:

    • 10700 Winter Wonderland: Various updates including new straw goat quests and a companion reward.
  • Scripting:

    • Objects: Added longdesc and keywords getters for objects.
  • Vehicles:

    • Vehicles in adventures: Now shows adventure level-based coloring on room titles inside vehicles in adventures. Fixed a bug where trying to exit a vehicle inside an adventure could incorrectly detect that the adventure is full by over-counting the player who is moving.

Patch b5.129g (July 27, 2021) : Mine Change

  • Adventures:

    • 200 Burrow Canyons: Added a portal entrance/exit to replace the "down" entrance. You can still go "up" from the first room to leave the adventure.
    • Various: Minor text fixes in scripts.
  • Content:

    • Mine: The existing mine building is now "open" — you can enter and leave the tile in any direction, and it no longer requires a direction to build. Players and NPCs now mine from the map tile rather than "inside" a building.
    • Snake: Minor fix to the constrict script.

Patch b5.129f (July 6, 2021): Script Updates by Domino

  • Adventures:

    • Various: Fixed scripts with waits and also updated messaging where needed in those scripts. Also fixed some basic skill effects used in some of these scripts. This applies to: Three Banditos, Thieves, Monsoon Rift, Portal to the Primeval, Goblin Challenge, Flame Dragon, Goblin Mines, Mill Manor, Renegade Spellcaster, Viscous Muck Dragon, Anat, Ba'al Hadad, Golden Goblin, Clockwork Colossus, Neferkare, Lost Temple
  • Content:

    • Bloodletter arrows: Fix for a script error.

Patch b5.129e (June 22, 2021): Script Updates by Domino

  • Adventures:

    • 130 Volcano: Fixed the script that removes the adventure portal.
    • 160 The Tower Skycleave: Fixed scripts with waits.
    • 12000 Binding Circle: Anat: Fixed some scripts with waits in them. Fixed the Yatpan attack message.
    • 12400 Golden Goblin: Fixed some scripts with waits in them.
    • 16000 Invasion of: The Goblin Necromancer: Added death cleanup trigger.
    • 16100 Oceanic Hydra: Added "look out" to commands list on the towers. Fixed a script error in reforging/refashioning hydra items.
    • 18800 Halloween content: Removed an unnecessary no-workforce-evos flag from the haunted mansion.
    • 19000 Swamp Hag: Fixed a script with a wait.
    • Various: Condensed send/echo lines in some scripts. Fixed some bad variable names.
  • Content:

    • Phoenix familiar: Text fix on the heal message.
    • Snake: Various fixes to the crush script.

Patch b5.129d (June 6, 2021)

  • Commands:

    • Import/export: Fixed a bug in the portion of the import/export list that prevents the buffer from overflowing. This was capable of corrupting memory and crashing the mud if the list was too long. Also doubled the maximum size of the buffer.

Patch b5.129c (June 1, 2021)

  • Adventures:

    • 103 Magiterranean: Monsoon Rift: Removed bad pre-reqs on 3 quests that were blocking the quests from chaining. This was likely caused by a change in how pre-reqs are validated, combined with bad data on this very old adventure.
    • 18800 Halloween event content: Removed the "no workforce evolutions" flag on the slaughterhouse as workforce changes to the tile will not affect its status there.

Patch b5.129b (May 18, 2021)

  • Bug fixes:

    • affect_join: This function no longer removes an existing affect when it finds one of the same type. It now merges the new affect into the old one. This function also now checks for any affect bits that are set rather than removing mismatched bits.

Patch b5.129a (May 11, 2021)

  • Bug fixes:

    • Evolver: Fixed a bug where claiming/abandoning a map room did not result in an immediate save of the world map file, which is used by the map evolver utility. As a result, the ownership data was often out of date, primarily resulting in weirdwood tiles dying if they had been claimed since the last reboot.
    • Terrain change: Fixed an issue where changes to terrain/sector did not immediately cause a map save.

Patch b5.129 (May 4, 2021)

  • Adventures:

    • Linking: Added new linking rules for vehicles (either as the vehicle's interior, or a portal at the vehicle) for existing vehicles as well as new vehicles at a building/terrain. These are not functional in this patch, but are available to be added now.
  • Bug fixes:

    • Empire timeout: Fixed a bug where an empire whose player(s) are logged in continuously for over 2 weeks (without logging out or alting) would show as timed out (0 score, no workforce). Empires' last-login time will now update whenever players are saved while in-game.
    • Login location: Fixed two bugs in players' login locations. First, in some cases the game would re-save the data that checks a player's login location during the login process, resulting in placing the player in the wrong place if the room vnum they logged out in had been repurposed. The other bug involved the auto-updater system, which could disrupt a player's login location if they were inside a vehicle when an auto-updater hits players.
    • Mapout: Fixed a bug where vehicle-style buildings were outputting incorrectly for the graphical maps.
    • Object updates: Fixed a bug where objects with a "nothing/-1" vnum never ran point updates, for the last few months. This particularly affected the autostoring of mail and coins.
    • Workforce why: Fixed a bug where deleting a room that had recent workforce activity could cause a crash when a player used workforce why.
  • Commands:

    • Board/enter: Removed the movement cost for boarding or entering a vehicle (including vehicle-style buildings). This solves an issue where auto-dismounting while trying to board a ship could leave you with too few movement points to board it, causing you to drown.
    • Chart: Now shows your empire's name for an island and also shows the global name (if different) on a new line.
    • Customize island: You can no longer start island names with Island, Isle, The Island, or The Isle (configurable).
    • EInventory: Now pre-sorts the full inventory at the start of this command to ensure a predictable item order for other commands.
    • Identify: No longer shows home/warehouse storage locations on items that cannot be picked up.
    • Ship status: Now correctly shows the empire's name for each island, rather than the global name.
    • Skill buy: If you try to skill-buy a skill tree name, it will now give a more helpful error message.
    • Skill swap: Now requires your skill level be 100, rather than your total level.
    • Tavern: Fixed a bug where typing "tavern" with no arguments, while in a tavern, showed an error message before the regular output.
    • Workforce keep: Now pre-sorts the full inventory at the start of this command to ensure a predictable item order.
  • Config changes:

    • New: no_redundant_island_names 1
  • Content:

    • Fillets of fish: Updated the descriptions and keywords on the fillet of fish and the catfish fillet to avoid keyword collisions.
  • Crafts:

    • Beeswax: No longer refunds the beeswax from the honeycomb when crafting beeswax (this was resulting in double the wax).
    • Paints: No longer refunds jars when mixing paints into new colors.
    • Skip-consumes-to: New craft flag prevents resource items from running any consumes-to interactions. Notably, this fixes an issue with mixing paints, where jars were incorrectly refunded in the middle of the process.
  • Displays:

    • Coins: Will now explicitly use the word "miscellaneous" when that's the only type of coins to display.
  • Empires:

    • Auto-abandon: Now logs your territory count when a tile is auto-abandoned due to an overage.
    • Eedit: When you set your empire name and it automatically updates the empire's adjective form, it will now remove filler words like "the" from the adjective. This does not apply when you set your own adjective.
  • Help files:

    • Typo fixes: Various.
  • Immortals:

    • Show account: Changed how last-online time is displayed and color-coded it for at-a-glance information.
  • OLC:

    • Object auditor: Now checks for full keyword collisions with other objects.

Patch b5.128 (April 13, 2021)

  • Buildings:

    • check_for_bad_buildings: Fixed a bug in this function that could remove building relationships with vehicles.
    • Original builder: The player (account) that originally built a building can now dismantle it even if they don't currently have the correct ability.
    • Trapper's Post: Updated this to a new vehicle-style building. It no longer has an interior and can only be built in temperate forests, but it gained a cooking fire. Added additional new versions of it for the desert and jungle with a new progress buy. The new versions will also catch furs and snakeskins.
  • Code updates:

    • generic_find: Now takes an optional int pointer to pass through the data for cross-list numbering using the number-dot-name syntax.
  • Commands:

    • Look: Fixed an issue where the number-dot-name syntax did not work correctly with extra descriptions on the same thing (only with extra descriptions on different things).
    • Upgrade: Split most of the work out of the upgrade command, into its own function.
  • Immortals:

    • Util bldconvert: Fixed a crash bug in this utility.
  • Mobs:

    • Emotes: Mobs that are stunned, entangled, or being fed on by a vampire will no longer display custom echoes/says.
  • OLC:

    • Forced upgrades: Added a new "relationship" to buildings and vehicles that can automatically upgrade them, as if a player had upgraded them, when the mud reboots.
  • Scripting:

    • ana: New text variable %string.ana% returns "a" or "an" depending on the start of the string.
    • mine_type: Added a new room variable %room.mine_type% that returns the mine type for the room, if any.
  • Vehicles:

    • Original builder: Vehicles now track the account that built them, just like buildings do. A player can dismantle a vehicle they built, even if they don't have permission in their empire. Players may also now dismantle a vehicle without the original ability that created it, if they were the original builder.

Patch b5.127 (March 30, 2021)

  • Bug fixes:

    • Scheduling: Fixed a bug in the DG Events system (which handles script waits, trench filling, and other at-a-time events) where trying to schedule an event in the past resulted in scheduling it in the distant future rather than scheduling it to happen immediately as the DG Event system appears to have intended. (Any existing occurrences of this bug, such as unfilled canals, will automatically correct themselves.)
  • Commands:

    • Mail: Moved in-game text related to the mail system to configs so implementors can more easily re-theme the pigeon post. Game configs now determine whether the player must be at a pigeon post (building with the MAIL function) to send or receive mail.
  • Config updates:

    • new: mail_available_message A pigeon is circling overhead with mail for you.
    • new: mail_not_available_message You can't see any mail pigeons following you.
    • new: mail_receive_message_to_char A pigeon lands and you find ## attached to its leg.
    • new: mail_receive_message_to_room A pigeon lands and $n unties ## from its leg.
    • new: mail_requires_building_to_receive 0
    • new: mail_requires_building_to_receive_message You can only recieve mail at a working pigeon post.
    • new: mail_requires_building_to_send 1
    • new: mail_requires_building_to_send_message You can only send mail from a working pigeon post.
    • new: mail_send_message You tie your message to a pigeon and it flies away!
  • Content:

    • Bound Wooden Column Tutorial: Updated this quest with correct instructions and attached it to desert saplings and soft fiber, instead of stiff fiber.
    • Deserts: Added a new soft plant fiber for deserts, which is found via gather (along with saplings) on most desert tiles and some irrigated tiles. This fixes an issue where desert players require bound wooden columns but have trouble making rope. It also makes more saplings available in the desert.
  • Empires:

    • Workforce: Many workforce chores will now indicate the quantity of items they produce, if it's more than 1. Fixed a bug where dismantle-mines did not cost any food or log its activity.
  • Immortals:

    • Config: Reworked parts of the config command. It no longer requires a group/category type to view or set an individual config.
  • Scripting:

    • Tools: Fixed a crash bug in the tool getter.

Patch b5.126 (March 23, 2021)

  • Code updates:

    • find-in-*-hash: Added additional find-in-hash functions for string and pair hashes.
  • Displays:

    • apply_dot_effect: This function will now display any "apply" messages on its affect when applying a DoT. Slightly rearranged some functions that call it to ensure messages occur in the correct order.
    • Informative view: Updated informative colors/labeling for vehicles. Players also no longer see informative colors for tiles they don't own (except for public or disrepair info). Immortals will still see other empires' informative labels if they have holylight on.
    • Mine type: Mines will no longer show their ore type in the room unless your empire is the last one to have prospected the mine. Mining even 1 ore from a tile (including by workforce) will now mark the tile as prospected by your empire.
  • Empires:

    • Autostore: Fixed an issue with unclaimed vehicles (or vehicle-style buildings) in claimed rooms, where autostore would lose items from the interiors of vehicles. It will now follow the chain up to the first claimed vehicle it finds, or use the room it's in if none are claimed.

Patch b5.125 (March 16, 2021)

  • Commands:

    • Load/unload: Fixed a typo that reversed the order of the argument and the word a/an in an error message in these commands.
  • Content:

    • Grave marker: Updated the description, which was badly out of date.
    • Paint: Fixed the number of jars required (and returned) on many paint crafts.
    • Skinning knife: Fixed a typo.
    • Shores: Added the missing "grassland" climate to some temperate shore tiles.
    • Tree shelter: Fixed a typo.
  • Empires:

    • Workforce: Fixed a bug in interaction-based workforce chores, such as farming, where workers were marking themselves as working too many of a single resource because they were marking it for each entry in the interaction list. For example, a crop might have possible harvest interactions of 2x, 3x, 4x, 5x, and 6x of the same item, and the worker was marking itself as working all of these (as if it was working 20 of that item) instead of just the highest (6 in this example).
  • Help files:

    • Boost: Mentioned the bonus blood pool.
    • Gatehouse: Added a note on the progress goal.
    • Sanguine Restoration: Mentioned the bonus blood pool.

Patch b5.124 (March 9, 2021)

  • Commands:

    • Customize: Fixed a crash bug in customize vehicle related to a recent change in map saving.
  • Config changes:

    • new: prospecting_workforce_hours 1440
  • Content:

    • Familiars: Appended "(familiar)" to the long descriptions of all familiars and updated their text slightly.
  • Empires:

    • Deep mines: Fixed parenthetical grouping that incorrectly required a player present to trigger deep mines.
    • Workforce: Added a new "prospecting" chore which will slowly prospect claimed tiles. This requires the new Prospector Training progress buy. The workforce command will no longer let you enable chores that require certain technologies, and will instead give a better error message.
  • Terminology:

    • Changed the word "master" in reference to following, loyalty, and similar to "leader" or "player" where appropriate including code, game text, and content. Other outdated uses of "master" were replaced with other terms as well. The word "master" still appears where appropriate, especially in reference to skills.

Patch b5.123 (February 23, 2021)

  • Config changes:

    • Changed default: hours_to_first_bonus_trait 0
    • New: bonus_trait_reset_message (paragraph shown when a player's bonus traits are reset)
    • New: hours_to_advanced_bonus_traits 12
    • New: hours_to_bonus_trait_reset 12
  • Content:

    • Bridges: Added missing attach-road flag, which is needed for pathfinding over bridges.
    • Swamp Walks: Added missing attach-road flag, which is needed for pathfinding over swamp walks.
  • Players:

    • Bonus traits: Dropped the default hours-required for the first bonus trait back to 0 (it wasn't helping to delay the trait). Added a free automatic reset of bonus traits after 12 hours (configurable). Players below 12 hours (configurable) will only be able to choose from newbie-approved traits. Removed the health-regen bonus trait (it never provided anything useful) and added a bunch of new bonus traits.Existing traits got new names/descriptions.

Patch b5.122 (February 16,  2021)

  • Abilities:

    • Cloak of Darkness: This ability (and its ptech, Map-Invis) now only has the "hard" skill check (60% chance) rather than also having a 50% success rate (which was effectively 30%).
  • Adventures:

    • 51 Trade Tutorial: Museum of Early Man: Added "Tutorial Museum" to the building name for the tutorial entrance to assist new players.
    • 52 Tutorial Quests (Soulstream): "Complete More Tutorials" will now take away the spirit tokens on completion. Improved the text on this quest and on the inside of the soulstream to help players understand how to get more tutorials.
    • 10700/16600 Winter Wonderland: Fixed a typo in the description of the Icy Ballroom.
    • 18460 Unstable Portal: Added missing IN flags to the vehicles. Added "definitely" to the keywords of the non-horse as the mount list didn't show other useful keywords in the truncated short description.
    • 19000 The Swamp Hag: The walking hut no longer requires a carpenter (as it cannot be built inside a building).
  • Bug fixes:

    • Quests: Fixed an issue in quests that take away the required items on completion: currency was being added, not removed (but no live quests were using this flag).
  • Commands:

    • Build: Changed the resume-building message to use the building name instead of the craft name, to fix messages on some of the buildings.
    • Buy: Fixed a bug in "buy" that scaled items to their minimum level rather than the player's highest-ever level.
    • Craft info: Merged the level display into the other properties of the crafted item and added the word "level" to make it clearer what it is.
    • Identify: Now shows the speed of vehicles.
    • List: Fixed a bug in "list id" that scaled the identified item to your current level, not your highest-ever level.
    • Scan: Can no longer scan for blocked tiles by name/contents.
    • Territory: Removed the text "1 tile near" for non-grouped tiles.
  • Content:

    • Coast Spawns: Added "mountain" to the list of excluded climates for the Coast Spawns global list (glb 65, 66).
    • Peas: Fixed the duplicated look-description.
    • Spear: Updated the name of the basic spear to "a long spear" to include its unique keyword in the short description.
  • Displays:

    • Craft info: Will now show any buildings or other functions that are required for the craft.
    • Morphs: Capitalized the start of custom long-descriptions on morphs if they contained the #n token and required string replacement.
    • MOTD: Fixed a recent bug where the IMOTD not MOTD was showing on player-login.
  • Empires:

    • Import/export: Fixed a rounding error where the exchange rate could have hidden digits that prevented an import/export that looks like it should work.
    • Workforce: Fixed a bug where a player-set workforce production limit could override the empire's global cap.
  • Events:

    • 11520 Pixy Pursuit: Fixed the icon on the enchanted rainbow, which was gray for some reason. Updated the text on the pixy house schematic, which incorrectly claimed it was single-use.
  • Help files:

    • Class level: Replaced the phrase "at class level" with "at <Skill> 76+" in several help files.
    • Familiars: Added command information to help files for the synergy familiars, and improved their see-also lines.
    • Irrigation: Added better help files about irrigation and canal-building.
    • OLC: Added a list of vehicle speeds with descriptions.
    • Swimming: Added a note about movement loss and drowning.
    • Woodworking: Added a note about saw/scrape to the help file.
  • Immortals:

    • Last: Now shows "hours/days ago" on the last command.
    • Show account: Now shows "hours/days ago" on offline characters.
    • Show sectors: Added this as the default version of "show terrain" (for consistency), which is also retained for historical reasons.
    • Stat room: Now stacks items in the stat-room display.
  • OLC:

    • Fullsearch: Will now display the full color codes if they appear in the keywords of a fullsearch, instead of parsing the color codes.

Patch b5.121 (January 26, 2021)

  • Abilities:

    • Earthmeld: Updated the list of tile types that don't allow you to enter/leave earthmeld (and which also cause nature burn while earthmelded) and updated the help file with additional information.
  • Buildings:

    • Damage: Fixed a bug from b5.116 where building damage was set as an integer despite often having a decimal component. This was causing many buildings to decay much more slowly than normal.
  • Commands:

    • Informative: Added this command to toggle individual features on/off for informative view. The view itself is still controlled by the toggle command. Also added three new informative types: public, no-abandon, and no-dismantle.
    • Shear: Added an error message when the mob has no shear interactions.
    • Store: Fixed a bug in "store all" where it did not work if your inventory was empty, even if there were items in the room. Also removed a similar unnecessary error message in warehouse/home store.
  • Config changes:

    • New: idle_action_rent_time 225
  • Content:

    • Cloth: Added a new 'basic cloth' component type (6801) and applied it to all existing non-magic cloth items. Basic cloth is a type of cloth. The weaving recipes for sparkfiber and manasilk now require basic cloth so you cannot accidentally use a magic cloth to make a magic cloth (e.g. make sparkfiber into sparkfiber).
  • Displays:

    • Graphic map: Changed the graphic map color for the "dark jade" banner from olive green to pale green.
    • Political view: Players whose clients don't have extended 256-color palletes will now use simple grey for the background-highlighting on the political view of the ascii map, to avoid the risk that their client shows no contrast between the foreground and background colors.
    • Prompt: The [IDLE] tag in the prompt now appears at 5 minutes, not 10, to match the idle display elsewhere.
  • Players:

    • Idling out: Players who are still connected to the game will now take longer to idle out while performing timed actions (smelting, etc). They will generally idle out as soon as the action ends.

Patch 5.120 (January 5, 2021)

  • Note: This patch includes an automatic repair that may take up to 5 minutes to run. This will clean up any world data that should be gone already, and any associated files.
  • Adventures:

    • 51 Trade Tutorial: Museum of Early Man: Fixed a typo in the museum crier's cry. Updated the adventure name to indicate what kind of tutorial it provides.
    • 10700/16600 Winter Wonderland: Fixed emotes on the mini grinchy demon.
  • Bugs:

    • MSDP: Fixed a couple of places where the code tried to run MSDP updates on NPCs.
    • strip_color: Fixed an issue where wide color codes like the ones used for background-highlighting on cities were not correctly removed when stripping color from text, including map tile icons.
    • Tracks: Fixed an issue where ocean tiles could gain tracks. This shouldn't be possible because they don't have their own track data (they share it).
    • World saving: Fixed an issue where map tiles could save world-files and then load them but never remove them, if the need to save data went away. Only visiting the tile would trigger a proper save afterwards. Full world saves now take significantly longer (as they were missing some savable data before) but they also only happen during shutdowns and occasionally at startup. Reduced how often the game needs to do a full save during startup and added a bit for it to do partial saves instead.
  • Commands:

    • Claim: Fixed a bug in the get_or_create_empire() function that prevented claiming even in the player is already in an empire.
  • Content:

    • Guard Towers: The 2nd stage guard tower (advanced) now blocks view. The 3rd stage (superior) now requires blocks, as it is fireproof. Also updated descriptions/commands.
    • Tutorials: Updated the text on several tutorials and added scripts to automatically start other tutorials when you start a basic tutorial that requires one of the others. This change includes the tutorials for flint, handles, axes, bricks, and chopping.
  • Buildings:

    • Road-like buildings: Added two new building flags to replace hard-coded vnums: ROAD-ICON (boardwalk, bridge, swampwalk) and ROAD-ICON-WIDE (steps). These flags replace the icon with the procedurally-generated dashes/equalsigns that look roady on the ASCII map.
    • Wall-like buildings: Added a new ATTACH-WALL flag that replaces some hard-coded vnums for open buildings that attach to the @u/@v wall icons.
  • Displays:

    • Line-of-sight: Fixed an issue with the toggle for line-of-sight blocking. Changed how map tile icons are constructed and shown so that map-memory can remember the base tile rather than the player or vehicle on it (except building vehicles, which are still remembered). Cleaned up some code related to map icon display.
  • Immortals:

    • Fullsave: Added some usage notes in the help file because this is a VERY laggy command but also is no longer necessary for virtually anything.
  • Players:

    • Saving: Added triggers for rapid character saves after gaining/losing daily quests and gaining/losing event points.
  • Scripting:

    • view_height: Added %char.view_height% for the character's effective map view, and %room.view_height% for getting a room's total height including any buildings.

Patch b5.119 (December 15, 2020)

  • Abilities:

    • Cartography: New Survival ability that grants the player "map memory" — see below.
  • Adventures:

    • Various: The following adventure buildings now block the terrain behind them: The Tower Skycleave, giant hovel, fractured tower, dome, the advanced oceanic tower, and the ice palace. Additionally, the following buildings have an increased height: The Tower Skycleave, fractured tower, dome, and both oceanic towers.
  • Bug fixes:

    • World index: Changed the order of world file/index saves because saving the index first during shutdowns meant not saving any updates to the index made while saving the world, resulting in junk warnings about missing world files.
  • Buildings:

    • Height: New building property if the building provides a higher vantage point than the terrain. For buildings with the new obscure-vision flag, the height also affects tiles that are blocked.
  • Commands:

    • Survey: Now shows terrain elevation.
  • Config changes:

    • new: line_of_sight 1
    • new: map_memory_limit 20000
  • Content:

    • Buildings: The following buildings now block the terrain behind them: high temple, tower of sorcery, portcullis, great hall, superior guard tower, gatehouse, wall. Additionally, the following buildings have an increased height: tower of sorcery and all guard towers.
    • Cliffs: Added a missing obscure-vision flag.
    • Roads/buildings: Changed the needs-height flag to keeps-height on roads and buildings.
  • Displays:

    • Line-of-sight: Added a system that determines which map tiles are actually in your line of sight. Mountains (and mountain-like tiles such as lava) block this. Screen readers say the word "Blocked" for the tile name while ASCII map users see **** as the tile icon.
    • Map memory: Added a new player tech that records map locations seen by the player. These are displayed to players who have this tech as "Blocked Forest" (for example), and are shown in gray to ASCII map users. Dark tiles are also displayed from memory when outside the player's light/dim radius. There is a limit of 17000 tiles in memory at a time, after which it will delete the oldest memories first.
  • Empires:

    • Territory counts: Fixed a bug where in-city/outskirts counts could get out of sync temporarily, especially when adding and removing roads, due to undercounting when changing sectors.
  • Sectors:

    • Keeps-height: New sector flag, splitting the needs-height flag. This solves a small issue with roads and buildings gaining height when next to mountains.
  • Vehicles:

    • Height: New vehicle property can increase vantage point or can affect how tiles behind it are blocked if the new obscure-vision flag is set.
    • Mapout display: Updated the definition of when a vehicle is visible on "mapout" to exclude no-icon vehicles and ones with chameleon. All visible vehicles now flag an affect on the room so that the graphical map generator can "see" them.

Patch b5.118a (December 9, 2020)

  • World:

    • World index: Updated how this saves and also set it to save right away, if needed, so it's never out of date.
    • World saving: Fixed a bug where extended map tile data was not saving if the map didn't have a "room" entry in memory (since b5.116). Fixed several parts of the code that handle world-saving and world file deletion.

Patch b5.118 (December 8, 2020)

  • Adventures:

    • 10700/16600 Winter Wonderland: Replica Reindeer Wrangling now also works on camels. Added two new quests where you play music. Added other minor fixes.
  • Bug fixes:

    • Homeless citizens: Fixed a bug in the code that looks for a homeless citizen to move in.
    • Interiors: Fixed a b5.116 bug where vehicles and adventures had "unknown" locations in their interiors.
    • Stored object loading: Fixed a bug from b5.116 that would cause a crash if a player or room had a deleted item when the game tried to load them. Fixed the same bug in vehicles, too.
  • Immortals:

    • Show inventory: New immortal command counts copies of an item in offline inventories, equipment, and home storage.
  • Morphs:

    • Hide-real-name: New morph flag that prevents the real name from showing on "look".
  • Scripting:

    • Vehicles: Added %vehicle.function()% getter.

Patch b5.117 (November 30, 2020)

  • Adventures:

    • 10700/16600 Winter Wonderland: Updated some of the quests and rewards for this winter event/adventure.
  • Bug fixes:

    • Binary world index: Now saves changes slightly more aggressively.
    • Output processing: Removed a bit of code that was added while testing an issue in output buffering; this code was leading to memory errors.

Patch b5.116a (November 25, 2020)

  • Bug fixes:

    • Political map: Fixed a missing fseek when updating the political mapout data.
    • Scripting: Fixed a crash bug in scripts toggling object flags.

Patch b5.116 (November 24, 2020)

  • Note: This patch makes heavy changes to how the world is saved. It can convert an existing world, but it's important to have a backup before running it.
  • Adventures:

    • Instances: The instance file is now automatically saved within 1 second of any changes, just like map/world data.
    • Various: Minor text fixes.
  • Code updates:

    • Loading: Sped up playerfile, stored object, and stored vehicle loading by removing the huge number of strlen() calls and giving it a fixed length instead. Also improved error reporting in these.
    • Various: This patch changes how many properties of rooms, mobs, objects, and vehicles are changed/updated to trigger world-file saves.
  • Commands:

    • Elog: Significantly increased the maximum buffer size for viewing empire logs.
    • Fill/pour: Now works while sitting/resting
    • Manufacture: Sped up this command with haste and the faster-chores bonus, like build.
    • Play: No longer affected by hunger, thirst, starvation, or slow.
    • Read: Sped this up because it's unbelievably slow. It also now ignores hunger, thirst, starvation, and slow effects.
    • Seed: No longer consumes 1-use items when they are seeded (they still can't be seeded again).
    • Time: Updated the time command to reduce some of the verbosity and improve word flow.
    • Workforce: Fixed a formatting issue with the 3-column view where the first row only had 2 columns.
    • Workforce why: Will now mention that you don't own the tile, when used on such a tile.
  • Content:

    • Bricks: Added the missing BASIC flag on the "bricks" component.
    • Emperor of Penguins: Added missing SPAWNED flag.
  • Empires:

    • Banner: No longer allows underline or neutral-color as banners.
  • Help files:

    • Various: Minor text corrections.
  • Immortals:

    • read_map: A new external utility for reading data out of the binary map file. This utility can be found in the lib/world/ directory. (Admins: you must re-run the ./configure script in order for this utility to compile.)
  • Map generator:

    • Updates: The map generator now deletes old world/pack files and writes only a fresh binary_map file. Also updated/fixed the feature that shifts the world slightly to the side.
  • Mobiles:

    • Aggro/cityguards: Mobs will no longer aggro immortals, including other sources of aggro such as distrustful cityguards.
  • OLC:

    • Generic search: Fixed a looping error in ".gen search".
  • Scripting:

    • DG Events: Slight upgrades to the system that handles script "wait" and some other timed systems to speed it up when the new event is at the start of its "bucket" or when scheduling a large number of events for the same time.
  • World:

    • Binary map file: The main map data is now stored in a single binary file, allowing direct writes using fseek. Data that can't be flattened in this way is stored in the new .wld files (below).
    • Binary world index: New file that instructs the game which rooms to load at startup. Stores binary data with size equal to the maximum vnum in-use, and writes updates directly to this data using fseek, for speed.
    • Custom description: Fixed an issue where deleting a non-map room while someone is editing its custom description resulted in a bad pointer.
    • Islands: Fixed a flaw in the code that checks island-numbering at startup. This flaw made it so inefficient that the game would sometimes fail to start up due to how long it was running at 100% CPU.
    • Mapout/graphical map: Moved the mapout system again (it was moved in b5.115). It now writes full, fresh map data files at startup and then updates only the parts that change (using fseek).
    • Mob saving: Mobs saved in rooms can now also store their look descriptions (not possible under the old system).
    • Object/vehicle pack files: Now located in the lib/world/wld/## directory with the .wld file. The game can now delete these files when they are no longer needed. The game will also save these files less often, as it can now detect when their contents change.
    • Properties: Many room properties are now changed through functions rather than direct access.
    • Reset commands: Now a doubly-linked list since it appends at the end. New world saving/loading fixes 2 bugs in reset commands: mob flags could be lost/damaged due to incorrect data type, and remote variables on mobs were truncated to 79 chars.
    • World files: Added new subdirectories in lib/world/wld. All rooms now store their data to individual files in these directories (which may also contain some map info). These are now tagged text files, not traditional CircleMUD library files.

Patch b5.115 (November 10, 2020)

  • Note: This update contains a new code file (updates.c) which must be added to the Makefile (or re-run ./configure).
  • Abilities:

    • Ability engine: Moved the following abilities from the do_damage_spell code to the parameterized ability engine: ablate, acidblast, arclight, astralclaw, chronoblast, deathtouch, dispirit, lightningbolt, soulchain, starstrike, sunshock, and thornlash. Costs and damage may be slightly different but they should be very similar to the old version.
    • Messaging: Suppressed generic ability messages on damage abilities that have an 'attacktype' set. Custom messages will still be shown before the attack message, if present.
  • Bug fixes:

    • MSSP: Fixed a bug where MSSP could indicate the presence of invisible immortals.
  • Code updates:

    • dg_event system: Updated all parts of this system to use 'unsigned long' for game pulses rather than int or signed long, and switched to type-safe addition to avoid unlikely math errors.
    • frequent_combat(): Changed the data type on its pulse counter to match the game's pulse (unsigned long).
    • heartbeat(): Changed the data type on its pulse counter to match the game's pulse (unsigned long).
    • pulse: Renamed this global variable main_game_pulse to avoid ambiguation.
    • uthash.h: Updated from its github project.
    • utlist.h: Updated this file after discovering it has a bug in the DL_INSERT_INORDER2 macro, and seeing that its github project has some fixes.
  • Displays:

    • Sunrise: Fixed a sunrise message that was broken in b5.113.
  • Immortals:

    • Mapout: Removed the mapout command. Fullsave will now perform this step itself.
    • Switch: Fixed a potential crash bug that might have happened if the player was forced to type 'switch' while linkdead.
  • Mobiles:

    • Activity: Cleaned up and moved the mobile_activity() function. It is now called inside of real_update_char() instead of iterating separately over the character list.
  • Players:

    • Automatic respawn: Removed the check_death_respawn() function and merged this functionality into real_update_char().
    • Delayed update system: Added protection against more delayed-update flags get set in the middle of processing flags, which would have lost them before.
    • MSDP: Moved where many MSDP variables are set to reduce the constant work of re-setting them when they haven't changed. Previously, they were all updated for all connected players every second. Many of these now use the character-delayed-update system to avoid duplicate work.
  • Vehicles:

    • Decay: Changed how vehicles are auto-abandoned when they decay to account for the claims-with-room flag.
  • Versioning:

    • Auto-updater: Moved the auto-update system from db.c to a new file, updates.c, and wrote a new, simpler controller for it.
    • Old updaters: Removed all pre-b5.0 updaters. Presumably nobody will ever run a version older than that since the trunk of the github project is b5.0.
  • World:

    • Graphical map: Precomputed the color data for empires rather than computing it for each tile.
    • Saving: Combined the functions that save the .wld files, the base_map file, and the data files for the graphical map. They now all iterate together, once every half hour, rather than iterating separately over the world. Code related to world saving was updated as well.

Patch b5.114 (November 5, 2020)

  • Adventures:

    • 51: Tutorial: Museum of Early Man: Fixed a typo in the crier's message (caused by a recent change to how color codes are used in scripts).
  • Bug fixes:

    • Dismantle: Fixed the code that determined how many resources to return on-dismantle, based on damage. This has been returning full resources due to a math error since approximately b5.100.
  • Code updates:

    • heartbeat(): Updated how this function handles debug logging and rearranged some of the logic for speed.
    • Real/point-updates: Rearranged some of the logic for real-updates (5 seconds) and point-updates (75 seconds). Mobs, players, objects, and vehicles now do their point-updates at a procedurally-determined time with the game hour, rather than all doing them on-the-hour. This spreads out some of the work.
  • Commands:

    • Douse: Fixed a very old bug where very large containers would add (not subtract) fire due to a data type error.
    • Equipment: Fixed a bug where setting equipment sets could lead to memory corruption.
    • gen_craft commands: Now correctly sets vehicle ownership with perform_claim_vehicle when starting to craft one.
    • Junk: You can no longer junk an item with the (keep) flag.
    • Look sky: Fixed a small b5.113 display where it would say "You do not see that here" after the sky information.
    • Sacrifice: You can no longer sacrifice an item with the (keep) flag.
  • Content:

    • Default maintenance: Now uses 1 (nails) component rather than 1 pouch of nails (object).
    • Ruins: Fixed a minor issue in one of the "vehicle ruins" scripts.
    • Torch: Raised the timer on the basic torch from 8 to 10 hours.
  • Displays:

    • Building/crafting: Now shows the total number of the next resource still needed when you run out while building.
    • Day/night: Tweaked the wording in the day/night display on the time and weather commands.
    • Sunrise/sunset: Players will no longer auto-look at sunrise/sunset if they are fighting.
  • Empires:

    • Claiming: Updated how vehicles are claimed/abandoned in the code for consistency.
    • Merging: Vehicle ownership now transfers through perform-claim/abandon-vehicle rather than setting ownership manually.
    • Vehicles: Cleaned up the code that adjusts empire tech for vehicles. Fixed an issue where vehicles could be extracted without removing credit from active quests/progress goals.
  • Immortals:

    • Playerdelete: Fixed a minor issue with this function when used on an offline character.
    • Stat room: Now shows light count. Also fixed color on the 'globe' section.
  • Rooms:

    • Lights: Changed how lights in a room are counted to reduce work. Characters now have their own light counts rather than counting their lights when moving them in and out of rooms. Vehicles now contribute directly to the room's light count rather than being counted each time.
  • Scripting:

    • %own%: Fixed a bug in transferring vehicle ownership.
  • Vehicles:

    • Climate change: Added a new system that will ruin vehicles slowly when the climate on the tile changes to one they don't tolerate, for climates that allow this. Some climate changes will still ruin the vehicle immediately. Empires will now see logs when either of these things happens.
    • Decay: Vehicles can now go below 0 health due to decay, but will be auto-abandoned, exactly like buildings. Buildings with no remaining health generally can't be moved or used until repaired.
    • Flags: Added RUIN-SLOWLY-FROM-CLIMATE and RUIN-QUICKLY-FROM-CLIMATE flags to override default behaviors.
    • Workforce: Vehicles below 1 remaining health will only run maintenance and fire-brigade chores. Vehicles that are in an invalid climate won't run any chores at all.

Patch b5.113 (October 31, 2020)

  • Adventures:

    • 18800 Halloween Quests: Minor updates including text fixes.
  • Code updates:

    • add_player_to_table: Now logs a syserr if the player is already in the tables. Also now returns success/fail so players on multiple accounts can be cleaned up at startup.
    • Descriptors: Moved the code that frees descriptors to its own function.
    • Global iterators: Converted several functions to use global "next iterator" vars for objects and vehicles in case they have other vehicles/objects inside, which could sometimes result in extracting both the current obj/vehicle and the next one in the list at the same time.
    • Instances: Moved the code that frees instances to its own function. Fixed an issue in instance cleanup where the code was trying to check the instance's first/home room during room cleanup despite deleting it first.
    • Memory leaks: Fixed minor memory leaks in: ability applies, ability types, account freeing, archetype lore, book-freeing, the command ability, empire adjectives, empire island names/data, eq set names, object binding comparisons, player's automessages-seen hash, player cooldown loading, player reputations, requirements checking, script-ending-when-all-triggers-have-been-removed-from-something, and vehicle extra data.
    • purge_bound_items(): Added a safe next-iterator because this often purges an item and the items inside it.
    • read_empire_members(): Fixed the order of the code that cancels delayed refreshes so that it runs before the empire might be deleted due to having zero remaining members.
    • Unique storage: Fixed a minor bug where freeing an empire or player wasn't adding objects from their unique storage (warehouse/home) back to the object table before freeing them.
  • Commands:

    • Time: Updated this command to have sun information.
    • Track: Changed how tracks are stored: they are now in a small hash table to help quickly avoid duplicates and shorten lists.
    • Weather: Updated the information on this command.
  • Config changes:

    • new: delete_abandoned_players_after 0
  • Evolver:

    • No-evolve tiles: Fixed a bug where too little information was passed to the evolver for it to successfully ignore some types of no-evolve tiles.
  • Immortals:

    • Deleteplayer: Now logs as "DEL:" instead of "GC:".
    • Shutdown: New "shutdown complete" kills the MUD and frees all allocated memory on shutdown, to make it possible to detect unknown memory leaks.
    • Stat room: Moved some information that was on 'whereami' in b5.112 to this command, where it belongs.
  • Players:

    • Auto-deletion: Rewrote the delete_old_players() function, which is called if the mud boots up without the -q flag. It now deletes by whole-account only, meaning low-level or inactive characters on active accounts will not be deleted. Added a mode that compares level and playtime.
    • Deletion: Deleting a player now also deletes the player's delay file. Deleted players' files are now moved to a 'deleted' directory instead of being deleted entirely.
    • Index: Now stores highest-known-level in the player index.
  • Scripting:

    • %room.is_zenith_day%: New getter that determines if today is a zenith passage day for the room.
    • %room.sun%: New getter for sun status in the room.
    • Trigger functions: All iterators in trigger functions now use foreach-safe as they may remove themselves.

Patch b5.112 (October 27, 2020)

  • Adventures:

    • 141 The Sewer: Goblin Outpost: Updated the progress goal for the vehicle version of the tents.
  • Code cleanup:

    • Removed b3.6 assign_old_workforce_chore adapter.
    • Prototypes and externs: Moved remaining prototypes and externs.
    • Text files: Replaced the system that loads, stores, edits, and displays text files (motd, wizlist, policy, etc). These are now stored in an array instead of individual global vars with short names.
  • Commands:

    • Read: Sped up reading.
  • Displays:

    • Solstices and equinoxes: Now displayed on the "time" command.
    • Sunrise/sunset: Added some math to determine the sunrise/sunset times based on latitude and time of year. The sunrise and sunset lines are now curves that sweep across the map instead of the east-west linear version from b5.111. This means it's now dark a lot more in the winter and light a lot more in the summer, with a more pronounced effect closer to the poles. Also updated game text related to sunrise/sunset.
    • Zenith passage: Added a note on the "time" command and announced to the outdoors at noon on the day of zenith passage, for locations in the tropics. Also added an associated help file.
  • Help files:

    • Sleep: Added missing text from b5.108.
  • Immortals:

    • Tedit: Merged the tedit command's data into general text file data.
    • Reload: Now uses general text file data for various text files.
    • Whereami: This command now shows additional information to immortals about the location.

Patch b5.111 (October 24, 2020)

  • Abilities:

    • By Moonlight: Fixed this ability which was supposed to give +1 light radius but was giving +2. Now gives its +1 as a passive NIGHT-VISION buff (which will stack with Predator Vision and Nightsight).
    • Nightsight: Now grants the Larger-Light-Radius ptech, which adds +1 light radius.
    • Predator Vision: Fixed this ability which was supposed to give +1 light radius but was giving +2. Now gives its +1 as a passive NIGHT-VISION buff (which will stack with Predator Vision and Nightsight).
  • Code updates:

    • can_see_in_dark_room(): Replaced an increasingly-complicated set of macros for determining dark vision with this function.
    • room_is_light(): Replaced the IS_LIGHT/IS_DARK set of macros functions with this function.
  • Commands:

    • Alias: The alias list is now paginated.
  • Config changes:

    • new: max_light_radius_base 5
    • new: use_local_time 1
  • Content:

    • Various: Updated scripts that check the time to use local time.
  • Displays:

    • Night/darkness: Players now only see dim tiles on the ascii map up to a distance of 2 tiles from their light radius at night; tiles beyond that are fully dark (like EmpireMUD 1.0). Screen reader users now see dim tiles as "Dark <partial tile name>"; they previously did not see dim tiles at all. Tiles that are dark but adjacent to light tiles are now dim instead of light on the map. Added a new NIGHT-VISION apply for items/abilities that adds directly to light radius.
    • Political/informative views: Dim map tiles are completely dark when these toggles are on (these views never showed anything in dark tiles anyway).
  • Empires:

    • City Lights: This reward/technology now only functions in cities and outskirts, not frontier territory.
  • Help files:

    • Dark: New help file explaining dark tiles.
    • Moon: New help file explaining moons.
    • Political/informative: Added text about not seeing dimly-lit tiles with these toggles on.
  • Moon:

    • Replaced the EmpireMUD 1.0 moon system with one that uses the generic editor (with new type=MOON) to set up moons. The new system computes the correct moon phase and determines where the moon is in the sky based on the time and phase. Moons are still shown on 'look up' or 'weather'.
    • Light radius: Updated the code that determines the player's light radius based on any visible moon(s) at night. Moved the maximum unskilled light radius to a config.
    • Look/examine: You can now look at moons by name if they're up when you're outside.
    • Show moons: New immortal command.
  • OLC:

    • Generics: Added in-development flag that only applies to some generic types.
  • Players:

    • Player-techs: Reduced the Larger-Light-Radius ptech from +2 to +1 light radius and added the similar new NIGHT-VISION apply.
  • Scripting:

    • %room.moon_phase(...)%: New getter for a moon's phase.
    • %room.moon_pos(...)%: New getter for a moon's position in the sky.
    • %room.time(...)%: New getter for time at a specific location.
  • Time:

    • Local time: Game time now changes as you move east and west across the map. Each location has its own local time and its own sunlight and moonlight. Code related to timekeeping was updated with new functions to determine time and sun. This can be configured off.
    • Time command: Players now see the local time for the tile they're standing on. Now shows global time (used by hourly updates) to immortals.
  • Vehicles:

    • Light: Vehicles with the building flag will provide light to the tile if they're claimed (or on an unclaimable tile).

Patch b5.110a (October 20, 2020)

  • Bug fixes:

    • Combat list: Ensured a person is in the combat list before removing them, fixing a b5.110 crash bug.
  • Code updates:

    • Linked lists: efind_group, find_territory_node, and home/warehouse storage now all use doubly-linked lists for speed.
    • OLC "moves": Simplified the logic using utlist in the "move up/down" function for olc_process_interactions, olc_process_requirements, olc_process_resources, process_evedit_rewards, qedit_rewards.
    • Sorting: Replaced the following sorters with simple sorters: sort_evolutions, sort_exits, sort_interactions, sort_icon_set, sort_territory_nodes_by_distance, sort_trade_data, who_sorters/sort_who_entries.
  • Scripting:

    • obj_target: Updated how this function targets.
    • UID lookups: Replaced DG Script's hashing system and add/lookup/remove functions with new simpler versions that use uthash. Rearranged how IDs are stored so mobs, objects, and vehicles share one ID space instead of each having their own.

Patch b5.110 (October 19, 2020)

  • Bug fixes:

    • Shipping: Fixed a bug from b5.108 where splitting shipments could lose them.
  • Code updates:

    • Const externs: Moved the extern statements for all of the constants.c data to a new constants.h.  Note: Admins should re-run ./configure to update your Makefile.
    • Help screen: Renamed the 'const char *help' to *help_screen.
    • Linked lists: Updated a LOT of places where the code adds things to lists and replaced them with LL_PREPEND and LL_APPEND.
    • Prototypes: Began moving a bunch of stray prototypes to header files, especially db.h, handler.h, and utils.h.
    • Trading post: Now uses a doubly-linked list, for speed.
  • Displays:

    • Hide-real-name: Fixed an issue where this flag didn't work on the screen-reader/scan-direction views.
  • Empires:

    • Linked lists: Empire logs and offenses are now in doubly-linked lists, for speed.
  • Vehicles:

    • add_room_to_vehicle(): Standardized and simplified the use of this function to avoid errors.
    • Converter: Removed a very-outdated and hard-to-maintain vehicle converter from the beta-3 era.

Patch b5.109 (October 17, 2020)

  • Adventures:

    • 18800 Halloween Quests: Minor updates/fixes.
  • Code updates:

    • (): Fixed a bug where it would read backward past the beginning of the string, although in virtually all cases this had no consequences.
  • Commands:

    • Look: Fixed look (and some other commands) where "look 0.player" was failing since b5.108.
  • Content:

    • Various: Added missing 'return 0' (or fixed the order) in timer scripts where an object purges itself. Updated timed-action scripts to use %actor.can_act%.
  • Scripting:

    • can_act: New actor variable that determines if they could take a timed action, e.g. for ritual scripts.
    • New characters: Fixed a bug where script ids were being set on new characters too early, resulting in them being unable to interact with scripts (including tutorials) until their second login.
    • Owner-purged checks: Wrote a new system that lets multiple triggers running at the same time all detect if their owner was purged separately.
    • var_subst(): Fixed an issue with this function where it could read past the end of a string (although this didn't cause any known issue).
  • Vehicles:

    • Extraction: Vehicles are now extracted on a short delay, like characters, to help triggers run without risking extracting twice.

Patch b5.108a (October 15, 2020)

  • Bug fixes:

    • Aliases: Fixed a bug where it could try to read past the end of the alias in very specific cases.
    • Quest rewards: Fixed an issue where it freed the player's quest data then tried to read an instance id out of it.
  • Commands:

    • Upgrade: Can now handle upgrading from a vehicle to a building or a building to a vehicle, as well as building-to-building or vehicle-to-vehicle.
  • Events:

    • Rewards: If you collect event rewards while the event is still running, they will now be scaled to your current highest-ever-level rather than the highest-ever-level recorded when you last gained points. Collecting after the event ends still uses the level from your last point gain.
  • Scripting:

    • Bugs: Fixed the room enter_dir and exit_dir, and object type fields that were broken in b5.108.
    • dedicated_to: New room/vehicle variable for dedicated monuments.
    • painted: New room/vehicle variable for the paint color.
    • Player ids: Initialized a player's script id during the creation process so that scripts work correctly on new players. This was a b5.102 (probably) bug.
    • Random triggers: Fixed an unusual bug where purging something with 2 random triggers on it inside the 1st trigger led to chaos as the 2nd trigger was already stored as a next-iterator variable.

Patch b5.108 (October 13, 2020)

  • Note: This patch includes a major change to character/object/vehicle targeting, where the number-dot-name syntax now passes the number between lists, making it more reliable (for example) to target items in your inventory when they have the same name as items you're wearing, or to target a vehicle when it has the same name as an item in your inventory. Please watch for bugs in all targeted commands.
  • Abilities:

    • Customize Building: Customizing the name of a building yourself removes the new hide-real-name flag, if present.
    • Lay Paths: Renamed the "Pathfinding" ability in Survival.
    • Swimming: Being in the water with no mount/vehicle/flying now costs 1 movement point per 5 seconds, and the player stops regenerating moves. If you run out of moves in this condition, you expire.
  • Adventures:

    • 18800 Halloween Quests: Minor quest updates and fixes.
  • Bug fixes:

    • Login sequence: Added a 0.3 second "command lag" to the echo on/off commands in the password prompts. This should hopefully be enough to prevent an issue where the client receives the echo off and echo on at the same time and can variously cause permanent no-echo or double-echo.
  • Code updates:

    • Cross-list targeting: Updated ALL code that targets a character, object, or vehicle. It not passes the number from the number-dot-name syntax (look 2.bag) between lists, making it possible to target things in cases where they were previously unreachable because the same thing appeared in multiple lists.
    • get_obj_in_equip_vis(): Merged get_object_in_equip_vis() into this function.
    • interior_room_list: Now a doubly-linked list.
    • parse_room_from_coords(): Fixed a b5.107 bug where a space inside the parentheses could lead to invalid parsing of the coordinates.
    • room_has_function_and_city_ok(): Rearranged this function to run faster. Also now handles the UPGRADED flag separately.
    • Shipping: The shipping list is now a doubly-linked list for append/delete speed.
    • sprinttype(): Added string length-safety and an optional error-return-value to this function.
  • Commands:

    • +: Using the + to insert commands at the head of your command queue will now also correctly add them to your command history.
    • Build: Fixed a bug where it would keep telling you you're missing a tool, but would keep building anyway. Now shows you the resource you're missing if you run out. Fixed a minor bug where misconfigured buildings might have been able to build on top of (or inside) other buildings.
    • Craft: All crafting commands now use resources left-to-right for making vehicles and buildings (like build). They now show you the name of the next resource if you run out. The 'upgraded' status of a building is now checked separately when crafting; this flag was moved to the function flags on buildings/vehicles and the requires-function on crafts.
    • Dedicate: Can now also be used on vehicles. Moved the dedication data to extra data. Room/vehicle names are now customized right away rather than determined when you look at them, meaning the original dedication name will appear even if the player is deleted. This will apply the hide-real-name flag to the room if the room name is not already customized.
    • Dismantle: Removed some old code that assisted with returning resources when there were no resources in the built-with list. This is no longer necessary.
    • Dispatch/Ship: Can now target specific docks by coordinates, including on the same island. Shipping now runs every 6 game hours rather than every 12.
    • gen_interact commands: Fixed how it detects depletions and cancels the action.
    • Identify:  Now accepts inventory/inv as a 1st argument, restricting the item list to ones in your inventory (i.e. the same numbered list of items used for drop/give).
    • Movement: You can no longer travel from a completed building into an incomplete one through an interlinked room (this could only occur if a building with an interior is upgraded).
    • Look/examine: Now accepts inventory/inv as a 1st argument, restricting the item list to ones in your inventory (i.e. the same numbered list of items used for drop/give).
    • Paint/unpaint: Updated to work on vehicles, too. Moved the data for a building's paint color to extra-data. Paint colors no longer override any 'base terrain color' used in an icon. Parts of the icon that show the tile's base color will now retain that color when painted. Open buildings can now be painted (but some gained a !PAINT flag). Ruins keep the paint color of their former building.
    • Repair/maintain: Now uses resources left-to-right (like build) and tells you which resource you're missing if you run out.
    • Run/sail: Added a better error message when you try to target your current location with pathfinding.
    • Sleep/rest: Can now target vehicles or work while sitting on certain vehicles. You can no longer do these things in the water or while flying.
    • Sit: Updated now that players can rest/sleep on vehicles. You can no longer do this in the water or while flying.
    • Upgrade: Rewrote this command to improve its capabilities and to allow it to work on vehicles. Upgrades now preserve their interiors, if present.
  • Content:

    • Boardwalk: Now attaches to roads (and can be used for pathfinding).
    • Bones: Several items that are described as being bones now have the "bones" material type.
    • Ruins: Fixed a b5.107 error in the scripts that set icons on ruins.
    • Vehicles: The following vehicles now allow players to sleep in/on them: bench, canoe, rafts, rib-bone boat, rainbow, stormcloud.
  • Immortals:

    • Manage: Added hide-real-name to immortal room management. On rooms with custom names, this hides the part that would show the real name.
    • util bldconvert: New utility does most of the work for converting a traditional building to a vehicle-style building with a new vnum. This leaves the old building/craft but makes it dismantle-only. You must still do some additional work, like writing strings. See HELP UTIL BLDCONVERT.  Note: This is functional but not fully ready for use.
    • Triggers: Immortals no longer set off "act" triggers when performing many common immortal commands (this specifically affects mobs who become hostile when they see the word "you").
  • OLC:

    • Building search: Fixed a bug where it would mis-report vehicles as using a building.
    • Buildings: Removed the UPGRADED building flag; this now uses a new UPGRADED function flag instead.
    • Crafts: Removed the BLD-UPGRADED craft flag; this now uses the UPGRADED requires-function flag on the craft.
    • Vehicle fullsearch: Can now search for any icon.
  • Vehicles:

    • BRIGHT-PAINT: New vehicle flag indicating the paint color is bright.
    • DEDICATE: New vehicle flag to match the building flag (not yet functional).
    • Move costs: Entering/exiting a vehicle now costs 1/4 of the normal move cost, like flying. This is most noticeable on mountains.
    • !PAINT: New vehicle flag that blocks the vehicle from being painted. Applied it to some existing vehicles.
    • Room affects: Moved the data for room-aff flags so that vehicles can change these flags.
    • Rooms: Fixed a bug where a reboot would not re-count the number of rooms in a vehicle.
    • Sleep: New vehicle flag allows players to sleep in/on a vehicle.
    • Storage: Fixed a bug where you could store/retrieve from an incomplete vehicle or one that's on fire.

Patch b5.107 (October 6, 2020)

  • Note for EmpireMUD admins: This patch adds pathfind.c — you need to either re-run the ./configure utility or manually add pathfind.c to your Makefile.
  • Note: A large number of .trg files (triggers/scripts) were updated in this patch to fix color codes (which now require a double-ampersand) and to switch some getter functions to the shorthand version that can account for darkness/visibility.
  • Adventures:

    • 18800 Halloween Quests: Added 2 additional quests, which rotate with some of the existing dailies: Songs for the Dying and Delegation of Demons. Removed the TANK flag from the headless horse man. Plus other minor fixes to the adventure.
  • Code updates:

    • compute_map_distance(): Now returns a double instead of an int.
    • Pathfinding: Added a new pathfinding system that attempts to quickly build movement strings across the map.
    • String hash: Added a generic string_hash utility for recording unique strings, similar to the vnum_hash utility.
  • Commands:

    • Alias/unalias: Split the alias command. Removing aliases now requires 'unalias'; using 'alias' with an existing one will just display it to you now.
    • Drive: Now accepts coordinates to drive to, if there are roads the entire way.
    • Identifty: Changed how the "storage locations" list is built to eliminate duplicates (e.g. where a vehicle and a building have identical names) using the new string_hash utility. This list is now also alphabetized.
    • Lastname: New command for changing your lastname to one in a list you've earned.
    • Pilot: Now accepts coordinates to fly to.
    • Run: Now accepts coordinates to run to, if there are roads the entire way.
    • Sail: Now accepts coordinates to sail to.
  • Config changes:

    • New: lastname_mode: Defaults to set-at-creation and choose-from-list.
  • Content:

    • Tunnels: Now have the ATTACH-ROAD flag, allowing the "run" pathfinder to go through them.
  • Immortals:

    • Set lastname: Can now add/remove names from the lastname list.
    • Show lastnames: View a player's lastname list.
    • Stat player: Now shows current lastname.
  • Players:

    • Lastnames: Split player lastnames into "personal" (custom lastname by the player) and "current" (the name that's displayed). An auto-updater will set the players' existing lastnames as both. Added a lastname list that can be added/removed by scripts. Admins can now configure lastnames to be chosen at startup, changed at any time, or chosen from a list of earned names — or any combination of these.
    • Quest rewards: Items from quest rewards are now scaled based on the player's highest-ever level trait, rather than their current level, bringing this system in line with event rewards.
  • Scripting:

    • Color codes: As part of fixing DG Scripts's shorthand getters for name/pronouns, all color codes in triggers had to have their amperands doubled. The ampersand is used for the he-she-it getter.
    • Lastnames: Added %char.add_lastname()% as well as has_lastname() and remove_lastname(), for interacting with a player's lastname list.
    • Room scripts: Scaled damage or effects from room scripts can now use the level of the vehicle they are running inside of.
    • Shorthand getters: Fixed the shorthand getters for names/pronouns in DG Scripts so they can be used to check visibility characters rather than echoing the name of a character that can't be seen by the player, or vice versa. The format for these is like ~%actor%, where an operator character precedes the variable name. Tilde ~ for name, pipe | for possessive name, ampersand & for he-she-it, caret ^  for his-her-its, and asterisk * for him-her-it. These replace calls like %actor.name% and %actor.heshe%.
    • Vehicles: Fixed a bug where vehicles were never removed from the UID lookup table, even when purged. How this never crashed before, I do not know.

Patch b5.106 (September 30, 2020)

  • Adventures:

    • 282 Goblin Logging Camp: The goblin stumps now burn-down not chop-down to plains.
    • 18800 Halloween Content: Updated and improved the Halloween content from previous years, including new quests, new rewards, and a full event with threshold and ranked rewards similar to the Winter Wonderland event.
  • Code updates:

    • Act codes: Added $l/$L to represent the character's loyalty (empire name) and $k/$K for the empire adjective.
    • Ruins icons: This patch includes an auto-updater to repair ruins icons which briefly were being set longer than 4 characters in some cases. Also fixed a bug that was allowing %mod% to do this (misplaced !).
    • update_all_players: This now saves/frees players as it goes, due to the large number of players it might be loading.
  • Commands:

    • Crafting: Fixed an issue where some crafting errors, such as removing a required tool, were not canceling the crafting action. They just kept repeating the error instead.
    • Pickpocket: Fixed a bug where it would require the stealthable toggle to pickpocket your own empire's NPCs.
  • Content:

    • Gatehouse: Added a custom ruins building so ruined gatehouses don't block travel in one direction.
    • Jungle: Can now spread to overgrown/ancient forest.
    • Ruins: Added vehicle versions of both main types of ruins, with scripting for the icons/names.
    • Terrains: Copses, forest edges, and 1-tree forest tiles now have the 'grasslands' climate tag, which should prevent grasslands-only buildings (e.g. goblin war tent) from immediately decaying when trees start to grow.
  • Displays:

    • Craft info: Now correctly shows build-on/build-facing for vehicle crafts that have them.
    • Crops: Corrected the commands list which claimed you could "dip".
    • Informative view: Fixed a b5.105 bug where dismantling did not show correctly.
    • Inventory: Will now show the correct total item count when looking at local empire inventory with this command (a bug in b5.105).
    • Playing music: Now shows the action as "playing" not "music", for consistency with other actions.
  • Empires:

    • Shipping: Fixed a minor b5.105 issue with counting total inventory to determine what to import.
  • OLC:

    • Auditors: Now checks for ruins interactions on buildings and vehicles.
    • Mapedit ruin: Fixed a bug where it ruined incorrectly.
  • Players:

    • Saving/loading: Players' equipment is now saved in their main player file rather than the delayed-load file with inventory. Reading empire members no longer requires loading the delayed file, which speeds up multiple systems including startup and player login. Fixed a bug related to setting the player's script_id too late in the load process.
  • Scripting:

    • %char.action%: New getter for the player's timed action.
    • %mod%: Can now change mob look descriptions, although these do not save when the mud reboots.
    • remove_mount: Fixed a bug where a player could still re-mount their last active mount even if it was removed by a script (or an immortal).
    • %room.max_citizens%: New getter for buildings.
    • %time.day_of_year%: New getter.
  • Vehicles:

    • Spawning: Fixed a bug where rooms inside of vehicles were not spawning any basic spawns (they were spawning artisans and citizens successfully).
    • Type display: No longer shows the short-desc of the vehicle's prototype on look/id if it contains a placeholder.

Patch b5.105a (September 23, 2020)

  • Commands:

    • Drive/sail/pilot/run: Fixed a parsing error in long movement strings.
    • Make: New crafting command.
  • Displays:

    • Informative view: Fixed a bug from b5.105 where no-work wasn't showing up on informative view.
    • Orchards: Fixed a b5.105 typo where some crops claimed you could 'garther' them.
  • OLC:

    • Object auditor: No longer warns on !STORE flag. Also updated the help for this flag.
  • Players:

    • Login: Fixed a bug where it did not correctly re-seat players on vehicles on login; they would immediately get up off the vehicle.

Patch b5.105 (September 22, 2020)

  • Abilities:

    • Exarch Crafts: Removed the empire tech for this. Removed the individual chore for nexus crystals. Added the Exarch's Workshop building, which will produce nexus crystals if workforce-crafting is on.
  • Bug fixes:

    • Interactions: Fixed a longstanding bug where building interactions (like pick) did not require the building to be completed.
  • Code updates:

    • Depletion: Added a new 'production' depletion type, used by workforce. It counts toward all other types of depletion on the tile. When workforce checks production depletion, it will also count the highest non-production depletion count on the tile.
    • Instance list: Now a doubly-linked list.
    • Interactions: Added a new feature, one-at-a-time interactions, where certain types (e.g. pick, quarry) gain you 1 item at a time and their 'quantity' field is used to determine the depletion limit instead of the amount to get at once. Deprecated several configs that previously set depletion limits that are now controlled in OLC editors.
    • room_has_function_and_city_ok(): This function can now also check usage permission, especially if a vehicle in the room provides a function and has a different owner than the tile itself.
    • run_room_interactions(): Can now pass through a vehicle to interactions, and if so, will not call interactions on other vehicles. This helps support vehicle-based workforce chores. Also now accepts an access type, to check owner permissions on the room/vehicle.
    • write_craft_to_file(): Fixed a recent issue where this was saving the 'B' line even if it was empty.
  • Commands:

    • Craft/etc: Added a new 'craft list <keywords>' syntax to all the standard crafting commands. This lets you filter the list of craftables.
    • Efind: Removed leading filler words like a/the.
    • Findmaintenance: Now also finds vehicles needing maintenance. Expanded the view to show more items.
    • Mine: No longer allows guests to mine (this seems like an error). Also fixed the order of error messages.
    • Pick: Replaced the back-end/code for this command with the new gen-interact-room system. Pick and harvest interactions were updated to accommodate this.
    • Quarry: Replaced the back-end/code for this command with the new gen-interact-room system. Quarry interactions on buildings were updated to accommodate this.
    • Roll: Fixed an issue where rolls with a 'd' in the argument were not being added to the player's own roll-history.
    • Summon player: Fixed a bug from b5.101 where summon player did not work.
    • Territory: Expanded the view to show more items in smaller groups.
    • Track: Can now track through portals and into vehicles. Mob pursuit will also follow these tracks.
    • Various: Ensured that timed actions (pick, mine) self-terminate if you can no longer perform them where you are.
  • Config changes:

    • Deprecated: garden_depletion, pick_base_timer, pick_depletion
    • new: vehicle_max_per_tile 8
  • Content:

    • Crops: Removed the HARVEST interactions from orchard-type crops and replaced them with PICK interactions. Updated quantities to match.
    • Enchanted forests: These will now randomly decay into dead forests when unowned, not just when someone is around to trigger necrovandals.
    • Grains, herbs, fruits, and vegetables: Added the 1-USE flag, preventing players from getting these back from dismantling buildings and vehicles.
    • Mines: Fixed several mine types that incorrectly required an ability.
    • Nails: All buildings and vehicles that require nails will also now require a hammer.
    • Ruins: Changed the default ruins icons. Fixed an icon width issues on the scripts that set the custom icons.
    • Ships: Fixed half a dozen ship recipes that had the UPGRADE flag instead of BLD-UPGRADED.
  • Crafting:

    • Flags: Removed the GLASSBLOWER, CARPENTER, and SHIPYARD craft flags; their exact functionality is now handled by the requires-function flags (below). Also removed the ALCHEMY flag because it was functionally identical to the FIRE flag after a glassblowing change earlier in b5.xx.
    • Requires-function: Added a new field to crafts that requires a matching building/vehicle/room-template function to make the craft.
    • Skilled-Labor: New crafting flag blocking workforce crafts unless you have skilled labor.
    • Workforce: Updated the 'workforce' craft type to be used by the new 'workforce crafting' chore.
  • Displays:

    • Claimed vehicles: Fixed political view of claimed vehicles on the map and on scan.
    • Crops: Crop tiles will now automatically construct their 'commands' list based on interactions available.
    • Informative: Vehicles now show up correctly on 'toggle informative'. Screen readers will no longer see disrepair if the vehicle is also unfinished or dismantling.
  • Empires:

    • Greatness: Fixed a bug where over-stacking your greatness could temporarily add to your empire's Greatness when it couldn't add to your own.
    • Show stats: Now shows adventure instance count.
    • Workforce: Adapted building-based workforce chores to work from vehicles, too.
    • Workforce chores: Rearranged the chore controller. Fire Brigade will be able to run in almost all cases now, including when a tile is marked no-work. Fishing now runs before the starvation check (like farming). Building and maintenance will now work when out-of-city or when an adventure instance is present. All chores except chopping and farming can now run from vehicles in addition to buildings.
    • Workforce caps: Items on the ground now count toward workforce caps.
    • Workforce crafting: Moved nailmaking, brickmaking, glassmaking, and nexus crystals into 1 new chore: workforce crafting.
    • Workforce production: Moved beekeeping, herb gardening, quarrying, trapping into 1 new chore: workforce production.
    • Workforce why: Now shows "starving" information in more cases; it was hiding it sometimes when it was important.
  • Immortals:

    • Helps: Added OLC WORKFORCE and PRODUCTION INTERACTION help files to assist with setting up workforce chores.
  • OLC:

    • Auditors: Craft and sector auditors no longer warn on "no spawns set". Interaction auditor now warns for high quantity only on non-one-at-a-time interactions; one-at-a-time interactions now warn on LOW quantity.
    • Buildings: Removed the APIARY flag as it has no remaining functionality as of this patch.
    • Craft fullsearch: Added build-on and build-facing options.
  • Scripting:

    • %purge%: The purge-instance feature now also supports vehicles.
    • %regionecho%: Fixed a bug where the indoor/outdoor logic was opposite what was stated in the help file.
    • %at%: Now supports i## targeting for vehicles.
  • Vehicles:

    • Adventures: Vehicles loaded in/by adventure zones are now linked to that zone instance and will be cleaned up when the adventure ends. Improved how vehicles work in adventure zones in general. Added a %veh.unlink_instance% script command to clear this status, just like mobs have, and also %veh.link_instance%.
    • Depletions: Vehicles now support depletion counters just like rooms do.
    • Limits: Added a limit of 8 zero-size vehicles per tile.

Patch b5.104 (Tuesday, September 15, 2020)

  • Abilities:

    • Find Shelter: The shelters are now building-vehicles (they appear in the room with you like a vehicle rather than replacing the tile).
    • Mountain Climbing: Fixed a bug where it wasn't requiring the ability if the mountain wasn't taller than the one you're on.
  • Adventures:

    • 51 Tutorial: Museum of Early Man: Corrected the name of the clay.
    • 104 Magiterranean: Permafrost: Changed the order of the messages on one of the Rime Mage's attacks to make more sense.
    • 16000 Invasion of: The Goblin Necromancer: Updated no-teleport flagging and updated the mob-blocking trigger to attack players who are stuck in the dark.
    • Instancer: Will no longer purge adventure mobs in the room when building an instance.
  • Buildings:

    • Ruins: Buildings have two new interactions: RUINS-TO-BLD and RUINS-TO-VEH. Replaced the code that handles ruining buildings to handle these interactions. All buildings that had the NO-RUINS flag have lost it; all other buildings have gained RUINS-TO-BLD interactions. Added an IS-RUINS flag to identify buildings that are ruins. Custom ruins icons are now handled by a script.
  • Code updates:

    • change_terrain(): Added a 3rd argument for optionally setting a base-sector here, too. This ensures the base is set right away.
    • chop_last_arg(): New function that grabs the last argument off of a string that has more than 1.
    • find_flagged_sect_within_distance_from_room(): Now also checks the base-sector. This means things like bridges won't block functions looking for water.
    • obj_carry_size(): Fixed several places that were checking OBJ_LARGE and assuming a size rather than calling this function.
    • Room affects: Changed how buildings and room templates apply room affects: it is now done in affect_total_room. Vehicles can now also add affects to the room they're in.
    • Tracks: The lists of tracks in rooms is now a doubly-linked list, because it deletes from the middle-end a lot and this will speed that up.
  • Commands:

    • Bite: Added social text when you target yourself.
    • Board/enter: Standardized this command to use perform_move.
    • Build: Merged this command into the gen-craft system with all the other crafting commands. The logic for starting buildings has all been rearranged but is generally the same. However, building names can now be more than one word (like other crafts).
    • Butcher: Now gives a different error message if you target a mob. Now prefers a corpse object if multiple objects have the same name.
    • Chop: Added a new error message when used on an outdoor tile whose base sector is choppable, but can't currently be chopped.
    • City: City-claim now claims from the center-out, rather than left-to-right. City-abandon now skips no-abandon tiles.
    • Claim: Now gives a specific warning when the player has no-empire toggled on.
    • Crafting commands: Changed how the list of available crafts appears when you type 'craft' (or build, etc) by itself. For screen reader users, one item appears on every line; for everyone else it appears in 2 columns. If you have all requirements except the correct ability, it will now tell you which ability you're missing.
    • Designate: Rearranged the order of error messages to avoid bad/useless error reports.
    • Dismantle: Rearranged the order of error messages to put more significant ones at the top when trying to dismantle a vehicle.
    • Drive/pilot/sail: Fixed a bug where valid paths without spaces in them were denied.
    • Herd: You can now herd animals in and out of vehicles (including building-vehicles) so long as they have the CARRY-MOBS flag and the interior room has the HERD flag.
    • Identify: Now shows "Library" as a storage location for books.
    • Import/Export: Doubled the size of the buffer on import/export list. Timed-out empires no longer show up on the analyze lists.
    • Interlink: No longer shows an interlink code in buildings that don't support them.
    • Leave: Added this as an alternate version of 'exit'.
    • Morph: Reformatted the list of morphs you know.
    • Movement: Fixed a bug where some incomplete rooms where not blocking movement (e.g. in tunnels). Also fixed a bug with 2-tile tunnels.
    • Prospect: No longer works in the dark.
    • Scan: Can no longer scan for vehicles that are inside closed buildings from the map.
    • Sit: Now triggers auto-dismount.
    • Skin: Now gives a different error if you target a mob. Now prefers corpse items if multiple items have the same name.
    • Store/retrieve: Fixed the error message when the room it's public but you do have a trade pact.
    • Throw: Now has some command lag.
  • Config changes:

    • New: vehicle_size_per_tile 4
  • Content:

    • Apiary: Added retrieve/store to the commands list.
    • Copse: Changed the 'roadside' icon on the basic copse because it was the wrong one.
    • Large shoot: Removed the misplaced "saplings" keyword.
    • Tents: Updated the basic tent, cabin tent, goblin war tent, goblin lab tent, and butcher tent to be building-vehicles (they appear in the room with you like a vehicle rather than replacing the tile).
    • Various: Added min/max levels to MANY storable non-adventure items to avoid an issue where some of them can be acquired at different levels but drop to level 1 when stored/retrieved or used in various actions.
  • Crafting:

    • Buildings: Added a new BUILDING flag. Any type of craft with this flag can make a building. Build crafts also now support the VEHICLE flag, allowing you to 'build' a vehicle.
    • Build-on: Added a new 'road' build-on flag so vehicle crafts can be built on a road. Regular buildings should not use this.
    • Craft commands: Redid the list of what you can craft/build/etc. It now shows one item per line  for screen reader users (hopefully this will make the list more navigable) or 2 per line for non-screen-reader users, in columns (and hopefully this makes it more readable).
  • Displays:

    • Character creation: It will no longer try to show your last login time during your character's first login.
    • Local empire inventory: Rewrote the part of the 'inventory' and 'steal' commands that shows einv, to account for multiple empires' inventories being present due to vehicles.
    • News: Doubled the maximum length of the "news" command.
    • Progress goals: In the rewards section, now puts (tech) after the names of techs.
    • Quests: Incomplete buildings and vehicles will no longer show quests.
    • Slash-channels: When a player is muted, their channel joins/leaves will not be displayed.
  • Empires:

    • Abandon: Abandoning a tile (for any reason) now removes the no-dismantle flag, if present.
    • Cities: When an empire runs out of active players, they will immediately start losing cities.
    • Playtime: The system now tracks daily empire playtime for 12 weeks.
    • Members: The game now stores a list of members and their greatnesses and timeouts, and computes membership count and greatness from this. This should eliminate a bug where greatness suddenly drops when changing alts.
    • Minting: Fixed a bug where mint workers, once they exhausted their resources, would sit there on company time doing nothing but eating food.
    • Names: Empire names and adjectives must start with a letter.
    • Workforce: Added a new NO-WORKFORCE-EVOS room affect that blocks any workforce chore that would change the terrain (chop, etc), for use with building-vehicles that are e.g. built in trees.
  • Immortals:

    • Abandon: High-level or EMPIRE-granted immortals can now abandon tiles/vehicles they don't own.
    • Advance: Fixed a bug where the auto-wizlist generator was missing the person who was just advanced.
    • Claim: High-level or EMPIRE-granted immortals can now claim tiles/vehicles for other empires.
    • Config: Deprecated configs are no longer displayed.
    • Grants: Added a 'triggers' grant that covers vdelete, tattach, and tdetach.
    • Help files: Updated immortal help files for item scaling, loadvehicle, and vdelete.
    • Holylight: Some things that were shown to immortals are now only shown if holylight is toggled on.
    • Reboot: No longer allows abbrevs on reboot options.
    • Restore: Now shows a message to the room for most types of restore.
    • Show storage: Rewrote this to accept building or vehicle, and to use vnum rather than name.
    • Stat building: No longer shows storable items (this is already on show-storage).
    • Stat object: Now shows corpse flags.
    • Where: Immortals now see what adventure players are in if they type 'where' with no args.
  • Mobiles:

    • Movement: Mobs can now enter/exit building-vehicles. Updated the mobile movement code slightly. Fixed an issue where some flags, like FLY, could override NO-NPC room flags.
  • OLC:

    • Mapedit ruin: Can now ruin vehicles, too. Now correctly removes a city if used on the city center.
    • Objects: Added vehicle interactions to object search and delete, which were missing it.
  • Scripting:

    • Command triggers: Dead characters can no longer fire command triggers.
    • Ids: Immortals can see script ids on more things by statting them.
    • %mod%: Can now change icons on vehicles and rooms.
    • %room.title%: New getter.
  • Sectors:

    • Evolutions: Added OWNED and UNOWNED evolution rules. Passed through this data to the evolver utility to make it possible.
    • No-evolve affect: Now also blocks burning stumps, chopping, crop growth, excavate, farming, and trench-filling, with a message like "can't do that here right now". Also prevents the workforce chores for those actions.
  • Vehicles:

    • Auto-abandon: Like regular buildings, vehicle-buildings can trigger an auto-abandon of the room if they are ruined or if workforce dismantles them and is set to abandon-dismantled.
    • Chameleon: Added a chameleon flag for vehicles like the one for rooms.
    • Climate: Added requires/forbids-climate flags for vehicles. These optional flags prevent the vehicle from being built on or moving into rooms that don't meet the climate requirements. If the terrain changes while the vehicle is present, it may be destroyed.
    • Interlink: Vehicles now have the INTERLINK flag available (when they are buildings); updated the interlink command to support it.
    • Interiors: Fixed an issue where some vehicle functions had unexpected behaviors when one vehicle is inside another.
    • Progress/quests: Building-vehicles now display correctly for the own-vehicle requirement. Added own-vehicle-function which looks for non-building vehicles with that function. Own-building-function now also includes building-vehicles automatically. Own-vehicle-flagged will count both building and non-building vehicles. The own-homes task will now count building-flagged vehicles, too.
    • Public: Vehicles that have no interiors will now use the 'public' status of the room they're in (if it has the same owner) to determine guest permissions. Vehicles that do have interiors will still use the public status of the inside room.
    • Room affects: Added a field to vehicles for ROOM_AFF_x flags that are set on any room the vehicle is in.
    • Ruins: Added a RUINS-TO-VEH interaction for vehicles, to control what the vehicles turn into when they are ruined. Added an IS-RUINS flag to mark vehicles that count as ruins.
    • Size: Vehicles now have a size trait and a room cannot contain more than 4 (configurable) total vehicle, by size. Larger vehicles now take precedence when showing a vehicle as the icon for a map tile, and will also show when incomplete.
    • Storage: Objects can now have vehicles as their storage locations, in addition to buildings. Vehicles now have a "relations" field for stores-like. Both buildings and vehicles can have stores-like relations for each other.

Patch b5.103a (September 8, 2020)

  • Abilities:

    • Cook: Moved the 'plant crops' code from the Cook ability to a ptech (still provided by Cook).
    • Primitive Crafts: Moved the chip/saw/scrape code from the Primitive Crafts ability to ptechs (still provided by this ability).
  •  Content:
    • Enchanted forest: The progress goals for the old temperate enchanted forests have been changed to be in line with the desert version, requiring production instead of tiles claimed.
  • Objects:

    • Autostore: Fixed a bug from b5.102 where some items outside were vanishing instead of going to the warehouse.
    • Binding: You can no longer wear items bound to other people.
    • Home storage: Fixed a bug where items bound to other people were autostoring.
  • Scripting:

    • can_see: Added %char.can_see(target)% for testing visibility of other characters, objects, and vehicles.

Patch b5.103 (September 8, 2020)

  • Note: This patch adds the ability to dismantle vehicles. However, any existing vehicles on live EmpireMUDs will not have a list of resources used to build them, so they will not refund anything when dismantled.
  • Adventures:

    • 12400 The Golden Goblin: The first room of Fathma's maze is now LIGHT to help people who need to die to get out.
    • Various: The following adventure vehicles cannot be dismantled: clockwork mule, magicycle, clockwork roc, rib-bone boat, stormcloud of Ba'al Hadad, colossal ankle brace, clockwork boot, solar barge, and walking hut.
  • Commands:

    • Burn: Now accepts "here" in addition to area/room and the room's keywords.
    • Craft info: Now shows type-based information for weapons, armor, ammo, and lighters. Also shows tool types and certain extra flags. Made the various info here all-lowercase rather than some parts being all-uppercase.
    • Disembark: Re-implemented a new version of this mostly using the new version of the perform_move() function. Only EXIT-flagged rooms in vehicles allow you to disembark now. Vehicles with the BUILDING flag require you to use "exit" instead of "disembark".
    • Dismantle: Now works on vehicles.
    • Fillin: Added a to-room message when a player resumes a fill-in.
    • Maintain/repair: Merged these two commands. They now both work on vehicles and buildings.
    • Mark: Added a "clear" option to clear your mark.
    • Minipets: Now shows a total count at the bottom.
    • Exit: New command that leaves a building or vehicle from any room that is flagged for use as an exit, and from the main room. Typing "exit" in any other location will fall through to the "exits" command, and display directions you can move.
  • Buildings:

    • Maintenance: Fixed a bug where maintaining a building was not always removing old resources as they are replaced in the built-with list due to an error using generic components.
  • Code updates:

    • stop_action_room(): Removed the chore/NPC portion of this function because it's no longer necessary to flag workforce mobs for despawn (they instead refresh their spawn time until no longer working).
  • Commands:

    • Customize room: Now falls through to customize vehicle when used targeting a building-vehicle.
    • Customize vehicle: Now has a player tech (set to inherent by default). Changed some of the wording so it can also work on building-vehicles.
    • Manage: Can now target vehicles for no-work and no-dismantle. Vehicles will also inherit these conditions from the room they're in.
  • Content:

    • Enter/entry scripts: Many enter/entry scripts, especially leash scripts from adventures, got minor updates related to the movement changes so their messages appear at the right time. In some cases, messages were removed because the mob never finishes entering the room.
    • Vehicle interiors: Added the EXIT flag to the appropriate interior rooms for vehicles, including adventure vehicles.
  • Crafts:

    • Take-Required-Obj: New craft flag that causes it to take the required object when you start a craft/building. This was formerly always the case for buildings. Applied this flag to all crafts that needed it.
    • Vehicles: Now adds a resource right away when you start a vehicle, like buildings. Also fixed a bug where vehicles that require no resources could not really be finished.
  • Displays:

    • Vehicles: Now shows the "disembark" exit anywhere you can disembark the vehicle. Removed the word "disembark" from command lists for buildings/rooms.
  • Empires:

    • Diplomacy: The full empire details no longer show diplomacy. Instead, it's shown on "diplomacy [empire]".
    • Workforce: Fixed a bug where one of the workforce chores could count as production when nothing was produced. All workforce chores had their messages updated (or added); these messages are blocked by the action-spam toggle. Centralized the code for marking workforce workers and their needs. Workforce now activates when the mud starts up, rather than waiting 1 hour tick (updated the workforce-why text based on this). Fixed a prehistoric bug where chores that make more than 1 of something could pass their limit if the player had multiple buildings working on them while near the limit. Workers now use food on the tick where they arrive, in addition to ticks they work.
    • Workforce build:This chore now allows the workforce to build and dismantle any vehicle that has been started by a player
    • Workforce limit: A new command that lets you limit workforce production per-item.
    • Workforce repair-vehicles: Has been merged with the maintenance chore.
    • Workforce mobs: All workforce NPCs now have the SPAWNED flag the entire time. They now update their spawn time when they do work, which delays their despawn. This fixes an issue where they might despawn before finishing in some cases, and ensures they never get stuck with no work. The artisan NPC that lives/works in certain buildings can now perform workforce chores at their own location. Individual NPCs cannot perform more than 1 chore at a time, which may now lead to multiple workers spawning in the same location.
    • Workforce why: Now stacks identical entries.
  • Immortals:

    • Diplomacy: Immortals with empire access can now use the 'diplomacy' command as other empires by passing an empire's name in quotes as the 1st argument to the command.
    • Frozen: Players who are frozen will now auto-cancel timed actions.
    • Restore: Now works on vehicles to remove any damage or needed resources, and put out fires. It will complete an incomplete vehicle.
    • Set: Fixed a bug where a particular use of 'set file' could result in a crash, since b5.102.
  • Movement:

    • Climb: Fixed a bug where this could be used indoors in certain cases, with incorrect results.
    • do_simple_move(): Significantly cleaned up and rearranged this function and moved parts of it to new functions. Also cleaned up can_move(), renamed it player_can_move(), and added a char_can_move() function.
    • perform_move(): Now optionally takes a target room, and only auto-detects the target if not specified.
    • Swim: Fixed a bug where this could be used indoors in certain cases, with incorrect results.
  • OLC:

    • Craft fullsearch: Added -requiresobject option.
    • .map naturalize: Now also de-customizes the tile(s) when naturalizing them.
  • Players:

    • Login restore: Moved the code for the free restore when you're logged out over an hour so that it always has the character's full bonuses.
    • Sleeping: The enhanced regen speed while sleeping now also accounts for pools that have gone negative, e.g. if you removed a saddle.
  • Rooms:

    • Naturalize newbie islands: Fixed a bug where the code that naturalizes newbie islands did not remove custom icons/names.
  • Scripting:

    • %asound%: This function was only implemented for mobs and rooms, despite the help files indicating it worked for all types of scripts. Added the missing vehicle and object versions, and re-implemented the mob version, which was missing important parts.
    • %buildingecho%, %regionecho%, %vehicleecho%: Rewrote these commands to use the scripting system's sub_write function, rather than system functions that bypass part of the script engine.
    • Messages: The various send/echo script commands now take an optional # (hash sign) at the start of the message to indicate it should go to the target's message queue, causing it to appear on a very short delay and stacking any duplicate messages.
    • %restore%: Updated the portion that restores vehicles. It now only completes vehicles if they aren't being dismantled.
  • Vehicles:

    • Building-vehicles: Added a BUILDING flag for vehicles that changes their behavior, to support the eventual buildings-as-vehicles feature. These building-vehicles share the ownership of the tile they're in, unless they have a movement flag (like DRIVING). Loading a building-vehicle, e.g. with an immortal command or a script, will set it to the same owner as the room. This feature is not complete but these parts are functional.
    • Built-with: Vehicles now store a built-with list like buildings, to be used if they are dismantled.
    • Completion: Moved code that handles finishing a new vehicle to its own function, as various places that performed this task were missing necessary code.
    • Crafting: Added new checks/restrictions in do_gen_craft_vehicle() for vehicles with the BUILDING flag, including the inability to make them on land you don't own. Starting to build a building-vehicle will automatically claim the tile if possible, just like a regular building. Additionally, when you try to start a new vehicle (of any kind) while another is unfinished in the room, it will now tell you which one is unfinished (which blocks you from starting a new one).
    • Dismantle: Added full dismantle support for vehicles. It essentially works the same way as buildings.
    • Displays: Building-vehicles won't show the <Owner> tag when you look at the room if they have the same owner as the room. Some text that previously said 'vehicle' will now say 'building' when it targets a building-vehicle.
    • Extra data: Vehicles now have extra data (like rooms), currently used to track craft recipe.
    • Flags: Added a NEVER-DISMANTLE flag for vehicles that cannot be dismantled at all, a PLAYER-NO-DISMANTLE flag that is player-controlled and prevents dismantle, and a DISMANTLING flag indicating the vehicle is in the process of being dismantled.
    • No-dismantle and no-work: Vehicles now have no-dismantle and no-work flags toggled by the 'manage <vehicle>' command.

Patch b5.102 (September 1, 2020)

  • Note: This patch removes the old "gilded chests" from player bedrooms and moves all items in players' homes to the new home storage system. See HELP HOME.
  • Abilities:

    • Ready Blood Weapons: Fixed the bloodmaul, which has been missing its 'hammer' flag since the tool update.
  • Config changes:

    • New: max_home_store_uniques 300
  • Code updates:

    • affect_remove(): No longer calls affect_total() itself. Most places that called affect_remove() now call affect_total() too, but less often.
    • character_list, object_list, trigger_list, vehicle_list: These are now doubly-linked lists, for speed. Updated all parts of the code that use them.
    • Content lists: All object content lists (inventories, rooms, in objects, in vehicles) are now doubly-linked lists, for speed of appending and removing.
    • free_char(): Set this to 'pause_affect_total', preventing a huge amount of unnecessary work when freeing characters (triggered by removing/freeing their gear).
    • Room lists: The lists of people and vehicles in the room are now doubly-linked lists, which speeds up removing from the lists.
    • show_obj_to_char(): Renamed this function obj_desc_for_char() and it now returns the string instead of paging it to the player. This allows it to be used inside other paged strings. Updated parts of the code that use it. Added a mode for warehouses/homes.
    • Startup sequence: Added some code to flush the delayed-refresh and free-loaded-players queues right before the game finishes booting up, to move the lag that happens immediately AFTER startup to immediately before.
  • Commands:

    • Home: Fixed a small bug where this command didn't always work properly when deep in the interior of a building (especially 'home clear'). Home now supports storage commands (retrieve, store, home inv, home id).
    • Nearby: This command will now accept keywords.
  • Displays:

    • RIP: Removed an extra RIP message when a character dies due to vampire suction.
    • Objects: Fixed a small issue where two otherwise-identical objects that are bound to different people would stack.
    • Workforce why: Added a no-resources report for minting; it appeared to be reporting over-limit instead.
  • Empires:

    • Memory leak: Fixed a small memory leak in the rarely-called function free_empire().
    • Warehouse: Retrieving the last copy of an item from the warehouse was still duplicating it due to an off-by-one error. Fixed a bug where retrieving a copy of an item was unbinding it (this was only apparent when home storage was added in this patch). Fixed an issue where retrieving an unscaled scalable item was scaling it to the wrong level, although this shouldn't come up in practice. Stored items now go at the top of the warehouse list, not the bottom, consistent with other lists. Fixed a minor issue where random triggers attached to stored items could still have fired, with undefined results. The item-quality toggle (and roomflags, for immortals) now affects the warehouse inventory list, consistent with regular inventory. Fixed a bug where 'warehouse store all.name' would give the wrong error if all items had the keep flag. Fixed an issue where retrieving multiple of an item would not "cross stacks", e.g. if you had 5 pikes that are in stacks of 2x and 3x, "retrieve 4 pike" would only have retrieved the 2x pile.
  • Help files:

    • Gather: Updated this very out-of-date help file.
    • Huntsman: Minor text clarification and correction.
    • Metals: Updated the metals help file, which was missed during the component update.
  • OLC:

    • Objects: Fixed a bug where deleting a container object would purge the contents of any copies of that container in the world. Fixed a separate issue where deleting a container object in the files, while the game is down, resulted in losing all the items in the container on startup.
  • Players:

    • Delayed refresh: Fixed a small memory leak in this system from b5.101.
    • find_or_load_player: This function can now leave a loaded player in the 'loaded' state for up to 1 second, in cases where a player might be loaded multiple times in the same sequence. Players left in this state are automatically freed every second, immediately after delayed-saves run. Several systems have been updated to use this, potentially decreasing loads/saves and increasing speed on those tasks.
    • Tools: Players can now use tools from any equipment slot that the tool can be equipped in, rather than only the tool/wield/hold/sheath slots. It will prefer the main tool slot first. All commands will also now pick the best tool (by superior flag or level) if you have more than one matching tool equipped.
  • Storage:

    • Home storage: Replaced the "home chest" system with a personal version of the warehouse, using "home store", "home retrieve", etc. This storage moves when you get a new home, after 1 hour. Players can store up to 300 (configurable) unique items in their home storage. These items may stack if identical, e.g. 100 identical hats only take up 1 of these slots.
    • Unique storage: Reworked unique/warehouse storage and its functions slightly to support home storage.
  • Scripting:

    • Ids: Fixed an error where objects were assigned script ids while searching for an existing id, which is unnecessary and wastes ids. Made a minor improvement related to character ids as well.
    • Lists: Changed how triggers are added to the global and random trigger lists, to ensure they never get re-removed or re-added. Fixed an issue where stored unique items might still have been able to fire random triggers.
    • Lookup table and script ids: Players now have script ids even when offline (equal to their idnum). The add/remove process for the lookup table now knows whether the character should be in it.

Patch b5.101 (August 25, 2020)

  • Abilities:

    • Custom messages: Abilities now support a new set of pre-ability messages, like abilities that start out with "You whistle loudly..." If an ability doesn't have a pre-message, nothing is displayed (there is no default message here).
    • Familiars: Converted all the "Familiar" abilities to use the new companion system. Now gain experience while a familiar is active. Renamed many of the abilities to have "Familiar" in the name, e.g. "Phoenix Familiar" instead of "Phoenix".
    • Ready Weapons: This type of ability now supports custom messages and invisible messaging.
    • Summons: Added two new ability types in the in-game editor: summon-any and summon-random. These cover the functionality of most of the existing summon abilities and provide a new interface and custom messaging. All summon abilities have been standardized to use it.
    • Summon Animals: Added more animals to the list for this ability. They all now scale up to level 15.
    • Summon Bodyguard: Now just called "Bodyguard". This ability grants a bodyguard companion. Now gains experience while the bodyguard is active. You now keep the same bodyguard until it dies, even if it is dismissed or you log out. There is a 3-minute cooldown after the bodyguard dies.
    • Summon Materials: The back-end functionality for this now uses a player tech. This tech now supports custom messages.
  • Commands:

    • Companions: New command for listing/summoning a companion.
    • Dismiss: Now accepts the phrase "dismiss companion" instead of "dismiss familiar".
    • Familiar: Removed this command.
    • Sheathe: Now has a short command lag when used in combat, to match draw/wield/hold.
    • Summon guards: Removed this summon and replaced it with a new progress reward.
  • Companions:

    • Companions are a new system that replaces the Familiars and Bodyguards. Companions can also come from adventures or other rewards. They can keep their custom names and any triggers or scripting data, even when dismissed. Companions are usually permanent, but can also be temporary if their content designer intends them to be.
    • Abilities: Added companion as an ability type and added companion mobs as ability data. All existing Familiar and Bodyguard abilities were converted. Added a gain hook modifier for only-when-using-this-companion.
    • Command: The new "companions" command lists your companions or summons one.
    • Cooldowns: Companions that come from abilities support cooldowns via the ability editor, and scripts can also trigger these cooldowns.
    • Dismissable: Companions can be dismissed either by name (when in the room) or using "dismiss companion" (anywhere).
    • Player: Players and their active companion are now directly linked in code, requiring no searching.
    • Scripting: Added character variables for add_companion(), has_companion(), and remove_companion().
  • Displays:

    • Death: Moved where the R.I.P. message happens. Scripts can now prevent it.
    • Scan: When you scan for a vehicle, it now shows the vehicle on the scan line instead of only showing the name of the tile it's in. This makes it clearer what you've found.
  • Immortals:

    • Show companions: New show command that lists a player's available companions.
    • Show currency: Moved where the vnum is displayed to make the display more readable.
  • Mobiles:

    • Animals: Mobs with the ANIMAL flag can no longer use the 'say' command while charmed.
    • Flags: Removed the FAMILIAR flag. It is no longer used. Things that triggered off of this flag now trigger off being a companion.
    • get_mob_name_by_proto(): Fixed a bug in this function where the string replacement portion would never trigger, and streamlined the process.
    • Name lists: Added male/female name lists for short primitive names and descriptive names.
    • Traits: Replaced the way the code changes a mob's sex, keywords, and descriptions so that these can all be saved for companions.
    • Triggers: Updated how triggers are attached/removed on mobs, and how remote variables are set/deleted, so they can be saved for companions.
  • OLC:

    • Abilities: Now default to 'standing' as the minimum position.
    • Mob auditor: No longer warns on missing skin/butcher interactions on animals if they have the no-corpse flag.
  • Players:

    • Ignore: Companions, mini-pets, and charmies are now caught by the is_ignoring() function, if their owner is ignored.
  • Progress Goals:

    • Guard Whistle: This new 25-point Defense reward lets you forge whistles that summon guards. These are nearly identical in function to the old 'summon guards' command.
  • Rooms:

    • Affects: Added two new room affect types: REPEL-NPCS and REPEL-ANIMALS. These only affect wandering NPCs.
  • Scripting:

    • %mod%: Can now modify the sex of an NPC. Can now select which companion a player has out.

Patch b5.100 (August 18, 2020)

  • Abilities:

    • Ancient Blood: Removed the hard-coded portions of this ability and replaced it with a player tech (Drink-Blood-Faster) and a passive buff with a scaled +max-blood.
    • Boost: Now grants a passive +50 max-blood.
    • Editor: Re-labeled the "PLAYER-TECH" ability type "PTECH" for consistency with other parts of the editor. Added a PASSIVE-BUFF type to the ability engine. These provide buffs all the time (while you have the ability). Added the UNSCALED-BUFF ability flag, preventing scaling on the buff portion. Added READY-WEAPONS as an additional ability type in the editor.
    • Gain hooks: Added an ONLY-USING-READY-WEAPON modifier flag for ability gain hooks.
    • Ready *: Converted the existing "ready" abilities to use the new back-end.
    • Sanguine Restoration: Now grants a passive +75 max-blood.
    • Stamina: Removed the hard-coded 2x move regen and replaced it with a scaling passive buff. This means even people with very low base regen will benefit more from Stamina as they level.
  • Commands:

    • Chart: Added a !CHART flag for islands that blocks this command.
    • Passives: New command to view your passive buffs. Immortals can target other players, including offline ones, with this command.
  • Config changes:

    • new: homeless_citizen_speed 10
  • Empires:

    • Homeless: When NPCs are evicted from a claimed building, they now move into a list of homeless NPCs for the empire. They will move into any available homes relatively quickly, depending on the distance from the old home to the new home.
  • Immortals:

    • Show currency: Now also shows vnums.
    • Show homeless: Views the homeless citizen list for an empire.
  • OLC:

    • Interactions: Fixed a small bug in the interaction editor where the "add" command would not accept a trailing space.
  • Players:

    • Deficits: Re-enabled the deficit system, which was written quite a while ago but didn't work with abilities that raised health, mana, moves, or blood by a multiplier. Those abilities have all changed in this patch. Deficits prevent those stats from going negative when you remove gear (or lose a buff), but you won't regenerate any points until the deficit is gone. For example, if you remove a saddle and lose 100 max-moves, but were under 100 moves, you no longer drop to a negative number.
    • Delayed update system: Added a generic system that briefly delays queued updates. It currently handles some player saving plus refreshing passive buffs when players equip items, change levels, or change roles.
    • Saving: Many functions that trigger character-saving now run on a delay, reducing the number of times a player is saved in the same second.
    • Skills: Fixed an issue from b5.99 where some features, including purify, weren't updating certain data when a player lost skills. The main symptom of this was having to log out and in again before being able to gain a new skill after losing Vampire.
    • Toggles: Added an 'exits' toggle that hides exits on the 'look' display.
  • Scripting:

    • uid lookups: Added more information to an error log in add_to_lookup_table.
  • Skills:

    • Vampire: No longer automatically gains +50 blood at skill levels 51 and 76.

Patch b5.99 (August 11, 2020)

  • Abilities:

    • Chant of Druids: Wrote full text for this chant. Moved the chant from code to a script; included an auto-updater to apply that script to all henge buildings on live EmpireMUDs.
    • Daywalking: Moved the inherent properties of this ability to player techs. This does not change the functionality of the ability.
    • Forage: This is now an auto-repeating timed action instead of an instant action.
    • Mint: Now a player tech attached to Basic Crafts, instead of a hard-coded part of Basic Crafts.
    • Purify: Updated to affect all skills with the removed-by-purify flag (currently just Vampire) rather than being hard-coded for Vampire.
    • Scavenging: Converted all the hard-coded features of scavenging to player techs (chop, dig, gather, harvest, pick, quarry).
    • Tan: Now a player tech attached to Basic Crafts, instead of a hard-coded part of Basic Crafts.
  • Adventures:

    • 18450 That Dammed River: Added the waterside climate flag to flooded sectors.
  • Buildings:

    • Henge: Removed the HENGE function flag from buildings. The code that triggered on that function is now part of in-game trigger 5142.
  • Code updates:

    • un_vampire: Renamed this function check_un_vampire and it can now be called either to remove some vampire-only traits or to also remove vampire-flagged skills.
    • Vnums: Removed some unused vnums from vnums.h and skills.h.
  • Commands:

    • Skill drop: Now checks that a player is no longer a vampire if they have no vampire skills after a skill-drop.
  • Config changes:

    • New: forage_base_timer 4
  • Displays:

    • Navigation: Updated some game text that refers to the Navigation ability by name, to support EmpireMUDs that don't use it.
  • Help files:

    • Big Game Hunter: Fixed old text that incorrectly claims this affects werewolves.
  • Objects:

    • Custom messages: Added resource-to-char and resource-to-room custom messages for when an item is gained as a resource. In some cases the (x2) quantity indicator moved to the end of the message. Applied this to: chip, chop, dig, fish, gather, harvest, mine, pan, pick, quarry, saw, scrape, tan. Fish supports fish-to-* messages on the tool and resource-to-* on the fished item, but not both at once.
  • OLC:

    • Triggers: Saving a trigger will no longer delete and re-load live copies of it. This was causing triggers to be applied in the wrong order, and was not necessary. Added a small amount of code to ensure it wasn't necessary.
  • Players:

    • No-Purify: New player tech (to retrofit Daywalking).
    • Vampire-Sun-Immunity: New player tech (to retrofit Daywalking).
  • Sectors:

    • Climate: Added a 'waterside' climate flag for terrain that is near fresh water. Applied this to some stock sectors.
  • Skills:

    • Caster/Mage: Changed the code's definition of IS_MAGE to be a person possessing a skill with the new CASTER flag, rather than hard-coding it for the two stock magic skill trees.
    • Removed-by-Purify: New flag that causes a skill to be removed when "purify" is cast, rather than hard-coding it for the Vampire skill.
    • Vampire: Added a VAMPIRE skill flag and converted several systems to allow for more than one "vampire" skill in the game. When one player sires another, that player gains one of the first player's VAMPIRE-flagged skills (preferring one that is flagged BASIC too) at random, if available.

Patch b5.98a (July 21, 2020)

  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Vigilant vines (item) are now 'vine' components (soft plant fiber).
  • Commands:

    • Scan: Fixed a bug where using 'scan <dir>' with the political toggle on would reveal claimed tiles even if they have the chameleon trait.

Patch b5.98 (July 14, 2020)

  • Commands:

    • Mount: Fixed the mount count on screen reader view (in b5.97 it showed a total of 0 mounts if when using the screen reader option).
    • Various: Coin-related commands (drop, give, etc) will no longer implicitly down-convert to "miscellaneous" coins if you leave out an empire name. It will now require you to explicitly "give <number> misc coins <target>" instead of "give <number> coins <target>". Also updated some error messages related to this.
  • Help files:

    • Godlist/Wizlist: Updated this help file with some information on gods and clarified some terms. Previously, the text of the help file only applies to immortals.
    • Moved: Build, nodismantle, interlink, tomb, and tunnel moved from buildings.hlp to commands.hlp as buildings.hlp should be reserved for buildings themselves. Basic buildings, tomb and tunnel now also have secondary help files like "tomb building" for the building. Moved ruins from buildings.hlp to info.hlp. These changes are meant to help muds using this codebase who need to use buildings.hlp for their own buildings (it may be easier for them to remove buildings.hlp from the help index and create a new file for their own buildings; this is now possible because buildings.hlp now only contains buildings).
    • Sacrifice: Added some text clarifications.

Patch b5.97 (July 7, 2020)

  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: Vigilant vines (item) are now 'cord' components. Iron flour now correctly says bake, not cook, in its description.
    • 104 Magiterranean: Permafrost: The quest "Pacify the Permafrost" can now be turned in at wood henges (in addition to stone henges).
    • 200 Burrow Canyons: This adventure now despawns approximately 2 hours after a player enters it for the first time.
    • 12500 Clockwork Colossus: Fixed typoes in the Master Controller script.
  • Commands:

    • Identify: Now shows certain vehicle flags in a new "notes" section.
    • Mount: Now shows a total after your mount list.
    • Quit: Now requires you to type "quit confirm" if your character is dying, dead, or editing text/OLC.
    • Run: Fixed which direction it says you start running, for players who are drunk or lack navigation.
    • Tomb: Improved the error message when you don't own the building.
  • Content:

    • Bakery: Added "bake" to the command list.
    • Mammoth: Corrected the spelling from "wooly".
    • Rough wood: Added a new primary keyword "rough-wood" to improve auto-repeating chores.
    • Wild ass: Typo correction in the look-description.
  • Empires:

    • No-abandon: New 'manage' option lets you prevent a tile from being abandoned by accident (or by Workforce).
  • Help files:

    • Fibers: Added "feathers" to the keyword list for this help file.
    • Sweetener: Added sugar to this help file.
    • Various: Minor typo corrections.
  • Mobiles:

    • Necrovandal: Can now correctly remove weirdwood.
    • Pursue: Mobs can now use basic line-of-sight when pursuing someone and tracks aren't available.
  • License:

    • Updated the license for operating an EmpireMUD for clarity and in response to updates in the CircleMUD and DikuMud licenses.
  • Progress:

    • No-announce: New flag for progress goals that blocks the announcement when they are achieved. This helps hidden goals be used as prerequisites to open other goals.

Patch b5.96 (June 9, 2020)

  • Content:

    • Cooked meat: The following items are now (cooked meat) instead of (cooked meal) components: fillet of roast meat, black sausage, dried shark meat.
    • Cooked meat meal: Added a new (cooked meat meal) component type. The following items are now this type instead of (cooked meal): casserole, chicken and vegetables, orange chicken, mushrooms and chicken, roast plate, poached fish, catfish, meatloaf, shepherd's pie, fish and chips, chicken and dumplings, jellied eels, pot roast, chili, turkey feast, seafood feast, roast meat platter.
  • Empires:

    • Production goals: Fixed part of a bug related to progress goals that require the empire to produce something. When the empire imported or exported the item, the real production total was being miscalculated. This has been corrected but production may still be temporarily over-counted when importing an item you have already exported.
  • Map:

    • Near-sector evolution: Fixed a small bug that prevented this map evolution from being used to detect if a tile was near another of the same type.
  • Scripting:

    • Allow-multiple: New flag for mob scripts that lets more than one Load or Death trigger run.

Patch b5.95 (May 19, 2020)

  • Code updates:

    • vnum_hash: Added a new generic system for listing/counting unique vnums.
  • Commands:

    • Identify: Added support for the new identifies-to interaction, and added the ability to "identify all" for items that have this interaction. Now shows all storage locations, including inherited ones (building relations).
    • Movement: Characters can no longer move while they have less than 1 health. This fixes a minor bug that comes up during mob death scripts.
  • Displays:

    • BoE/BoP: Capitalized the BoE and BoP tags on items.
    • Inventory/equipment: Combined the tags after an item's name into one set of parentheses, separated by commas. BoE items that aren't bound will now have an 'unbound' tag here. Added two new toggles. Loot-details shows level, enchanted flag, and if it's a quest item. Loot-quality indicates the junk/superior/hard/group/boss qualities either as color on the item's name or as tag afterwards, depending on the screen reader preference.
  • Map:

    • Latitudes: Changed the default min/max latitude from +/-71 to +/-67, based on testing, to better match the range of seasons before the latitude change. Also fixed a small bug that appeared if the latitude was set to a single hemisphere.
    • Seasons: Replaced the pick_season() function, which did all the math to determine the season each time it was called, with a function that determines the season for every Y-coordinate each day, and can quickly return this information.
  • Miscellaneous:

    • Interactions: Added -normal, -hard, -group, and -boss requirements for mob/object interactions.
    • Last move direction: Mobs now also have this trait (previously player-only).
    • Startup: Fixed a minor issue where it claimed there were 0 namelists during startup because of how db records are usually counted.
  • Mobiles:

    • Custom long descriptions: Mobs now support long descriptions in the 'custom' field, giving them random long descriptions e.g. if multiple identical mobs need to spawn.
    • No-loot: Mobs with the no-loot flag will now pass this flag on to their corpse, preventing skin/butcher on it.
  • Objects:

    • Corpses: Mob corpses will now have the hard- and group-drop flags based on the mob's own hard/group flags.
    • Identifies-to: New object interaction where one object can become a different one when a player uses the 'identify' command.
  • OLC:

    • Fullsearch: Doubled the buffer space on all the fullsearches.
    • Generics: Listing generics with the -d flag will now show the linked item.
    • Sector list: Now shows climate and build-on flags on the detailed list.
  • Scripting:

    • Longdesc: Added a getter for the mob's longdesc.
    • %ch.last_move_dir%: New getter for the last direction someone moved.
    • %room.players_present%: New room getter indicating there's at least 1 player in the room.
  • Sectors:

    • Giant-tree: New build-on flag that indicates the terrain includes a massive tree.
    • Spreads-to: Fixed an issue in the spreads-to evolution where the evolver could only run 1 spreads-to evolution (even if it failed), even though more than one might be applicable.

Patch b5.94a (April 17, 2020)

  • Code updates:

    • fread_string: Removed the problematic change to this function from b5.94.
  • Immortals:

    • Stat room: Now shows what each sector type is, and shows sector vnums.

Patch b5.94 (April 14, 2020)

  • Live EmpireMUDs: This patch includes an auto-updater, b5_94_terrain_heights(), which detects and assigns heights to all sectors with the 'mountain' climate or with the needs-height flag.
  • Code updates:

    • eval_op: Wrapped part of this function in some code for pointer-safety.
    • fread_string: Wrapped part of this function in some code for pointer-safety.
    • free_complex_data: Changed how an exit's target rooms are looked up because data here may become unreliable when deleting multiple rooms without checking exits. This is the likely cause of a memory-corruption crash that sometimes happens during the "yearly" updates.
    • half_chop: Fixed a few places that use half_chop() with the same variable as the 1st and 3rd args.
    • load_empire_storage_one: Fixed a small issue with an uninitialized variable. Same for load_empire_logs_one.
  • Commands:

    • Climb: Players can now climb to tiles with lower height than the one they are on, even if they don't have the Mountain Climbing ability.
  • Content:

    • Estuaries: Added the missing 'river' climate flag.
  • Map:

    • Deep Yellow: New map color option.
    • Heights: Map tiles now have a "height" property. For mountains, this is the distance to the nearest flat ground. For rivers, it's the distance to the sea (in negative numbers). Immortals can see this information on "stat room" but it isn't shown to players. Live EmpireMUDs will automatically be updated with terrain heights. Heights are also updated when terrain changes.
    • New map: The game will now check for tiles with the LOCK-ICON flag when it detects a new map, and immediately lock those icons. Previously, those tiles would never lock their icons unless they changed type.
  • OLC:

    • Height: Added a "height" tool to the .map editor.
    • Notes: Added a "notes" field to sectors.
  • Scripting:

    • Height: New getter/setter on rooms.
  • Sectors:

    • Needs-height: New sector flag that indicates this type of terrain has/uses the "height" property. This triggers code to match nearby height when this terrain appears. This flag was applied to all river, lake, and mountain terrains.

Patch b5.93 (April 7, 2020)

  • Commands:

    • Identify: Fixed a recent bug where identifying an anonymous object (one with no vnum) shows MOST crafts under the "allows crafts" list.
    • Time: Updated to work with the new clock/calendar player techs. Added a missing period on the first line.
    • Whois: Now longer shows a date on lore if the viewing player has no calendar tech.
  • Config changes:

    • deprecated: arctic_percent
    • deprecated: tropics_percent
  • Help files:

    • Resurrect: Removed the mention of the Empire skill from this help file.
  • Code updates:

    • Channel histories: These now use doubly-linked lists instead of a singly-linked list for append speed.
    • Hunt: The code that builds the list of hunt-able animals now uses a doubly-linked list for append speed.
    • Stacked messages: This now uses a doubly-linked list for append speed.
  • Map:

    • Color: Added a "dark brown" color for the graphical map.
    • Evolver: The external evolver utility no longer takes the arctic or tropic percent arguments. It instead uses the latitude configs in structs.h to determine this.
    • Latitudes: Added new configs for the min/max latitude represented by the game map, plus a macro to convert Y-coordinate to latitude.
    • Seasons: Changed the season-picker to use latitude rather than Y-coordinate. There may be a small change in seasonal timing near the tropics and arctic after this.
  • Players:

    • Calendar: New player tech allowing the player to see the exact date (defaults to 'inherent').
    • Clock: New player tech allowing the player to see the exact time (defaults to 'inherent').
    • Player techs: Added a system for 'inherent' player techs. EmpireMUDs can now configure which techs are automatically known by the players, rather than requiring abilities to activate them. No current techs default to inherent.
  • OLC:

    • Auditing: Fixed an issue where you could not audit sectors manually despite an auditor being present (previously they were auto-audited when saved).

Patch b5.92 (March 31, 2020)

  • Adventures:

    • 103 Magiterranean: Monsoon Rift: Tweaks the aggro script on the cacti. It will now ignore adventure mobs (previously it targeted all human mobs). Also split up its long first "if" statement into pc/npc sections.
  • Commands:

    • Dispatch: Now allows optional quotes on the island name, to match the "ship" command which requires them.
    • Timed actions: When a timed action is canceled and refunds a list of resources, it will now do it in the room where you started the action rather than the room where you canceled the action, for actions that matter.
  • Content:

    • Old-growth forests: Removed "dig" from the command list.
    • Temperate copse: Fixed an issue with its roadside icon and icon coloring.

Patch b5.91 (March 24, 2020)

  • Commands:

    • Bite: Fixed a bug where you could not stop biting using the 'bite' command.
    • Bug/idea/typo: These commands will now alert immortals when used while the file is full.
    • Eat: Now marks the item as no-store if there's any left, so you can't eat part of some food, store it, and retrieve it to fill it back up.
    • Elog: Will now show a timestamp at 0s.
    • History: Will now show a timestamp at 0s.
    • Inventory: Fixed a bug in looking up components with "inv -c".
  • Code updates:

    • Components: Fixed the function that looks up components by name to allow it to find plural forms and to ignore leading spaces.
  • Content:

    • Celestial Forge: Now has a smith artisan.
    • Desert shrub: Fixed the icons so it shows the correct roadside icon in the correct color.
    • Enchanted forests and weirdwood: Adjusted the growth and spread rates slightly.
    • Fine pillars and saplings: These are both now 'basic' components and workforce will now use them.
    • Old-growth forest: Added spreads-to evolutions so forests can spread from this tile.
    • Whirling sandstorm: Fixed the size and gender on this NPC.
  • Empires:

    • Workforce: Updated how delay-able problems are marked on gen-craft workforce chores, such as oilmaking, so it should now report both no-resources and over-limit instead of only 1 or the other, when it hits a delay.
  • Lag:

    • Slow nameserver lookups: Lowered the lag time required to add an IP to the slow-IP list from 5 seconds to 3.

Patch b5.90 (March 17, 2020)

  • Abilities:

    • Summon materials: Improved the error message when your inventory is full and you try to summon a large item.
  • Adventures:

    • 282 Goblin Logging Camp: Can now chop old-growth forests, too.
    • 18200 The Guild of Adventurers: Fixed the instructions on the rat net.
  • Code updates:

    • Objects: Rearranged 'struct obj_data' to move some data that never changes into a new pointer, to save RAM as the number of items in the game increases. The only functional change is that items with changed extra descriptions can no longer save those changes (however, no existing code could change them, so this will affect nothing).
  • Content:

    • Desert groves: Fixed the roadside icon which was the right color but wrong symbol.
    • Large spider: Fixed a typo in the look description.
  • Displays:

    • Various: Updated places that could show the unprocessed names of mobs with placeholders, such as "Necromancer #n". It will now show <name> instead "#n" in some of these places including progress/quest tasks.
  • Empires:

    • Workforce building: Resources built by workforce will now be marked as level 1 instead of 0, to (generally) match the resources added by players, which are virtually always level 1. This prevents a split in the resource list when dismantling a building that was built by both players and workforce.
    • Workforce keep: Added a new command, 'workforce keep default', which allows you to set a default amount to keep for any new items you acquire.
  • Help files:

    • Fish: Fixed which help file this keyword hits to the correct one and corrected some related "see also" entries.
    • Mini-pet objects: Updated the information in the immortal help file for creating mini-pets.
  • Immortals:

    • Progress command: Now indicates that you have targeted another empire before all output, clearing up confusion with some errors when this command is used by an immortal.
    • Show skills: Changed a header that still said "Class:" to "Synergy:"
  • MSDP:

    • WORLD_DAY_OF_MONTH: New variable.
    • WORLD_MONTH: New variable.
    • WORLD_YEAR: New variable.

Patch b5.89 (March 10, 2020)

  • Commands:

    • Export/import analyze: No longer shows (not trading) on lines that are your own empire.
    • Fillin: Now shows a message to the room when you start the 'preparing to fill in' phase.
    • Progress: No longer accepts abbrevs shorter than 3 characters for category names and some other subcommands, to keep them from interfering with some goal names.
  • Content:

    • Fine lumber: Now counts as basic.
    • Flasks, jars, and vials: Added 'glass' to the short description so they can be targeted by retrieve/summon using 'glass jar'. They previously had no unique keyword.
    • Irrigated deserts: Raised the forage percentage back to 100% on the irrigated tiles so you can no longer find regional crops there. The irrigated plains tile is now also flagged as 'tropical' so all current crops can be grown on it.
    • Old-growth forests: Added an evolution to thin these out with patches of younger forest when they become too dense.
    • Pixy Pursuit: The Pixy House reward building can now be re-used if you dismantle it.
    • Supplies for the Guild of Adventurers: The Adventurer Statue reward building can now be re-used if you dismantle it.
  • Empires:

    • Imports: Fixed a bug where it could make the same trade with multiple trading partners in the same cycle even if the first one put you over your limit.

Patch b5.88b (March 3, 2020)

  • Auto-repair: Added an auto-repair tool for buildings and vehicles that had junk in their repair lists after b5.88.
  • Content:

    • New crops: Fixed the harvest rate on crops from b5.88.

Patch b5.88 (March 3, 2020)

  • Note: This patch contains an automatic repair function (b5_88_irrigation_repair) which fixes map tiles that were previously affected by an issue where they could go from desert to irrigated plains to real plains, and never back again. Tiles with this issue will automatically be naturalized, unless there is something built upon them, in which case their base sector will be naturalized, but the building will remain.
  • Note: While it is no longer possible to plant temperate enchanted forests after this patch, live EmpireMUDs will retain any such forests they already have. The code base still includes both types of forest.
  • Adventures:

    • 126 Mountain Cave: Flame Dragon: The 'scorched' sectors now have "harvest-to Plains" (or Desert) so removing crops that grew on scorched tiles will not bring back the scorch.
    • 12500 Clockwork Colossus: Added a trigger to inform people that the colossus has shrunk when they try to board/climb the small one. Also added one when they try to do this at the scaffold when it's not even there. Fixed a small bug with using 'climb' on the regular colossus.
    • 16100 Oceanic Hydra: Updated the crafts to use the magic lumber component rather than the stellar magewood item.
    • 18200 The Guild of Adventurers: Updated the "Bonfire of the Tortoises" quest to use the magic lumber component rather than the stellar magewood item.
    • Various: Component types on all objects, craft requirements, and building/vehicle maintenance lists were updated. Some scripts also received updates to this.
  • Code updates:

    • fname: This function will now respect hyphenation or other "special" characters in the first name in a string.
  • Commands:

    • Identify: Now shows the component type on its own line, shows the extended component type, and shows any crafting recipes that are granted by the item.
    • Hunt: Fixed an issue from b5.86 where the hunt command would only target things on local spawn lists. It can now hunt global spawn lists, too.
    • Slash-channels: Channel histories are now global and are stored to a file for 1 week (by default). Players can still only see the last 20 messages, but can now see them even if the message came through while offline.
    • Store: Now supports 'store room' and 'store inventory' to attempt to store all the items in either of those.
  • Components:

    • New system: Fully replaced the 'component' system, which allows objects to count as 'types of' other objects. Components are now a type of generic (formerly they were an int/flag pair defined in code). This involved a large number of deep code updates.
    • Basic components: Component types may be labeled as BASIC with a new generic flag. Crafts, buildings, and other uses now choose exact matches first, basic related matches second, and other related matches last.
    • Identify: This command now shows the full list of related components in a list titled "can be used as", in addition to showing the basic component type in the first identify line.
    • OLC: New editor for generic components (GENEDIT).
    • Recipes: This command was updated for this system.
    • Relationships: Components can now be related to other components in a one way type-of relationship. For example, sticks are a type of stiff plant fiber, which is both stiff fiber and plant fiber, and all of those are also regular fibers — sticks can be used as any of those component types, but regular 'plant fibers' can't be used as sticks.
    • Resource lists: Components now have plural forms, so resource lists will show them as: 1x (stick), 2x (sticks).
    • Show components/uses: These immortal commands were updated for this system. They show both results for the requested component, and for types it counts as.
  • Config changes:

    • new: min_distrustful_distance 75
    • new: slash_message_log_days 7
  • Content:

    • Ancient trees: Made minor text updates. Added a new first keyword, ancient-tree, to improve auto-scrape behavior.
    • Components: All objects had their component types updated. Resource lists for crafting, building maintenance, and vehicle repair were also updated.
    • Crops: Added apricots, cucumbers, garlic, lemons, and sugarcane as new wild crops. (Thanks, Jeff)
    • Enchanted forests: Added a new type of enchanted forests for the desert, called weirdwood. The 'strange crystal seed' now plants in the desert (but the codebase now also includes variants for plains and for planting both types). The goal is to increase the value of deserts for longtime players while reducing their need to take up valuable temperate space. New sectors, mobs, items, and goals are included with this. Updated how both types of enchanted forest spread in a way that should make them more useful and less frustrating. The "Seeds of Magic" progress goal for temperate forests is now hidden (but still available). The new desert forests now have their own set of progress goals.
    • Precision keywords: Updated the keywords on some items that have a special "precision keyword" for auto-repeating chores.
    • Golden acorn: Fixed a typo and changed its storage location to the vault.
    • Old-Growth Forest: Lowered the chance for Overgrown Forest tiles to become old-growth. Fixed an issue where it accumulated chop depletion if you got multiple ancient trees, resulting in a "nothing to chop" message.
  • Empires:

    • Distrustful: The distrustful flag no longer functions below 75 tiles from a starting location. The empire will still attack hostile players, but not neutral ones. This distance is configurable.
    • Workforce: Workers will only use basic resources (unless an item is an exact match for a recipe). For example, they won't use magic lumber in place of basic lumber.
  • Immortals:

    • Show piles: Now also shows room owners.
  • Scripting:

    • %char.charge_component%: Updated for the new component system.
    • %char.has_component%: Updated for the new component system.
    • %obj.is_component%: Now takes a comma-separated list of component names/vnums.
  • Sectors:

    • Harvest-to: This sector evolution now chains, so that even if crops were planted on a given sector, removing those crops will result in it becoming a different sector.
    • Oasis: Changed the roadside icon from ~ to . because that's what's on the sides of the tile, and is what the tile color matches.

Patch b5.87 (February 18, 2020)

  • Live EmpireMUDs: This patch will remove 75% of unclaimed crop tiles, following b5.86's change to wild crop tiles. It will also convert 10% of unclaimed Overgrown Forest tiles to Old-Growth Forest and will randomly set timestamps on the rest of the Overgrown Forests so they will mature sooner.
  • Warning: This patch has a long startup time as it updates large parts of the world map.
  • Abilities:

    • Basic Crafts: Now also crafts glass vials and panes, at the glassblower.
    • Build: Added a sand pit building.
  • Adventures:

    • 104 Magiterranean: Permafrost: The Polar Wind now requires large pillars for its masts.
    • 12400 The Golden Goblin: Both ships from this adventure now require large pillars for their masts.
    • 12650 Magiterranean: The Grove: The wood henge now requires some large pillars, in addition to the many regular pillars. The sugar cubes now have the component type (sweetener).
    • 16100 Oceanic Hydra: Added explicit build instructions to the hydra tongue's look description.
    • 18200 The Guild of Adventurers: Minor sentence correction on a tavern patron.
  • Code updates:

    • Auto-updaters: Fixed a bug in the automatic version updating system (check_version) where removing (or renaming) the last version number in the code would cause an EmpireMUD to re-run all auto-updates on startup. It now logs a SYSERR and does not run any auto-updaters.
  • Content:

    • Alchemy: Things brewed/mixed with alchemy now generally require vials or flasks, but can be made anywhere with a fire.
    • Apiary: Now requires more lumber and nails to build, rather than pre-constructed beehives. It now comes from the "Beekeeping" progress goal, instead of "Foundations". It is no longer required for "Advanced Artisans".
    • Beehive: This is now furniture (a type of vehicle) instead of an object. The old version will convert itself when retrieved or dropped. Beehives generate honeycomb over time, based on the season, and can be 'harvested' for that honeycomb any time.
    • Beeswax: A new basic resource from beehives and apiaries. Can also now be crafted from honeycomb.
    • Candles: Now storable in the utility shed and store room (unlit only).
    • Clockwork lens array: This item must now be crafted at the glassblower.
    • Flask, vial, jar, pane: Updated these items and their crafts. They can only be made at the glassblower. All crafts that previously required the glassblowing technology now require one (or more) of these items instead. Many of these items are refunded when the objects is used or when it decays.
    • Glass ingot: New resource crafted at the glassblower, from sand. All glass items now require the (raw glass) component to craft.
    • Honeycomb: New basic resource from beehives and apiaries. It can be used as a sweetener, or turned into beeswax by discarding the honey.
    • Masts: New ancient trees can be scraped to form enormous masts. These are required to build most ships.
    • Oatmeal: Now stores at the mill and kitchen, too.
    • Old-growth forests: Over time, overgrown forests will become old-growth forests, which have one or more ancient trees.
    • Rhinoceros horn: Added 'common' to the non-rare horn to give it a unique keyword.
    • Sand: New resource dug up from the coast or sand pit.
    • Ships: Most ships now require the (large pillar) component for their masts. These are represented by the new enormous masts made from ancient trees.
    • Wool cloth: Added missing craft recipe for yak wool cloth (from b5.86).
  • Commands:

    • Dig: Now yields sand on most coastal tiles plus a small number of other tiles.
    • Retrieve: It is now possible to retrieve items that can't be picked up, if they are stored. They go to the ground, and will end your 'retrieve' (if you were retrieving multiple items) — you can only take one out at a time (to prevent problems/abuse).
    • Score: There is now a space before the regeneration-per-5 amount in the score. Resistances are now labeled with a 'p' and 'm'.
    • Store: You can now store items that are on the ground, if your empire owns the storage building you're in. Typing 'store all' will also try to clean up items on the ground.
    • Workforce: Chores are now alphabetical.
  • Crafts:

    • Glassblowing: Removed the GLASS-TECH craft flag. The GLASSBLOWER flag still remains, for things that must be crafted at the glassblower. Glass crafts now require glass ingots.
    • Remove-production: New craft flag which removes the resources from an empire's production count when those resources are used in the craft. This has been applied to smelting copper/silver/gold bars, closing a loophole where you could separate a copper bar into 2 ingots (-1 bar, +2 ingots production) then smelt them back into a bar (+1 bar production), allowing you to rapidly produce enough metal to complete progress goals.
    • Sweets: Removed the APIARIES craft flag. Crafts that needed it now either need (wax) or (sweetener) components.
  • Displays:

    • Item updated display: The text you receive during login when some items in your inventory have been updated will now stack, rather than repeat the same line for multiple copies of an item.
  • Empires:

    • Apiaries technology: Removed this technology.
    • Glassblowing technology: Removed this technology.
    • Glassmaking: New workforce chore that converts 2x basic sand to 1x glass ingot at the glass blower.
  • Help files:

    • Cotton: Removed this short help file. As a basic crop, it's already on the crops help file.
    • Home: Added a note about what can be stored at home.
  • Immortals:

    • Vnum: Now shows craft type on "vnum craft".
  • Map Generator:

    • Old-growth forests: Now generates 10% of forests as old-growth.
  • Objects:

    • Consumes-to: A new interaction type for items that are left behind when an item is consumed (eaten, etc).
    • Decay messages: Objects now support custom decay messages. Also updated the code that sends decay messages, and improved some of the default messages.
    • Decays-to: A new interaction type for items that are left behind when an item decays (when its timer runs out).
    • Glass: New component type.
    • Sand: New component type.
    • Sweetener: New component type.
    • Wax: New component type.
  • OLC:

    • Copying: Improved the error message when copying various things (e.g. spawns) from something that doesn't have any to copy.
    • Gedit capacity: Added missing help file.
  • Progress goals:

    • Advanced Artisans: No longer requires an apiary.
    • Beekeeping: New reward for purchase; grants an apiary.
    • Foundations: No longer rewards the apiary building.
  • Sectors:

    • Dark dark green: Added a new "mapout" color to support old-growth forests.
    • Timed evolution: Added a new evolution rule that happens after a fixed amount of time (in minutes). Added support for storing when a sector last changed using room extra data (for timed sectors only, also checked at startup and on OLC save). Added an evolver rule for this.

Patch b5.86 (February 11, 2020)

  • Abilities:

    • Enchant Armor: Added "hands" as a valid slot for regular armor enchantments.
    • Forage: If a map tile doesn't yield an item from the forage interaction (including cases where its own forage list totals less than 100% and doesn't roll an item), it now also checks wild crops in the region for forage items, too.
  • Adventures:

    • 12600 Elemental Escape: The rocky elemental's burrow charge is now canceled if the target is no longer in the same room.
    • 18500 The Lost Temple: Fixed a typo in Manasa's summoning script.
    • Various: Lowered the forage percent on most adventure sectors so they will use the crop forage list too. Updated some adventure crop foods to be more in line with other crop foods. Ranged weapons no longer give attribute applies, so these were removed from adventure bows. Removed bring-a-friend flags from many adventure mobs who are summoned in combat.
  • Code updates:

    • get_potential_crop_for_location(): Now accepts a must-have-forage argument to only return crops with a forage interaction.
  • Commands:

    • Chip, Combine, Light, Saw, Scrape, Seed, Separate, Tan: Now prefers targets with the correct interaction when there's more than one object match for your keyword, e.g. "combine green" will ignore a non-combinable "green" item in your inventory if there is a combinable one after it.
    • Herd: Some mobs can now be herded in the mountains.
    • Sacrifice: This command will now stack identical messages rather than spam the user/room.
    • Shoot: Improved the error messages when you're not using an item in the ranged slot or when the item you're using isn't a ranged weapon.
  • Content:

    • Bows: Ranged weapons no longer give attribute applies.
    • Box jellyfish: New rare ocean encounter mob.
    • Cotton: Changed the native range from >54/<45% y-axis to 40-60% y-axis to better accommodate its new climate settings.
    • Crops: Updated wild crops so that all of them have plantable forage items, or else added a note in the look-description about combining them to make a plantable version. Lowered the food value of most uncooked harvest and forage items from crops. A small number of crops can no longer be eaten raw, but most are edible.
    • Desert animals: Split the desert spawn lists into continent and island lists. Added about a dozen new desert animals.
    • Hedgehog: Added the slow variety only.
    • Honey badger: By popular demand.
    • Sectors: Lowered the forage percent on most sectors so they will use the crop forage list too.
    • Wolves: Removed the bring-a-friend flag so these wolves will no longer assist random mobs.
    • Wool: Renamed basic wool as "sheep's wool" to give it a unique keyword.
    • Yak: New rare mountain animal.
  • Crops:

    • Crop decay: Unclaimed crop tiles will now slowly decay (2% per year), including "wild" crops. Previously, this only applied to unclaimed adventure crops (which decay at 33% per year). The map generator no longer places wild crop tiles; new crops are found by foraging (or via trade, or by scavenging dead empires).
  • Help files:

    • Various: Fixed a surprising number of typoes of the word "commmand".
  • Map generator:

    • Crops: The map generator no longer adds crop tiles. It now counts basic land tiles to guess whether or not all wild crops are available.
  • Mobs:

    • Auto-assist: Mobs in the same follow-chain will now auto-assist each other IF there are no players in the chain and neither is charmed.
  • Resources:

    • Depletion: Map tiles now recover 75% of lost resources each year, rather than 50%.
  • Scripting:

    • %load%: When a mob loads another mob as an ally, it now sets it as a follower BEFORE firing the load trigger.

Patch b5.85 (February 4, 2020)

  • Abilities:

    • Trick Shot: Added a short stun for sling weapons and a stacking DoT for spear-throwers.
  • Adventures:

    • 16100 Oceanic Hydra: The hydra fang bow is now correctly a ranged weapon.
    • Various: Removed mob spawns from many sectors and crops that are used by (or rewarded by) adventures. These are now handled by global spawn tables.
  • Code updates:

    • run_global_mob_interactions(): Updated to use run_globals().
    • init_mines(): Updated to use run_globals().
    • run_globals(): New master function for running globals (like mine data or newbie gear) using callback functions, replacing large amounts of similar code in several places.
    • start_player_game(): Now uses run_globals() for newbie gear.
  • Buildings:

    • Dismantle: Instead of returning half the resources, dismantle now returns between approximately 20% and 90% of the resources, based on the condition of the building. The material type of each resource also affects its chance to be lost when dismantling. (This change is retroactive for all buildings on current EmpireMUDs except ones already being dismantled.)
    • Ruins: 22% of the items used to construct a building are now preserved in its ruins, rather than losing all resources. You will receive 20-90% of these resources back, depending on the condition of the ruins when you dismantle them. (This change is retroactive on current EmpireMUDs for all buildings that have not fallen into ruins yet.)
  • Content:

    • Map spawns: Virtually all the map animal spawns were moved from sectors/crops to new global tables.
    • New animals: Added the following to various parts of the map: pandas, mourning doves, ovenbirds, ducks, the honey bear, and a new squirrel variant.
    • Rocks: Removed the 'rocks' keyword from flint and obsidian (b5.84) because it conflicted with basic rocks, who don't have another useful keyword.
  • Mobiles:

    • City spawns: All city-spawning map mobs were moved to global 90.
    • Map spawns: Added a new global type for map spawns. It matches/excludes climate flags, and also allows spawn flags at this level. It contains a spawn list that is matched to the sector for outdoor tiles. Crops and sectors now have a NO-GLOBAL-SPAWNS flag available to block this behavior.
  • Objects:

    • Materials: The basic object material types now have a chance to be returned during dismantle. Some, like wood, have a much lower chance to be returned, while precious metals have a very high chance.
    • Ranged Weapons: Added sling (shoot) and spear-thrower (shoot) ranged attack types. I'm not sure if there's a better verb for these.
  • OLC:

    • Fullsearch: Added a fullsearch for sectors.
    • Globals: Reset unusable fields when the type is changed (e.g. removing required levels from 'newbie gear' globals) and block setting those fields.
    • Object auditor: Now warns on items in the wield/ranged slots that aren't weapons or ranged weapons.
    • Spawns: Added new spawn flags for continent, not-continent, and the four seasons.

Patch b5.84 (January 28, 2020)

  • Note to EmpireMUD admins: This update is likely to conflict with your game configs file ("lib/misc/game_configs"). If you need help resolving the conflict, please contact me. Additionally, this patch will automatically update all your crops and sectors with new climate data, if you have any.
  • Code updates:

    • ordered_sprintbit(): New function that can display a bitvector in a given order, instead of in numeric order of its bits.
  • Commands:

    • Chip: Fixed a message where it still said you require a hammer.
    • Hunt: Now requires that you be able to see in the dark, if it's dark. Hunt now depletes the tile over time even when you're not finding the target, as the hunter scares off all the game.
    • Scan: Now accepts 'adventure(s)' as a valid scan target.
    • Survey: Now shows the climate, if any.
  • Config changes:

    • Long strings: Added support for configs that are long strings.
    • new: default_land_sect 0
    • new: hours_to_first_bonus_trait 4
    • new: hours_to_second_bonus_trait 48
    • new: name_rules 0 (no default text)
    • new: name_rules_lastname 0 (no default text)
    • new: start_message 1 (text moved from config.c)
    • new: unapproved_greeting 1 (text moved from config.c)
  • Content:

    • Basic resources: Added the plural version of the primary keyword to MANY basic resources (under vnum 10000). This allows 'einv rocks' etc. Some items got additional keywords, e.g. hides received 'furs' as keywords too.
    • City guards: Will no longer summon reinforcements if not in a city or not on claimed land belonging to their empire.
    • Cotton: This crop can now be planted in temperate areas, but it still only spawns in the wild at <45% or >54% on the Y-axis.
    • Ropes: Now stored at the Carpenter, too.
    • Tools: Minor fixes to some basic tools (e.g. missing SCALABLE flags).
  • Climates:

    • Flags: Crops and sectors now have flag sets for their climates, instead of the single-climate identifiers used before (temperate, tropical, arid). Many sectors have received updates with additional climate flags.
  • Crops:

    • Planting: Crops now require a sector that matches all of their climate flags (as climate is now a flag set). A new crop flag, ANY-LISTED-CLIMATE, changes that to "any matching flag".
    • Terrain type: Reworked the code that removes a crop from a tile (via harvest, chop, workforce, etc) to fix a bug where it sometimes changes to the wrong type. It now uses a cascading system to find the best sector.
  • Displays:

    • Build-on flags: These flags now display in a custom order instead of the numeric order of the bits.
    • New character: Moved the "start message" text to an in-game config. It is still displayed the same.
    • Unapproved character login: Moved the text shown to unapproved characters to a game config. It is still displayed the same.
  • Empires:

    • Dismantle: Split the 'dismantle' privilege from the 'build' privilege. Players who don't have this privilege can still dismantle buildings they started themselves. This is not retroactive to buildings built before patch b5.84.
  • Immortals:

    • Set: Changed the messaging when you "set grants" to only show added or removed flags.
    • Show tool: Fixed an error where it showed junk data when you use it without an argument.
  • OLC:

    • Object auditor: Now ignores extra keywords if they are the (simple) plural form of a word from the short/long description (e.g. it won't warn on "rocks" if the item is "a rock").
  • Players:

    • Bonus traits: Players now receive the first bonus trait after 4 hours, rather than during creation. Both bonus trait times are configurable.
    • Name rules: Added new configurable text shown to new players during creation for both names and last names.
  • Sectors:

    • Harvest-to and Default-harvest-to: New evolutions that determine what sector a tile becomes when the crop is removed. Harvest-to overrides the tile type that was there before, while default-harvest-to prefers the previous tile but will be used if that data is missing.
  • Skills:

    • No-specialize: Added this flag for skills that don't allow the player to specialize manually.

Patch b5.83 (January 12, 2020)

  • Note: The change to resources received when dismantling a building that has been maintained is not retroactive. Existing EmpireMUDs will still have buildings with large dismantle lists.
  • Abilities:

    • Huntsman: This ability now allows the new 'hunt' command.
    • Moonrise: Players come back less hungry/thirsty from Moonrise than from other types of respawn/resurrection.
  • Adventures:

    • 52 Tutorial Quests: Added a tip to use 'nearby' on the Start the Trade Tutorial quest. Added a new quest to help people figure out when/how to leave the newbie island.
    • 10700 Winter Wonderland: Fixes an issue from b5.82 in where you can make snowballs for the snowman quest. Corrected minor errors in the goose farm.
    • 12500 Clockwork Colossus: The clockwork wristblade is now correctly a stabbing weapon.
    • Fishing: Added "fishing tool" data to the following items: dracosaur spear (161 Primeval), mammoth spear (170 Hamlet), and the trident (16100 Hydra).
    • Mounts: Added the "animal" flag to the following many adventure mounts, so they will stay in stables. This includes dragons but excludes anything that really is not an animal.
    • Ovens: Some adventure rooms now have the new "oven" function flag.
    • Tools: MANY adventure items received the new tool flags. Notable exceptions are stabbing weapons called "wristblades", which will not count as knives.
    • Tutorials: Updated various tutorial quests to mention the correct use of tools.
  • Archetypes:

    • Feather sewing kit: Now included with the following archetypes: Skilled Apprentice, Crafting.
    • Fine sewing kit: Now included with the Noble Birth archetype.
    • Hobby knife: Now included with the following archetypes: Skilled Apprentice, Herbalist, Crafting.
    • Skinning knife: Now included with the following archetypes: Adventurer, Rugged Woodsman, Tribal Leader, Street Urchin, Druidic Commune.
  • Buildings:

    • Maintenance: When you place a resource while maintaining a building, a previous resource of a matching type will be removed from the "refund list" for that building. This means that when you dismantle a building, you will no longer receive the massive stack of resources that have been used to both build and maintain it — the resources added during maintenance are now replacing the older ones of the same type.
    • Oven: Added a new function flag for ovens, which are required for the 'bake' craft type.
  • Code updates:

    • isname, multi_isname: Updated these functions to shortcut when no argument is provided, and to fix a bug where an empty string could count as a valid match for a non-empty string.
  • Combat:

    • Death penalty: Players now become hungry and thirsty when they die (unless they are immune to hunger/thirst).
  • Commands:

    • Bake: Added a 'bake' command (and crafting type) which requires an oven. Touch of Flame does not allow baking (it still allows cooking). Basic recipes are included under the Cook ability.
    • Fish: Overhauled the fishing command. It now requires the new "fishing tool" item type, rather than requiring a jabbing weapon (it still requires the Fish ability). Added custom object messages for fishing completion.
    • Hunt: New timed action that uses the spawn list of an outdoor room to allow you to find an animal who can spawn there. This requires the Huntsman ability.
    • Mill: Can now be done anywhere (albeit slower) with a grinding stone tool.
    • Saw: You can now saw lumber anywhere if you have the correct tool (a saw). You can still saw at a lumber yard without one.
    • Sew: Now requires a sewing kit (tool) to sew outside of a tailor building. Using a superior sewing kit will now result in superior crafting speed. Removed the knife/sharp-tool requirement from all sew recipes. They now only need the sewing kit or tailor.
    • Territory: Now allows dashes to specify keywords to exclude.
    • Toggle: Fixed a bug where explicitly choosing on/off did not work for toggles that are inverted (off-on instead of on-off).
    • Weave: This command now requires a loom (tool) to do it outside of the tailor.
  • Content:

    • Baked foods: Moved all baked foods from 'cook' to the new 'bake' command.
    • Designated rooms: Replaced some terminology with gender-neutral phrases in the throne room and great hall.
    • Grinding stones: New tool added to Primitive Crafts.
    • Gold flakes: Fixed the instructions in the look description.
    • Knife: Added a basic knife to the Forge ability.
    • Mint: Replaced part of the description with gender-neutral terms.
    • Loom: Added a backstrap loom in Basic Crafts.
    • Scythes/sickles: Added new harvesting tools to Primitive Crafts, Forge, Weaponcrafting, Iron Blades, and Deadly Weapons.
    • Saw: Added a saw to the Forge ability.
    • Sewing kits: Added sewing kits to Primitive Crafts and Jewelry.
    • Tools: MANY existing items received the new tool flags. But notably, many weapons that could previously harvest are no longer able to do that.
  • Crafts:

    • Sharp tools: The "sharp" craft flag has been removed. All crafts that used this flag now use the 'knife' tool instead.
    • Tools: Crafts can now require one or more equipped tools (on top of the built-in requirements for forge, sew, etc). Crafts can also use up tools as resources — these tools must be in the inventory (or on the ground) like all resources.
  • Displays:

    • Crafting: All crafting types (forging, baking, etc) now show the actual action (and sometimes the item) to other players in the room when they look, instead of "$n is working on something." The correct command will also now show in the %a prompt/display code, rather than always showing "crafting".
    • Sawing: The periodic message for sawing will no longer appear on the last tick (when you finish sawing).
  • Empires:

    • Merging: Changed when quests and progress goals are refreshed during an empire merge; it now happens after the full re-scan of the empire, so it will correctly catch buildings.
  • Help files:

    • Ancestral Healing: Added note on gaining experience.
    • Harvesting: Corrected the linked ability to Scavenging. It said "Primitive Crafts" but this was inaccurate.
    • Mint: Added coin mills as a keyword for this building, and added an explanation of how to get them.
    • Pillars: Added more notes on how to get them.
    • Resource actions: Replaced the list of action names with a note on using generics for them, plus a list (with vnums) of some built-in actions.
  • Objects:

    • Tool slot: Characters have a new gear slot, called "tool", equipped with the "use" command. All tools can be used in this slot.
    • Tool types: Objects now have a new set of flags called tool types. This replaces things that required specific weapon attack types (hammer, slice, slash, jab, or "any sharp weapon"). Functions like has_sharp_weapon() or has_hammer() have all been replaced by has_tool(). This patch adds tool types for many chores.
  • OLC:

    • Auditors: The interaction auditor now warns on quantities greater than 10, as does the quest reward auditor.
    • Fullsearch: Added a fullsearch for crafts and for room templates.
  • Progress goals:

    • Abundant Water: Fixed a typo in the description.
  • Quests:

    • Level: Added new level-under and level-over requirements to quests.
  • Scripting:

    • %char.tool(type)%: New getter that finds a tool the character is using, if any.
    • %obj.tool%: New getter that returns a space-separated list of the object's tool types.
  • Socials:

    • Mutter: Fixed an error in the targeted-to-char message.

Patch b5.82 (December 25, 2019)

  • Adventures:

    • 10700 Winter Wonderland: Changed where a snowman can be made to include rooms with drinking water. Simplified the check for other types of water for making the snowman. Added a script to prevent snowmen from lasting forever. Added the missing expiry to stockings (and a note on them to open them before the event ends).
  • Content:

    • Clay pots, bowls, and vessels: Renamed these (again) to "earthenware bowl", etc. This keyword also appears in the short description. This replaces the "ceramic" keyword (which was only in the long description) in patch b5.81a.
  • Immortals:

    • Util exportcsv: New util command that exports CSV files with game data. It currently only supports equipment.
  • Scripting:

    • crop_flagged: New room property for checking crop flags.
    • sector_flagged: New room property for checking sector flags.

Patch b5.81c (December 18, 2019)

  • Adventures:

    • 10700 Winter Wonderland: Added another magic-based quest, which starts at the snowman and alternates with the pixy quest. Fixed one of the progress goals. Raised the decay timer on the Christmas tree and snow angels. Other small updates and fixes for the event.
  • Scripting:

    • Finish-quest triggers: Fixed two bugs where these triggers did not fire when finished with the %quest% command or during group-completion.

Patch b5.81b (December 10, 2019)

  • Adventures:

    • 10700 Winter Wonderland: Added a magic-based quest which starts at the Christmas tree. Small updates and fixes for quests. "Grateful for the Gift" no longer gives a stocking (because it requires no movement or effort, and you already get a gift while completing it).
    • 16100 Oceanic Hydra: The fetish craft now requires Magical Vestments instead of Master Craftsman.

Patch b5.81a (December 6, 2019)

  • Adventures:

    • 10700 Winter Wonderland: The mini-pet whistle from the stockings now grants the pets at random instead of a specific order. Added "tall" as a keyword on all the Christmas trees so they're easier to target. The "Stand" quest will now automatically remove the old Christmas tree if you have a lighter. The Gift/Guild quest pair will no longer lock you out of doing the other quest. Lowered the cooldown on the snow angels. Dressing terriers now require 2; dressing horses now require 5. Made small fixes to several components of the adventure.
    • 16100 Oceanic Hydra: Changed the name on the Oceanic Tower craft to "oceanictower" as closed buildings need to be all one word for the "facing" syntax.
  • Content:

    • Clay bowl, pot, vessel, bricks, and letheian icon: Removed the 'clay' keyword as it frequently conflicts with lumps of clay. These items all gained the 'ceramic' keyword in their long descriptions, but the short descriptions merely dropped the word 'clay' in favor of 'a pot' etc.
    • Fisheries: Added the drink-water function flag to the river and lake fisheries, as they previously only allowed you to get to the water for drinking/filling if they were adjacent to an unblocked river/lake tile.
  • OLC:

    • Help files: Corrected an error in an example in the char-vars help file in the %Light-Fire% ptech.

Patch b5.81 (December 3, 2019)

  • Adventures:

    • 10700 Winter Wonderland: The reindeer now spawns just once per player per day, so there's no value in farming all the instances with 1 player to try to get the flying version. You can now light the Christmas tree in your city if you need to remove it to add a new one for the quest. Toned down some of the combat, especially on normal difficulty. The instances now last 4 hours or until someone meets Father Christmas, up from 1 hour. Updated various quests and objects.
  • Commands:

    • Quest: Removed an extra blank line after the notification that you've completed all your daily quests for the day.
  • Scripting:

    • Drunk/hunger/thirst: Fixed a crash bug in these script getters/setters.

Patch b5.80 (November 30, 2019)

  • Note to EmpireMUD admins: This patch removes the old version of Winter Wonderland, adventure #190. If you have previously used this adventure, you may get a conflict in lib/world/adv/1.adv when you pull this update. Email me if you need assistance with this.
  • Adventures:

    • 10700 Winter Wonderland: Move from vnum 190. Added adventure 16600 as supplemental content for this adventure. Updated all the existing rewards. Replaced some of the recipe gifts and moved those recipes to the threshold rewards. The Christmas cookies no longer require the apiaries tech. The nearest instance will now show on 'nearby' from anywhere in the world. Added a full event for this, designed to run 37 days from Dec 1 to Jan 6.
    • Global-Nearby: New adventure flag that allows you to see the nearest incomplete instance of the adventure from any distance.
    • Linking: Added an "event-running" linking rule where an adventure will only spawn while the event is running, and will close itself if the event ends.
    • No-Location: This flag now also applies to vehicles inside a no-location adventure room. Updated the code for checking no-location to use a new macro for this. This applies to displaying coordinates and to commands like where and nearby.
  • Commands:

    • Accept: Now gives a better error message when the problem is your position.
    • Adventure summon: Now gives a better error message when the problem is your position.
  • Events:

    • Ties: The event system now correctly handles ties between players with the same number of points.
  • Immortals:

    • Set: Added 'dailyquestscompleted' and 'maxlevel' (the trait that governs what level equipment you can use) to the set command.
    • Stat empire: Now shows script variables on the empire.
  • Objects:

    • fresh_copy_obj: Fixed a minor bug in this function that was duplicating triggers on objects when it loads a fresh copy of them.
  • Quests:

    • Crash bug: Fixed a crash bug that would happen if the quest's start (or end) locations were removed, then the quest was deleted.
    • Vehicles: Quests can now start/end at vehicles.
  • Scripting:

    • %dailycycle%: New script variable equal to the number of days since the MUD started up (linked to the daily quest/exp cycle), for scripts that need to have once-per-day effects.
    • Ignoring: Added %char.is_ignoring(target)%.
    • Invisibility: Fixed a bug in DG Scripts where an invisible immortal could trigger script errors and block scripts from executing. The %room.people% and %person.next_in_room% variables no longer include invisible/wizhide immortals.
    • Mounts: Added %char.add_mount()%, has_mount(), and remove_mount().
    • Remote: You can now remote variables to empires, and access them in the same way as other remote variables.
    • rdelete/vdelete: Fixed a bug where these were not supported for vehicles. You can also now use these on empires.
    • varexists: Added varexists support for objects, rooms, vehicles, and empires. For some reason, it was only on characters.
  • Shops:

    • Crash bug: Fixed a crash bug that would (probably) happen if the shop locations were removed and then the shop was deleted. This is based on a very similar bug in quests, which use a similar lookup system.
    • Vehicles: Shops can now be attached to vehicles.

Patch b5.79 (November 12, 2019)

  • Adventures:

    • 16100 Oceanic Hydra: Corrected a mistake in the majestic head's healing script. Fleshed out the ethereal head and vicious head by giving them each attack scripts. Added a rage modifier to the hydra body. The 'adventure' command now works from the hydra's location.
  • Help files:

    • Finish/Start-Quest: Updated OLC help files for start-quest and finish-quest triggers to correctly have the hyphen. Also corrected the argument line of both help files.
    • Qedit Tasks: Added missing task types to this help file.
  • Immortals:

    • File: Lowered the level requirement on some of the "file" options from co-implementor to assistant.
    • Restore: In addition to the regular "full restore", you can now specify specific categories like hunger, health, etc.
  • OLC:

    • Crops: Added a fullsearch for crops.
  • Quests:

    • Group-completion: New quest flags allows quests that only 1 group member has the item/requirements to finish, and will also finish for any other group members present.
  • Socials:

    • Code: Cleaned up the check_social code slightly.
    • Commands: Fixed an error message where it said you're asleep rather than earthmelded.

Patch b5.78 (October 29, 2019)

  • Displays:

    • Object stacking: Improved the code that handles object stacking so it can better distinguish between re-stringed items. Also simplified part that was spending unnecessary processor time computing and checking object names.
  • Scripting:

    • Data: Removing triggers no longer automatically removes all remote variables and script data.
    • Display: Now only showing [TRIG] in front of things that have triggers on them, not just things with script data.
    • Global: Updated the help file for the 'global' script command to correct an error, to make it clearer how to use globals, and to reference the 'remote' command which has a more global reach.
    • Remote: You can now attach remote variables to things that don't have triggers on them. This was an odd flaw in DG Scripts. Also fixed a bug where variables could not be remote'd to vehicles.

Patch b5.77 (October 22, 2019)

  • Abilities:

    • Boost: Rewrote the boost command to make it easier to add additional boosts. Added boosts for the main roles. These boosts are low right now for testing, but watch for additional updates.
    • By Moonlight: Now only functions when outdoors (on the map or in an outdoor adventure).
    • Ready Blood Weapons: Added several new attack types: slice (chop), pick (mining), hammer (forging), whip (tank)
  • Displays:

    • Exits: Fixed a bug where the "Too dark to tell" text was missing when you can't see where an exit leads.
  • Immortals:

    • Show olc: New immortal show command that shows everyone with OLC access (with optional vnum restriction).
  • Scripting:

    • Characters: The 'aff_flagged', 'mob_flagged', and 'plr_flagged' variables now gives a list of current flags if called with no arguments.
    • Objects: Added the 'bound_to' variable (person(s) who the item is bound to, by name), 'component_type' variable (gives the component type as text, if any). The 'is_flagged' variable now gives a list of flags currently on the object if you call it with no args.
    • Rooms: The 'aff_flagged', 'bld_flagged', and 'rmt_flagged' variables now gives a list of current flags if called with no arguments.
    • Vehicles: The 'is_flagged' variable now gives a list of current flags if you call it with no args.
  • Vampires:

    • Blood-starved: When a vampire reaches the blood-starved state, their abilities and items that have blood-upkeep will automatically cancel. Added a new message for this. This is partially a bug fix, as players are not meant to run out of blood due to active abilities.

Patch b5.76 (October 15, 2019)

  • Adventures:

    • 50 Royal Planning Office: This adventure is still turned off (due to replacement of the Empire skill tree by the progression system). However, players can again earn the +Greatness ring that was available from this adventure in the form of progress goal 10801 "Symbols of the Empire", which is available to empires that have completed Luxuries and Renowned.
    • 51 Tutorial: Museum of Early Man: Added a new version of the final quest to allow players to get the "imperium chisel" even if they didn't originally do the quest chain. This quest is available to players who have 75 Trade and never did the Master's Journey quest.
    • 101 Magiterranean: The Hidden Garden: The pineapple now has the component type (large, single, tropical fruit).
    • 126 Mountain Cave: Flame Dragon: The flickering flame mob now has no blood and no corpse.
    • 10950 Viscous Muck Dragon: Fixed a vnum typo in the burrow charge attack that applied the wrong affect name/message on the victim (and threw a srcipt error).
    • 12650 Magiterranean: The Grove: Added the missing stun effect and message for the grand fireball attack.
  • Commands:

    • Confirm: You can now 'confirm' for a reboot/shutdown while dead or earthmelded (earthmelt?).
  • Content:

    • Nerf bat: Fixed a small typo in its debuff script.
    • Well: You can now build wells on oases in the desert. Updated the text of the "Abundant Water" progress goal to indicate this. The well also received a small update to its icon to make it stand out better in the city.
  • Displays:

    • Custom room names: The room title will no longer show the (Real Name) in parentheses if the custom name contains that text already. Let us know if some of the more difficult names could be tweaked in a way that makes it easier to incorporate them into the custom name.
  • Help files:

    • Stilt House: Added this building to the "Stilt Buildings" help file, where it was erroneously not listed. Also removed "build on river" from its own help file, as this does not appear to be accurate.
  • Immortals:

    • Set: The health/move/mana/blood options now work on PCs as well as NPCs. Also fixed the help file where it claimed these set max-numbers when it is actually current numbers that are affected.
  • Mobiles:

    • Restringing: Mobs can now save custom keywords and long/short descriptions through a reboot.
  • OLC:

    • Removeindev: This quick-command now also removes in-dev flags from progress goals.
    • Triggers: Added an auditor for triggers. So far it only checks that they have a name and that none of the lines are too long to save.
    • Vehicles: Saving a vehicle now automatically audits it.
  • Scripting:

    • %mod%: New script command allows all scripts to re-string mobs, objects, vehicles, and rooms.
    • Loops: Added a system to track the maximum size of player inventories so that inventory-looping scripts never hit the max-loops error. It will always allow at least as many loops as the largest inventory since the last reboot.
  • Vampires:

    • Blood-starved: Vampires who are below the low-blood threshold will now automatically attempt to bite valid targets in the room with them (or their current target in combat).
    • Siring: When a person becomes a vampire, they now start at an amount of blood equal to 50% more than the "starvation" level (instead of starting at a fixed 30 blood).

Patch b5.75 (October 8, 2019)

  • Abilities:

    • Bite: This is now a level-0 ability in the Vampire skill tree, meaning it no longer costs an ability point. Non-vampires who use this command will instead get the new "bite" social, in which they pretend to be a vampire. Bite now correctly fires ability triggers. Bite can now be used as a melee attack which incurs a 100% dodge penalty for a few seconds and deals strength-based damage. There is now a 33% chance to "taunt" the target when Bite is used in combat.
    • Sanguine Restoration: This ability now restores 10% of your health/mana/moves per drink when drinking the blood of a human victim.
    • Savage Bite: New Vampire ability that modifies the 'bite' command. Tanks now taunt 100% of the time while melee and solo roles no longer taunt at all. Tanks and soloists do not receive the dodge penalty. Melee and solo roles have a lower cooldown and will also stack a physical DoT effect. All roles steal a small amount of blood on each bite.
  • Immortals:

    • Logins/outs and alternates: The syslogs for all enter-/leave-game messages now include the location.
    • Syslogs: Removed trailing periods from the 10% of syslogs that had them, for consistency.
  • OLC:

    • Ability auditor: Fixed an error where the ability's name conflicted with itself during the auto-audit when saved.
    • Skill auditor: Fixed an error that was over-reporting missing prerequisites in the skill tree.

Patch 5.74b (October 1, 2019)

  • Adventures:

    • 16100 Oceanic Hydra: Altered the stats on hydra gear. Added a hydra tongue to the butcher table. Added a new Oceanic guard tower and two related progress goals. Updated some of the scripts.
  • Scripting:

    • set_location: Added an explicit error when you try to use %instance.set_location()% to set a location in the ocean. Oceans do not support the current version of this system.

Patch b5.74a (September 26, 2019)

  • Crafts:

    • Level constraints: Fixed a bug where crafts which "require an item in your inventory" were incorrectly constrained to the level range of that item.
  • OLC:

    • Interactions: Tweaked how interactions are freed from b5.74, although it did not turn out to be related to a crash issue.

Patch b5.74 (September 24, 2019)

  • Abilities:

    • Find Herbs: Herbs are no longer found on seeded field tiles.
  • Adventures:

    • 101 Magiterranean: The Hidden Garden: You can now 'pick' the crop items inside the adventure even without Find Herbs.
    • 16100 Oceanic Hydra: A new wandering adventure mob in the 225-325 "group" level range.
    • 18460 Unstable Portal: You no longer require Find Herbs to 'pick' the hidden crop (it was also always available via forage).
  • Buildings:

    • Herb Gardens: The gardens from the "Luxury Resources" progress goal no longer require Find Herbs to pick them. They also will not provide gems.
  • Commands:

    • Pick: Removed hard-coded portions of the "pick" command that handled the iridescent blue irises and the small flowers. The "pick" interaction now only uses in-game data to determine the outcome. All existing herb data has been converted.
    • Whois: This will now show the character's gender on the status line.
  • Objects:

    • Replacements: Updated the list of flags which are preserved when an object is replaced (e.g. by scripts rescaling it) to include binding flags. Also fixed a probable bug where objects that had LOST preservable flags would regain them during this replacement.
  • OLC:

    • Find-Herb: This interaction type is now called "pick" and has no skill restriction.
    • Interactions: You can now specify a required ability, tech, or ptech (or any combination of these) on all standard interactions. Interactions with these requirements also now trigger skill experience gains. This minor feature required over 500 lines of code and countless edits to sectors and room templates.

Patch b5.73 (September 17, 2019)

  • Adventures:

    • 10950 Viscous Muck Dragon: Now gives skins, not leather, when skinned.
    • 12400 The Golden Goblin: Added a missing affect type for Scylla. This was not affecting the fight, only triggering a warning message when removing the affect.
  • Buildings:

    • Base-terrain-allowed: Added a new build-on flag called base-terrain-allowed, which will allow some buildings to face buildings that are built on mountain/water if the building is required to face mountain/water.
    • Clay pit: Can now be built facing a water tile with a building on it (such as a garden).
    • Quarry: Can now be built facing a mountain tile with a building on it (such as a mine).
  • Commands:

    • City: Now defaults to showing your list of cities when typed with no argument. No longer shows the number of city points available at the bottom of the list (this is already indicated at the top).
    • Customize: Added intersection, fork, and corner to the list of valid road names.
    • Dismantle: Will now accept an argument if it's a keyword for the building you're in (e.g. dismantle house). Previously, this command was always rejected if the user typed an argument (under the assumption they were trying to "dismantle carriage" or mis-abbreviating a command other than dismantle).
    • News: A new command that displays the text file from lib/text/news.
    • Quest: When you type "quest start" with an invalid quest name, it will now list any quests available where you are (in addition to the error message). Quest names no longer require full abbreviations — they now allow you to use any keywords from the quest name (for example "A Master's Journey" can now be abbreviated "Master's Journey", without the "A"). Quest names will still prefer exact matches before partial matches.
    • Sheathe: You can now sheathe items from the hold slot or your inventory, in addition to wield.
    • Skill drop: The player's role and role-based abilities are now updated after dropping a skill. Also fixed this in several other cases where a role, skill level, or skill can change.
    • Workforce: Turning a chore on for "all" islands should no longer result in islands that you have no storage/population/territory on.
  • Help files:

    • Single-use: Added a new help file to explain 1-use items.
  • Immortals:

    • /echo: Fixed a bug where a leading forward-slash would be removed from a /echo command.
    • Learn: Immortals can now use the 'learn' command on IN-DEVELOPMENT recipes.
    • Learned: Now shows IN-DEV recipes for immortals.
    • Reload: Now allows 'news' and includes news in the 'all' option.
    • Set learned: Immortals can now remove learned recipes from players even if those recipes have the IN-DEV flag. Immortals can now also add recipes to themselves this way even if the IN-DEV flag is present.
    • Set skill: Now correctly re-check the player's role and role abilities after changing their skill level.
    • Show player: Lower-level immortals can no longer see creation-host.
    • Show skills: Now shows an asterisk if the player has resets available in a skill.
    • Stat player: Lower-level immortals can no longer see account ids or creation-host on the 'stat' command. Added a configuration for this near the level definitions. Lower immortals will also no longer see the full list of account flags, but will see certain important flags.
    • Stat vehicle: Fixed a display bug where it showed vehicle triggers as mob triggers.
    • Tedit: Now includes 'news'.
  • Scripting:

    • dg_affect: Added a new error message when this function is called with a missing generic affect.

Patch b5.72 (September 10, 2019)

  • Adventures:

    • 102 Magiterranean: Interdimensional Whirlwind: This adventure will no longer spawn on newbie islands.
    • 128 Colossal Red Dragon: Typo correction on the Dragonslayer Statue's billowing smoke.
    • 190 Winter Wonderland: Reindeer now give skins from "skin" not "butcher".
  • Content:

    • Crafter items: The clothing item from all 3 tiers of crafter items (guildmaster's tunic, traveling tinker's trappings) now gives +1 greatness (the tier 3 robe of the Olympians already gave it).
    • Reindeer: Wild reindeer now give skins from "skin" not "butcher".
  • Displays:

    • In-city status: Fixed a typo when a building needs to be in a city but isn't.
  • Help files:

    • Flint: Added missing help file for this common resource.
    • Global types: Added missing types to the GEDIT TYPE help file.
    • Rocks: Updated the text to correct some outdated info.
  • Immortals:

    • Show account: Will now show last-online-time for the whole account.
    • Show currency: Fixed a bug where the 'coins' line in this command showed the user's coins, not the targets.
  • OLC:

    • Trigger fullsearch: Now also searches the trigger phrase for speech/command triggers.

Patch b5.71 (September 3, 2019)

  • Commands:

    • Interlink: Now gives additional info when you type it with no arguments in a place that can't be interlinked.
    • List: Added a "list ID" option to identify items in shops. Drink containers now also indicate what liquid they come with in the shop list.
  • Empires:

    • Dispatch/Shipping: Fixed a bug where the empire storage file didn't save after dispatching, which could result in data loss if there was a crash. Fixed a bug where ships that were "transferred" out of the shipping system by immortals were not resetting their shipping ID and could not be used correctly for shipping/dispatch again. Fixed a bug where dispatched ships would get lost if there was a reboot mid-shipment.
  • Immortals:

    • Breakreply: This command now gives better feedback when used, rather than just "Okay." This was previously confusing when the command was abbreviated.
  • Scripting:

    • is_flying: Fixed a b5.40 bug in the script flying check where the results were backwards.
    • Object attack type: Added %obj.attack(*)% with various data about weapons and missile weapons.
    • %slay%: New script command that immediately kills a player or NPC.

Patch b5.70 (August 13, 2019)

  • Commands:

    • Map: Shows the map around you, without the other information from "look". You can also specify a distance with this command, e.g. "map 1".
    • Mapsize: This command can now set by radius OR width. It defaults to radius for screen reader users (who see this distance in each direction) and defaults to width for non-screen-readers (who see the width of the map).
  • Content:

    • Dried shark meat: Added missing SCALABLE flag.
    • Mining Tutorial: Updated the text to make it clearer how to make a handaxe.
  • OLC:

    • Fullsearch: Added shortcut macros to all the fullsearches, to make it easier to add future fullsearches.
    • Spreads-to: Added a new evolution type for sectors. This is the inverse of the "adjacent-one" rule and spreads from the current tile to a neighboring tile.
    • Sweeps: New mob movement type.
  • Scripting:

    • Command triggers: Mobs can now fire their own command triggers, so long as they weren't "ordered".
    • Namelist: Added %ch.namelist% to fetch (and set) the generic name list entry for the mob.
    • %teleport%: Can now target objects, too.

Patch b5.69 (July 23, 2019)

  • Adventures:

    • 10950 Viscous Muck Dragon: Fixed the cranberry jelly recipe, which required the wrong ingredients.
  • Commands:

    • Coins: This command now takes an optional argument, which searches your adventure currencies by name (e.g. coins permafrost).
    • Contents: New command lists objects and vehicles in the room without the other clutter from 'look'.
    • Deposit: Improved the error message when you typo the coin type.
  • Content:

    • Dried shark meat: Fixed broken recipe.
    • Taming animals: Added "feed" to the list of keywords for the "feed to tame" script and added an error message if you try to use "feed" instead of "give".
  • OLC:

    • Fullsearch: You can now fullsearch buildings and vehicles. Added extra descriptions to the fullsearch-able text fields for objects.
    • Mapedit roomtype: Now accepts vnums in addition to building names. Also now verifies you gave it a valid room.

Patch b5.68 (July 16, 2019)

  • Adventures:

    • 129 A Gigantic Nest: Added an adventure hint to the nest object, and added the 'enter nest' command to the adventure description.
    • 10950 Viscous Muck Dragon: Fixed a typo in the muck dragon's long description.
    • 10980 Renegade Spellcaster!: Fixed a typo in the Fractured Tower.
    • Instance despawner: Fixed the order in which things are cleaned up when an adventure ends, because cleanup scripts were missing critical data. This included adding a new property to instances indicating they are mid-cleanup.
  • Commands:

    • Affects: Fixed a minor display issue where affects and dots were indented differently.
    • Quest: When you try to "quest start" but are already on the quest, it now gives a more useful "You are already on that quest" instead of "You don't see that quest here."
    • Withdraw: Fixed an error where typing "misc coins" still resulted in withdrawing empire coins without an error message — it now errors; withdraw ONLY works on empire coins. This included an update to the find_coin_arg() function so it now indicates whether or not the player implied the "misc".
  • Content:

    • Astral Nexus: Added missing in-city-only function flag, to match the build recipe and help file.
    • Baths: Added in-city-only to the build recipe, to match the building itself.
    • Dismissable trigger: Added a missing % in the script that was preventing the room from seeing the dismiss message.
    • Mountain Hall: Added missing in-city-only flag to match the build recipe and help file.
  • Displays:

    • City list: Now uses the word (establishing) instead of (new) next to cities that haven't yet met the minutes_to_full_city config time.
    • Empire adjective: Capitalized the adjective when it appears at the start of a sentence, as in commands like "city list" and "inventory".
    • In-city-only: Buildings that are have in-city-only flags will now indicate when they are not in a city, below the ownership line in the room.
  • Help files:

    • New cities: Added a new help file to explain the city delay.
    • Various: Minor typoes and corrections.
    • Workforce cap: Added significantly more information to this help file.
  • Immortals:

    • Stat character: Now shows highest-known level and maximum inventory size.
  • OLC:

    • Craft auditor: Now checks for matching in-city-only flags.
  • Scripting:

    • dg_affect_room: Fixed an issue where this command could not actually remove affects from rooms correctly.
  • Socials:

    • Kiss: Fixed an ancient typo.

Patch b5.67a (June 13, 2019)

  • Events:

    • Rewards: Events now track a player's highest-known-level (the same attribute that determines what gear you can wear). When you collect rewards, they will be at the highest-known-level you had while gaining event points.

Patch b5.67 (June 11, 2019)

  • Abilities:

    • Dangerous Leathers: Raised from Trade 75 to Trade 80.
    • Magical Vestments: Raised from Trade 75 to Trade 80.
  • Adventures:

    • 125 Ruins: The Goblin Challenge: Fixed some issues from b5.64 when the UNDEAD flag changed.
    • 12400 The Golden Goblin: Fixed an issue from b5.64 when the UNDEAD flag changed.
  • Code updates:

    • PERS(): This function now returns a const char pointer instead of a char pointer.
    • skip_filler(): The argument to this function is now a const char pointer instead of a char pointer.
    • str_replace(): The arguments to this function are now const char pointers instead of char pointers.
  • Content:

    • Lost boy: Fixed a typo in his look description from b5.66.
    • Mount whistles: Created a new version of the mount whistle script, vnum 9910, to replace the adventure version that is used by most existing mount-summoning items. The new version has better error-checking and also won't work if your current location is claimed by someone else, because you wouldn't be able to use the mount. All existing mount whistles were updated with this script.
  • Crafting:

    • Scalable crafts and crafting level: Previously, your level in a crafting skill, such as Trade skill for Iron Blades, would limit the level of an item you created. For example, if you had 55 Trade but your Crafting level was 65, your arming sword would only be level 55 because of this limit. This limit has been removed. In this previous example, the arming sword would now be level 65 despite only having 55 Trade. The arming sword still has an absolute maximum level of 75 since Iron Blades is in the 50-75 level range.
  • Events:

    • 11520 Pixy Pursuit: A new treasure hunt-style event where players seek and capture pixies to gain points. This event requires no combat, but players with higher attributes and levels have a better chance of capturing pixies. When active, the event starts from the Alchemist building.
  • Morphs:

    • Real name: Morphs now support the #n code for the person's real name (or short description, for mobs) in the short and long descriptions.
  • OLC:

    • Event editor: Added missing aliases for .thresholdrewards and .rankrewards, which were already indicated in help files.
    • Mob editor: Increased the buffer size for the editor display after seeing it run out of space and crash when a large number of custom strings were added. However, all the OLC displays will need real overflow protection.
  • Scripting:

    • Events: Added %event.name(vnum)%, %event.running(vnum)%, and %event.time(vnum)% getters.
    • Loops: Raised the loop limit from 100 to 300 because inventory sizes are often too large to loop over.
    • %own%: Fixed a minor bug where %own% doesn't update quests/goals when you gain/lose ownership of a vehicle.

Patch b5.66 (May 28, 2019)

  • Adventures:

    • 12400 The Golden Goblin: Updated the Leave-All trigger used by Fathma (and other mobs) to ignore people leaving through a portal.
    • 12650 Magiterranean: The Grove: Added mob look descriptions and fixed some minor traits on some of the mobs. Also updated mobs from the deprecated version of this adventure (vnum 100).
    • 18460 Unstable Portal: Fixed the Leave trigger that prevents you from entering the fake rooms around the portal, due to a b5.65 change that was causing this trigger to block the exit portal too. Fixed the console in the blue box, whose extra description was set up incorrectly.
  • Commands:

    • Combine/Separate: These commands will now copy the "seeded", "no-store", and "created" flags to prevent exploits/issues from separating and combining items.
    • Manage: Fixed an error in "manage no-work" where it was despawning workers when turned off, rather than when turned on.
    • Sacrifice: Better error message when the reason you can't sacrifice an item is that you can't pick it up.
  • Content:

    • Barded mounts: Added look descriptions.
    • Empire NPCs: Added look descriptions to the NPCs that spawn in an empire. Some also received minor updates to other text.
    • Enchanted forest mobs: Added look descriptions.
    • Lost sailor: Now has a raft.
    • Map animals: Added look descriptions and combined skin/butcher lists on the: arctic hare, beetle, boar, elephant seal, flamingo, forest tapir, gecko, heron, hunting hound, horseshoe crab, lemming, marine iguana, moth, mouse, mud crab, narwhal, penguin (added feathers), emperor penguin (added feathers), emperor of penguins, polar bear, puffin (added feathers), rat, reindeer, barded reindeer, river otter, seal, harbor seal, spider, large spider, tabby cat, tree frog, walrus, wolverine.
    • Parrots: Raised the percentage on its animation script.
    • Salty Pirate: Added a look description.
    • Swift mounts: Added look descriptions.
  • Commands:

    • Build: Improved how the build command detects what you're trying to build, cleaned up this part of the code, and fixed a b5.65 bug where it would show a missing ability when you were also missing a second requirement. Also changed the output when you type an invalid building name — it will now explicitly tell you as much, instead of giving the syntax.

Patch b5.65 (May 21, 2019)

  • Note: Existing EmpireMUDs should respawn their Soulstream/Tutorial adventure by typing 'instance deleteall 52'. This adventure received major updates in this patch.
  • Abilities:

    • Refashion/Reforge: Relaxed the renaming rules to only require the main keyword. Improved how new keywords are set. Refashion now also works on 'worn' items.
  • Adventures:

    • 52 Tutorial Quests: Updated the Soulstream tutorials. All these quests now have more specific instructions. All the mobs now spawn in a single room, and hide/appear depending on what skills the present players have. There is only a second room for use with the Stealth sneak quest.
    • 101 Magiterranean: The Hidden Garden: Fixed the text of the druid's list to indicate he wants squash, not gourds.
    • 140 The Sewer: Ratskins: Changed the attack type on the urchin and the city official from "hit" to something disarmable.
    • 10980 Renegade Spellcaster!: Fixed one of the teen witch scripts, which threw a lot of errors if the opponent died in the middle.
    • 12400 The Golden Goblin: The goblins will no longer block your bodyguards or followers from following you.
  • Code updates:

    • Multiword-abbrev: Fixed a bug from 5 months ago in is_multiword_abbrev() where it incorrectly parsed out "filler words", making it impossible to use it to target certain progress goals (or other uses of this function) if they begin with fill words like "a".
  • Config changes:

    • New: frontier_timeout 30
  • Commands:

    • Build: When you try to start a building but are missing the ability for it, it will now tell you which ability you're missing.
    • City: Founding a city now echoes to the room that it has been founded or removed/abandoned there.
    • Dismantle: Improved the error message when you can't dismantle the building for some reason.
    • Drag: You can no longer drag vehicles that are on fire.
    • Exits: No longer shows coordinates for interior rooms (this also affects the basic "look" command). Typing "exits" now also shows disembark and portals. This command now also shows immediate exits on the map (similar to scanning 1 tile each direction).
    • Home: Using 'home set' will no longer allow the empire leader to 'steal' someone else's private home. It now warns them to 'home clear' it first.
    • List: Now displays how much of each special currency you have, for currencies used in this shop.
    • Manage: Will now despawn workforce if you use it to turn on no-work.
    • Mint: Sped up this action.
    • Movement: Changed when people leave tracks to ensure they successfully move first. Previously, triggers could prevent the movement but the character would still leave tracks.
    • Plant: If you try to plant an item that is not plantable, but IS seedable, it will now suggest seeding first.
    • Retrieve: When used in a warehouse/vault where your command doesn't result in retrieving any "normal" storage, this command will automatically fall through to the "warehouse store" command.
    • Run: Sped up running.
    • Seed: New command allows players to remove the seeds from items with a "seed" interaction on them. After seeding an item, it can no longer be stored or seeded. Crops will eventually be updated with this interaction.
    • Ship: You can now use 'all' as the number of items to ship, e.g. "ship island all tree". This will queue all of that item you currently have on this island.
    • Store: When used in a warehouse/vault where you have no items with "normal" storage, this command will automatically fall through to the "warehouse store" command.
    • Toggle: Using "toggle pvp off" will no longer trigger the 5-minute pvp cooldown when already off. Toggle now just gives an error if you try to shut off a toggle that's already off. Also fixed how the pvp part is set.
  • Content:

    • Hiding animals: Updated the 'hide over time' script used by some animals. They now reliably un-hide when they should, fixing the bug where players ended up fighting "someone" they couldn't see.
    • Houses: The basic one-room houses (hut, mud hut, cabin) now all count as bedrooms.
    • Rawhide saddle: No longer requires textiles, which are generally not available in this tier of resources.
    • Seed Silo: A new storage building specifically for seeds. Most existing seeds now store there instead of the granary.
    • Snore social: Now allowed while sleeping.
  • Displays:

    • Island-based technologies: Updated the error message when you try to use a technology, such as glassblowing, that is island-restricted. It now correctly indicates that the technology needs to be on the current island.
    • Map: Added a social called 'map' that just gives information on how to see the map, as many new players type this command trying to view the map.
    • Territory: Fixed a bug where there were too many spaces if only 1 tile was represented on a line.
  • Empires:

    • Dismantle-mines: This chore will now use the miner mob, if still present, instead of waiting to spawn a dismantler to start the dismantle.
    • Frontier territory: Added a new timeout (configurable: frontier_timeout). If enabled, after this number of days, all frontier territory is lost. This solves up a problem where empires that have long timeouts would sometimes hold claims on small numbers of scattered tiles that get in the way of other empires, despite being gone for months. The default value for this setting is 1 month.
  • Help files:

    • Free actions: Added a help file with a reference on the free resource actions, such as [clear terrain].
    • Various: Minor text updates and corrections.
  • Immortals:

    • Cities: Using ".map terrain" to remove a city center will now correctly rescan territory for the empire that owned it.
    • Empires: Merging two empires will now cause a syslog.
    • Reboot: After the mud does a soft reboot, it will no longer invert the order of the descriptor list.
  • Mobiles:

    • Fire breath: Added a new "fire breath" attack type for mobs that were using "magic fire" (which is disarmable). Fire breath cannot be disarmed and has slightly different messages, but is otherwise the same as magic fire. Some mobs were updated with this attack type.
  • Progress goals:

    • Storage: Now also requires a Seed Silo.
  • Scripting:

    • Followers: Fixed %char.follower(name)%, which is indicated in DG Scripts' help files, but had no code support for the "name" argument. Also added %char.next_follower% for iterating over lists of followers.
    • Hide: Mobs can now use the 'hide' command without the restrictions players have (unless ordered to hide by a player). This fixes an issue in some mob scripts where the mob would stay hidden because of how it hid.
    • Leave triggers: Updated the code for leave triggers to allow custom direction data. Players entering portals will now fire leave triggers with "portal" as the %direction% value.

Patch b5.64 (May 14, 2019)

  • Abilities:

    • Disenchant: No longer removes the "superior" tag. It never affected any of the superior stats anyway.
  • Adventures:

    • 51 Tutorial: Museum of Early Man: Fixed the description for the quest that gave the wrong instructions for creating leather rope.
    • 12500 Clockwork Colossus: Fixed a typo in the wristplate description.
    • 18200 The Guild of Adventurers: Changed the room title on the guildhall vault to avoid confusion with other vaults.
  • Bug fixes:

    • Auto-unequipping: Fixed a minor issue where gear level was not correctly updated right away when automatically unequipping an item due to blood upkeep, losing the ability to block, losing the ability to use ranged weapons, or losing the ability to use two-handed weapons.
  • Code updates:

    • unequip_char_to_*: Fixed a small possible bug in these two functions where 'obj' isn't guaranteed but is referenced anyway.
  • Commands:

    • Equipment: Now allows you to save and restore sets of worn items, quickly switching whole sets of gear to/from your inventory.
  • Content:

    • Rock tutorial: Fixed the text to indicate the right material.
    • Swamp crab: No longer has blood.
    • Whips: Re-purposed most existing whips to be tank weapons. Tanks now generally have spears (sharp) and whips (blunt) as weapon choices.
    • Wineskin: Fixed a typo in the long description.
  • Displays:

    • Craft info: Now shows wear locations. No longer shows stats that would come from hard/group/boss drops, as those don't come from crafting (this fixes an issue where sometimes stats are shown multiple times because they come from more than one source).
    • Identify: Now shows which of your equipment sets the item is a part of, if any.
    • Vehicles: Unfinished vehicles are now displayed as "<short desc> is under construction" rather than displaying the long description.
  • Help files:

    • Toggle/mortlog: Corrected the text about what mortlogs include.
    • Various: Typo fixes and updates.
  • Mobiles:

    • Undead: The UNDEAD mob flag was renamed NO-CORPSE as this was its only function and it is sometimes used to prevent corpses on mobs that are not "undead". The flag name came from its original use to prevent necromancers from reanimating their followers a second time.

Patch b5.63 (May 7, 2019)

  • Adventures:

    • 282 Goblin Logging Camp: Fixed a bug where the stumps created by the loggers were missing the workforce 'CHORE' flag.
  • Commands:

    • Alt import: Now imports the following additional preferences: autoclimb, autodismount, autokill, autodismount, autoswim, no-empire, clearmeters, no-paint, extra-spacing, travel-look.
    • Autodismount: Updated the following commands to use autodismount: board, disembark, earthmeld, hide, infiltrate, shadowstep, sit (on vehicle), sneak, whisperstride.
    • Manage: New command controls land management options like 'public', 'no-dismantle', etc, all in one place.
  • Content:

    • Buildings: Reduced or removed the need for fiber components in repairing low-skill buildings. Reduced the amount of fiber needed to build some of these, as well. Basic storage buildings no longer require resources to maintain.
    • Desert stumps: Fixed a bug where these were missing the workforce 'CHORE' flag.
  • Empire:

    • Guards: All empire guards including outguards and scouts can now be of any gender.
  • Events:

    • Recent: Added a command to see recently-finished events.
  • Help files:

    • Various: Minor text fixes and updates.
  • Progress goals:

    • Herbal Empire: Reduced this goal to 250 of each herb. It was unnecessarily tedious.

Patch b5.62 (April 23, 2019)

  • Content:

    • Cotton cloth: Renamed 'weave cloth' to 'weave cotton cloth' for consistency with other types and to allow 'weave cotton'.
    • Sheep: Renamed to 'fluffy sheep'.
    • Wild sheep: You can now tame 'wild sheep' into 'tame sheep', which will randomly become 'fluffy sheep'.
  • Displays:

    • Group: Added 'new' to the list of group commands you get when you type 'group' by itself, as it was missing there.
    • Progress perks: Craft perks will now indicate what ability is required to use them, if any.
  • Empires:

    • Workforce: Rearranged the order of chopping and burn-stumps because they would both happen in the same cycle.
  • Help files:

    • Coins: Added 'exchange rate' as a keyword.
    • Diplomacy: Created full help files for each diplomacy type.
    • Group: Added a note about auto-assisting group members in combat.
    • Fibers: Added bird feathers.
    • Follow: Added a note about following players into restricted buildings.
    • Lumber: Added a list of common lumber to the help file.
    • Nobits: New immortal help file.
    • Pillar: Added a list of common pillars to the help file.
    • Screen reader: Added more see-alsoes to this this file, by request.
    • Textiles: Added a list of common textiles to the help file.

Patch b5.61 (April 16, 2019)

  • Adventures:

    • 128 Colossal Red Dragon: Fixed an issue with herding mobs into the butcher tent.
  • Commands:

    • Burn stumps: Fixed a typo in one of the burn messages. Shortened the timer slightly.
    • Craft info: Added the mastery ability to all the 'info' displays, to make it clearer what will speed up and improve the craft.
    • Customize road: Added pathway, path, walkway, and walk to the acceptable list of road names.
    • Diplomacy: You can no longer send (or accept) diplomatic offers to empires when most of their online members are ignoring you.
    • Ignore: If you ignore a character, all their alts now also count as 'ignored'. However, you must still 'alt import' your ignores to your own alts, as each of your alts still has their own ignore list.
  • Crops:

    • Non-wild crops: There is now a 33% chance per in-game year that unclaimed non-wild crops vanish.
  • Displays:

    • New year message: Added a missing CRLF to the end of the new year message display.
  • Empires:

    • Workforce: Added a burn-stumps workforce chore.
  • Events:

    • Rank rewards: Fixed a bug from b5.60 where players not logged in when the event ended did not get a final rank and could not collect rank rewards.
  • Help files:

    • Actions: Added "mastery abilities for crafting" to the list of things that speed up some actions. This has always been the case but is missing from the help file.
    • Crafts: Moved the "craft" command to its own help and added speed-up information to all the crafting commands.
    • Master Craftsman/Tailor: Added a note that these mastery abilities speed up their crafts. Master Blacksmith already had this note.

Patch b5.60 (April 9, 2019)

  • Note: Existing EmpireMUDs will need to rebuild their Makefile with ./configure OR will need to add the event.c information to the Makefile manually.
  • Adventures:

    • 12400 The Golden Goblin: Fixed the stats on the sharktooth cincture: it was designed as a melee item but gave bonus-magical by mistake.
  • Code updates:

    • DG Events: Renamed the DG Scripts 'struct event' to 'struct dg_event' to avoid confusion with the new struct event_data — for two very different uses of the word 'event'. Also renamed its "event_*" functions to "dg_event_*".
  • Configs:

    • New: event_approval 1
  • Content:

    • Corpses: Fixed a typo in the long description for enormouse corpses.
  • Displays:

    • City list: Fixed a missing space in the this when used by players to view another empire's cities.
  • Events:

    • Events: Added a system for game events. Players earn event points from quests or scripts. Events offer threshold rewards (for total points earned) as well as rank rewards (based on how you finish compared to all other players).
    • Approval: Added a config for whether unapproved players can participate in events.
    • Channel: Added the /events channel to the list of default channels. Event announcements will occur on this channel.
    • Command: Added the 'events' command with various subcommands for managing and viewing events.
    • Grant: Added an 'events' grant that gives an immortal control over events.
    • Scripting: Added %actor.event_points(vnum)% and %actor.gain_event_points(vnum,amt)% vars.
  • Help files:

    • Toggles: Added "preferences, prefs, settings" to its keyword list.
    • OLC: Fixed a typo that appears in the main help file for several OLC editors.
  • OLC:

    • Events: Full editor suite for events (EVEDIT).
    • Quest rewards: Fixed a small display issue when trying to change an invalid reward type, and a missing optional parameter in the usage display.
  • Scripting:

    • %str.char(pos)%: New function for getting the character at a specific position.
    • %str.index_of(char)%: New function for getting the first position of a given character in the string.
    • Variable crash: Fixed an odd bug in stock DG Scripts where a very specific variable syntax passes control to a function without a parameter required by that function, and immediately crashes.

Patch b5.59 (March 26, 2019)

  • Abilities:

    • Infiltrate: Fixed a bug where this command did not work if no members of the empire were online, despite you having war or a thievery permit. It will now work if you have one of those two things.
  • Adventures:

    • 19000 The Swamp Hag: Added a 30-day timeout to this adventure, which previously never timed out.
  • Commands:

    • Draw, Hold, Swap, Wear, Wield: These commands now have command lag if used in combat.
  • Content:

    • Dragon's hoards: Renamed the green dragon's hoard (map spawn) and the flame dragon's hoard (adventure 126) to have unique keywords in their names.
    • Fight script errors: Added some sanity checks in fight scripts for the anaconda, bull, and hypnotoad.
    • Herb Gardens: Fixed an issue where two of the herb gardens required extra plant fibers instead of rocks.
  • Empires:

    • Rare Metals: Fixed a bug where empires without "Rare Metals" could still find rare metals for the last five months.
    • Rename: Fixed a bug where renaming the empire would result in no "rename" lore for the person who typed the command, unless they were sequentially the last member of their empire in the player index.
  • Help files:

    • Bonus Traits: Added missing "extra blood" info.
    • City: Added "city types" to the disambiguation help file.
  • Immortals:

    • Show resource: New analysis command that gives you storage stats on a resource.
  • Objects:

    • Corpses: Added a size property (obj val 1, which was unused before) corresponding to the size of the player or mob that died. Mobs with the "scavenger" flag will now only eat corpses their size or less.
  • OLC:

    • Progedit types: Added the actual list of types, with explanations, to this incomplete help file.
    • Socials: Fixed a display error in the socials editor.
  • Progress goals:

    • Enchanted Forest: Renamed the goals for 50 and 100 tiles of enchanted forest, and added new goals for 500 and 1000 tiles.
    • Production goals: Fixed a bug where some of the b5.58 production goals do not trigger right away.
    • Wealth: Added new goals for 500k, 1m, and 5m wealth. Renamed one of the goals to move the top name up. The city point still unlocks at the same wealth level.
  • Scripting:

    • Kill trigger: New trigger event for mobs, objects, and vehicles. This triggers on the mob, a player who has the object, or the vehicle, when one of them kills someone. It also fires for all allies in the same room: for example if your familiar kills someone, your sword may still fire a kill trigger.
  • Vehicles:

    • Besiege: Fixed a bug in the code for besieging vehicles which would have resulted in a crash under specific circumstances.
    • Movement: Fixed some loopholes that could get vehicles into places they don't belong.

Patch b5.58 (March 5, 2019)

  • Adventures:

    • 10775 Tree of Knowledge: The tree can no longer be maintained or repaired.
  • Content:

    • Chipped flint: No longer counts as a rock component.
    • Elephants: Fixed several errors in elephant spawn locations and rates from b5.55 and b5.56.
    • Rhino: The horn was too valuable for the rhino's rarity in b5.56. Added a lower-value version of the horn that appears more often than the high-value version. Also lowered the spawn rate on the rhino slightly.
  • Displays:

    • Requirements: The get-component requirement no longer shows the id number (to immortals) and now uses parentheses around the component type, to be consistent with other displays.
  • Empires:

    • Produced items: The game now tracks how many of an item were "produced" by an empire, including from manual chores, workforce chores, mob loot, imports, and items loaded by scripts. Exports are deducted from imports to prevent abuse by players trading items back and forth. When two empires merge, items from the absorbed empire's einventory are added as imports to the newly-merged empire's production-tracker. Items received via "give" or "get" from other players do not count toward this total. The "separate" and "combine" commands will remove items from this total then add the new other item (e.g. separating a bunch of apples gives -1 produced bunch and +4 produced individual apples). For existing EmpireMUDs, all items in the einventory are retroactively counted as "produced" as of this patch.
    • Produced items requirement: Added new progress/quest requirement options that use the new production totals either an object by vnum, or by component type.
  • Immortals:

    • Show produced: Immortal utility for seeing the produced item totals for an empire.
  • Progression:

    • Cache of Resources: This goal now only requires that your empire has produced 250 of each component, not that it currently has it.
    • Clayworks, Forging the Future, Foundations: Now only require that you've produced the 50 of each resource.
    • Collecting Herbs, Herbal Empire: Now only require that you've produced the herbs.
    • Rare Stockpiles, Rare Surplus: Now only require that you've produced the items. The leather requirements are now components instead of specific objects.
    • Stockpile Iron: Now only requires that you've produced 50 iron ingots. Renamed it to Ironclad Future.

Patch b5.57 (February 19, 2019)

  • Abilities:

    • Animal Husbandry: Fixed a bug where it granted Shear-Upgrade instead of Shear.
  • Code:

    • search_block: This function now prefers (but doesn't require) an exact match over a partial match, even if the "exact" parameter is not requested. This prevents an issue with things like ptechs where "Shear-Upgrade" appears in the list before "Shear", which was preventing the ability to select items later in the list by name.
  •  Content:
    • Whales: Updates to descriptions and butcher/skin lists.

Patch b5.56 (February 12, 2019)

  • Content:

    • Animals: Added more look descriptions to map animals.
    • Black mamba: Added a venomous bite and increased the snake's size.
    • Bobcats: Now sometimes have small furs.
    • Bone components: Added the 'basic' flag to some bone items.
    • Bone handle: New primitive craft.
    • Bull: Now has a bull rush attack.
    • Elephants: May now drop tusk(s) when butchered. Added a wild variant of the 2nd elephant.
    • Giant anaconda: Now has a constrict attack that requires a 'struggle' to break free. Added the 'slow' flag to reduce damage from the mob.
    • Hiding: Many animals now hide (on a random trigger), until they move.
    • Hostility: Many animals now become aggressive if you interact with them, including bears and cougars.
    • Humans: Replaced the 'human' keyword on the feral humans summoned with Summon Humans.
    • Jungle elephant: Replaced the map-spawning version with a wild jungle elephant who must be tamed.
    • Llama: Added a wild version.
    • Moose and elk: Added large antlers.
    • Ocelot: Now has a small fur.
    • Ostrich: Added unique feathers.
    • Pronghorn: Now has horns when butchered.
    • Rhino: Now has a horn when butchered. They now bull-rush in combat.
    • Snow leopard: May now have small fur.
    • Swamp bandit: Improved the loot.
    • Swamp witch: Increased the gem loot.
    • Treesnake: Added a venomous bite.
    • Wanderer: Added rare loot.
    • Wimpy: Some animals now flee when low on health.
  • Immortals:

    • Components: Added all-purpose creatable components in the 9800 vnums (e.g. 'create 20 immortal textile').
    • Tells: Immortals can now send tells to people who have toggled tells off (but will receive a warning message about the preference). Players can also send tells to immortals without turning tells back on.
  • OLC:

    • Building flags: Removed the names on deprecated old-style flags like *BEDROOM-DEPRECATED. They have been deprecated long enough and now just show as * to prevent them from being set.
    • Help files: Clarified some OLC help files and fixed an example in the mob-vars help.
    • Object types: Removed the names on the *CART and *SHIP type, which have been deprecated a long time.
    • Progressions: Perks will now show their vnum (if they have one) on edit/vstat progress.
    • Skill editor: Fixed a bug in the auto-auditor where it would error on comparisons to itself over and over.
    • Trigger attach types: Added a note in the editor to "use Room" instead of the other already non-selectable types, as a visual hint.
    • Weapons: The object editor will no longer default weapons to 'slash' and will instead default to 'reserved' so that the editor shows it as unchanged correctly, and so the auditor will catch a missed attack type, if the builder hasn't set it.
    • Will o' the wisp: No longer an animal. Now drops a unique, very-long-lasting light.

Patch b5.55 (February 5, 2019)

  • Bugs:

    • Command interpreter: Fixed a CircleMUD/DG Scripts bug where the command interpreter uses the global 'arg' variable, resulting in your command changing if a script executes a command before it finishes processing the command you typed, e.g. in a mob's command trigger where the mob itself executes commands.
  • Content:

    • Animals: Added more look descriptions to map animals.
    • Donkeys: Added a wild variant of donkeys. Domestic donkeys now only spawn on claimed city tiles including temperate and desert tiles; the wild version spawns on unclaimed deserts and desert crops.
    • Dragons: Now drop a unique item instead of random gold.
    • Hypnotoad: Added a fight script.
    • Mermaids: Now drop a unique item instead of random gold. Replaced the 'animal' flag with a 'human' flag. Mermaids are now female instead of genderless.
    • Taming: Some tame-able animals now have scripts that add a mini-game to taming. Feeding the animal will increase tameness. The Summon Animals ability overrides the need for tameness.
  • Immortals:

    • Rewards: Added a new reward lootbox (vnum 9999) that sequentially reward the next mini-pets in the 9900 vnum block (with a few exceptions), based on which ones the user already has.
  • Scripting:

    • Command triggers: Fixed a bug where command triggers run twice if you didn't abbreviate a command AND it didn't block the command. It now only runs once.
    • obj.is_component: New variable that lets you test component types of an object.
    • Room variables: Allowed ne/nw/se/sw in %room.northeast()% calls, and similar, so that pre-validated player input directions can be used here after being expanded with %input.mudcommand%.

Patch b5.54 (January 29, 2019)

  • Abilities:

    • Animal Husbandry: New Trade ability that is required for barde, herd, milk, shear, and tame.
  • Commands:

    • Barde: Now requires Animal Husbandry.
    • Herd: Now requires Animal Husbandry.
    • Milk: Now requires Animal Husbandry.
    • Shear: Now requires Animal Husbandry.
    • Tame: New command corresponding to a new mob interaction type. Tame has a 3-minute cooldown and only requires Animal Husbandry (with the intention of adding triggers for tame minigames).
  • Content:

    • Animals: Added look descriptions to many map animals. Consolidated the meat for butchering some animals that give more than 1 fillet.
    • Big cat pelt: Crafts that use this pelt now use (large fur) instead.
    • Birds: Now usually give feathers when butchered.
    • Camels: Now only spawn in cities, during the day. Added wild camels that spawn on unclaimed land and can be tamed.
    • Cats: The black cat now only spawns in cities. Added a wildcat that spawns outside cities and is skinnable.
    • Cows, chickens, donkeys, pigeons, roosters: Changed the spawn rules so these animals only spawn on claimed city tiles.
    • Deer: Added deer antlers.
    • Horses: Updated the spawn rules for horses. The domestic horse breeds now only spawn in cities, while unclaimed areas now spawn wild horses that can be tamed.
    • Jackalope: Now has antlers when butchered. Also changed its attack type from 'hit' to 'gore'.
    • Mammoth: Now provides valuable tusks when butchered.
    • Sasquatch: Now has a unique hide when skinned.
    • Sharks: Now have their own shark meat. Added a cooking recipe for dried shark meat (+movement).
    • Sheep: Domestic sheep no longer give large skin, and now only spawn in claimed city tiles. Added wild sheep who are not shearable and only spawn on unclaimed tiles.
    • Tiger: Now has its own pelt.
    • Unicorns: Now give a unicorn horn when butchered.
    • Wolves: The snarling and brown wolves now load small wolves as followers; the small wolf no longer spawns on the map. All wolves now have the bring-a-friend flag and will join combat. Wolves now sometimes give wolf fur when skinned, which tans into large leather.
    • Yeti: Now has a luxurious fur when skinned.

Patch b5.53 (January 22, 2019)

  • Abilities:

    • Outrage: Cleaned up the logic a bit, and allowed NPCs to use it to hit players.
  • Adventures:

    • 52 Tutorial Quests: Fixed the Complete More Tutorials completion text. It also now mentions how to use your mini-pet.
    • 123 Ruins: Thieves: Fixed a typo in a combat script.
    • 181 Goblin Mines: Fixed a typo in a room description.
    • 16000 Invasion of: The Goblin Necromancer: Fixed an issue where fleeing and reengaging the necromancer would result in an easier fight due to missing triggers.
  • Content:

    • Microtutorials: Fixed the fire-starting instructions in the Brick Tutorial.
    • Mob emotes: Fixed text in emotes for dogs and the harbor seal.
  • Help files:

    • Various: Minor text corrections and updates.
  • Scripting:

    • has_trigger: New script variable for testing if a person/obj/room/vehicle has a trigger attached.

Patch b5.52 (January 15, 2019)

  • Adventures:

    • 12000 Binding Circle: Anat: Messaging fix in one of Anat's attack scripts.
    • 12650 Magiterranean: The Grove: Killing any of the named druids now opens the fog bank and starts the delayed-despawn timer, if this hasn't already been done.
  • Commands:

    • Drive/pilot/sail: Fixed a bug where you could not target portals with these commands.
  • Displays:

    • Fight messages: Fixed a long-standing typo when you miss with a hit-type attack. This typo is from CircleMUD 3.0 (1996).
  • Immortals:

    • Util approval: Added a tool that converts all existing player approvals either "to character" (so new alts are not approved) or "to account" (so new alts will already be approved).
  • OLC:

    • Craft editor: Fixed a bug where deleting a craft could crash the mud.

Patch b5.51a (January 2, 2019)

  • Commands:

    • Drink: No longer allows you to drink from an item that's bound to someone else.
    • Mapscan: This command now shows the first vision-obscuring tile on the island you're on.

Patch b5.51 (December 11, 2018)

  • Adventures:

    • 282 Goblin Logging Camp: Now leaves behind stumps instead of plains on the tile the adventure spawned on, after it despawns.
  • Commands:

    • Keyword lists: Commands that allow multiple keywords, such as "retrieve 10 bunch apples" will now also filter out filler words like "of", so you can finally type "retrieve 10 bunch of apples" (so long as the non-filler words are all keywords). Also added "of" to the list of filler words, which already included words like "from" and "to".
  • Content:

    • Heroic pegasus shoe: This item now uses Forge (not Craft).
  • Help files:

    • Various: Minor typo fixes and updates.
  • Progression:

    • Loading: Fixed a small bug where the mud would throw errors during startup while loading some progress goals.

Patch b5.50 (December 4, 2018)

  • Abilities:

    • Pickpocket: Now stacks identical result messages.
    • Stablemaster: Mounts released using this ability now gain no-drink-blood and no-experience flags to prevent exploits related to releasing a mount, using it for one of those things briefly, then re-stabling it.
  • Adventures:

    • 10965 Giant!: Fixed the loot lists for the giants. The causeway schematic was dropping in place of the 30% golden goose treasure on the river and dune giants. Meanwhile, the river giant was dropping the hovel instead of the causeway for its 12.5% schematic reward.
    • 16000 Invasion of: The Goblin Necromancer: Fixed typoes in the description of the stapes earring.
  • Commands:

    • Distance: This command now works for mortals, in a slightly more limited form, for measuring distances to coordinates. "Directions" is now also a synonym for this command. Added both commands to the "tips".
    • Fill: Now allows "fill canteen well" (or other names based on the name of the room you're in).
  • Content:

    • Clay pit: No longer has 'rock' on its dig list, preventing workforce from depleting a clay pit on rocks alone when clay is already full.
  • Help files:

    • Fibers: Added the bale of straw.
  • Immortals:

    • Set mount: New set option to give/revoke mounts.
    • Show mounts: New show option.
    • Show stats: Now shows a count of help files.
  • OLC:

    • .map decay: Now also updates depletions.
  • Vehicles:

    • Memory: Fixed a possible memory error from b5.49 in free_vehicle.

Patch b5.49 (November 27, 2018)

  • Abilities:

    • Rejuvenate: Fixed a minor bug that was triggering a syserror when used by mobs.
  • Buildings:

    • Fame, military: These properties can now be set on interior/designated rooms, not just map buildings. The code already supported this but there was no way to set it in the editor.
    • Functions: Most building function flags now also work on vehicles, except: mine, tavern, tomb, library, portal. Added a new in-city-only function flag (buildings previously used the in-city-only building flag). Fixed a bug where functions often worked even if the building was incomplete.
    • Spawns: Fixed a bug where building spawn lists were never freed.
  • Content:

    • Armorsmithing: Fixed 2 items that still had "copper" in the name (and cost) of their crafts, instead of bronze.
    • Large House: Raised the room count from 5 to 7, to match the "complexes" that are all learned from the same goal as the large house.
  • Empires:

    • Workforce: Fixed a bug where having a TOTAL amount of a resource over the island's user-configured limit would prevent the chore on that island, even if the LOCAL amount of that resource is below the limit.
  • Help files:

    • Damage: Added a full help file for damage, linking to meters and DPS roles. It also lists the amount of damage that causes each of the damage messages, such as "massacre" and "decimate".
  • Vehicles:

    • Immobile functions: Created a list of function flags that only work if the vehicle cannot move.
    • New properties: extra descriptions, function flags (like buildings), map spawns, interactions (using the room interaction list), fame, and military. These were added to allow vehicles to function similar to open buildings.

Patch b5.48b (November 6, 2018)

  • Adventures:

    • 52 Tutorial Quests: Updated the text of the Vampire tutorial.
    • 18200 The Guild of Adventurers: Fixed a bug in the "Signal Malfernes" script.
  •  Commands:
    • Score: Fixed a bug where immortals using score were sending some of the data to the wrong person.
  • Content:

    • Cache of Resoures: Updated this progress goal to require fewer saplings and lumber. Also fixed an error in the description.
    • Forge Horseshoes: Updated quest text that incorrectly states the gender of the stablemaster.
    • Shrub mini-pet: Fixed emote text.
    • Utility Shed: Updated the room description to not mention tools that don't exist.
  • Help files:

    • City Dailies: Added a note on requiring citizens to move in first.
    • Members: Updated the text on how city point overages are resolved.
    • Rare Metals: Added a list of mines and added "metals" to the see-also.
    • Various: Minor text corrections.
    • Workforce: Clarified number of citizens that will work at once.

Patch b5.48a (October 30, 2018)

  • Adventures:

    • 104 Magiterranean: Permafrost: Added a 'stumps' tile for evergreen forest.
    • 282 Goblin Logging Camp: Changed which stumps tile is used by this adventure — it now uses normal stumps, not its own. This patch will cause all existing logging camp stumps on live EmpireMUDs to evolve to regular stumps.
    • 18800 Halloween Candy Quests: Ghosts no longer have blood to drink.
  • Content:

    • Nocturnium: Copper, rather than iron, is now used to smelt nocturnium ingots.

Patch b5.48 (October 16, 2018)

  • Abilities:

    • Basilisk familiar: Fixed a bug with ordering this familiar to use specific abilities.
  • Adventures:

    • 128 Colossal Red Dragon: Updated the text on the draconic patterns to indicate the right skill pair instead of old class names.
    • 160 The Tower Skycleave: Added missing keyword to the goblin wrangler.
    • 180 Misplaced Mother Goose: Updated the bell to now teach the little lamb mini-pet, instead of summoning the lamb. You no longer have to keep the bell item to use the lamb; just ring it once.
    • 10965 Giant!: Removed erroneous UNDEAD flag from the river giant.
    • 12650 Magiterranean: The Grove: Changed the cotton candy item from "basket" to "bunch" to avoid total keyword overlap with regular non-candy cotton.
    • 18460 Unstable Portal: Updated the script that hands out free mini-pets so that it won't give you one you already collected.
    • 18800 Halloween Candy Quests: Updated the "Appease the Spirits" quests to allow components in the offerings rather than only specific items. Added a progression goal for this adventure (kill the Headless Centaur to trigger it).
  • Commands:

    • Efind: Fixed a missing space after the coordinates.
    • Home: Will now only tell you to use 'home set' if you're in a place you can do it.
    • Tie/untie: You can now use any 'rope' component to tie. The game now stores the vnum of any rope used to tie up a mob or player, and returns that item (by vnum) when untied (rather than a hard-coded rope number). Players will get a message if they receive a rope this way. An auto-updater in this patch will add a rope vnum to all tied mobs.
  • Content:

    • Fire drill: Fixed an error from b5.47 where the craft for this was misnamed.
    • Seaside Jungle: Added missing evolution to stumps.
  • Help files:

    • Leather: Added list of common leathers to the component help.
    • No Trace: Added skillup info.
    • Saplings: Added missing help file for the sapling component.
    • Shipbuilding: Added advanced ships to the bottom of the help file.
    • Various: Minor typo and text fixes.
  • OLC:

    • Auditors: Added a sector auditor. Added interaction auditing to crops, mobs, and objects. Added spawn auditing to crops.
    • Saving: When you save the OLC editor, it will now automatically run the auditor.
  • Scripting:

    • Components: Added new character variables: has_component(type, number, optional flags) and charge_component(type, number, optional flags).

Patch b5.47 (October 9, 2018)

  • Note: This patch resets the mine data on mountain tiles (like a yearly reset) because of the addition of a new type of mine. This patch also automatically marks islands as having a custom description if they start with any text other than " The island has "; it will now automatically re-generate descriptions for islands without this flag.
  • Adventures:

    • 51 Tutorial: Museum of Early Man: Updated the quests with the new resources for the crafts. Reduced the number of stone tools needed at each step.
    • 130 Volcano: Added obsidian to the dig list on volcano tiles.
    • 282 Goblin Logging Camp: Now uses the new 'stumps' tiles instead of its custom version.
    • 10965 Giant!: Added missing mob messages. Giants now have 'enormous' size and drop a real corpse instead of the incorrect fake corpse from the first version of the adventure.
    • 10980 Renegade Spellcaster!: A new adventure with roaming encounters, similar to the giants.
    • 12000 Binding Circle: Anat: Added 'tomb' flag to the Tomb of Anat's main room, for people who don't want to designate crypts in it.
    • 16000 Invasion of: The Goblin Necromancer: Minor updates to triggers and item storage.
    • 18300 Pyramid: Hidden Chamber of Neferkare: Balance fix to the combat scripts (this should have been imported a long time ago and was missed).
    • All: Added mob sizes to all adventure mobs and morphs.
    • Various: New mob descriptions on some existing adventures.
  • Commands:

    • Burn: Now an alias for 'light'. Both commands can now light the area you're in, if it has the correct sector evolution. For example, this is used to burn stumps. Burning has a long preparation period during which you can cancel it or be interrupted, but is instantaneous when that ends.
    • Dig: Now gives an error message if you type 'dig rock' or any other target, to avoid confusion when people try to dig for specific items and it doesn't work that way.
    • Gather: Most gather-able tiles now give saplings at 12%, and each climate now has its own 'sticks' item. Updated the messages from gather so they no longer strictly indicate that you're looking for sticks.
    • Minipets: New command for listing, summoning, and dismissing your mini-pets.
    • Saw and scrape: Saw now gives some plant fiber (formerly sticks) like scrape does. Adjusted the items given by both saw and scrape; some now also include a chance of saplings.
    • Use: This command now adds a mini-pet to your collection.
  • Content:

    • Bound wooden column: Now made from saplings and rope instead of lumber and sticks.
    • Bronze: New common basic metal that replaces copper in many crafts. Bronze is made by smelting tin and copper ingots.
    • Buildings: The cost to build and maintain many buildings were updated on many buildings due to the change to sticks and the addition of saplings. Many buildings now require plant fiber as roofing.
    • Calabash: A new gourd crop that grows on the newbie island. Letting the gourds dry out will allow you to craft them into gourd bottles.
    • Copse: A new terrain type from wood regrowing on chopped stumps. Copses give saplings when chopped and eventually regrow into forests. All terrains now have a copse type.
    • Familiars: New mob descriptions by Yvain on all familiars.
    • Fibers: Added hard and soft component flags to various fibers.
    • Forge: Many of the basic forged items now require (basic metal) instead of (common metal).
    • Flint: Most stone tools are now made out of flint. Flint can be chipped. Removed the 'flint set' tutorial. Flints now have a chipping mini-tutorial instead.
    • Flint set: Removed this item and replaced it with a firesteel item made in the forge. Primitive firestarting is now done with new single-use fire sticks. Woodworking can also now make a fire drill.
    • Forests, groves, and jungles: When you chop down the last tree on a forest tile, it now becomes "stumps". If left alone, the stumps will grow into a copse. You can remove stumps with fire, but can no longer remove forests by chopping alone. Also added a new intermediary tile between plains and forest, with a low number of saplings.
    • Gourds: The generic 'gourds' crop is now called 'squash', reconciling its items.
    • Handaxe: Now made from flint instead of generic rock. Now a blunt weapon (although it can still be used for mining).
    • Imperium ingots: Now require tin to create.
    • Mini-pets: New descriptions by Yvain on many reward mini-pets.
    • Newbie bottle: The bottle that comes with new players is now a gourd bottle instead of a clay bottle. It is also now craftable from bottle gourd plants.
    • Nocturnium ingots: Now require iron to create.
    • Obsidian: New rare dig result that can be chipped and crafted.
    • Riverbank and shore tiles: Changed the short names from 'Forest' to 'Forested Riverbank', and similar, to avoid confusion with non-riverbank/shore tiles.
    • Rope: The existing rope has been renamed 'leather rope' and a new basic rope has been added which is made from plant fiber.
    • Rocks: Updated the descriptions and functions on all rocks. Generic rocks are no longer used to make most stone tools and can no longer be chipped. The rock tutorial quest is now attached to flints instead.
    • Sticks: Regular 'stick' items have been replaced by 'sticks and leaves' (temperate), 'thorny branches' (desert), and 'tangled vines' (tropical). These items now have the 'basic hard plant fiber' component type.
    • Straw: A new plant fiber item received from harvesting cereal crops.
    • Stumps: New terrain resulting from chopped forests. Stumps will regrow into a copse, or can be removed with fire.
    • Tin: New uncommon poor/basic metal which is smelted with copper to make bronze, and smelted with imperium ore to make imperium ingots.
  • Crops:

    • Default sector: Corrected the 'default sector' for tropical crops to "light jungle" instead of full jungle.
    • Harvesting/chopping: when a crop is removed, it will now always become the 'default sector' instead of the sector it was before being a crop. This fixes several bugs where crops grow in unusual ways.
  • Displays:

    • Island descriptions: The descriptions shown on 'chart' will now auto-update when the mud reboots (but at most once per day), unless they have a custom description.
    • Look at character: Rearranged some of the data and added support for mob/morph descriptions. Character size now shows on look-at, for most sizes.
  • Factions:

    • Reputation: Multiplied the reputation scale by 10, so it now ranges from -1000 to 1000. Kills for kill-based factions still give +/- 1 reputation (but there are no kill-based factions in any stock adventures). All 35 stock quests that use reputation had their rewards multiplied by 10, so the number of times they must be completed is unchanged. This change will have no immediate effect on players.
  • Immortals:

    • Claim: Immortals can now claim when over their claim cap.
    • Instance: Added 'instance info' for looking up full details on an instance.
    • Set minipet: Allows an immortal to add/remove minipets from player collections.
    • Show minipets: View the mini-pet collection of other players.
  • Mobiles:

    • Content: All existing mobs now have sizes assigned to them.
    • Look description: New mob property (returning from CircleMUD after being removed in EmpireMUD 0).
    • Sizes: Mobs now have a "size" attribute that determines blood pool, visibility, and corpse size/flags.
  • Morphs:

    • Content: All existing morphs now have sizes assigned to them.
    • Sizes: Added a size field to morphs.
  • Objects:

    • Components: The 'stick' component is now called 'sapling', representing a young tree that is used for handles, shafts, and poles. Existing 'stick' items have been changed to 'plant fiber' components.
    • Lighters: Added a new 'lighter' item type. These can have limited or unlimited uses. This replaces the hard-coded 'flint set' in the 'light' command. Lighters can now be BoE and, if so, will bind when first used.
    • Minipet: New item type that adds a mini-pet to your collection when targeted by the 'use' command.
  • OLC:

    • Auditors: Mobs and morphs now audit for look description.
    • Control flags: Fixed a bug where several of the OLC control flags had the wrong ids and did not work.
    • Look description: Field added to mobs and morphs.
    • .map unclaimable: No longer toggles ocean tiles, which would result in the ENTIRE ocean toggling because the data is shared.
    • Medit fullsearch: Now allows -size.
    • Object search: Now correctly finds objects that are in global newbie gear lists.
    • Progression: Fixed a bug in the flag that controls editing of progression goals. Also inverted the flag so it turns off progressions, rather than turning them on, to match other control flags.
  • Players:

    • Mydescription: The description set by this command is now stored as look_descr not long_descr, as mobs now also have this trait.
    • Mini-pets: Players now have a collection of mini-pets, similar to mounts, rather than having to keep the mini-pet whistles around.
    • Vehicles: When a player quits while sitting in/on a vehicle (such as a canoe), the game will now attempt to re-seat them if the vehicle is still present when they log in.
  • Scripting:

    • Lighters: Added %char.find_lighter% and %obj.used_lighter(%char%)% so scripts can manage normal lighters.
    • Mini-pets: Added %char.add_minipet()%, %char.has_minipet()%, and %char.remove_minipet%.
    • Stat script: Fixed how some script variables are reported when a script is statted (in stat character, stat obj, etc).
  • Sectors:

    • Burns-to: Added a new evolution type that happens when players burn an outdoor tile (different from burning buildings). This operates with the burn/light command.

Patch b5.46 (September 18, 2018)

  • Adventures:

    • 10965 Giant!: A new level 100-175 Hard adventure with three wandering giants.
  • Commands:

    • Portals: The list of portals is now sorted by distance from your current location, with your own portals listed first. It also now shows the distance to each portal on the list. You can now portal by-keywords, in addition to by-number. You can also now type 'portal -near <coords>' to see portals near a target location.
    • Score: Now shows your bonus traits.
  • Immortals:

    • /grats logs: Immortals no longer trigger level-based logs.
  • Players:

    • Anonymous public hosts: Characters logging in from hosts that don't pass through unique IP addresses will no longer be bounced by the multiplaying check. (Only unapproved characters can connect from these hosts.)
  • Quests:

    • Tutorials: Fixed a bug where you could automatically start a tutorial quest despite having tutorials toggled off, if it's a chain from a previous quest. These quests will no longer auto-chain in this case.

Patch b5.45 (September 11, 2018)

  • Commands:

    • Customize road: You can now name roads.
    • Eidentify: Now shows keep status in the "stored" section.
  • Displays:

    • Look in vehicle: Now gives the capacity and count of contents, similar to the inventory command.
  • Empires:

    • Workforce keep: You can now specify how many to keep rather than all/nothing.
  • Immortals:

    • /grats logs: Immortals no longer trigger skill-based logs.
    • Show buildings: Added a new show option for seeing counts of various buildings in the world. It can also show the locations for a specified building, with owner.
    • Show crops/terrain: Upgraded these shows with the option to specify a crop/sector and see specific locations for it (for as many as will fit in the buffer).
  • OLC:

    • Fullsearch: Now supported for mobs.

Patch b5.44 (September 5, 2018)

  • Adventures:

    • 10775 Tree of Knowledge: A new microventure that spawns special trees around the world. Each tree can be 'picked' once for a special fruit that gives an intelligence food buff and, if the player is gaining any skills, 1 free skill level. Trees last roughly 4 weeks, but only 1 is added per day.
    • 10950 Viscous Muck Dragon: A new 225-325 group adventure with a dragon that patrols swamps and rivers. The muck dragon is meant to eventually replace the map-spawning green dragon.

Patch b5.43 (August 30, 2018)

  • Adventures:

    • 16000 Invasion of: The Goblin Necromancer: A new adventure that spawns in rare adventure tiles, designed by Domino.

Patch b5.42 (August 22, 2018)

  • Abilities:

    • Ready Blood Weapons: Fixed a bug where non-slashing blood weapons did not result in experience gain during combat.
  • Adventures:

    • 18200 The Guild of Adventurers: Fixed a typo in the Ratcatcher quest.
    • Various: Minor trigger fixes.
  • Combat:

    • Player-killing: You can now attack any player whose empire has a thievery permit against you. You can also now attack any player who is carrying a stolen item that belongs to your empire.
  • Content:

    • Walking tree: No longer supplies blood to vampires.
  • Empires:

    • Empire admin flags: Fixed a bug where these flags were lost during a reboot (or crash).
    • Theft logs: Empires will now receive verbose logs of stolen items, on a delay.
    • Thievery: New diplomacy mode. When you declare thievery with the 'diplomacy' command, the other empire will not be alerted. This costs gold equal to the war cost (this may be adjusted later). You then have permission to steal from that empire for 24 hours.
  • Help files:

    • City Dailies: Added missing dailies to the help file.
    • Infect, Lacerate: Fixed these two help files, which said 'Survival' rather than 'Vampire'.
    • Metals: Added missing argentine and eventide metals to the help file.

Patch b5.41 (July 10, 2018)

  • Abilities:

    • Chant of Nature: Lowered the magic growth chance on seeded crop tiles from 50% to 20%.
  • Adventures:

    • 128 Colossal Red Dragon: Fixed a minor issue where the 'dragonstatue' building required a direction, but didn't need it.
    • 12400 The Golden Goblin: Banded sea snakes are now skinnable.
    • Flags: Added a new adventure flag, CHECK-OUTSIDE-FIGHTS, which prevents an adventure from despawning while someone is fighting its mobs outside the instance. This will fix a bug in Ba'al Hadad, and has also been added to Clockwork Colossus and Anat.
  • Bug fixes:

    • Slash-histories: Fixed a bug from b5.40 where slash histories were saving in the wrong place or getting lost.
  • Configs:

    • new: restrict_anonymous_hosts 1
  • Displays:

    • Various: Minor text corrections and tweaks.
    • Tips: Removed tips that referenced classes.
  • Help files:

    • Support familiars: Added the missing help file explaining how to use support familiars.
    • Various: Minor typoes and corrections.
  • Players:

    • Approval: Added a new configurable system that restricts players from anonymous public sites such as mudconnect.com. Approved characters cannot log in from these sites, and new characters on these sites will not auto-approve.
  • Progression:

    • Hidden Progress: New progression goal that lets you hide your empire's progress on the /progress channel.
  • Scripting:

    • %heal%: Fixed a bug where script healing could slightly raise dead players, with wacky results.
  • Skills:

    • Daily bonus experience: Reduced the skill gain penalty for not having bonus exp by half.

Patch b5.40 (June 26, 2018)

  • Adventures:

    • 125 The Goblin Challenge: Added a command hint to the difficuly selector.
    • 127 Wandering Dragon: Renamed from "Abandoned Dragon Nest". The 'nearby' command now finds a tile closer to the dragon, rather than finding the empty nest.
    • 128 Colossal Red Dragon: Corrected typoes in the dragon library.
    • 160 The Tower Skycleave: Attached missing triggers.
    • 201 The Cursed Chalice of Mill Manor: Minor typo fix.
    • 12400 The Golden Goblin: Updated the description on the items which previously claimed they needed the Advanced Ships ability.
    • 12500 Clockwork Colossus: Adjusted the stats on the embiggening suit due to concerns that no other clothing in the game has comparable stats.
    • 12650 Magiterranean: The Grove: Completing the quests now immediately completes the adventure, which improves the result on the seeker stone.
  • Commands:

    • Chores: Added missing no-npc checks to several chores in the act.actions.c file where it was possible to trigger an error from looking up player-specific data on an NPC (even though NPCs were already unable to actually perform the action).
    • Ship: When you try to "ship cancel" from the wrong island, it now gives a more useful error message.
  • Content:

    • Celestial Forge: Now has "forge" on its commands list.
    • Mining Tutorial: Updated this quest's text to mention that you need to find an iron or copper mine specifically.
    • Swift serpent: Changed the move type from "walks" to "slithers".
    • Wooly mammoth: Can now be sheared.
  • Displays:

    • Deaths: No longer appear on the mortlog. Instead, they now have a channel called /death that displays death notices.
    • Default channels: Players now start out on three additional channels: /grats, /death, and /progress. These channels report player achievements and misfortune.
    • Known portals: Fixed an error where the space in this list was on the wrong side of the coordinates.
  • Help files:

    • Actions: Updated the list of things that speed up timed actions.
    • Excavate: Fixed see-also and added progress goal to speed bonuses.
    • Idea: Changed the example in 'help idea' because the old example was exactly the kind of terrible non-idea we don't need.
    • Jewelry: Corrected a badly-outdated section about materials.
    • No-Paint: Added a help file for this toggle.
    • Painter: Now mentions in the help file that it needs Architect.
    • Prospect: Added progress goal speed boost to help file.
    • Various: Minor corrections.
  • Immortals:

    • Wizhide: Now blocks aggro mobs.
  • Scripting:

    • is_flying: New character variable that checks all forms of flying.

Patch b5.39 (June 14, 2018)

  • Adventures:

    • 12500 Clockwork Colossus: Minor fixes for its location scripts.
    • 12650 Magiterranean: The Grove: Fixed small errors in b5.38's Grove update including the tranquility chant and the recipe for candy cloth.
    • 18200 Guild of Adventurers: Fix for the wildling quest that was missed in b5.38.
  • Bug Fixes:

    • Mining: Fixed a bug introduced in b5.38 where building a mine did not initialize the mine data and resulted in showing it as depleted.
    • Roaming adventures: Fixed a major bug in b5.39 where it was possible to cause a crash due to an interaction between the new fake-location code and the map room unloading system. Clockwork Colossus was especially good at triggering this crash.
  • Displays:

    • Message stacking: Added more message stacking to some object actions, to ensure messages appear in a logical order and don't cause spam during certain actions.
  • Mobiles:

    • Echoes: Added support for day-/night-only echoes and says on mobs.
  • OLC:

    • Naturalize: This mapedit command was ignoring crop tiles if the natural type was also crop, even if the crop itself wasn't valid. It will now reset all crop tiles.
  • Scripting:

    • %instance.level%: Fixed a bug where this getter would not return anything useful.

Patch b5.38 (June 12, 2018)

  • Adventures:

    • 100/12650 Magiterranean: The Grove: Completely revamped this advanture and moved it to a new vnum block.
    • 12500 Clockwork Colossus: Applied new location-handling features for roaming adventures. It will now show its location inside and you can now teleport or summon inside.
    • 18200 The Guild of Adventurers: Applied new location-handling features and removed the no-location and no-nearby flags. This roaming adventure now correctly shows its location and allows teleporting into/out of the non-guildhall portion. The mobs in the guildhall also no longer load if it's not still in-city.  Warning: Updating to this version will cause a conflict in your lib/world/adv/182.adv file if you changed the number of spawn locations for the Guild. Keep your version of the data, but remove the 'd' from the 'dl' flags section.
    • Instances: Added a fake-location property to adventure instances, for better support for "roaming adventures".
  • Commands:

    • Various: Added missing in-city checks to commands that use building functions or storage, for buildings that have in-city-only flags.
  • Content:

    • Buildings: Added in-city-only flags to some buildings that were missing them.
  • Displays:

    • Put: Added message stacking to "put object in vehicle".
  • Empires:

    • Cities: Updated many functions to correctly check in-city status for relevant commands and features. Building an in-city-only building and then removing the city should now correctly stop the building from functioning in all cases (previously, this only worked in some cases).
    • Workforce: The fire-brigade workforce is now hyphenated, fixing a problem that was caused by the space in the name when trying to set up chores.
  • Help files:

    • In-city-only buildings: Clarified the text about in-city-only buildings, which must be in-city to function.
  • Immortals:

    • Set: Fixed a bug where 'set file' was not loading the player's delay-file, so setting something in that file (such as coins) did not work correctly when the player was offline.
  • Map:

    • Evolver: Fixed an issue where the "near" and "not-near" evolution rules were not counting the tile's base sector, although all other evolution rules did count it.
  • MSDP:

    • Room information: MSDP will now update the player's location and room info immediately upon moving, rather than on the next 1-second cycle. All code that moves a character around was updated for this in order to ensure only real moves trigger this update.
  • Scripting:

    • Instance locations: Added %instance.real_location% for the instance's original location and %instance.set_location(...)% to set the location for "roaming adventures". The old %instance.location% variable now gets the instance's current location, not its original location.
  • Skills:

    • High Sorcery: The process for learning this skill at the Tower of Sorcery will now correctly check the in-city trait on the tower.

Patch b5.37 (June 5, 2018)

  • Abilities:

    • Devastation Ritual: Now requires chop/harvest permission to devastate each tile.
    • Find Shelter: The shelters now have short, free actions to build them, rather than being instantaneous and messageless.
  • Adventures:

    • 52 Tutorial Quests: Typo fix in one of the soulstream quests.
    • 104 Magiterranean: Permafrost: Updates to Aquilo's combat triggers.
    • 123 Ruins: Thieves: Fixed number required on progression goal.
    • 12500 Clockwork Colossus: Added a message when the goblin junk dealer arrives.
    • 12600 Elemental Escape: Added a trigger to block players from giving the quest items to the apprentice. It now gives you the correct command instead.
    • Various: Adjusted vehicle speeds; fixed progression typoes.
  • Bug fixes:

    • Empire coins: Fixed a major bug where the import system could result in losing all empire coins.
    • Instancer: Fixed memory leak when rooms are instanced. (Lucien)
    • Stacked messages: Now get freed if still stacked when the descriptor disconnects.
  • Buildings:

    • Store-all: New function flag allowing any item to be stored in the building (but not retrieved). (Lucien)
  • Code updates:

    • Coordinates: Added two new functions: coord_display() and coord_display_room() which are used for showing coordinates to a player. They handle no-location rooms, locations off the map, lack of navigation, and fixed-width spacing. Most code that showed coordinates now uses these functions.
    • has_permission: This function can now work globally, or target specific rooms. Previously, it always checked based on the ownership of the room the character is in.
    • Navigation: Standardized how players are checked for Navigation (some functions still did it the old way).
  • Commands:

    • Morph: When using a morph that requires an item, this command will now bind that item if it's BoE. Also fixed a minor bug where canceling a morph that consumed the required-item was unbinding the item.
    • Transport: Will no longer send you to a starting location you're already at. (Lucien)
  • Content:

    • Depository: New building from the Foundations goal. You can store all normal storables at the depository (but not retrieve them).
    • Full Coffers: This goal now has the correct wealth requirement.
    • Mill: Updated the description to indicate it is a water mill.
    • Tent: Added a short, free action message while building the tent.
    • Vehicles: All stock base vehicles had their speeds adjusted based on the new vehicle speed system.
  • Displays:

    • Consider: Will now display a message saying you're an "even match" when no warnings appear on consider.
    • Get coins: The amount of coins received is now placed with stacked messages, so it should appear in order again.
    • Message stacking: Fixed stackingon several additional commands (warehouse, give, etc).
    • Minting: Wealth items now display whether or not workforce will auto-mint them when identified/statted.
    • Quest rewards: When you receive an item from a quest, it no longer says (x1) if there's only 1 (this was an off-by-1 error in the display code).
  • Help files:

    • Basic Crafts: Updated the list of commands that generally require basic crafts.
    • Bother: Clarified which setting protects you.
    • Skill reset: Added a note about why players reset skills.
    • Various: Small updates and corrections.
  • Immortals:

    • Naturalize: Naturalizing a single map tile no longer syslogs.
  • Mobiles:

    • Morphs: A morphed mob now uses the morph attack type, not its native attack type.
    • Scaling: Fixed a bug where mobs could end up with negative health/pools after re-scaling.
  • Scripting:

    • Coordinates: The %room.coords% variable now accounts for no-location rooms, and will show (???, ???) for them.
  • Vehicles:

    • Memory leak: Fixed a small memory leak when vehicles are loaded.
    • Speed: Vehicles now have variable sail/drive/pilot speeds. (Lucien)

Patch b5.36 (May 29, 2018)

  • Adventures:

    • Various: Added additional triggers to start some adventure progression goals, to ensure players don't miss them before fighting the boss or claiming the buildings.
  • Code updates:

    • OS X: Small fix that allows the mud to start up in OS X (from Lucien Sadi).
    • Timed actions: Changed the timers to allow 0.2 intervals, which improves the outcome when stacking multiple speed bonuses on a chore. The speeds, based on number of bonuses, are now: 10 seconds, 5 seconds, 3.4 seconds, 2.6 seconds, 2 seconds, 1.8 seconds.
  • Commands:

    • Abandon: You must now type 'confirm' at the end of remote abandon commands, if they target buildings or rare crops.
    • Chop: Increased the value of weapon damage in chopping by 50% to speed up chopping for newbies.
    • Class: Disabled the class command, as classes are currently unused and it gives an unexpected error.
    • Excavate: Increased the time bonus of the "Fast Excavate" tech.
    • Mine: Increased the value of weapon damage in mining by 50% to speed up mining for newbies.
    • Progress: Fixed a crash bug in this command.
    • Prospect: Increased the time bonus of the "Fast Prospect" tech.
  • Content:

    • Potions and distilled herbs: Fixed the craft index, which was missing 12.craft in b5.35 for some reason. This meant some crafts including potions were not available.
  • Displays:

    • Incomplete buildings: Improved the error messages in incomplete buildings for the following commands: all craft commands, chant of illusions, home, mail, mount swap, portal, saw, shear, tomb, trade, warehouse.
    • Prompt: Added the %I (capital i) token for inventory size in the prompt/display.
    • Spam stacking: Added a new system for queueing and stacking messages for commands like get, drop, put, store, etc. Also applied this to logs.
    • Typoes: Multiple spelling fixes (from Lucien Sadi).
    • Workforce: When types with no arg, now displays settings for the island you're on, and marks chores that are different on other islands with an asterisk (or the word "partial" for screen reader users).
  • Empires:

    • Workforce: Fixed a crash bug in dismantle-mines (introduced in b5.35).
  • Help files:

    • Buildings and goals: Added help files for all goals that grant buildings, listing those buildings. This replaces older help files where they were listed by ability.
    • Info: Added a blurb about the progress system.
  • Scripting:

    • Summons: When a player is summoned, the game now correctly fires enter/greet triggers.

Patch b5.35 (May 22, 2018)

  • Abilities:

    • Summon Bodyguard: Lowered the difficulty on this ability's skill roll from "medium" to "trivial".
  • Adventures:

    • 12030 Binding Circle: Ba'al Hadad: Adjusted the difficulty of the combat scripts.
    • Various: Most adventures now have a progression goal that appears when you first enter the adventure.
  • Bugs:

    • Dismantle-mines: Fixed a bug in this workforce chore where the worker mobs would not despawn on their own in most cases.
    • Mob movement: Fixed a minor bug that resulted in a SYSERR log when mobs moved in unfinished tunnels.
  • Commands:

    • Scan: The "scan unclaimed" version now ignores tiles that are not on islands, as those can never be claimed.
  • Content:

    • Fishery: Added two more types of fisheries. The original fishery is now called an "ocean fishery".
    • Stilt House: Removed build-on-river flag that made it through by mistake.
  • Displays:

    • Empire detail: Change the formatting on the territory explanation line, and added bonus territory.
  • Empires:

    • Merging: When empires merge, any inventory that's in the "no island" state will automatically move to the empire's main island.
    • Workforce: Can now fish in fisheries. Added a FISHING function flag to support this.
  • Immortals:

    • Moveeinv: Can now target "island -1" (ocean), allowing imms to fix inventory in cases where it's not on any island (e.g. after a new map).
  • Lag:

    • Nameserver lookups: The mud now automatically detects when a lookup is slow and adds it to the ignore-list. This prevents lag from specific players reconnecting repeatedly.
  • Progression:

    • Command: The basic progress screen now shows your current goals, and the old default display is now available under 'progress summary'. Viewing a goal now always lists its prerequisites even if you meet them already. Viewing a goal also now shows goals that it is a preqreq of. You can now optionally type "info" before a goal name (preventing confusion with other similar commands).
    • Goals: Minor fixes to existing goals. Workforce now requires that you have citizens before you can buy it. Many goals now give bonus territory. Stilt Buildings now grants all 3 fisheries. Fixed a bug where kill-mob goals autocomplete.
    • Rewards: Can now reward bonus territory at a flat rate.

Patch b5.34 (May 16, 2018)

  • Note: This massive patch introduces the new progression system and major changes to skills and abilities. This patch contains an auto-updater that will despawn some instances and mobs, will reset all empire progression, and will clear abilities, cooldowns, affects, and the Empire skill from all players. Players who lose Empire skill will receive bonus experience. Expect to see some missing cooldown/missing affect errors during the first startup. The auto-updater will repair these.
  • Abilities:

    • Advanced Shipbuilding: Removed this ability. Its base ships now come from progression goals.
    • Advanced Tactics: Removed this ability. Guard towers now come from 3 different progression goals.
    • Ancestral Healing: This is now a purchased ability in Natural Magic, rather than a synergy ability.
    • Architect: New ability at Trade 75 which is used for most crafting patterns. It also lets you build: cabinet of curiosities, courtyard, fountain.
    • Artisans: Removed this ability. Most of its buildings were moved to the Foundations goal.
    • Build: Moved "Basic Buildings" from Empire 0 to Trade 0; it is now just called "Build".
    • Build Haven: Removed this ability. Its buildings are now part of a progression.
    • Chant of Illusions: Moved from a Natural Magic/Empire synergy to NatMag/Stealth.
    • Chores: Removed this ability. Its crafts now require Basic Crafts or Primitive Crafts, and its globals (mines) now require Build.
    • City Lights: Removed this ability.
    • Commerce: Removed this ability.
    • Customize Building: Moved to the Trade skill.
    • Deep Mines: Removed this ability. It is now an empire technology instead, and now benefits the whole empire.
    • Elder Crafts: Removed this ability. The oasis drainage building has been moved to a progression goal.
    • Erode: Removed this synergy ability.
    • Exarch Crafts: Moved from an Empire/Sorcery synergy to Trade/Sorcery.
    • Grand Monuments: Removed this ability. Its buildings are now granted by progression.
    • Griffin: Moved from an Natural Magic/Empire synergy to several other Natural Magic synergies.
    • Guildsman Crafts: Removed this ability. Its crafts were moved to Antiquarian (Trade/Vampire) and Artificer (Trade/Sorcery).
    • Herb Gardens: Removed this ability. The gardens now come from a progression goal.
    • Housing: Removed this ability. Its buildings are now granted by a progression goal.
    • Inspire: Moved this ability to Vampire.
    • Locksmithing: Removed this ability. Its tech is now a progression reward.
    • Luxury: Removed this ability. Its buildings now come from various progression goals.
    • Manticore: Moved from an Natural Magic/Empire synergy to several other Natural Magic synergies.
    • Monuments: Removed this ability. Most of its buildings are now granted by progression goals, except park and shrine, which now only require Build.
    • Noble Bearing: Moved to the Battle tree.
    • Prominence: Removed this ability (but Prominence remains an empire tech solely for displaying on the main empire list).
    • Prospect: This command no longer requires an ability.
    • Raise Armies: Removed this ability. Its buildings are now spread over several goals.
    • Rare Metals: Removed this ability. It is now an empire technology.
    • Reward: Removed this ability.
    • Roads: Removed this ability. Roads are now unskilled (except on mountains). Roadsigns now require Customize Building instead of Roads.
    • Scour: Removed this synergy ability.
    • Shipbuilding: Raised to level 80. All ships now require this ability.
    • Stagger Jab: Moved from Stealth/Empire to Stealth/Battle.
    • Summon Bodyguard: This is now a Battle 50 ability. The bodyguard now has a maximum level of 125 (but scales below that based on the player). Lowered the cooldown from 5 minutes to 3.
    • Swamp Engineering: Removed this ability. Most of its buildings got moved to a progression goal of the same name, except the swamp platform, which is on a different progression.
    • Trade skill: Removed Prismatic Crystals, Herbcloth Weaving, Moonstone Smelting, and Verdant Leathers. These are now all empire progressions.
    • Trade Routes: Removed this ability. It is now a progression reward that grants the Trading Post and Mint buildings.
    • Tunnel: Removed this ability.
    • Windstride: Removed this ability.
    • Workforce: Removed this ability. It is now a progression reward.
  • Adventures:

    • 50 Tutorial: Royal Planning Office: Disabled this tutorial adventure until it can be rewritten.
    • 52 Tutorial Quests: Removed the Spirit of Order until Empire quests can be rewritten.
    • 128 Colossal Red Dragon: The "Mythic Forge" crafts now require Trade 100 and Battle 75, rather than Empire 75.
    • 18800 Halloween Candy Quests: The quests which required Empire skill now require Trade instead.
  • Bugs:

    • Archetype menu: Fixed a bug where in-development archetypes were displayed (but not selectable).
    • Islands: Fixed a minor bug where the CRLFs were not converted properly when saving island descriptions.
    • Instances: Fixed a potential crash bug related to instances when a MUD gets a replacement map.
  • Code updates:

    • can_use_ability: This function now works for non-abilities and still provides its other services. Fixed a bug where the ability name, not the cooldown name, was shown by this function when the cooldown is active.
    • Island names: Commands that look up islands by name, such as "chart", will now accept multiword abbreviations, so you can type "unex isl 55" instead of having to type out "unexplored island 55".
  • Commands:

    • Chart: You can no longer chart the ocean — which only had data for the tundra at the edges, with odd results.
    • Craft info: All the "<craft> info <name>" commands, including build info, now work on unlearned recipes too.
    • Progress new: The game now tracks when a goal was started, and also when you last checked new goals. This command now shows any goal started in the last 24 hours, or since you last checked.
    • Upgrade: Fixed a bug where upgrades could be performed without learning the recipe.
  • Configs:

    • Changed default:  land_per_greatness 15
    • New:  max_chore_resource_per_member 100
    • Removed: bonus_city_point_techs
    • Removed: bonus_city_point_wealth
    • Removed: land_per_tech
    • Removed: land_per_wealth
    • Removed: max_chore_resource
    • Removed: max_chore_resource_skilled
  • Content:

    • Archetypes: Disabled the "Building" archetype and removed the Empire skill from several others (in some cases, it was replaced with Trade). Tribal Leader also got a boost to its Greatness (at the cost of Wits).
    • Buildings: Many buildings moved from Empire abilities to progression unlocks. All buildings now require Build (Trade 0) or Architect (Trade 75), in addition to any recipe.
    • Classes: Disabled all the stock classes, which haven't been used in many weeks.
    • Grain for the Miller: This quest now requires/rewards Trade instead of Empire.
    • Mill: Now must be built by a river.
  • Displays:

    • Estats/Empire: Both empire detail displays now show "Greatness, Fame" on the same line.
    • Islands: Changed the thresholds for terrains in the auto-descriptions of islands. It no longer shows any ocean-flagged tiles (like shallow sea) and does not show anything that's less than 5%.
    • Progress: Separated counts for completed vs purchased goals. Goal info now shows what the prerequisites are.
    • Requirements: The get-coins requirement no longer explicitly states "misc coins"; it now just says "coins" and the type depends on the context of the quest or task.
  • Empires:

    • Bonus Experience: New empire tech that gives +5 daily bonus exp to all members.
    • Cities: There is now a limit to how large you can upgrade your city, and progression goals can reward larger maximum city sizes. Removed the city points that came from Prominence, techs, and wealth (to be replaced by new progression goals which reward permanent city points).
    • Citizens: Empires must now have the "Citizens" tech before citizens will move into homes and shops.
    • Diplomacy: You now require the Trade Routes tech before forming trade agreements.
    • Escore: Replaced several empire score categories with progression categories, where progress points in those categories will contribute to escore instead of: diplomacy, fame, military, or techs.
    • Greatness: Added a new "territory per greatness" attribute which can be modified by progression perks. Lowered the default value of the land_per_greatness config to 15.
    • Tunnels: Added an empire technology that allows the empire to build tunnels.
    • Wealth: Added a new "territory per 100 wealth" attribute. This takes the place of the old Commerce ability's flat 1/10 bonus.
    • Workforce cap: The resource caps for workforce have changed. The cap is now 100 per member globally. Added a new empire attribute that raises this (via progression).
  • Immortals:

    • Learn: Immortals can now use the learn command with a craft vnum, rather than needing a recipe, if they need to quick-learn.
    • Show progression: New 'show' option that gives stats on the progression system.
    • Show unlearnable: New 'show'  that finds LEARNED recipes that are not taught by anything.
    • Stat empire: Immortals can now stat/vstat empires directly to see concise information including stats not shown to mortals, rather than having to glean information from the empire detail page.
  • OLC:

    • Abilities: Fixed a bug where deleting an ability that is a prerequisite for another ability would result in sub-abilities being hidden in that skill tree.
    • Crafts: Added a BY-RIVER flag that requires the craft happen within 1 tile of fresh water.
    • Globals: Added a RARE flag for globals (which now triggers off of Rare Metals for mine globals).
    • .map terrain: Now accepts sector vnums, too.
  • Progression:

    • Goals: Added 87 new progression goals, and disabled the testing goals.
    • Hidden: New flag that prevents the goal from displaying on regular lists.
    • Tasks: Added new task types: empire fame, empire greatness, empire military, have cities, number of diplomatic relations with given flags. These also apply to quests. Fixed a tracking bug in the own-homes task.
    • Testing goals: Disabled all of the testing goals in the 10-41 vnum range, and added notes about what they were for. They are being left in so that they will correctly remove themselves on any EmpireMUDs that run this patch.
    • Trackers: Removed unnecessary save-empire triggers in goal trackers.
  • Scripting:

    • start_progress: New empire field to begin a hidden progression goal.
  • Skills:

    • Basic flag: New flag; skills without this flag only show up if you have at least 1 level in them.
    • Bonus specialty: Lowered the threshold needed to get a bonus level 75 skill from 2 zero-skills to 1. It now only counts skills with the BASIC flag for this.

Patch b5.33 (May 4, 2018)

  • Abilities:

    • Prospect: Now requires at least guest-permission on a tile in order to prospect it.
  • Commands:

    • /join: "Echo" is no longer a valid channel name.
    • Wield/hold: Now give a better error message if you try to wield/hold something you're already wielding/holding, when there are no matches in your inventory.
  • Content:

    • Clay: Changed from "a pile of clay" to "a lump of clay" for better keyword distinction from bricks.
    • Swamp/Marsh: Changed the icon so the tree matches the color of jungle, making it easier to tell these tiles apart from flooded forest.
  • Empires:

    • Workforce: Fixed a bug (from 2.0 alpha!) where, if an empire citizen is spawned in citizen form and is then called to do work as a chore NPC, the delayed-extraction system (from DG Scripts) resulted in being able to spawn a 2nd copy of the same citizen as another worker on the following chore cycle, leading to citizens working 2 chores at once if they were already spawned when the first chore started.
  • Immortals:

    • Stat room: Now shows empire NPCs who live as citizens in the room.
  • Map generator:

    • Crop warnings: Now reports the specific zone that is missing (or low on) crop tiles.
  • OLC:

    • Requirements: Fixed a bug in the requirements processor where some task types could not be set because the flag processor was not working. These now function correctly, and use "quotation marks" if more than one flag is to be set (since this is not the last argument).

Patch b5.32 (May 1, 2018)

  • Abilities:

    • Barde: Removed this ability. You can now barde mounts without any ability.
    • Huntsman: Removed the Butcher ability and merged it into Hunt, which has been renamed Huntsman. It now grants bonus damage against animals plus 100% butcher and skin chance.
    • Grand Monuments: Added a Celestial Forge building, which lets you break old/useless gear into 'shards' that will be used as a currency in a future patch.
  • Bugs:

    • Archetype selection: Fixed a bug where using 'list' with invalid keywords (or, in fact, with the word 'keywords' as suggested by the usage line) would result in a blank output during character creation.
    • Dismantle: Fixed a bug from August, 2015, where starting a dismantle would not correctly move people out of interior rooms, and would clear the "last move direction" on people in the wrong location. For tunnels, this led to not being able to move until you finish dismantling the tunnel entrance.
    • Don't-Save-Delay: Fixed a b5.31 oversight that was causing many many extra SYSERR lines when trying to access this property on NPCs.
    • Quest start all: Fixed two bugs where 'quest start all' would ignore the daily quest limit and ignore the player's level.
    • Tunnels: Fixed a bug in tunnel movement where a player with no last-moved-direction could not move out of an unfinished tunnel room.
  • Commands:

    • Butcher: Now has a flat 40% chance to fail without the Huntsman ability. Butcher is no longer a standalone ability.
    • History: All histories are now also available on one 'history' command. Rewrote the existing history command function to accommodate this.
    • Learned: Reformatted the display to show comma-separated rows by craft type, removed vnums for immortals, and added empire-wide crafts.
    • Skin: Now has a 40% chance to fail without the Huntsman ability.
  • Content:

    • Read-to-look-at: New stock trigger 9801 converts 'read' to 'look at', for signs.
    • Torch Tutorial: This microtutorial received a typo fix.
  • Crafts:

    • Deleting: Empires and online players now immediately lose a learned craft recipe when it is deleted.
  • Displays:

    • Build-facing: Renamed the "basic-facing" flag from b5.31 to "flat-terrain" so that it makes more sense to players. Also updated help files relating to this.
    • Identify: Will again show level on wearable items regardless of whether or not they are scalable.
  • Empires:

    • Cities: Added elogs to three places where cities could be removed but wouldn't log it. On startup, if the city center location is missing, there will now be an elog for that as well.
    • Crafts: Empires now have a list of learned craft recipes. These recipes apply to all members.
    • Enroll: When two empires merge during an enroll, there is now a specific elog of it. Changed how tiles change ownership during a merge. Merging empires now automatically updates quest trackers (for things like own-buildings).
    • Workforce why: Fixed a minor bug in b5.31's new "general" display where these were showing up under "farming" instead.
  • Immortals:

    • /join: Immortals are no longer limited on how many slash-channels they can join at once.
    • Show learned: Can now also target empires.
    • Show piles: Now also checks chests and vehicles.
    • Where <object>: Now shows the room if the object is inside a vehicle. Also fixed a small spacing issue on immortal "where" displays.
  • OLC:

    • Crafts: Updated the craft auditor to warn when buildings have invalid flags in their build-on field.
  • Progression:

    • Craft perk: Progression goals can now grant craft recipes to empires.
    • Tasks: Fixed a small bug where a goal with no tasks would not auto-complete (this also applies to quests). Added the own-building-function task type, which counts buildings with a specific function flag. Added the own-vehicle-flagged task type, which checks for a vehicle flag. Added the empire-wealth task, which checks total wealth.

Patch b5.31 (April 24, 2018)

  • Abilities:

    • Ability effects: Added a new data type to the ability editor, allowing special effects to be set at the start of the ability. The first effect is 'dismount', causing the player to dismount before using the ability.
    • Fly: Fixed a bug where fly could be used while mounted, but you can't mount while flying. This bug was introduced with the ability editor.
    • Hide: Charmed followers no longer count as "watching you" for the hide command (although you're probably not well-hidden with a charmie present).
    • Jab: Added an extra is-dead check to try to prevent a rare bug where people who die from Jab do not stay dead, and immediately die again.
    • Summon Bodyguard: Added missing !RESCALE flag to bodyguards, and removed PURSUE.
    • Summon Materials: Fixed some issues in counting how many you got, and the messages that are shown when you fail.
  • Adventures:

    • 52 Tutorial Quests: Added a note to the vampire tutorial mentioning it won't trigger and say 'complete' until you re-enter the soulstream. The spirit tokens are no longer items that take up inventory space. Players who have old tokens on existing EmpireMUDs can drop them to convert them to currency instead of objects.
    • 102 Magiterranean: Interdimensional Whirlwind: The glowkra jar is now a 15-minute buff food instead of a 60-minute food with a 5-minute script effect.
    • 104 Magiterranean: Permafrost: Lakes, canals, and estuaries can now be frozen over by this adventure, too.
    • 200 Burrow Canyons: Changed the text on the single pear item so that it has a distinct keyword from the multiple juicy pears.
    • 201 The Cursed Chalice of Mill Manor: Added missing keyword to the wading bird.
    • 282 Goblin Logging Camp: The loggers now have a leash range. Increased the cap on logs to 75. The logging camp no longer loses logs slowly over time.
    • 12400 The Golden Goblin: Updated Fathma's healing percent. Fixed a bug in Scylla's dance-fight.
    • 12500 Clockwork Colossus: Added missing scaling constraints on the clockwork suit. Fixed a bug where one of the loot items was not getting the correct loot quality flags (thanks Yvain).
    • 18200 The Guild of Adventurers: Added clearer error processing to the staff of draconic imagination.
    • 18500 The Lost Temple: You can no longer sacrifice the idol.
    • Various: Updated the build-facing flags of adventure reward buildings.
  • Bugs:

    • Blind: Fixed a bug in the BLIND affect where people with specific abilities could still see the names of characters in the room while blind.
    • Closed buildings: Fixed a small bug where always-closed buildings (like the underground complex) did not force a dismount until they were completed.
    • Darkness: Fixed several light- and dark-related macros that resulted in the Darkness ability not blocking light for people with By Moonlight or Predator Vision.
    • Death: Fixed a bug where equipment on undead mobs was being ignored, and a second bug where objects that purge themselves in a "remove" trigger would probably have triggered a crash.
    • DG Events: Added safeguards to prevent a rare crash when a DG Event (used in script timing and some other systems) is missing some of its data.
    • Greatness: Fixed several bugs related to empire Greatness, all related to the game not knowing which characters should currently be contributing greatness to their empires. Greatness should now apply correctly.
    • Mob-tagging: Kills where your familiar finishes the fight without you joining will now correctly tag the mob (and its loot) for you if you're present in the room, instead of resulting in unbound loot.
    • Last login: Fixed a bug where bad-passwording a character caused that character to show up on 'show account' with your IP (although 'last' and several other commands did not record the new IP). It no longer records the IP unless you log all the way in — like it was supposed to.
    • Lost gear bug: Added another layer of protection to prevent the lost-gear bug (whose actual cause is still not known for sure, but may already have been fixed by b5.30).
    • Island -1: The default name for "island -1" is now "The Ocean" rather than "Unexplored Island -1". This data entry is for things that require island data, and having the name "Unexplored" allowed mortals to accidentally target it with the 'chart' command.
    • Skills: Fixed a bug in gaining maximum skill level, where synergy abilities were not immediately applying to the empire (e.g. Exarch Crafts not showing up in the tech list right away).
    • Shipping: The game now checks at startup that items in the shipping queue still exist, preventing odd crashes in code that assumes they do. This fixes a bug related to deleting objects while the mud is down.
  • Code updates:

    • can_claim: Split out part of the can_claim(ch) function into empire_can_claim(emp) so that part of it can be called separately.
  • Commands:

    • Dig: Fixed a small bug where dig did not stop trying if the tile ran out of diggables.
    • Elog: Improved the overflow protection on this command.
    • /join: Added a limit to how many channels you can be on.
    • /leave: Leaving a slash-channel will now delete it if nobody else is on it.
    • Light: Now correctly has precedence over "list" on the "li" abbrev.
    • Progress: Now separates completed goals from purchased rewards with the new 'purchased' subcommand. Updated some of the text related to this.
    • Scan: Now finds your own chameleon buildings when scanning by tile name (but not by direction).
    • Survey: Now indicates if the island is a continent.
    • Warehouse: Fixed a bug where 'warehouse store all' was unreachable and gave the wrong error.
  • Content:

    • All building recipes: Updated the build-facing flags.
    • Apprentice exarch: Fixed the inconsistent capitalization on this workforce NPC.
    • All terrain: Updated the building flags for all terrain types, including some new flags.
    • Broken vehicles: Finally removed the "broken vehicle" objects leftover from the vehicle transition.
    • Foothills: New terrain for mountains adjacent to lakes, to prevent an issue where fully-surrounded lakes can be permanent traps for players.
    • Trenches: Changed the 'roadside icon' for both trench sectors to '.', from '_'.
    • Trigger 9800: New stock trigger for blocking sacrifice on an item.
  • Displays:

    • Deletion: When a player deletes (or is deleted), the empire now receives a log that the player left the empire.
    • Diplomacy: Empire diplomacy lists will no longer reverse order on the empire detail screen after every reboot.
    • Empires: The basic 'empires' list will now include members who have no territory, if they have Prominence.
    • Estats: An empire's current in-city claim count is now shown on the territory line of estats (and the empire detail).
    • Histories and Elogs: Made the new timestamps from b5.30 more specific with a 2nd unit of precision.
    • Identify: Non-scalable objects no longer show a level on identify.
    • Leaderboards: The leaderboards shown on logout no longer show a category if 5 or more empires are tied in that category. They now also correctly pluralize when 2-4 empires are listed.
    • Look: Dark room tiles will no longer show the room title/name, similar to CircleMUD (previously this was only happening in some cases and sometimes showed it by mistake). Fixed multiple bugs related to dark rooms. Players in tiles affected by magic darkness will no longer see the map (this was mostly a bug).
    • Progress completed: Fixed a display error in the screen reader version of this.
    • Say: Now shows the real name of the speaker when morphed/disguised, if you can recognize them.
    • Shout: Fixed a blank line that was showing up before shouts and other pub_comm channels. Also fixed a bug where it showed the real name of morphed/disguised players, even to people who can't recognize them.
    • Survey: Added a missing line break in outskirts territory.
    • Trench: Completing a trench now has the correct article in front of the new tile name.
  • Empires:

    • Cities: Fixed a bug where territory was not rescanned after a city is "abandoned as ruins".
    • Diplomacy: When an empire fully times out and has no members or territory left, its diplomatic relations will automatically expire (on the next reboot).
    • Einv: The mud now checks at startup to see if any empire has inventory stored at "no island" (which is a temporary holding location used, for example, when there's a new map) and moves it to the empire's "main island" if the empire has any cities. This already happens if you found a city, but the mud now checks it every startup.
    • Escore: Empires whose members are all timed out no longer contribute to escore averages. Previously, they still contributed for up to 2 weeks.
    • Logs: Fixed a bug where old elogs were not being cleared out.
    • Territory: Instead of 35% outskirts and 5% frontier territory, outskirts can now go as high as 40% but shares the last 5% with frontier territory. The "territory" line of estats and the empire detail screen now shows the number of tiles in-city, and the maximums for outskirts and frontier now change based on how much actual space is used by the other types.
    • Workforce: Fixed a minor bug where you could set/see chores on "no-island". Also fixed a small issue where turning off "replanting" temporarily despawned all the farmers. Fixed the same issue for dismantle-mines by giving it its own chore mob (supervisor).
    • Workforce why: Added a new 'general' category that will report if a tile isn't getting worked because it's out-of-city and has an in-city-only flag.
  • Help files:

    • Aggro: New info help file.
    • %aoe%: Added a note about
    • Canal: Added info about canal auto-filling, and added 'canal' to the keywords for the excavate/trench help.
    • Immortal commands: New help file listing mortal commands that have special features for immortals.
    • Legend: Updated the map tiles on the legend.
    • Wait: Added notes on when you cannot use 'wait' commands in scripts.
  • Immortals:

    • City: The city command now allows immortal access (with co-implementor level or the empires grant) to edit other empires, using an optional first argument of the empire name.
    • Coins: This command now shows currency vnums to immortals with the roomflags toggle on.
    • /echo and /recase: Fixed a bug where the wrong one of these required the GECHO grant, while the other only required being an immortal.
    • Instance deleteall: New optional 'all' argument will delete ALL instances in the game.
    • Instance spawn: New subcommand to run a normal instance spawn cycle.
    • Island command: Immortals can now rename "island -1" (the ocean).
    • Moveeinv: Fixed a bug in the output from this command, where it didn't count storage items and would report either the wrong number of moved items, or would claim it didn't move anything (although it did).
    • Set account: Now has priority over "access" on the "set acc" abbreviation, since setting account is significantly more common and "set access" can result in terrible things when used incorrectly.
    • Util playerdump: Fixed the util that outputs players.
  • Map generator:

    • Mountains: Convert to foothills when adjacent to a lake, to prevent mountain-lake problems like "player can never scale the cliffs".
  • OLC:

    • Build-on flags: Added several new flags for buildings/adventures to use for build-on rules. Also updated the names of the flags to improve the ability to set them in the editor. Dropped the "generic" facing command, and replaced it with a basic-facing flag.
    • .* change: Updated several olc editor options that allow a "change" command — ones that previously let you change amount/quantity/value now accept more of those words, to help standardize them.
    • Craft list: Now shows type on the -d detail page.
    • Fullsearch: Fixed a bug where a stray '-' in a fullsearch would result in interpreting the wrong tag.
    • Generics: Fixed a bug where searching for, or deleting, a generic currency did not check/update socials that require it.
  • Scripting:

    • %aoe%: The mob version of this command now hits all players in the room if the mob is not in combat.
    • Argument parsing: Fixed a possible bug where several DG Scripts functions were using the one_argument/two_arguments functions, which can parse out words that are otherwise legitimate in scripts. Changed these to use any_one_arg.
    • Command triggers: Fixed a bug that was allowing immortals to get trapped by command triggers. Immortals can now always 'toggle hassle' as their toggle command cannot be overridden by triggers.
    • Drop triggers: The 'sacrifice' command now fires drop triggers. Drop triggers also now get a %command% variable with which command fired them.
  • Vehicles:

    • Auto-abandon: At startup, the MUD will now un-claim vehicles whose empires have zero active members and zero territory.
    • Purge/transfer: If a vehicle is in use by the shipping system and is purged or transferred by an immortal, it now immediately delivers its shipment first.
    • Ruins: When a building falls into ruins, any vehicles inside it which are not claimed and have no items in them will also decay. This fixes an issue where there are piles of claimed, indestructible furniture long after the empire is gone.

Patch b5.30 (April 17, 2018)

  • Adventures:

    • 12000 Binding Circle: Anat: Combat trigger updates from Yvain.
  • Bugs:

    • Island pointers: Fixed a bug where updating island numbering did not also add island pointers (only ids).
    • Junk data: This patch includes an auto-updater that removes untradable items from trade lists on existing EmpireMUDs, and also clears some junk data from b5.29 in empire attributes.
    • Memory leaks: Fixed 27 places that had tiny memory leaks from incomplete frees.
    • Protocol Snippet: Fixed another large player-triggerable crash bug in the KaVir's Protocol Snippet code.
    • Terraforming: Fixed a bug where adding land tiles in the ocean (via .map, %terraform%, or other methods) did not assign an island to the room at all. It now attempts to detect from a neighbor and will create a new island entry if it can't find one. Fixed a related bug where terrain was added/removed to/from the land_map list at the wrong point, sometimes causing incomplete processing during terrain change.
  • Content:

    • Cocounts: Can now be pressed into coconut oil.
    • Forest sectors: Improved tree growth around shorelines and banks.
  • Displays:

    • Elog: Now shows a simple time-since-log rather than a server timestamp.
    • History: Now shows how long ago the message was sent.
  • Empires:

    • City points: Removed the city point that was given by having an escore of 75 plus a capital.
    • Data refresh: Moved the "check completed goals" code from b5.29 to a new system called "delayed refresh" that can schedule then quickly check for certain conditions in order to prevent multiple complex refreshes of data when, for example, a large number of items are stored at once.
    • Details: Progress scores now show on empire details.
    • Privileges: Added a new 'progress' privilege that controls the ability to purchase progression goals.
    • Storage: Empire storage now tracks object prototypes to speed up lookups in workforce, progression, and other places.
    • Techs: Added a new 'base techs' trait that is saved to file, for techs granted by progression goals.
  • Immortals:

    • Show piles: New immortal command that more easily finds piles of items over a certain size.
    • Show progress: Gives stats on a progression goal's completion rate.
    • Util wipeprogress: New utility that can fully reset progress for 1 or all empires.
  • Map:

    • Shallow sea: New sector type for use on new maps. Updated all ocean-edge terrains to use shallow seas instead.
  • Map generator:

    • Land mass: Adjusted the algorithm that generates land mass to round the sides more.
    • Shallow sea: Added new terrain type and updated the generator to be able to handle it.
  • Missing-items bug:

    • Reboots/shutdowns: No longer extract player inventories — this step was probably unnecessary and we are trying to rule out the possibility of it contributing to the missing-items bug.
    • remove_quest_items_by_quest: Added a safety feature in this function to prevent it being called without a quest vnum, which would probably result in losing all non-quest items. This is the most likely source of the missing-items bug, although there is no clear code path that should trigger it.
  • Progression:

    • Progress command: Now supports more options including 'buy'.
    • SCRIPT-ONLY: New flag for script-rewarded progression.
    • Scripting: Added the following empire script variables: add_progress, remove_progress, has_progress, is_on_progress, and qualifies_for_progress.
    • Tasks: Added Crop-Variety, Own-Homes, and Own-Sector task types for use in empire progression (and quests).
    • Unprogress: Renamed this command from "ungoal", which sounded like a hoofed mammal. It now syslogs.
  • Scripting:

    • Subfields: Fixed a major bug in DG Scripts where two variables with subfields on the same line would concatenate their subfields for the second one (or any after the first), resulting in permanently broken scripts.
  • Website:

    • Map-viewer.php: Now has a "pixelate when zoomed" checkbox ('x' key) which makes the map slightly uglier when browser-zoomed, but also more useful.
  • Testing:
    • We built this patch to test empire progression. It has several temporary progression goals which are relatively simple. Many existing empires will already have completed most of them, and be very close to completing the others. These goals will be removed when the full set of progression goals are added next month.
    • City points: There is now an extra city point available as a progression reward (type 'progress buy'). This replaces the city point that was available at 75 escore.

Patch b5.29 (April 10, 2018)

  • Note for EmpireMUD admins: This patch adds progress.c to the code. Either re-run the ./configure script, or manually add it to your src/Makefile, or else you will see linking errors when you try to compile.
  •  Adventures:
    • 102 Magiterranean: Interdimensional Whirlwind: A new adventure cleanup script now removes the old whirlwind when its month ends, instead of leaving it behind. Claimed tiles are ignored. Also updated the bladegrass arrows to match other arrows.
    • Various: Reduced scaling on scripted damage on some boss fights, to match recent changes to base damage from scripts including: Anat, Ba'al Hadad, Neferkare, and Clockwork Colossus.
  • Commands:

    • Coconuts: Now have their own coconut water when picked, instead of milk, which was nonsensical.
    • Progress: New mortal command to view the empire's progression goals. Immortals can also target other empires.
  • Content:

    • Forge: Changed the maintenance requirements to prevent an issue where you need a forge to make nails to repair an unfinished forge.
  • Empires:

    • Attributes: Empires now have a list of numeric attributes which are saved permanently.
    • Coins: Fixed two places in the code where coins were added/removed directly instead of via the correct function.
    • Workforce keep: A new command that prevents workforce from using/eating items from your einventory.
  • Help files:

    • Mist form: Removed misleading text from the 'cost' line.
  • Immortals:

    • Ungoal: This new command takes a goal away from one or more empires.
    • Util rescan: Now also rescans progression goals.
  • OLC:

    • Progression: Added a new editor for empire progression goals (.prog).
  • Quests:

    • Tracker: Changed the arguments for the function that counts the number of tasks complete for a quest so that it can also handle empire progression.
  • Scripting:

    • while: Removed an undocumented feature in DG Scripts wherein loops would force a 'wait 1' on the 30th iteration. This feature would break many types of scripts in EmpireMUD.

Patch b5.28 (April 3, 2018)

  • Adventures:

    • 12000 Binding Circle: Anat: Lowered script damage.
    • 12030 Binding Circle: Ba'al Hadad: Lowered script damage.
    • 12500 Clockwork Colossus: Various minor fixes to the adventure.
  • Configs:

    • Changed default:  harvest_timer 24
  • Commands:

    • Defect: Can no longer be abbreviated, preventing command collisions.
  • Displays:

    • Driving/sailing: Fixed a message that would say "You are currently driving -1 tiles east" if you had no distance limit set.
  • Empires:

    • Einventory: Changed when the empire inventory gets sorted, and added a flag to prevent unnecessary re-sorting. All empires now have their einv sorted, regardless of workforce.
    • Elog: Added a new 'workforce' category which logs silently but can be reviewed for food consumption.
    • Needs: Empires can now accrue "needs". Needs are collected once per day, at 8pm. When an empire cannot meet its needs, features may stop working.
    • Workforce farming: Adjusted how fast farmers work crop tiles. Farmers should now harvest enough food to feed two other chores per day, on average. Also fixed an issue where orchards gathered food much more slowly than other crops.
    • Workforce why: Now shows if workforce is starving on any islands, separately from other information.
  • Help files:

    • Herd: Cleared up some ambiguous text and added see-alsos between herd and lead.
    • Various: Minor text updates.
  • Immortals:

    • Roomflags: This toggle now shows vnums on the shop list, quest list, quest info, and quest start.
  • Map:

    • Canals: Unclaimed canal tiles now have a 2% chance to revert to trenches each year.
  • OLC:

    • .map complete: This command now echoes to the room to indicate that the building has been completed.
  • Players:

    • Age: Changed how +/- age effects work to decouple them from character creation time. This solves a bug where lowering the age of a young character could instantly cause them to be timed-out in their empire due to a negative amount of playtime. Players with a modified age can now also see their real age on 'score'.
    • Skillups: Fixed a bug where the 'skillups' promo code could actually LOWER your skills if an archetype has started them higher than 50.

Patch b5.27 (March 27, 2018)

  • Adventures:

    • 12500 Clockwork Colossus: A new adventure for levels 100-200 on any difficulty. This adventure tries an entirely new mechanic: climb the colossus and sabotage it in order to set the difficulty and loot level.
  • Configs:

    • New:  city_overage_timeout 168
  • Displays:

    • Look <direction>: Fixed a bug where you could see unseeable NPCs while looking in a direction.
  • Empires:

    • Cities: Removed the unused "max population" number in the city configs. This was never implemented. Added data for whether or not a city type counts as a capital, in case people add new city types/sizes in the future.
    • City points: Added a new city point for having 50 escore, and another for having 75 escore plus a capital. These points are for testing and may change again in the future. If an empire is using more city points than they have available, they now receive a 1-week warning and then lose those city points (previously, you could keep up to a 100% overage indefinitely).
    • Escore: Changed how empire scores are calculated. The averages used are now medians instead of means. This means outlying empires (super-powerful or super-low-level ones) won't easily push the averages up or down, resulting in more empires being able to fill the middle range of escores.
  • Mobiles:

    • !WHERE: New affect flag prevents being targeted by the 'where' command. This will fix some issues in some adventures.
  • Morphs:

    • Messaging: Added a !MORPH-MESSAGE flag that prevents the "reverts-to" message when the morphed person dies or is forced out of the morph.
  • Scripting:

    • %buildingecho%: Fixed a bug where the obj/vehicle versions of this command would never find a target.
    • %damage%: Increased the base damage for scripts over level 100.
    • %load%: When one object loads another, if both objects are bindable, the new one will copy any bindings from the old one. This can still be unbound in the script, but 99% of cases where a bound object loads a bindable object, copying the bindings is the desired effect.
    • %scale%: Fixed a bug where items were blindly reloaded when rescaling them, instead of smart-copying things like loot quality flags.

Patch b5.26 (March 20, 2018)

  • Abilities:

    • Lacerate: Fixed an error where the to-victim message was shown to the attacker instead.
  • Adventures:

    • 100 Magiterranean: The Grove: Fixed a typo in the hidden thicket.
    • 12600 Elemental Escape: Fixed a typo in the plural currency name.
    • 18200 The Guild of Adventurers: Multiple typo fixes in scripts, items, and quests.
    • Instancing: Adventures now only spawn on islands that have players within 50 levels of the adventure's level limits, making it easier to find adventures in your level range. Continents are not affected by this change. Added an IGNORE-ISLAND-LEVELS flag for adventures to disregard this limit.
    • Various: Added helper text at the entrances of some low-level adventures.
  • Commands:

    • Build: Clarified the error messages for unclaimable land and tiles with adventures on them.
    • Earthmeld: Improved the error message when fighting.
    • Mine: Clarified that you must wield the tool to mine.
    • Murder: This is now automatically an alias for hit/kill, as in CircleMUD 3.1.
    • Lay: Improved two ambiguous error messages when you can't lay a road.
    • Scan: No longer combines tiles when scanning by name. Fixed a bug where you could scan for chameleon buildings using 'scan building'. The informative and political toggles now show the correct data when scanning by name. Also added scan options for claimed, unclaimed, and foreign.
    • Toggles: You can now optionally specify on/off rather than just alternating between them on a toggle. This makes it easier to alias/script certain behaviors.
    • Toggle mapcolor: Will no longer turn off political/informative for screen reader users.
    • Whoami: Added a command that tells you which character you're playing, plus disguise/morph name if applicable.
    • Wizhistory: New default alias of godhistory.
  • Content:

    • Beehive: Updated the item description. It is also now storable in the Apiary, and tradable.
    • Crafting items: All tiers of crafting items now mention which tier they are in their look-description.
    • Enchanted Forest: Some of the mob scripts were replaced by custom strings (others remain scripts due to complexity).
    • Stable: Removed store/retrieve from the commands list since only a tiny number of adventure items store here, and no base items.
  • Displays:

    • CircleMUD commands: Added helpful output when you try certain commands that exist on CircleMUD but not EmpireMUD: brief, cast, compact, gossip, levels, practice, rent, report, ungroup, wimpy.
    • Enroll: Now indicates when you try to enroll someone who is already a member, instead of giving a bogus error.
    • Referral: Added more explicit instructions on the "where did you hear about us" question so people will stop typing "from a friend" or "on the internet".
    • Various: Typo fixes and text updates.
    • Wealth: Rearranged how the 'wealth' line is displayed in empire info/estats, to help with recurring confusion.
  • Empires:

    • Level range: The game now tracks the minimum and maximum levels in an empire, for internal use.
    • Timeouts: Changed how timeouts are tracked. Empires will now self-update their member list to check for timeouts every hour.
  • Help Files:

    • Classes: Removed most references to classes from help files, and reworded many help files that discussed them.
    • New help files: beehive, dps, rough terrain.
    • Object values: Added missing object values help file, and added value information to each item type's help.
    • Trees: Added examples of each type of basic tree.
    • Vampire: Now mentions purify.
    • Various: Typo fixes and text updates.
  • Islands:

    • Level range: Islands now track the level range of players who use the island. At startup, this includes all players who are in empires that have cities on the island. It also counts any player who visits the island.
  • Mobiles:

    • Damage: Fixed a bug where Normal-difficulty mobs were getting a 15% damage bonus that was intended for non-normal mobs instead.
  • MSDP:

    • Gender: New MSDP variable containing male/female/neutral.
  • Scripting:

    • Set/eval: Updated the help files for set and eval, adding explicit instructions on when to use each, and removing a bad example from 'set' that would never actually work.

Patch b5.25 (March 13, 2018)

  • Abilities:

    • Entange, Skybrand: These abilities now start melee combat rather than ranged, since they requires melee.
  • Adventures:

    • 126 Mountain Cave: Flame Dragon: Scorch tiles now have a chance to turn to forest/crop tiles, not just plains/desert. This will prevent permanent loss of crops and forests in areas not visited by players, and also provides a way to re-seed areas that are devoid of crops.
    • 180 Misplaced Mother Goose: Added the missing notes about how to use the quest items to teleport back to the instance location. Also fixed the broth quest, which could be started at the wrong location. The Jack and Jill quests now auto-drop each other if you turn them in, to simplify things for newbies.
    • 282 Goblin Logging Camp: Goblins now leave "A Field of Stumps" in their wake, rather than plains. Stumps can be chopped up for sticks to turn the tile to plains, or else will slowly regrow as forests.
  • Commands:

    • Chart: Now includes largest empires on the island, plus notable cities.
    • Douse: This command can now be used on player-made fires as intended, and it also now works correctly on torches.
  • Content:

    • Crops: Fixed base tile colors so that certain tiles next to crops have the right left/right edge icons.
    • Forests: Changed the winter icon on regular forest tiles (and all similar tiles including flooded forests from the Dammed River adventure) with the goal of map beautification.
    • Imperial potion recipes: Added missing level requirements (100-199) to these world drops.
  • Displays:

    • Mail: Fixed the order of the "you send mail" / "you have mail" messages when you send mail to yourself.
    • Prompt: The %a code (action) now also indicates vampires feeding using 'bite'.
    • Shipping: When you queue a shipment, it now says "preparing" rather than "waiting for ship" until the first shipping cycle has happened, to alleviate confusion over what it's doing.
  • Empires:

    • Population: Fixed a bug where abandoning a building did not adjust the citizen count if it was an interior (designated) room.
  • Immortals:

    • Roster: Added a shortcut version of the immortal "roster" command where the empire name does not need to be in quotes if you are not using the -all parameter.
    • Set lastname: Now accepts "none" (in addition to "off") for removing lastnames. Both of these are now case-sensitive so you can now set lastnames like Off and None.
  • Map:

    • Estuaries: Added a new shore tile for estuaries. It behaves very similarly to ocean shore tiles, but doesn't grow trees and fixes an evolution issue with riverbank tiles.
    • Riverbanks: Fixed an issue where these tiles could be orphaned from the river because they were checking not-near-sector (distance 2) rather than not-adjacent (1).
    • Trenches: The game now stores data about the terrain on a tile immediately before it was excavated to ensure filling it in restores the correct tile type. This fixes a bug where a tile could be naturalized (including going straight to full jungle or forest) by starting an excavate then immediately filling it in. Because this data is missing on existing EmpireMUDs, pre-existing canals and trenches will still naturalize when filled in. This patch includes an updater to ensure they don't do anything weirder than that.
  • Mobiles:

    • Open buildings: Non-human mobs can now move into incomplete open buildings, fixing a bug where incomplete fences would still block mobs.
  • PHP:

    • Map-viewer: Added a z-index property to the 'grid' and 'cities' displays so that cities are correctly on top and the mouseover still works when the grid is turned on.
  • Players:

    • Xnames: Added "player" to the list of forbidden names, as it interferes with some immortal commands.
  • Scripting:

    • Timer triggers: Dousing a torch/fire will now run any timer triggers on it.

Patch b5.24 (March 7, 2018)

  • Adventures:

    • 104 Magiterranean: The Permafrost: Fixed the icons on the evergreen terrain. Also fixed arctic wolf keywords.
  • Commands:

    • Workforce why: You can now see why your workers might not be working.
  • Contents:

    • Poisons: All poisons had their levels and stats updated, and are all now storable at the alchemist or curio cabinet.
  • Empires:

    • Workforce: Fixed a bug where the digging chore happened twice per hour.
  • Items:

    • Ammo: The scaling engine will now correctly scale negative applies on ammo, and now sets the applies directly instead of inverting them. This means arrows no longer need positive applies to give negative debuffs, and vice versa. They now scale like all other items. Ammo now becomes unstorable as soon as a charge is depleted.
  • Poisons: Completely replaced the poison backend:
    • Affects and Applies: Any stats on the poison are applied directly to the victim after a successful poison hit.
    • Storage: Poisons now become un-storable once they apply a charge.
    • Use: Poisons are now used by vnum (specific poison) rather than a shared "type".
    • Values: The three object values have changed from type/charges/unused to unused/charges/affect.
  • Rooms:

    • check_unload_room: Added some code to try to prevent a rare crash.
  • Scripting:

    • has_tech: New character field to determine if a player has a given player technology.

Patch b5.23 (February 20, 2018)

  • Abilities:

    • Healing Elixirs: No longer has a mastery ability.
    • Spirit Wolf Familiar: Fixed a bug where this familiar always used the same ability.
    • Wrath of Nature Potions: No longer has a mastery ability.
  • Adventures:

    • 12600 Elemental Escape: Small fix to triggers.
    • Various: Adventure potions were updated for the new system.
  • Commands:

    • Drive/Sail/Pilot: You can now write paths with these, just like 'run'.
  • Content:

    • Distilled Herbs: New recipes that create a more concentrated version of the herbs (requires Healing Elixirs).
    • Fiveleaf: Changed it from "some fiveleaf" to "a sack of fiveleaf" to ensure it has a unique keyword when other items have fiveleaf in their name.
    • Laboratory: Removed storage locations for the designated Laboratory and gave it "stores-like Alchemist" instead.
    • Potions: All existing potions were updated for the new option system. A new tier of potion recipes have been added in the 100-200 level range. These recipes come from world drops and each require either Healing Elixirs or Wrath of Nature Potions.
    • Swamps: Just like Jungle, Swamp terrain now has a chance to die in the winter if it is outside of the tropical zone.
  • Objects:

    • Auditor (OLC): No longer warns on "scalable and storable" if the scale level is locked.
    • !Store: New object flag prevents storage, for use when an object can normally be stored, but there are changes that should prevent storage. Identify will warn in this case.
  • Players:

    • Extra Blood Bonus: Fixed a bug in this bonus trait. It will now give the correct amount of blood.
  • Potions: Completely replaced the potion backend with the following features:
    • Affects and Applies: When a person quaffs a potion, they now get any affects and applies that were on that potion, meaning you can now identify a potion to see exactly what it gives.
    • Level: Potions now have a fixed level instead of a range, to allow normal storage.
    • Storage: Potions now store at the Alchemist instead of the warehouse. Potions on existing EmpireMUDs are moved automatically.
    • Superior: Potions can no longer be made superior, to allow normal storage.
    • Values: The three object values have changed for potions. Instead of type/scale/nothing, they are now cooldown/cooldown-time/affect. Potions that share the same affect vnum will overwrite each other.
  • Scripting:

    • %damage%: Doing negative damage with this function now calls %heal% automatically instead.
    • %heal%: New script command that can restore a scaled amount of health, moves, or mana. It can also remove dots and debuffs.
    • Stock scripts: Updated all stock scripts to convert "eval" to "set" where set can be used (1770 locations total), as set usually runs slightly faster. Also remove unnecessary evals and sets throughout all scripts, and cleaned them up. Fixed some minor bugs in this process.

Patch b5.22 (February 13, 2018)

  • Adventures:

    • 140 The Sewer: Ratskins: Fixed a typo in a script.
    • 141 The Sewer: Goblin Outpost: The Goblin Lab Tent can now store alchemy items.
    • 128 Colossal Red Dragon: The Butcher Tent can now store smokehouse items.
    • 180 Misplaced Mother Goose: Fixed typo in Jack Spart's quest.
    • 12400 The Golden Goblin: Fixed a typo on the anglerfish.
    • 18200 The Guild of Adventurers: The guildhall vault can now store Cabinet of Curiosity items.
  • Buildings:

    • Relations: New data on buildings links them to other buildings. The "upgrades-to" field has been converted to a relation.
    • Stores-like: New building relation that allows one building (or room) to inherit the storage locations of another, so adventure reward buildings will be able to do normal storage.
  • Code updates:

    • Format-security: Updates about two dozen places in the code that could trip compiler warnings if -wformat-security was turned on (which is the default mode of some compilers).
  • Commands:

    • Chart: New command fetches information and the location of islands.
    • Climb/swim: Fixed a bug where followers (and mobs and vehicles being led) would not follow through a 'climb' or 'swim' command. Also fixed a bug where autodismount was interfering with autoswim.
    • Lead: Fixed a bug from b5.21 where you could not lead mobs into certain map tiles.
    • Mapscan: New command that tells you what islands (and ocean) lie in a given direction. This should make navigation at sea much easier.
    • Run: New speed-walking command allows you to input a direction or path, and your character will move automatically.
    • Territory: You can now specify 'outskirts' or 'frontier' as arguments to this command.
    • Toggles: Driving-look is now called 'travel-look' instead, as it now also applies to run.
  • Config changes:

    • Changed default:  land_outside_city_modifier 0.350000
    • New:  land_frontier_modifier 0.050000
    • New:  land_min_cap 15
    • New:  outskirts_modifier 4.000000
    • Removed:  city_trait_radius 100 (replaced by outskirts_modifier)
  • Content:

    • Forge (designated): Now stores all foundry items.
    • Longship: Typo fix.
    • Scrape tutorial: Typo fix.
    • Secret Cache: Removed all specific storage for the secret cache; it now stores anything that goes in the vault room.
    • Top of the Tower: Removed all specific storage for the top of the sorcery tower; it now inherits the storage of the bottom floor.
    • Trophy Room: Removed all specific storage for the trophy room; it now inherits storage from the Cabinet of Curiosities.
  • Displays:

    • City list: Now shows the distance and direction to your cities.
    • Intelligence: Fixed a typo when trying to use equipment with low intelligence.
    • Islands: There is now a description field for islands. It defaults to a tile count and list of terrain types.
    • Survey: Now shows if the current tile would be in-city, outskirts, or frontier for your empire.
    • Toggles: Screen-reader users will now get their toggles in alphabetized order, instead of the very confusing order that results from the non-screen-reader display being in columns.
  • Empires:

    • Island names: Fixed a bug in the code that allows islands to be renamed by consensus of the empires with cities there. You can now rename islands by consensus as intended.
    • Territory: Now split into three parts: in-city, outskirts (up to 4x city radius, not more than 35% of claims), and frontier (beyond 4x city radius, not more than 5% of claims). There is also now a minimum cap of 15 claimable tiles, to ensure people can claim enough land even at low Greatness.
  • Immortals:

    • Island: Immortals can now customize island descriptions with 'island desc <name>'.

Patch b5.21 (January 30, 2018)

  • Adventures:

    • 104 Magiterranean: Permafrost: Keyword fixes on the entrance.
    • 180 Misplaced Mother Goose: Typo fixes.
    • 12400 The Golden Goblin: Typoes and script fixes.
    • 12600 Elemental Escape: Fixes and updates to the elemental fight scripts, and typoes.
    • 18200 Guild of Adventurers: Typo fixes in quests.
  • Buildings:

    • Skybridge room: Fixed a typo in the room description.
  • Immortals:

    • Gecho: Now tells higher-level immortals who gecho'd.
    • Show account: You can now look up accounts by id number, in addition to name.
    • /echo: New immortal command to send messages to an entire channel (using the GECHO grant or co-implementor level).
    • /recase: New immortal command to change the capitalization of channel names.
  • Movement:

    • Climb: You must now type 'climb' to enter a mountain tile, preventing players from doing this by accident (unless flying or already on mountain).
    • Swim: You must now type 'swim' to enter a water tile, preventing players from doing this by accident (unless flying or already in water).
  • Preferences:

    • Autoclimb: Removes the need to type 'climb'.
    • Autoswim: Removes the need to type 'swim'.
    • Toggles: Re-ordered the toggle list to (hopefully) by easier to find things in.

Patch b5.20.1 (January 16, 2018)

  • Adventures:

    • 12600 Elemental Escape: Scripted the elemental fights so they now help train newbies on boss gimmicks. They are still very easy fights.

Patch b5.20 (January 9, 2018)

  • Existing EmpireMUDS:
    • Canals: This patch updates the map to fix an issue where a recent change to player-made rivers (making them into canals instead) made older player-made rivers impossible to fill in.
  • Adventures:

    • 12600 Elemental Escape: Added missing cooldowns for the minipets. Added missing no-drink-blood flag to the elementals (you can't get blood from a stone).
    • 18460 Unstable Portal: The mysterious vehicles are now unclaimable.
  • Commands:

    • Demote: You can no longer demote empire members who are at the same rank as you, unless you are at the top rank.
  • Players:

    • Bonus Traits: Added an "extra blood" bonus trait.
  • Sectors:

    • Desert: Now converts to irrigation only near canals, not rivers.
    • Oasis: Now becomes a canal when connected to other water, rather than a river.
  • Vehicles:

    • Claiming: Added a no-claim flag for vehicles.

Patch b5.19 (December 12, 2017)

  • Abilities:

    • Pickpocket: Fixed a small bug that was preventing pickpocket on mobs that are not attackable.
  • Adventures:

    • 12600 Elemental Escape: A new adventure on the newbie island, offering bonus experience and basic gear.
    • Instance limits: Fixed a bug in the code that adjusts the number of instances based on the world size — it was adding slightly too many.
  • Buildings:

    • Affects: Fixed a bug where removing a building from the map did not always correctly remove its affect flags. Also added an auto-updater that will repair muds that were affected by this in the past.
  • Displays:

    • Warehouse inventory: Increased buffer size to avoid cutting off very long lists.
  • Sectors:

    • Evolutions: Map tiles that are building entrances are no longer prevented from evolving. Instead, players trapped inside a building by a water tile outside will automatically receive an 'unstuck' effect that lets them fly very briefly.

Patch b5.18 (December 5, 2017)

  • Abilities:

    • Heal: Fixed a warning from checking class roles on npcs when npcs heal.
  • Adventures:

    • 12400 The Golden Goblin: Minor fixes to triggers, and add "list" to a mob description.
  • Crafts:

    • Required object: This object can now be in the room, if it's not bound to someone else, allowing local crafts.
  • Empires:

    • Cities: Founding a city will now automatically move any "lost" empire inventory to the island of the new city. The mud also now safely checks city locations on startup, so if the map was altered while the game was down, the city won't be re-added by force.
    • Main island: The game no longer picks "island 0" when no "main island" can be determined. Instead it returns NO_ISLAND. This fixes a very rare, very wacky possible crash.
    • New map: The game now automatically detects if you generate a new map, and will preserve the inventories of existing empires (until a city is founded), wipe their territory, and clean up their data. Players will also now automatically relocate to a new starting location in this case, instead of logging in in the middle of the ocean.
  • Immortals:

    • Map evolutions: Removed the somewhat-spammy syslog for map evolutions. This log will still appear if the evolutions are triggered manually. The game will log a SYSERR if it fails to import evolutions, but no longer logs evolutions otherwise.

Patch b5.17 (November 14, 2017)

  • Abilities:

    • Summon materials: No longer first sorts all the storage alphabetically. It now remains in the highest-number-first sort.
  • Adventures:

    • 12400 The Golden Goblin: A new 50-150 adventure with two modes.
    • Cleanup: Added an option to remove an instance without running its cleanup script, as it was possible to cause permanent crashes during startup if the instance file was not deleted when generating a new map (because of adventure cleanup scripts trying to terraform).
    • Despawning bug: Fixed a bug where tiles with adventures were despawning early if they had no building on them.
  • Configs:

    • changed default:  tropics_percent 40.000000 — This was set to 35% despite the map generator being configured to generate it at 40%.
  • Empires:

    • Saving: Empires now mark specifically whether they need their main file or storage file saved, and only save that one, to speed up empire save operations. Empire logs and offenses have been moved to their own file to speed up saves there, too.
    • Shipping: Safely block completion of shipping when an item in the queue has been deleted.
    • Storage: Normal item storage has been completely reorganized on the back end to speed up all storage-related operations, including workforce. Instead of a linked list with all storage, each of the empire's islands now has a hash table (by vnum). Also found and cleaned up some places where huge inventories could have potentially overrun max-int during certain operations.
  • Immortals:

    • Random: Fixed an issue where the random command could only teleport immortals to rooms already in memory.
  • Map Generator:

    • base_map: The generator now writes the base_map file, in addition to .wld files.
    • Continents: The map generator now has separate configurations for continents (added once) and islands (added until land is all used up). The generator now outputs the island definition file so continents are pre-configured.
    • Crops: The map generator will now warn if you're missing crops in any region of the map.
    • Files: The generator now deletes the old instance file (a new world means old instances are gone). It also writes a hint file that will automatically transfer empire inventory to a new location, for existing muds that generate a new world.
    • General: Cleaned up the map generator configs at the top a little bit, to make it clearer what the user can tweak.
    • Mountains: Now uses wider mountains on continents. Continental mountains are added first, and don't wind as much as other mountains. Adjusted the number of mountains on various landmasses.
    • New terrains: Added the new shoreline and river terrains to the map generator.
    • Rivers: Now uses wider rivers on continents. Rivers now start from small lakes and flow toward the sea. Reduced how much the rivers wind.
    • Stalling: Fixed a bug where the generator gets stuck in an infinite loop if it can't add a starting location on any island.
  • Mobs:

    • Damage: Reverted the b5.14 mob damage change for Normal-difficulty mobs, who were hitting too hard.
  • OLC:

    • Generic auditor: Fixed incorrect error about liquid color not being set.
    • Icon copying: Fixed a bug where using ".icon copy" would corrupt strings, or worse.
    • Icon display: Widened the icon display to fit icons that use the @ codes.
  • Scripting:

    • completed_quest_instance: New character variable that checks repeats-per-instance quests.
    • dg_affect: Fixed a bug where this was requiring a duration to turn affects off.
    • set_reputation: New character function for setting a reputation straight to a given level.
  • Sectors:

    • Jungle: Now becomes frost-damaged in the winter, effectively limiting how far north/south the jungle can spread. Jungle that is closer to the tropics is more likely to survive each year.
    • Marsh: New tile that functions like swamp, but around lakes instead of rivers.
    • Shore: Changed the graphical mapout color of the shore tile to pale green. Shore also now grows up to 1 tree or 1 jungle, to make it look better on the graphical map, where it previously looked like most islands had outlines.
    • Riverbank Trees: Changed the ground color on these tiles to tan, to match the other riverbank tile color and prevent an alternating color scheme when the tiles are adjacent, since they both inherit colors from each other.

Patch b5.16 (November 6, 2017)

  • Important notes for EmpireMUD admins:
    • This patch adds a new util in the src/util directory, evolve.c, and you must either add it to your src/util/Makefile (from the Makefile.in) or regenerate your makefiles by re-running the 'configure' script. Contact me if you need any assistance.
    • If you adjusted the instance counts on your Tutorials or Misplaced Mother Goose, expect a conflict when you pull this update because of the 'l' flag (IGNORE-WORLD-SIZE) added to those adventures.
    • This patch adds several new terrain types. Your MUD may lag heavily during the first few evolution cycles (mine took 66 seconds the first time, 38 the second time, then improved from there). You can reduce this by running 'util evolve' to trigger evolutions manually. After your mud recovers from the lag, run it again (do a 'fullsave' every few times; the evolver needs the map saved). This will probably take 10 or 20 times before it hits a point where it stops lagging heavily each time (you will see the tile count drop each time after the first few). Consider rebooting your mud after doing that.
  • Abilities:

    • Summon Materials: Fixed a counting issue where retrieving your last item with summon materials would trigger an error message that you "only managed to summon N-1" even if you got the whole number.
    • Veintap: Fixed a bug where veintapping into a container did not reset its timer, so blood could expire if the previous contents could expire.
  • Adventures:

    • 103 Magiterranean: Monsoon Rift: Fixed some issues with adventure cleanup scripts.
    • 126 Mountain Cave: Flame Dragon: Updated the terrorize script to more precisely target terrain by vnum for scorching, to avoid unfortunate accidents.
    • 282 Goblin Logging Camp: Updated the logging script to account for new terrain types, and to be safer with adventure terrain in general.
    • Instance limits: The game now automatically raises or lowers the number of instances in the world based on the size of the world, so larger or smaller worlds have proportionally the same number. You can disable this with 'config world'. There is also a new adventure flag that disables it per-adventure, for adventures with a static number of instances. The flag was added to the 3 Tutorials, Goblin Mines, Misplaced Mother Goose, Interdimensional Whirlwind, Skycleave, and the Guild of Adventurers.
  • Buildings:

    • Dismantle: Fixed a bug where dismantling a building that was built on a crop tile would result in no crop type being set (normally, buildings cannot be built on crops, but it's possible for a script or immortal to force one).
  • Code updates:

    • Building/crafting: Fixed a bug where using a container as a building/crafting resource would leave items inside it in limbo (although this didn't generally come up due to the lack of portable containers).
    • Currencies: Ensured that adventure currency amounts cannot go negative.
    • Evolutions: Code that handled map evolutions every in-game hour has been removed. Map sector evolutions have been moved to an external utility, bin/evolve. The mud now runs this utility at midnight (in-game), then imports the evolution hint file from that program.  This should reduce the lag on all of the hour ticks by 50% or more (except 7am, the full world save tick).
    • Herbs: Bileberries and whitegrass are no longer special-cased in the code for picking in certain locations. They are now properly attached to the riverside and coastline map sectors.
  • Combat:

    • Familiars/pets: Fixed an issue involving a fatal blow dealt by a familiar or pet. Loot will now correctly tag for the pet's master (previously this only worked for boe/bop loot) and hostility, player kills, and lore will now correctly credit the pet's master.
  • Commands:

    • Douse: This command can now be used on torches and campfires, but will destroy them.
    • Roster: Fixed a minor issue with how players are freed when using 'roster' with timed-out members.
  • Config:

    • new:  adjust_instance_limits 1  — The game will raise/lower the number of instances automatically based on world size.
  • Displays:

    • Coin mill: Changed the message for finishing milling coins to "minting" to avoid confusion over using the coin mill.
    • Dig: Fixed an issue where non-diggable, non-water outdoor tiles gave no error message when you tried to dig.
    • Driving: Fixed a bug where typing 'drive <direction>' with the direction you are already moving gave a strange confirmation message but did nothing.
    • Driving-look: New toggle that automatically 'looks' after each move when driving, piloting, or sailing.
    • Extra-spacing: Added this new toggle for players whose clients don't have local echo. When this toggle is on, players get an extra blank line after their prompt when they type any command.
    • Identify: Now informs you if an item can be stored in the warehouse.
    • Mail: Players now receive a message if they are in-game when new mail arrives for them.
    • Learned: Your learned recipes are now sorted by type then name. (For existing players, this will happen next time you learn a recipe.)
    • Mob echoes: Fixed a bug where mobs could send custom strings while in the middle of being extracted.
    • Seasons: Fixed a bug where the tropics were way too far north/south, resulting in odd seasons in some parts of the world. Replaced the code that determines season with a formula that causes the seasons to move North/South each day, resulting in a smoother transition.
    • Slash-channels: You will no longer see channel joins/leaves for someone you are ignoring.
  • Empires:

    • Pledge: You can now view your current pledge by typing 'pledge' with no argument, or cancel it with 'pledge cancel'. There is now a 1-hour cooldown on pledging again, to prevent pledgespam and its more nefarious counterpart, lemon-scented pledgespam.
    • Workforce: When a chore tile is checked and the game determines there is no work available, it now marks a short delay that prevents the tile from being fully re-checked for that chore for the next 2-3 game hours, to reduce processing time taken up by unworkable chores. Fixed a bug where workforce does not re-scan the vault when adding valuables.
  • Help files:

    • Adventures: Added missing help files for the following adventures: Goblin Mines, Goblin Outpost, Guild of Adventurers, Lost Temple, Portal to the Primeval, Skycleave.
    • Buy, List: Added missing help files for these commands.
    • No Hallway: Removed this note from several buildings that mentioned it, but still allowed hallways.
    • Unseen Passing: Clarified that it also works on roads and at buildings.
  • Immortals:

    • Einventory: Immortals with the roomflags toggle will now see object vnums on einv.
    • Show crops/terrain: Split crops out of 'show terrain' due to how long the list has grown, and gave crops their own 'show'.
    • Show shops: New 'show' option lists shops available where you are, with their vnums.
    • Show quests: Fixed a minor issue with how players are freed when using 'show quests' on an offline player who is not on any quests. Showing completed quests also now gives an hours-/days-ago indicator.
    • Wizhide: No longer blocks other immortals from seeing you (which was not effective anyway).
  • Mobiles:

    • Flying: The 'flies' mob move string no longer automatically grants mobs full flying.
  • OLC:

    • .map build: Fixed a bug where the building's exit direction was not set until AFTER the completion script ran.
    • Morphs: Fixed a warning from the morph auditor that incorrectly alerted on script-only morphs.
    • Quest rewards: Fixed a display error where generic-currency rewards did not show their vnum in the editor or stat page.
  • Scripting:

    • %purge%: Fixed a bug where the '%purge% instance mob <vnum>' syntax was purging all mobs of that vnum, not just ones from that instance.
  • Sectors:

    • Evolutions: Added new evolution options for the four seasons.
    • Lakes: These now freeze over in the winter and thaw in other seasons; added a new Frozen Lake sector.
    • Rivers: Plains and forests next to rivers now flood in the spring. Added six new terrain types to support this.
    • Shores: Added new tiles for the place were certain terrains meet the ocean: shore (temperate), beach (desert), estuary (river), cliff (mountain). Also added nine new mobs that spawn on coastlines, including a new rarespawn.
    • Trenches: Temperate trenches now become canals instead of rivers.

Patch b5.15 (October 30, 2017)

  • Abilities:

    • Battle: Added new synergy abilities to Battle: Abate, Adapt, Amplify, Beguile, Exhaust, Gleam, Hinder, Hobble, Infect, Intensify, Lacerate, Prepared, Sunder, Undermine, Withstand
    • Improved Reflexes: New Battle 80 ability that improves your maximum dodge chance by 20%.
  • Adventures:

    • 100 Magiterranean: The Grove: Changed the final boss from HARD to TANK to make him more achievable for players in this level range.
    • 103 Magiterranean: Monsoon Rift: Fixed a bug where completing one of the outside quests could prevent the instance from cleaning up properly.
    • 129 Gigantic Nest: Removed a duplicate poacher that slipped in somehow.
    • 180 Misplaced Mother Goose: All the quest items now include a free teleport back to the adventure location.
    • 181 Goblin Mines: Adjusted the widow spider boss to be more defeatable by newbies, and added a boss gimmick to train said newbies.
    • 12000 Binding Circle: Anat: Adjusted some triggers so they could be shared with other BC adventures.
    • 12030 Binding Circle: Ba'al Hadad: Added a second BC adventure similar to Anat.
    • 18300 Pyramid: Hidden Chamber of Neferkare: Raised the instance limit on this adventure.
    • 18460 Unstable Portal: Added a missing trigger needed to interact with the Halloween adventure.
    • Various: Many scripts that used the STUNNED effect now use HARD-STUNNED instead.
  • Commands:

    • Group: Ignoring someone now also blocks group invitations.
    • Identify: Now shows the UNIQUE flag.
  • Configs:

    • new:  who_list_sort 0 — the order of the who list is now configurable.
  • Core changes:

    • Dodge: Lowered the maximum dodge chance by 40%.
    • engage_combat(): This function no longer checks if the people can fight each other — because this was causing issue with majesty and certain other effects, where the mob was unable to retaliate against violent abilities. All current uses of this function pre-check can-fight already.
    • Hard-Stunned: New affect type that behaves exactly like STUNNED except that it cannot be cleansed and does not result in stun immunity. This is intended to be used on boss fight gimmicks.
    • Tank role: People in this role (or in solo) now inherently have a 20% higher maximum dodge chance (you must still have +dodge gear to reach this maximum).
    • Tracks: Fixed a  major bug in tracks wherein they were never getting removed, causing the mud to bloat in RAM, disk space, and lag.
  • Displays:

    • Components: The 'bunch' component flag is now written as 'bunch of' because it reads better.
    • Stat generic: Fixed a bug where not all cooldown messages showed on stat.
    • Who: The sort order of the who-list is now configurable by immortals to either level-first or role-then-level.
  • Mobiles:

    • Damage: Raised mob damage by 15% across the board to compensate for new abilities that lower enemy damage, and for mobs being slightly underpowered overall.
    • Health: Raised the health scaling on the HARD, GROUP, and TANK flags.
  • Scripting:

    • %at%: Fixed a bug where mobs using %at% would break combat.
    • Immune-Damage: New affect flag (intended for use in scripts) makes the bearer totally immune to damage, including script damage.
    • makeuid: Now supports the i### syntax for looking up rooms in an instance by template vnum.

Patch b5.14 (October 24, 2017)

  • Note for admins: This patch adds a CONTINENT flag to be used on your largest islands. Use 'island list' and 'island flag' to set this up.
  • Note for players: This patch improves superior gear. All superior items will be refreshed and reloaded to get the new stats, meaning you will have to re-enchant them.
  • Abilities:

    • Reforge/renew: 'Fixed' an unintentional issue where a player could make an item superior even if it came from a hard/group/boss mob, resulting in way more scaling points than intended.
  • Adventures:

    • 128 Colossal Red Dragon: Attached the four dragon crafting abilities to Trade skill synergies. This was missed in b5.13.
    • 12000 Binding Circle: Anat: Added the first in a new set of high-level adventures where players defeat one of the old gods. These will be interlinked adventures that share a common currency and theme. Note: You must add the new CONTINENT flag to at least one island for this to spawn.
    • 18300 Pyramid: The Hidden Chamber of Neferkare: Fixed a spawn issue with what's left of the mummy.
    • Mobs: Fixed an issue where an adventure could despawn while you're fighting one of its mobs out on the map, causing the mob to vanish mid-fight. It now instead keeps the mob but marks it for delayed despawn with the SPAWNED flag.
  • Buildings:

    • Lumber: The maintenance cost for most buildings has been changed from (lumber) to (basic lumber) to avoid wasting magewood. This includes some adventure buildings.
    • Tunnel: The interior of tunnels now has the HERD flag.
  • Commands:

    • Herd: Fixed a bug where you could not herd animals through interior exits from a map building (e.g. tunnel).
    • Offenses: Shows recent offenses to the empire.
  • Configs:

    • new: offense_min_to_war 0 : Number of offense points required to start a war.
    • new:  offenses_for_free_war 200 : Number of offense points at which war becomes free.
    • new:  steal_death_penalty 60 : Number of minutes you cannot steal from an empire after it kills you.
  • Empires:

    • Offenses: The game now tracks "offenses" between empires (and their members), so you can see hostile/stealth acts against your empire.
    • Stealing: You are now blocked from stealing from an empire for an hour (by default) after you are killed by any member of that empire.
    • War: Added new configs that allow a "war only after offenses" mode, and to drop the war cost to 0 when there are enough offenses.
  • Immortals:

    • Eedit adminflags: Immortals can now set administrative flags on empires including no-war and no-stealing, as needed. These flags are displayed on estats or empire <name> (shown to immortals only).
    • Endwar: New command lets immortals list wars, and end them.
    • Peace: Added a new command that stops all combat in the room temporarily. This command is grantable.
  • Islands:

    • Adventures: Added a continent-only flag and a !continent flag for adventure linking.
    • Continent: New island flag specifies that it is an entire continent.
  • Mobiles:

    • City guards: Received a new combat script to make them slightly more effective.
    • Large skin: Fixed an issue where southern forests had no large-skin animals at all. This includes updating spawn locations and adding several new animals.
  • Objects:

    • Bound: Fixed an issue where, even if items are bound to you, you can't pick them up in hostile territory.
    • Enchanted: Items with this flag now have a slightly higher effective level, like superior/hard/group do.
    • Superior: This flag is now worth 60% more scaling points instead of 33%, to bring it into line with hard (20%) and group (40%) flags (which combine for 68%).
  • Players:

    • Player-kills: The game now tracks the most recent timestamp when you were killed by a player or by an empire NPC.
  • Vehicles:

    • Lumber: Some vehicles had their maintenance cost changed from (lumber) to (basic lumber).

Patch b5.13 (October 17, 2017)

  • Abilities:

    • All-Terrain Riding: Now only requires Survival 75.
    • Dragonriding: Removed this ability completely.
    • Enchant Armor: All the 'armor' enchants now also work on the following gear slots: about, arms, waist, legs.
    • Healing Boost: Removed this ability. The Healer/Solo roles now inherently grant its effects. The player tech for Healing-Boost still exists and will allow abilities to grant this effect outside of the healer role.
    • Linked Trait: Fixed a bug where some traits were not correctly linking on parameterized abilities.
    • Stablemaster: Now only requires Survival 55.
    • Windstride: New Empire 100 ability that replaces Dragonriding. It can be activated for a huge, short move regeneration buff, and it allows flying mounts (with Ride).
  • Adventures:

    • 18300 Pyramid: Hidden Chamber of Neferkare: Raised the instance limit from 3 to 5.
  • Classes:

    • Abilities: Removed all current class abilities (see Skills, below).
  • Commands:

    • Role: Now shows your current role, and any role-based abilities you get from synergies.
    • Rollhistory: All die rolls now show on rollhistory instead of sayhistory.
    • Skills: Added the "skill synergy" subcommand to see synergy abilities.
  • Displays:

    • Class: Most places that formerly showed a class name now show top skills instead.
    • Roster: Now shows main skills rather than class name.
    • Who: Now shows main skills rather than class name.
    • Whois: Now shows main skills rather than class name; level is now on its own line.
  • Help files:

    • Skills: Updated the 'see also' lists for many of the skill help files, as they previously provided useless lists of abilities in all-caps. Also added a blurb to skill helps about synergy abilities.
  • Scripting:

    • Room vars: %room.in_city% added to check city status of an owned tile.
  • Skills:

    • Abbrevs: Changed some of the skill abbrevs for readability, as they are now shown to players.
    • Synergies: Skills now have synergy abilities. These are very similar to the old class abilities, but are gained when the skill is at maximum AND you have another ability at the required level.

Patch b5.12 (October 10, 2017)

  • Adventures:

    • 18800 Halloween Candy Quests: A new holiday 'adventure' that involves quests from random candy drops. Admins must enable global 18802 during the Halloween season. There are no instances for this adventure.
    • Linking: Fixed a bug from b5.11 where adventures set !CITY were not linking anywhere that wasn't claimed.
  • Displays:

    • Pressing: Fixed a typo in the 'press' message.
  • Empires:

    • Naming: Fixed a bug where the "invalid name list" was being checked incorrectly when validating empire names. This fixes an issue where many acceptable names were being blocked.
  • Objects:

    • 1-Use: Objects with this flag are no longer refundable when you dismantle a building that was made with them.
    • Corpses: Now have the 1-Use flag.

Patch b5.11 (September 19, 2017)

  • Adventures:

    • 103 Magiterranean: Monsoon Rift: Fixed a bug in the cactus spawn script.
    • 160 The Tower Skycleave: Tweaked the long description on the lich to mention his name. Attached a trigger to him for the Guild quests. Fixed some issues with the Skycleaver trinket.
    • 200 Burrow Canyons: The hermit now spawns 100% of the time instead of 50%. Attached a trigger to him for the Guild quests.
    • 18200 The Guild of Adventurers: Players over level 50 now get a breadcrumb quest from their local Tavern to take them to the Guild of Adventurers. Added a seeker stone for finding the tortoise. Added a large quest chain for tier 2 adventures, to get people through most of the Esteemed reputation.
    • 19000: Attached a trigger to the swamp hag for her Guild quests.
  • OLC:

    • Adventure linking: Added support for linking via portal to a crop, and added a claimed-only flag.
    • Sector delete: Fixed a bug where deleting a sector was updating — but not saving — and adventures that used that sector for a linking rule.
  • Quests:

    • Requirements: Quests now support the get-coins and can-gain-skill requirements.
  • Scripting:

    • Bribe triggers: Now allow the script to block the bribe.
    • Minipets: Updated the minipet dismiss script to accept 'dismiss pet'.
    • %purge%: The "%purge% instance" feature can now target objects.
    • Rooms: Added the following room variables: building_vnum, crop_vnum, sector_vnum.
  • Stealth:

    • Learning: The bribe to learn the Stealth skill is now a quest instead of two triggers. Added triggers to prevent people from attempting to do it the old way.
  • Vehicles:

    • Tombs: Players may now set their tomb in a vehicle. However, they cannot use that tomb to respawn if the vehicle is parked in enemy territory.

Patch b5.10 (August 29, 2017)

  • Code updates:

    • Memory management: Fixed a bug that was preventing ocean rooms from being unloaded from memory. This was also causing a second memory leak where check-unload events were being created but abandoned. Rooms now store their unload event directly in the room_data struct, not in the shared data.
    • Solo role: Fixed a bug where some solo-role abilities, such as Ancestral Healing, could cause the game to crash when an immortal uses 'stat file' on an offline player with that ability.
  • Commands:

    • Home: Fixed a bug where unsetting a home was not updating interior rooms. It would not remove chests from the interior, and would not update the last autostore time on anything in the interior. It also was not removing citizens from interior rooms.
    • Learned: Fixed a bug where searching by name was not working correctly.
  • Displays:

    • Building: If you log out while building, and it's finished while you're offline, you will no longer see a "finish maintenance" message when you login again.
  • Empires:

    • Workforce: Changed the on/off/all and "workforce ... all" features to fix a display issue where it would say "part" when it was effectively "on".
  • Immortals:

    • Autostore: This command can now target vehicles to autostore their contents.
    • Instance list: Now indicates which empire owns the tile, if any.
    • Show learned: Now includes vnums.
    • Throwing: Fixed a display error in the 'throw' abuse log.
  • Vehicles:

    • Autostore: Changed how autostore functions on vehicles in order to support vehicles that are private homes. The vehicle's main inventory now functions just like a home chest.
    • Contents: Taking items out of a vehicle now counts as stealing if you don't have permission to take items from the vehicle. It also now checks if the vehicle is a private home.
    • Permissions: Added a private owner check to normal vehicle use, such as harnessing and driving.

Patch b5.9 (August 15, 2017)

  • Abilities:

    • Charge: Fixed a bug where it didn't detect melee range correctly if out of combat, preventing you from charging.
  • Adventures:

    • 18200 The Guild of Adventurers: The guildhall is now no-paint.
    • 18500 The Lost Temple: Fixed an issue in the adventure cleanup script that prevented the reward temple from spawning.
  • Buildings:

    • Painter's Workshop: A new luxury building (paintshop) that teaches players to paint buildings.
    • Pigeon Post: The icon for this building is now |PP|.
  • Code updates:

    • Adventure summon: Now tracks the instance id of the adventure, to prevent an issue where a player doesn't un-summon if they end up in a different adventure.
  • Commands:

    • Identify: Now ensures the item has been scaled before identifying (unless used by an immortal).
    • Morph: Fixed a bug where the game wasn't always detecting that you were fastmorphing, allowing certain morphs (mist form) to be used when they aren't allowed.
    • Read: Fixed a bug where you could start reading while sitting, but the action would immediately cancel due to sitting.
  • Displays:

    • Following: No longer shows the "follows you" message if you can't see the person. Also now hides the stops-following message during character extraction.
    • Library browse: Added a color code terminator for book titles.
  • Help files:

    • World drops: New help file to explain this term (which is used in other helps).
  • Paints:

    • Building: Painter's Workshop [PP], requiring Luxury.
    • Commands: Players can now 'paint' their buildings, and 'unpaint' to remove the color. This requires 1 paint item per building, as well as the 'customize' privilege.
    • Crafting: Players can now craft paints in all the colors that are available in-game.
    • Data: Added a paint item type, paint component type, and used the 'spare' integer (formerly the disrepair counter) in the map-save data for buildings.
    • Quests: Added 7 new quests to teach paint-making.
    • Recipes: Paint recipes are acquired from quests at the Painter's Workshop, as well as drops from any level 75+ mob.
    • Scripting: The paint command fires a 'consume' trigger on the paint item.
  • Quests:

    • Keep: Fixed a bug where keeping and un-keeping an item would not correctly update quest trackers.
  • Scripting:

    • Room functions: Added a %room.function(FLAG)% getter.

Patch b5.8 (August 1, 2017)

  • Abilities:

    • Alacrity: Converted to the new ability system.
    • Blind: Converted to the new ability system.
    • Deadly Weapons: Now includes a two-handed claymore.
    • Difficulty: Parameterized abilities now have a 'difficulty' field, as well as custom messages to show on failure.
    • Foresight: Converted to the new ability system.
    • Hasten: Converted to the new ability system.
    • Majesty: Converted to the new ability system.
    • Nightsight: Converted to the new ability system.
    • Radiance: Converted to the new ability system.
    • Ready *: The ready command now caps the weapon's level if the player is below 100 Skill Level so that they will be able to use the item rather than getting blocked by level.
    • Scaling: Fixed a minor bug where abilities that have only non-scalable applies would not apply anything at all.
    • Soulmask: Converted to the new ability system.
    • Vampire abilities: The new ability engine now supports vampire ability checks and has an optional ignore-sun flag. The code that removes vampire effects when you're in the sun now triggers specifically on anything that causes blood upkeep.
    • Weaken: Converted to the new ability system.
  • Adventures:

    • 129 A Gigantic Nest: Fixed a bug where the shop only worked after specific quests.
  • Code updates:

    • Text editor: Fixed a crash bug in the text editor which was triggered by a specific and unusual replacement command (after a player used it to repeatedly crash the mud on-command).
  • OLC:

    • Ability editor: Added "role" to the names of the role-based flags (MELEE-ROLE) to clarify what they do. Added a fullsearch option for abilities.
    • Mob editor: Fixed the prompt highlighting for attacks and flags.

Patch b5.7 (July 18, 2017)

  • Abilities:

    • Buffs: Fixed a small oversight in parameterized buff abilities where non-scalable applies would have scaled.
    • Eartharmor: Converted this ability to the new system. Now also gains experience in combat, and has a rising cost as it scales up. It also now offers magical protection in addition to physical. Its effect is now more powerful at higher levels.
    • Fly: Converted this ability to the new system. Now has a wear-off message sent to the room.
    • Gain hooks: Added a hook for normal movement.
    • Terrify: Converted this ability to the new system. Now linked to Charisma and costs more as it scales. It is now more powerful at higher levels.
    • Toggles: Toggling off a parameterized ability now also correctly causes its command lag.
  • Adventures:

    • 281 Mountain Valley: Molten Fiend: The equipment trade-in now uses the average level of traded items, rather than lowest level.
    • 18200 The Guild of Adventurers: The buildable guildhall now increases your 'nearby' radius.
  • Buildings:

    • Larger-Nearby: New function flag increases the player's nearby when present.
  • Displays:

    • Affects: Fixed a bug where generic affects were displaying their to-room messages to the character instead.
  • Empires:

    • City list: This command can now be used to find other empires' cities (but not outposts) too. This gives blind players the ability to find cities that sighted players could already see on the world map.
    • Workforce: Fixed a bug where replanting was not scheduling the tile to grow.
  • Objects:

    • Two-handed weapons: Fixed a bug where you could bypass the two-handed item restriction by using 'wear' instead of wield/hold.
  • OLC:

    • Editor: The editor prompts now change color when the values are changed from the default, to make it easier to see which things you have or have not changed. For blind players, it adds an asterisk before the OLC prompt.
    • Object editor: Now displays vnum for liquid type. Also now shows which fields are scalable when the item is scalable.
    • Various types: For types that didn't already have it, moved the default strings to the top of the file as a variable so they can be used in multiple functions more easily.

Patch b5.6 (July 11, 2017)

  • Abilities:

    • Augments: The augment (enchanting) system now uses normal mastery abilities to raise scaling points rather than special code for this system.
    • Crafting abilities: Added the 'crafting' type to the data for these abilities. This has no effect on gameplay.
    • Gain hooks: Added only-dark, only-light, and only-vs-animal flags for ability gains. Fixed a bug where gain hooks weren't loading on startup.
    • Kick: Fixed a bug where players whose damage was too high would fail a kick.
    • OLC: Fixed a bug from b5.5 where costperscalepoint could not be set (it was overriding the cost instead).
    • Player techs: Added a new class of abilities with always-on effects for the player. These replace effects that were previously caused by ability vnums directly in the code.
    • Predator Vision: now increases light radius.
    • Tech abilities: The following abilities were converted from hard-coded to data-driven tech abilities (there shouldn't be any significant changes for players): All-Terrain Riding, Appraisal, Archery, Block Arrows, Butcher, By Moonlight, City Teleportation, Cling to Shadow, Cloak of Darkness, Customize Building, Deadly Poisons, Deep Mines, Dragonriding, Dual Wield, Fastcasting, Finder, Fish, Forage, Healing Boost, Heavy Armor, Hunt, Improved Infiltrate, Infiltrate, Light Armor, Mage Armor, Master Farmer, Master Tracker, Medium Armor, Mountain Climbing, Navigation, No Trace, Pickpocket, Poisons, Poison Immunity, Predator Vision, Ride, Sated Thirst, Shield Block, Swimming, Touch of Flame, Two-Handed Weapons, Unnatural Thirst, Unseen Passing, Vaultcracking, Ward Against Magic, Woodworking.
    • Touch of Flame: Changed the message for no-flint lighting to make it more generic.
  • Code updates:

    • find_player_vis: Fixed a bug where visibility was not actually checked by this function, allowing (among other things) sending tells to invisible immortals by name.
  • Buildings:

    • Designate: Fixed a bug where you could designate building types as if they were rooms.
  • Immortals:

    • Show technology: New command to see what techs a player has (from abilities).

Patch b5.5 (July 4, 2017)

  • Abilities:

    • Damage type: Added parameterized ability code for damage abilities.
    • Defend: Added missing messages and added skill gain hooks.
    • DoT type: Added parameterized ability code for DoT effects.
    • Frenzy: Added missing messages and added skill gain hooks.
    • Level: Parameterized abilities are now limited by the level of their parent skill, unless you have it at 100.
    • Ranged-only: New flag for abilities that only work in ranged combat (or when not yet in combat).
    • Roles: Parameterized abilities now support changes in scale level based on matching roles.
    • Skill gains: Parameterized abilities now have hooks for skill gains, allowing them to gain at various times.
    • Toggles: Changed how abilities report success/failure and moved where they check cooldown/cost in order to allow toggle-off while the ability is on cooldown.
    • Trick Shots: Now gains experience every round rather than just when it goes off, as stated in the help file.
  • Affects:

    • Shadow Jab/Diversion: Fixed the effect names and messages for these two abilities. One was swapped to the other's vnum, and the other was missing entirely.
  • Buildings:

    • Stable: Fixed a bug where having 3 or more of an animal in a stable would cause them to ALL despawn, instead of keeping 2.
  • Code updates:

    • Extraction Pit: Added a room to relocate mobs to when they are being extracted from a room that was deleted, rather than running the extraction function early. This should fix a crash bug that occurred if a mob's enter trigger destroyed an instance and resulted in the mob being extracted mid-movement, which was happening at the end of real-life months when the Magiterranean gardener attempted to destroy his own instance.
    • Linkdead players: Removed a function that was used to remove all linkdead players from the game. This was formerly used to ensure offline updates were saved, at a time when linkdead players could not be saved. (This hasn't been the case for a long time.)
  • Displays:

    • Followers: Changed when the stop-following happens during character extraction, so that stops-following messages aren't delayed. (In fact, it won't even show the message in this case.)
    • Various: Minor typo fixes and text corrections.
  • Empires:

    • Defect: Now requires you to type 'defect CONFIRM' to leave the empire, to prevent accidents.
  • Help Files:

    • Various: Typo fixes and text corrections.
  • OLC:

    • Abilities: Fixed a b5.4 bug where custom messages did not save.
    • Control flags: Inverted the skill/ability/class control flags to be toggle-off rather than toggle-on. All types are now consistent with each other.
  • Socials:

    • Commands: Applied the char_can_act function to social verification, for consistency.

Patch b5.4 (June 27, 2017)

  • Abilities:

    • Defend: New Battle ability increases dodge at the cost of to-hit.
    • Fletching: Added additional arrow types.
    • Frenzy: New Battle ability increases to-hit at the cost of dodge.
  • Ability System:

    • Buff abilities: Added the editor and logic for buff abilities to be built in OLC, for testing over the next couple of weeks.
    • Commands: Abilities can now have their own commands, set in the ability editor, which the mud finds and runs similar to socials.
    • Parameterized abilities: Ported CircleMUD's generic spell handlers as part of an update that allows abilities to be designed and implemented in-game using OLC. The ability editor now has additional options for configuring abilities.
  • Adventures:

    • 104 Magiterranean: Permafrost: Minor fixes to Aquilo's fight script.
    • 125 Ruins: The Goblin Challenge: Updates to the spawning script.
    • 180 Misplaced Mother Goose: Removed the ability to start the quests at the mob who turns them in, to reduce confusion. The quests now only start from the items.
  • Displays:

    • Damage messages: Fixed conjugation typoes in the new damage messages.
  • Help Files:

    • Equipment: Updated with notes on containers and inventory size.
    • Inventory: Updated with notes on containers, and reformatted the flag section to be clearer.
  • Immortals:

    • Abilities: Immortals can now 'skill buy' any ability regardless of whether it's in a skill tree. (Immortals could already 'skill sell' any ability.)
  • Objects:

    • Containers: Fixed a bug where containers in inventory were not properly updating inventory size when items were added/removed. Containers now take up inventory size even if worn, as do the items inside them.
    • Player inventories: Fixed a bug where containers in players' inventories would lose the items on login (since there aren't many in the game, this long-lived bug had not come up before).
  • OLC:

    • Custom messages: Made a general custom message editor since 3 types now have them.
    • Scripting: Empty variables no longer save to file.

Patch b5.3 (June 20, 2017)

  • Abilities:

    • Backstab: Now works on opponents who are fighting at range, and forces melee afterwards.
    • Bowmaster: New Battle ability gives 50% more damage from ranged weapons.
    • Charge: New Battle ability immediately closes the distance in ranged combat.
    • Fletching: New Trade ability for making better arrows.
    • Kite: New Battle ability moves you back to ranged combat, or keeps you in ranged combat longer.
    • Melee abilities: More abilities now require melee range if used in combat, and some existing abilities that already required it were updated. These include: heartstop, disarm, kick, bash, weaken, jab, prick, bite, blind, lightningbolt, sunshock, ablate, acidblast, arclight, astralclaw, chronoblast, deathtouch, dispirit, erode, scour, shadowlash, soulchain, starstrike, thornlash, skybrand, entangle.
    • Rescue: Updated to ensure the rescuer is put in the correct fight mode.
    • Searing Poison: Removed the special-cased code for this poison. It now uses a consume trigger to apply its effect.
    • Trick Shots: New Battle ability adds additional effects to your ranged combat.
  • Adventures:

    • 125 Ruins: The Goblin Challenge: This adventure got a full update include new combat scripts, a difficulty selector, and a new set of loot.
    • Bows: All existing bows were updated as part of updates to ranged combat.
  • Code Updates:

    • Global buffers: Removed multiple uses of CircleMUD's global buffers (buf, buf1, buf2) in core files including comm.c, handler.c, interpreter.c, limits.c, modify.c, and utils.c. This may fix a strange heisenbug where a trigger (especially the goblin lumberjacks) reports a script error that includes text from a script being edited, rather than text from its own script. But due to the nature of the heisenbug, it's impossible to be sure.
  • Combat:

    • Messaging: Added a "noun" form of the weapon type instead of using the first-person message as a noun in the "your <slash>" message. This now allows for types that can't be phrased that way, such as shoot/shot ("your shoot" wouldn't work). Also changed the terms "singular and plural" to "first-person and third-person" in the code related to these messages.
    • Ranged weapons: Added 4 new weapon attack types: bow, crossbow, pistol, musket. These all use the verb "shoot", but have different combat messages. Value 0 on ranged weapons now indicates attack type, rather than missile weapon speed. Missile weapons now use normal attack types. Arrows can now apply debuffs when they hit, and can fire scripts.
  • Commands:

    • Approach: Manually cancels ranged combat and moves into melee.
    • Hit/kill: Using this command to change focus in combat now also accounts for fight mode (melee, missile).
    • Shoot: Can now be used to change targets in ranged combat.
    • Use: You can now "use <arrows>" to set preferred ammunition.
  • Displays:

    • Attacks: Added more damage messages, going up to 125 damage.
    • Physical DoT: Fixed noun-pronoun agreement for the "wince" messages.
  • Mobs:

    • Global loot tables: Updated global loot tables so the ADVENTURE-ONLY flag now only applies to mobs that are linked to an adventure instance, not just mobs whose vnums come from one.
    • Scaling: Adjusted the values for mob health to create a smoother progression through hard/group/boss and tank modifiers.
    • Stables: Fixed a b5.1 bug where too many mobs despawned from stables, under certain circumstances.
  • Objects:

    • Ammo: The "arrows" object type is now called "ammo".
    • Searing Poison: No longer storable. Now uses a trigger instead of special-cased code.
  • Scripting:

    • Consume triggers: Poisons and arrows can now fire consume triggers. Added an optional %target% variable to these triggers.

Patch b5.2 (June 13, 2017)

  • Adventures:

    • 104 Magiterranean: Permafrost: The quests now correctly give the token currency from b5.1 instead of the old token items.
    • 128 Colossal Red Dragon: The quests now correctly give the token currency from b5.1 instead of the old token items.
    • 129 A Gigantic Nest: The quests now correctly give the talon currency from b5.1 instead of the old talon items.
    • 18200 The Guild of Adventurers: The quests now correctly give the token currency from b5.1 instead of the old token items.
    • 18500 The Lost Temple: Fixed papaya harvest percent.
    • 19000 The Swamp Hag: A full upgrade of the old swamp hag adventure (121) that includes more loot, crafts, and a difficulty selector.
  • Code updates:

    • Auto-updater: The game will no longer run old auto-updaters on fresh new EmpireMUDs, which sometimes caused strange problems.
    • base_map file: Fixed several serious b5.1 bugs that occurred when loading the world without a base_map file.
    • get_building_by_name: Now prefers exact matches first.
    • Islands: Island pointer are now assigned earlier during startup.
    • Startup: Moved the scheduling of un-loading rooms to the end, and un-loaded as many rooms as possible first, to prevent very long startup times when a lot of rooms are loaded.
  • Commands:

    • Designate: Now only searches rooms you COULD designate where you are. This prevents conflicting names from rooms that can't be designated.
    • Scan: Fixed a bug from b5.1 where scanning for a tile wasn't working.
  • Content:

    • Heroic Boots of Seven Strides: Fixed level limits.
    • Heroic Caravan: Changed the room names to avoid conflicts with other room types.
  • Scripting:

    • Unusual error: Added a check to prevent a crash when a script runs without script data. This should never happen, and will now log an error instead of crashing.

Patch b5.1 (June 6, 2017)

  • Notes for Admins:

    • Makefile: There are several new files that must be added to the Makefile. Or, you can run the 'configure' script again to generate a new Makefile (if you haven't made changes to yours).
    • Configs: When I updated my builder port copy, my game_configs file had a small conflict.
    • Cooldowns: When you apply this patch, you'll see SYSERRs for invalid cooldowns on players. This is because cooldown numbers changed. All players will have their cooldowns refreshed when this patch is applied for the first time.
    • Long update: When you first boot your EmpireMUD with b5.1, expect it to take a long time to start up. It has a lot of things to auto-update.
  • Abilities:

    • Darkness: No longer randomly wears off in sunlight. This "feature" was not mentioned in the help file but previously triggered on hourly updates.
    • Owl/Scorpion Shadow Familiar: These familiars now hide when their master hides.
  • Adventures:

    • 104 Magiterranean: Permafrost: Added some random moves to the river-freezer's load script, so he starts freezing as soon as a player activates the delayed-load on the adventure.
    • 160 The Tower Skycleave: Moved the tower announcer script from the interior to the building so it can run if the adventure isn't loaded yet.
    • 18300 Pyramid: Hidden Chamber of Neferkare: Moved the spawn command for the wandering mummy to the difficulty selector so the mummy is now freed when you start the adventure.
    • 18500 Lost Temple: Changed how it detects whether the adventure was successfully completed, to allow delay-loading.
    • Craftables: Craft patterns from adventures have been updated to use the new recipe system. Players can now 'learn' the patterns permanently.
    • Delayed loading: Adventures now support delayed loading, where they don't instantiate until a player arrives. This should reduce lag from unused mobs, rooms, and triggers in the world. The following adventures now use it: Grove, Hidden Gardens, Permafrost, Three Banditos, Thieves, Goblin Challenge, Ratskins, Goblin Outpost, Skycleave, Primeval, Hamlet, Winter Wonderland, Burrow Canyons, Mill Manor, Molten Fiend, Unstable Portal, Neferkare, and Lost Temple.
    • Mini-pets: You can now see minipet cooldowns on the 'cooldown' command. Some mini-pets received new echoes.
    • Shops: All adventure shops were converted from scripted behaviors to real shops.
    • Tokens: All adventure currencies, such as tokens, were converted to player currencies.
  • Buildings:

    • Siege damage: Fixed a bug where buildings without their own maintenance requirements were not getting the default repair requirement when damaged.
  • Code updates:

    • Annual map update: Rewrote and rearranged parts of this as part of updates to the world map and to room data.
    • Archetypes: The sorted archetype table is now sorted by type then name.
    • Burning buildings: Instead of hourly updates of burning buildings, these are now scheduled on a timer. All code related to burning buildings was updated.
    • Crop growth: Now happens on its own timer, rather than being updated by iterating over the world.
    • Events: Fixed a tiny memory leak in trigger wait events (6 bytes per wait).
    • fresh_copy_obj: Now copies script variables in addition to other properties.
    • Hide: Typing a command while hidden now attempts to remove any HIDE effect, not just ones from the 'hide' ability.
    • Island lookups: All rooms now store pointers to their islands, for faster lookups.
    • Map lookups: All rooms now store pointers to their map location, for faster lookups.
    • Room affects: Instead of a duration, these effects now have an expire time, and are scheduled as events.
    • Room extra data: Created generic versions of these functions so they can operate on map tiles as well as rooms. The old functions are now macros wrapping the new functions.
    • Warehouse: Now capable of storing/copying script variables.
    • World map: Moved more data from live rooms to the map data, so more rooms can be un-loaded from RAM.
    • World updates: Eliminated the world updates that happened on 30- and 75-second timers. This should reduce periodic lag significantly.
  • Combat:

    • Changing focus: Removed the free hit when you change focus in combat using hit/kill.
  • Commands:

    • Beckon: Invites a player (or room) to follow you.
    • Buy: Buys items in shops.
    • Cede: You can no longer cede land to a player who does not have the 'claim' privilege in their empire.
    • Coins: Now lists adventure currencies too.
    • Follow: No longer requires a target if someone has beckoned you to follow them.
    • Learn: Consumes a recipe item and stores the recipe for the player.
    • Learned: Lists/searches learned recipes.
    • List: Lists items in shops.
    • Messages: Shows recent/recurring messages.
  • Configs:

    • new: automessage_color &y
    • new: burn_down_time 600
    • new: trench_fill_time 43200
    • new default: planting_base_timer 9000
  • Crafts:

    • Global pattern drops: These items have been converted to learnable recipes.
    • Immortals: Can now set and show learned recipes on players.
    • Learnable recipes: Players can now permanently learn some craft recipes, using a 'recipe' item. This replaces the system where a player must keep recipe/pattern items in their inventory.
  • Currency:

    • Adventure currency: New generic type, to replace existing token systems.
    • Coins: This command now shows your adventure currencies, too.
    • Immortals: Can now set and show adventure currencies on players.
    • Quests: Currencies can be quest pre-requisites, tasks, and rewards.
    • Resources: Currencies can be in resource lists for crafts, buildings, etc.
  • Displays:

    • Quest finish: Changed the order of error messages because 'You can't turn that in here' is not useful if it's not complete.
    • Recognizing: You can now see who a disguised/morphed player is when you look at the room, IF you can recognize them (e.g. same empire or group).
  • Generics:

    • New data type for generic number/string data.
    • Affects: Converted all the 'affect' data to generics. Affect names and wear-off messages are now controlled in-game. Scripts can now pick specific affect types to apply.
    • Cooldowns: Converted all cooldowns to generics. They now have configurable wear-off messages (and the option for no message), and can also be set/read in scripts.
    • Liquids: Added a generic type for liquid data, which replaces hard-coded liquids. All existing liquids were converted to use this system.
    • OLC: Full editor suite for generics.
    • Resource actions: The resource actions (magic words, tidy up, dig) were moved to generics and can now be added in-game. Added an auto-updater to fix existing buildings, crafts, and vehicles, as well as any live copies of buildings and vehicles that have them.
  • Help Files:

    • Access level: New immortal help explains levels better.
    • Gods: New help file explains the old god system, and why it isn't active.
  • Immortals:

    • Automessage: New command/system for automatically displaying messages to all players (on a timer, on login, or once per player).
    • Instance list: Will now show live adventures with zero instances.
    • Set access: Changed "set level" because some admins are using it while trying to change their skill/gear level.
    • Show stats: Fixed a display bug where the number of live triggers was only counting the local list from the first global trigger, not the full list of global triggers.
    • Stat trigger: Now correctly shows attachments for vehicle triggers.
  • Objects:

    • Craftables: Added a new tier of 20 craftable armor, helmets, armwear, and offhand items in the 100-200 level range, plus 5 miscellaneous items including new packs and shoes. The patterns for these items drop from any mob in the world in the 100-199 level range, with a higher chance from mobs with higher difficulty flags. Added another set for 200-299 as well.
    • Recipe: New item type with value 0 used for a craft vnum. Recipes are consumed by the 'learn' command.
    • Trinkets: You can now see trinket cooldowns on the 'cooldown' command.
  • OLC:

    • Globals: Now lists the type of global on the .list and vnum output.
    • .gen quickcooldown: Creates a quick cooldown generic for various things.
    • .o quickrecipe: New command creates a quick recipe item for a learnable craft.
    • .o search: Fixed a bug in how resource entries were searched for objects.
    • Triggers: Fixed a bug where the "obj location selector" option for trigger arguments also caused the <string> prompt to be displayed. Improved how triggers are copied, saved, and freed (including a memory leak where trigger command lists were not freed). This may fix a bug where editing (or saving) one trigger can cause an error to appear in another trigger that was already running, but this bug is difficult to reproduce and may be more involved.
  • Rooms:

    • Affects: Room affects now save through a reboot. Also added code to ensure the affects are correctly applied at startup.
    • Deleting: No longer check instances when deleting a room unless the room has an instance attached.
    • Oceans: Oceans are now un-depletable since they don't save depletion data to file anyway.
    • Resets: Moved non-adventure-room resets to a periodic event rather than an iterator.
    • Saving: Combined the saving of world rooms and the world index, rather than iterating over the world twice.
    • Shared data: Map tiles and room objects now have "shared data" so that some of the same data is not updated in two places, and more data is stored to the map tile so the room can be un-loaded from memory. Ocean tiles all share 1 shared data object; all other tiles and interior rooms have a unique one.
    • Stored events: Rooms (and map tiles) now have a hash table and handlers for storing event pointers, so that events for those things can be managed/canceled.
    • Taverns: Moved tavern updates from an iterator to a timer.
  • Scripting:

    • Buy: New trigger type fires whenever someone tries to buy from a shop.
    • Conditions: Added %char.hunger%, %char.thirst%, and %char.drunk%, which can be used to get/change these player conditions.
    • Cooldowns: Added %char.cooldown(VNUM)%, %char.set_cooldown(VNUM, SECS)% and %cooldown.VNUM%.
    • Currencies: Added %char.currency(VNUM)%, %char.give_currency(VNUM, AMT)%, %char.charge_currency(VNUM, AMT)%, and %currency.VNUM(AMT)% variables.
    • dg_affect and dg_affect_room: Now support an optional first argument with a number sign and an affect vnum (#1234). Now also support a quick way to cancel all affects of a given type.
    • %dot%: Now support an optional first argument with a number sign and an affect vnum (#1234).
    • Instance vars: Added %instance.level%, %instance.level(lvl)%, %instance.load%, and %instance.loaded% variables.
    • Learned recipes: Added %char.learned(VNUM)%, %char.add_learned(VNUM)%, and %char.remove_learned(VNUM)%.
    • Memory: Added a delay system for freeing trigger memory, to fix a bug in DG Scripts where a trigger can actually detach and extract itself and then still try to reference some of its data (which only usually worked). Also fixed a memory leak where, in some cases, the command list for a trigger was never freed.
    • Object vars: Added %obj.quest%.
  • Shops:

    • New data type: Shops are no longer built tediously using triggers. They now have their own data type and full OLC suite.
    • Buy: New command to buy items from a shop.
    • List: New command to list items for sale in the room you're in.
  • Tutorials:

    • Existing Tutorials: Turning off tutorials now blocks the intro quest for the Soulstream, Museum, and Planning Office tutorials (but not the quests inside).
    • Microtutorials: The following items now have single-quest tutorials: rock, chipped rock, flint stone, flint set, stick.
    • Toggle: Added a new quest flag, TUTORIAL, that is blocked by the new 'toggle tutorials'. This will cause some quests to stop appearing.
  • Vehicles:

    • Captain's Cabin: Fixed the room title, which said "Bunk Room".

For patches prior to b5.1, check out the changelog on GitHub.