Patch Notes

EmpireMUD 2.0 beta 5 patch notes

Skip to live patches…

Live Patches:

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.