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…

Storage update patch (not live)

  • Config changes:
    • new: local_tech_distance 20
  • Empires:
    • Cities: Claimed rooms now have a pointer to their city, if any, including if they are in the outskirts. These are read during startup, re-read when a city changes, and updated when a tile is claimed or abandoned. This significantly speeds up city/outskirts checks. If there is more than one city, the tile is associated to the closest one it’s inside of or near. Fixed a bug where tiles believed they were part of the wrong city if they were in the radius of a large city, but closer to the center of a smaller one for which they were in the outskirts.
    • Local technologies: Instead of being island-based, local technologies (like docks/seaports) now store their exact location and a player only has access to them if they’re in the same storage region or within 20 tiles.
    • Outskirts: A city’s outskirts are now confined to the same island. Other islands will always be frontier territory.
  • Rooms:
    • World-storage: Created a new storage system for unclaimed rooms where non-bound items left on the ground can be stored temporarily rather than extracted. Players will never see this effect: world-storage is unpacked when a player enters the room.
  • Vehicles:
    • World-storage: Vehicle contents can now be stored into world-storage and will return when there’s a player in the room.

Live Patches:

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). Screenreader 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 screenreader/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’. Screenreaders 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 screenreader 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 screenreader users (hopefully this will make the list more navigable) or 2 per line for non-screenreader 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 screenreader view (in b5.97 it showed a total of 0 mounts if when using the screenreader 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 screenreader 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 screenreader users (who see this distance in each direction) and defaults to width for non-screenreaders (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.
    • Screenreader: 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 screenreader 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 screenreader 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 screenreader 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-screenreader 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.