90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter versions...

I don't want to undersell this to you: this is the single largest update in Doormat history and it's honestly setting the bar nerve-wrackingly high for the future of this mod! I've been working on this since the beginning of 1.20.5, roughly 130 days ago. Allow me to run you through the features: I can almost guarantee at least one thing on this list will pique your interest!


Changes

Know the redstone rules I've been writing and rewriting since the beginning? Well, they now have a collective name: the Tinker Kit! It's a bit of a work-in-progress, but hopefully this will allow me to refer to it less abstractly in changelogs from now on.

The first big change is that Carpet's quasiConnectivity rule has been made totally redundant and is now inaccessible with Doormat installed. This is because Doormat's /quasiconnectivity command can now modify the range at which components are affected by quasi-power, just like the original setting!

Before this update, modifying a component's quasi-connectivity or update type behavior was done by running one of the counterpart commands, picking one of the preset component options. The commands still exist, but they now work based on the exact block you want to modify. This means that every trapdoor, every fence gate, every door etc. is now separated from one another! Want to quasi-power warped fence gates but not crimson ones? Run /quasiconnectivity set 1 minecraft:warped_fence_gate! Because of this, many new components are modifiable that weren't before like redstone torches, repeaters and even mob heads. Go wild!

Oh yeah, the command syntax has changed to be much more versatile than before. Here are the new aliases, using /quasiconnectivity as an example:

  • /quasiconnectivity list (finds and displays all components' values in a list)
  • /quasiconnectivity get <component> (finds and displays the value assigned to the component)
  • /quasiconnectivity set <value> all (sets all components' values to the one specified)
  • /quasiconnectivity set <value> <component> (sets the component's value to the one specified)
  • /quasiconnectivity reset all (resets all components' values to their defaults)
  • /quasiconnectivity reset <component> (resets the component's value to its default)

This should allow you to feel a lot more free while messing around with the settings. Some of the command outputs have things you can click to autocomplete new commands! It really is such an advanced system now; I highly recommend seeing what you can find.

For the mod creators out there, the Tinker Kit now supports registering new blocks to the system through the use of an API. There will be an article on the wiki page within the next few weeks, so make sure to look out for that. For the mod users, the Tinker Kit will know what to do with the vast majority of modded redstone components by default, so you don't have to worry about consistency gaps.

It's worth noting at this stage that this feature is huge and there are bound to be bugs. If you find one, please file a report on GitHub.

Some old settings have now changed in some more minor ways, just to make them a bit more intuitive. You will need to re-input the values you've chosen if you've modified them, so make sure to take some notes before installing this update:

  • chiseledBookshelfSignalBasis is now chiseledBookshelfFullnessSignal, and the enumerator options have changed:
    • interaction is now false
    • fullness is now true
    • fullness_lerped is now lerped
  • fastLeafDecay is now fastLeafDecayingChance and takes in a Double representing the chance per randomTick of decaying.
  • forceGrassSpread is now forceGrassSpreading.
  • renewableCobwebs is now spawnersGenerateCobwebs due to cobwebs being made renewable under the 1.21 experimental toggle.
  • trialSpawnerSheepActivation is now trialSpawnerEntityRequirement and takes in an enumerator.
  • zoglinsSpawnInPortals is now zoglinPortalSpawnChance and takes in a Double representing the chance per spawn attempt that a zoglin will spawn instead of a zombified piglin.
  • maxMinecartSpeed has been separated into maxMinecartSpeedLand and maxMinecartSpeedWater.

Additions

Added 36 new rules! You can find more info about them in the wiki:

  • basaltGenProduct
  • blockFallingDelay
  • campfireRespawning
  • cobblestoneGenProduct
  • consistentWaterlogPushing
  • crafterSignalLerping
  • disableBedTooFarWarning
  • disableBedUnsafeWarning
  • disableDragonEggTeleportation
  • disableEndGatewayCrossing
  • disableMaceKnockback
  • disableMonsterSleepCheck
  • disablePrematureBlockFalling
  • dragonEggFallingDelay
  • endExitIgnoreLeaves
  • grassAgingChance
  • highlightSleepDeprivers
  • lazyLoadedShearSuppression
  • lavaFlowSpeedDefault
  • lavaFlowSpeedNether
  • moreTimeArgumentUnits
  • movableEnchantingTables
  • movableEnderChests
  • observerHalfDelay
  • obsidianFrameConversion
  • obsidianGenProduct
  • persistentRespawnAnchorCharge
  • powderSnowPortalBreaking
  • qcSuppressor
  • ravagersStompSnow
  • safeSand
  • sculkCatalystXpCount
  • snowFormsUnderLeaves
  • stoneGenProduct
  • villagersAlwaysInheritBiome
  • woolDesertPyramids

Added Doormat's first logger: randomTicks! This keeps track of successful randomTicks and can even display them visually on the client! Just be careful with rendering at high random tick speeds.


Removals

It can't all be good. thornyRoseBush has been removed due to feeling out of scope of Doormat's existing feature set. I'll see if I can weave it into a new mod somewhere down the line.


Minor Changes and Bug Fixes

  • Running /randomtick on its own now sends a random tick to the block it's called from.
  • Added en_gb translations.
  • #4 (reported by nickademas) composterSideInputs no longer crashes with Lithium.
  • fastLeafDecayingChance no longer creates infinite scheduled tick loops, slowing the server MSPT down to a halt (lol).
  • Fixed local difficulty potentially not working properly on peaceful mode when peacefulMonsterSpawning was enabled.
  • barrelItemDumping now checks if the barrel is facing down before attempting to eject items.
  • Fixed compact tooltips translating incorrectly on servers.
  • Improved inter-mod compatibility of rules relating to fertilization.
  • The overworld height validator now correctly scales with modified dimension sizes.
  • Fertilizing moss blocks no longer consumes bonemeal even when the block is covered.
  • Added the bad omen status effect to the peacefulMonsterSpawning exceptions.
  • Updated all compact tooltip rules to use the new ItemStack components.

Happy holidays! This update is for the same versions as the previous, but fixes a critical client-side issue when playing on a dedicated server, among other things. Even though it may seem small, I recommend you install it anyway just to save you unnecessary confusion in the future!


Fixes

  • #2 (Reported by nickademas) - Entities are no longer completely immune to explosions when consistentExplosionImmunity is disabled.
  • #3 (Reported by nickademas) - Opening a fence gate or door crashes the client when playing on a dedicated server.
  • 1.20.2 is no longer accepted as a valid client version for running this mod.

Minor Changes

  • Reduced the number of unnecessary code warnings by adding @SuppressWarnings annotations to a couple of functions.
  • PeacefulSpawningHelper.addSpawningCondition() now uses a switch statement instead of an if-else chain.
  • Config file saving and loading is now generally more robust, in case one of you does something more extreme than opening a fence gate! :p

It's a good time to mention that community experience is immensely valuable when it comes to making mods as polished as possible. While developing, it's easy to get caught in a loop where you don't think to test something specific because you've already seen it tens of times before! If you encounter a bug or come up with an idea for improvement, please contact me via the GitHub issues page and I'll be sure to look into it, like I did with nickademas' reports this week. Thank you, and enjoy your holidays! - axia 🌸

This release of Doormat is happening later than I anticipated due to some unforeseen issues I ran into. However, I'd say it's worth it because this update is huge, and features the most ambitious code I have written so far!


The Wiki

Due to the size of this mod and the anticipation to bring it even further, I've hastened to create a wiki for documenting its features before it gets to a point where doing so would be an insurmountable task! You can find it on GitHub, and it supplies all the information you'll need to know for each individual setting, even going in-depth on some of the more complex ones. I hope this is useful for you!


Changes

One of the most important changes in this update is the complete removal of quasi-connectivity and update type rules from the carpet roster. Don't worry; the functionality isn't going anywhere!

Instead of each being stored in their own separate settings, quasi-connectivity and update type functionality has now been moved to two new commands: /quasiconnectivity and /updatetype! These function very similarly to the original rules, allowing you to configure the values for each component, find the current values for each component, and even reset them to default! Oh and, don't worry about losing your settings when you restart the world. They're all stored in a little .json file which will be read by the game at the start of your next play session!

Some rules have also been tweaked in smaller ways to make better space for my creative vision in the future. You will need to re-input the values you've chosen if you've modified them, so make sure to take some notes before installing this update:

  • consistentItemExplosionDamage is now consistentExplosionImmunity.
  • insomniaDaysSinceSlept is now insomniaDayCount.
  • renewableSporeBlossoms is now Boolean, and the self enumerator option has been moved into its own setting, sporeBlossomDuplication.

Additions

Added 27 new rules! You can find more info about them in the brand new wiki:

  • commandQC
  • commandUpdateType
  • peacefulMonsterSpawning
  • alwaysHalloween
  • compactEnchantTooltips
  • compactTrimTooltips
  • compactTemplateTooltips
  • compactPotTooltips
  • reachAroundBridging
  • trialSpawnerSheepActivation
  • solidEntityCollision
  • cryingObsidianPortalFrames
  • fastLeafDecay
  • sporeBlossomDuplication
  • chiseledBookshelfSignalBasis
  • jukeboxDiscProgressSignal
  • copperBulbOxidationSignal
  • softInversion
  • torchBurnoutFlickerAmount
  • torchBurnoutTime
  • hopperTransferTime
  • retroRepeaterDelay
  • copperBulbDelay
  • composterSideInputs
  • redstoneOpensBarrels
  • barrelItemDumping
  • incrediblySecretSetting

Added 4 new rule categories:

  • TINKERING
  • APRIL_FOOLS
  • RETRO
  • TOOLTIP

Minor Changes and Bug Fixes

  • No longer depends on Fabric API.
  • Crafters and copper bulbs now have configurable quasi-connectivity and update type settings, as do barrels when redstoneOpensBarrels is enabled.
  • renewableCobwebs now works with trial spawners.
  • /randomtick now disallows <count> values above 4096. (Before: 32768--this was pointlessly high)
  • Removed an empty /doormat command.
  • Doors, dispensers and pistons now have configurable quasi-connectivity settings.
  • Rewrote forceGrassSpread logic in order to drastically improve inter-mod compatibility and future-proofing.

Changes since 1.0.0:

  • Fixed moss vegetation, mossy cobblestone and mossy stone brick features originating 1 block below where they should

Project members

axialeaa

Owner

Details

Published a year ago
Updated 3 months ago