Week of 5 October 2026
Highlights
- SimpleFactions: Add configurable faction espionage and special positions
- Thievery: chest lock minigames (dialog pin grid, floating lockpick ring) and seized-pin probing
- Added Arcane Archer. Added skill slots. Added options.. Added Berserker. Added skill slots. Added options.. Added Cleric. Added skill slots. Added options.
- Thievery: pickpocket ring minigame before a pocket opens
- RPCharacters: pick class and subclass through RPCharacters instead of MMOCore class points
- RPCharacters: Make armour take time to put on and lock it for the whole PvP fight
Classes
- Added Arcane Archer. Added skill slots. Added options.. Added Berserker. Added skill slots. Added options.. Added Cleric. Added skill slots. Added options.
- RPCharacters: pick class and subclass through RPCharacters instead of MMOCore class points
- RPCharacters: Separate class and subclass selection into different windows
- Adjusted the class requirement of Custom Boots. Adjusted the class requirement of Custom Chestplate. Adjusted the class requirement of Custom Leggings.. Adjusted the class requirement of Custom Battle Standard.. Adjusted the class requirement of Custom Battleaxe.
- RPCharacters: Preserve character attributes through class and subclass changes
Combat and gear
- Added A FRAGMENT OF HER LIGHT. Added Asante-knife. Added Mizean Watcher's Ciupaga.
- GunsAndGadgets: choose gun ammunition with crouch + right-click
- Added don seconds.
- RPCharacters: Make armour take time to put on and lock it for the whole PvP fight
- GunsAndGadgets: refresh guns on join and when a chest is opened
- RPCharacters: Let fighters in body armour keep their helmet free during /pvp start
- RPCharacters: Take recent headwear off fighters who aren't in body armour
Magic
- Added runestones.. Added empress zenyra solithar.. Removed empress zenyra solithar.
- Added tfmc vfx bolt cerrith. Added tfmc vfx bolt oseni. Added tfmc vfx bolt seithr.. Added tfmc vfx shockwave bless. Added tfmc vfx shockwave restoration. Added tfmc vfx shockwave tremors.. Added berserker bloodlust. Added berserker cleave. Added berserker cleave hit.
- Added Petty Magical Tome.
- Recycler: Recycle Magic artifacts for enchanted dust by rarity
- Magic: Refresh mage weapons on join and chest open; socketed runes follow their template
- Magic: Hide special schools and fill locked element slots
- Recycler: Raise artifact recycle dust to about half a Dust Mine node
Crafting
- AdvancedCrafting: Show per-hit counts when right-clicking a station with the branding tool
- DrinkBuilder: Add Amethyst Shard to the drink ingredient list
- AdvancedCrafting: Refresh crafted items on join and chest open; alloys follow base stat changes
Professions
- Thievery: chest lock minigames (dialog pin grid, floating lockpick ring) and seized-pin probing
- GemInfusion: allow gem-free goldsmithing projects and add the Golden Key
- Added Golden Key.
- GemInfusion: list each goldsmithing hit and the materials used in branding status
- Thievery: pickpocket ring minigame before a pocket opens
Animals
- CompanionPets: Support configurable pet interaction items and refactor action services
- Adjusted the health of mounts.
- CompanionPets: Improve pet greetings, social memory and toy reactions
- CompanionPets: Use native pet navigation, configurable voices and lighter ticking
- CompanionPets: Decouple pet behaviors from bodies and generate vanilla entity voices
- CompanionPets: Make custom tricks opt-in for species and legacy pets
- CompanionPets: Replace configurable behavior lists with fixed dog, cat and basic profiles
- CompanionPets: Place pets on valid ground and play shakes at clip speed
- CompanionPets: Bound water exit searches and preserve pet destinations
- CompanionPets: Remove Call and enforce a total pet limit
- CompanionPets: Allow attentive pets to share toy play with other owners
World and nodes
- ProvinceSystem: Show effective terrain as a web map layer
- ProvinceSystem: Draw trade network routes on the map
- ProvinceSystem: Add a Plain map type that shows the base map alone
- VehicleFramework: Support junction routing for reversing train consists
- ProvinceSystem: Rebuild the world map as a Google Maps-style viewer
- ProvinceSystem: Move map modes into a Google-style layers panel and give the phone sheets Google Maps' drags
- ProvinceSystem: Rebuild the timelapse studio on the map shell
- ProvinceSystem: Remove supply hub, trade route and infrastructure layers from the map
- ProvinceSystem: Stitch several looks into one chronicle timelapse, and leave water out of prosperity and trade leagues
- ProvinceSystem: Drop the "/" hint box from the map search
- ProvinceSystem: Move the map's layers control to a Google-style corner tile on desktop
- ProvinceSystem: Slim the desktop layers strip to one row of one-line labels
- ProvinceSystem: Cut jargon from the map and timelapse wording
Town
- SimpleFactions: Add per-province infrastructure that raises effective terrain
- SimpleFactions: Add configurable faction espionage and special positions
- Added espionage. Added positions.
- SimpleFactions: Estimate what a hub or installation would earn
- SimpleFactions: Propose and negotiate supply hubs from the menus
- SimpleFactions: Show what infrastructure earns in the menus
- SimpleFactions: Name the trade networks and add a viewer
- SimpleFactions: Add a daily guild donation to the realm
- SimpleFactions: Allow ending relations while over diplomatic capacity.
- SimpleFactions: Rebalance hub shares, hub upkeep and installation upkeep.
- SimpleFactions: Give realm guilds an Infrastructure branch in place of Supply Lines.
- SimpleFactions: Count railway track as infrastructure in every province it crosses
- SimpleFactions: Expose unguarded factions and require a Spymaster for daily reports
- SimpleFactions: Replace hub permits with a per-hub agreement
- SimpleFactions: Choose hub sites by trade power and drop the daily estimates
- SimpleFactions: Move trade along the shared graph, with or without hubs
- SimpleFactions: Leave trade along sea and rail corridors
- SimpleFactions: Place hubs by network instead of a single main hub
- SimpleFactions: Let installation access replace supply hubs in the trade engine
- SimpleFactions: Remove Infrastructure
- SimpleFactions: Let trade board sea lanes and railways at any province along them
- SimpleFactions: Remove supply hubs
- SimpleFactions: Show installation use on trade agreements and as a percent in law lore
- SimpleFactions: Use the stack of coins as the Counting Houses icon
- SimpleFactions: Make the faction leader the default holder of special positions
- SimpleFactions: Build up new Spymasters instead of charging for replacements
- SimpleFactions: Give overlords an espionage edge and let Spymasters share with overlords and vassals
- SimpleFactions: Give Spymaster sabotage roleplay text from special-positions.yml
- SimpleFactions: Settle branch income previews like the daily ledger and show the realm-wide change
- SimpleFactions: Berth a vehicle inside an installation radius even when it sits in another province.
Other
- Added groups.
- ProvinceSystem: Add Discord sign-in, user accounts and website account linking
- Added stats.
- Added rarities.
- Added rewards.
- RPCharacters: Stop one player striking the same character three times in a day
- ProvinceSystem: Replace the mobile header's scrolling links with a slide-out menu
- ProvinceSystem: Use the TFMC logo in place of the word "TFMC" in the header and landing pages
- ActivityTF: lock activity rewards for the whole week
- ProvinceSystem: Look up linked players' Discord handles and server nicknames
- ArmourShop: Let skins apply to every item a base set's MMOItems type covers
- TFMCCore: hide the enchantment glint on signed books
- ProvinceSystem: Lay out the Ranks group lists for phones
- ProvinceSystem: Cut jargon from the character, skins and drinks pages
- ProvinceSystem: Cut jargon from the wiki, profile and account pages
Bug fixes
- Dowsing: Reach 100% runtime coverage and fix node, refund, and persistence bugs
- ArmourShop: Reach 100% runtime coverage and fix shop, book, and pack bugs
- ProvinceSystem: Let clicks reach the map under the bottom overlay row
- CompanionPets: Fix modeled pet lifecycle, tricks and movement orders
- Games: let deck owners host and start poker tournaments
- DrinkBuilder: Restore custom ingredients and legacy effects in BreweryX drinks
- RPCharacters: Reach 100% runtime line coverage and fix covered regressions
- CompanionPets: Fix shared fetching, water navigation and pet health recovery
- ProvinceSystem: Fix map names on iPhone: missing names and oversized settlement chips
- SimpleFactions: Strip gradient colours from names used for trade networks
- Magic: Fix school rune socket defaults and align live magic settings
- ProvinceSystem: Stop the realm names relaying out on every zoom step
- ProvinceSystem: Keep the map's backdrop up outside the sharp tiles
- ProvinceSystem: Keep map tile images mounted so a settling zoom does not blank the map
- ProvinceSystem: Decode map tiles at full size so a settled zoom never paints them blank
- SimpleFactions: Fix the ledger Back button and show the full ledger summary
- ProvinceSystem: Keep what is under the map's sharp tiles until they have faded in
- ProvinceSystem: Keep a selected realm lit while a zoom loads its next reduction
- RPCharacters: Keep the shared class level when a class caps it
- VehicleFramework: keep restored vehicle heading when steering
- TFMCWeb: Clear the Discord Banned role when a ban ends
- Research: let lecterns hold written books when no project is open
- GemInfusion: treat reset infused gems as infused and restore them
- ProvinceSystem: Keep a closed realm lit while the map's colours fade back in
- TFMCCore: Keep the attacker on shield-limited hits
- RPCharacters: Stop knocked-out players dying when they get up
- SimpleFactions: Rebalance rail trade and fix accepted trade agreements
- Magic: stop empty artifacts from muffling in storage
- VehicleFramework: stop vehicle containers losing custom items on reload
- Games: redraw packet cards on return and restart a stuck blackjack clock
- ProvinceSystem: Paint chronicle vassals with their overlord so a day matches the live map.
- RPCharacters: Mark the base class of a subclass and drop skill bindings the class lacks
- RPCharacters: Keep war battles lethal for nonlethal attackers
- Cooking: Cover all Cooking runtime lines and fix item/state loss
- VehicleFramework: Fix runtime edge cases and enforce 100% plugin line coverage
- BirdMessenger: Fix mail persistence and inventory handling with full line coverage
- TFMCCore: Fix runtime edge cases and require full production line coverage
- SimpleFactions: Reach 100% plugin line coverage and fix war and installation state
- CompanionPets: Fix pet water shakes, custom trick audio and safe spawning
- ActivityTF: Fix activity recovery and enforce 100% line coverage
- InteractibleFurniture: Fix furniture state loss and enforce 100% line coverage
- GemInfusion: only finish gem-free projects such as the Golden Key with a perfect recipe
- CompanionPets: Enforce full plugin coverage and fix pet lifecycle failures
- GemInfusion: only finish gem-free projects such as the Golden Key with 100% hits
- ProvinceSystem: give group page members their groups and rank
- Magic: Set a mage weapon back on an empty station
- DrinkBuilder: Write drink effect numbers as integers for BreweryX
- Cooking: stack custom crop food like vanilla crops
- SimpleFactions: Let a faction build inside its own installation's radius
- ProvinceSystem: Stop the map's tiles showing a grid of dark lines
- ProvinceSystem: keep the selection outline while dragging and zooming
- ProvinceSystem: Stop the map's tiles showing dark lines while zooming
- VehicleFramework: let junction branches rejoin a line
- RPCharacters: Register realm OOC chat when SimpleFactions enables after RPCharacters
- ProvinceSystem: Keep the timelapse panel's scrollbar under its step bar
- ProvinceSystem: Stop the map holding a 200 px level over the sharp one
- AdvancedCrafting: stop the branding status listing hit counts
- ProvinceSystem: Stop the map shifting when a zoom settles
- GemInfusion: hide goldsmithing spoilers and ruin imperfect gem-free pieces
- ProvinceSystem: Keep map names inside the map's edges
Technical (82)
- TLibs: Reach 100% runtime coverage and fix item, armour, and socket bugs
- ProvinceSystem: Review weekly patch notes on a staff page and rewrite them with Sol
- CompanionPets: Simplify staff commands and unify pet inventory navigation
- ProvinceSystem: Add our own Patreon integration on API v2
- TFMCWeb: Apply Patreon supporter ranks from ProvinceSystem
- Docs: Document the Patreon supporter integration
- SimpleFactions: Add an admin command that grants compensation into a guild bank.
- VehicleFramework: Add a query for the points track passes through
- VehicleFramework: Keep the newest backup when snapshot times tie
- SimpleFactions: Export infrastructure and effective terrain per province for the web map
- Docs: Document reverse junction controls and occupied routes
- ServerAssets: Add Thievery's lockpick font for the pin grid board
- ProvinceSystem: Explain supply hubs, agreements, and infrastructure
- ProvinceSystem: Speed up image rebuilds after a code change
- SimpleFactions: Export the realm leader's character name for the web map
- AdvancedCrafting: Add staff equipment grants with configurable permission
- ServerAssets: Fix Tutorial PvP kits with completed crafted equipment
- ServerAssets: Require in-game ConditionalEvents verification for Tutorial
- ServerAssets: Add the class rework configs for Main
- Magic: give completed mage weapons with configurable staff permission
- GunsAndGadgets: give assembled guns with configurable staff permission
- ServerAssets: Add subclass icons to the class picker
- ServerAssets: Give completed mage weapons and guns in Tutorial PvP kits
- RPCharacters: Add a staff command that resets everyone's class picks
- ServerAssets: Clear base-class skills and open semi-caster slots
- VehicleFramework: Return the ordered points of the shortest track route
- SimpleFactions: Build one shared graph of trade nodes and networks
- ServerAssets: Keep school runes and magic configs consistent across servers
- ProvinceSystem: Prioritise visible map payloads and start terrain before geometry
- ProvinceSystem: Keep the map's pick map as runs instead of a 164 MB canvas
- ProvinceSystem: Add Companion Pets player guide and model previews
- ProvinceSystem: Release ProvinceSystem v0.1.2
- ProvinceSystem: Keep map image work off the event loop, version tiles by content and retain old pyramids
- ProvinceSystem: Count a map tile as loaded only while its element is on the page
- ServerAssets: Capture complete CompanionPets TF Dev assets and prevent toy stacking
- ProvinceSystem: Remove map feature residue
- ProvinceSystem: Remove dead and redundant frontend map code
- ProvinceSystem: Remove dead and redundant code from the wiki, character and site pages
- ProvinceSystem: Remove superseded map rendering paths and the shelved parchment layer
- ProvinceSystem: Remove completed migrations, deprecated entitlement endpoints and other backend leftovers
- SimpleFactions: Stop /faction reloadconfigs from doubling faction titles
- ProvinceSystem: Add staff roles and an audited staff panel
- ProvinceSystem: Add staff player directory, sessions and activity from CoreProtect
- ProvinceSystem: Add staff Players directory and player profiles
- ProvinceSystem: Say CoreProtect could not be opened, not that it is missing
- ProvinceSystem: Add staff player movement, session by session, on the map
- ProvinceSystem: Stop scrubbing the movement timeline from crashing Safari
- ProvinceSystem: Show where everyone is now on the staff Movement page
- Docs: Document Spymaster build-up and appointment wait
- ProvinceSystem: Point crowded movement map names out on leader lines
- ProvinceSystem: Keep each crowded name on its own side, with short leaders under the dots
- CompanionPets: Add pet species inheritance, configuration shortcuts and inspection
- ProvinceSystem: Give each staff Players view its own table
- ProvinceSystem: Sort the staff Players list by name or last seen, across every page
- SimpleFactions: Cover configuration and faction workflows and preserve state on failure
- ProvinceSystem: Keep the Players columns still when sorting
- ProvinceSystem: Stop iPhone zooming into the Movement boxes, and line them up
- ProvinceSystem: Group a player's sessions by day and drop the bloat
- ProvinceSystem: display custom identities in CoreProtect activity
- CoreProtect: preserve custom item and mob audit identities
- Docs: Document Spymaster sabotage roleplay text
- ProvinceSystem: Show the rail network on a Rail tab in the staff panel
- CompanionPets: filter pet spacing candidates before entity lookup
- RPCharacters: Add Codex population placeholders from a cached snapshot.
- CompanionPets: Recognize held items once and cache pet item icons
- ServerAssets: Sync TF Dev pets and capture missing CompanionPets assets
- ProvinceSystem: Stop the movement map opening blurry
- ProvinceSystem: Make the staff activity list readable, with profile tabs
- ProvinceSystem: Deploy each branch to its own preview site
- ProvinceSystem: Keep the staff panel's title and tabs still between tabs
- ProvinceSystem: Deploy main to dev automatically and www on demand
- VehicleFramework: only warn about missing aim-vector on cursor weapons
- Docs: Document ProvinceSystem previews and GitHub deploys
- ProvinceSystem: Link the deploy guide from the README
- ProvinceSystem: Build preview images in parallel from a shared cache
- CompanionPets: Reduce per-tick cost and main-thread stalls with many pets online
- ServerAssets: Use CompanionPets total pet quota in production config
- CompanionPets: Document config and include TF Dev pets with breed voice pitches
- Docs: Note the shared preview build cache
- ProvinceSystem: Centre the staff panel and put its title and tabs on one row
- ProvinceSystem: Lay out the staff map pages as a full-height workspace
- ProvinceSystem: Cut jargon from the staff panel's wording
