Patch Notes

EmpireMUD 2.0 beta 5 patch notes

Skip to live patches…

Patch b5.14 (not live)

  • 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.
  • 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).
  • Configs:
    • new: steal_death_penalty 60: Number of minutes you cannot steal from an empire after it kills you.
  • Empires:
    • 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.
  • 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:
    • 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).

Live Patches:

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.