New Options
-
serverSyncedBoxUpdateModeInFrozenTicks- What the server-side hitbox renderer should do in ticks frozen by the Carpet.
-
tpsGraphScale- Scale the TPS (MSPT) graph so that it can be held by the screen.
-
quickStackedEntityKilling- Kill the entity being knocked by a brick, along with all entities being at the same position as it.
-
A couple of options to get the information of entities more convenient:
dumpTargetEntityDataWithPaper- Output the data of the current target entity by right-clicking while holding a paper.
dumpTargetEntityDataWithCtrlC- Output the data of the current target entity with
Ctrl + C.
- Output the data of the current target entity with
dumpTargetEntityNbt- Output the NBT data of the targeted entity.
dumpTargetEntitySummonCommand- Generate a command to summon the target entity.
dumpTargetEntityDataOnClient- Output the information of the client-side entity instead of the one of the server-side one.
-
accessingPathDynamicAutoCompletion- Support suggestions for fields and methods when auto-completing Accessing paths.
-
defaultSaveComponents- Save components that are included in export saves by default.
-
independentEntityPickerForInfomation- Pick crosshair-targeted entities for information providers (currently only the UUID suggestor) independently.
-
getEntityRangeExpansion- In the vanilla
getEntities()method, only entities that are in subchunks whose Cheshev distances to the given AABB are smaller than 2 blocks are seen. Usually, it doesn't matter, but when the height of some of the entities is greater than 2 blocks or the width is greater than 4 blocks, it can lead to some problems, especially when the entity is close to the boundary of subchunks. Changing it to a higher value may fix some bugs about the interaction between entities and something else.
- In the vanilla
-
disableItemUsageCooldown- Disable item usage cooldown for ender pearls and chorus fruits, etc.
-
expandedStructureBlockRenderingRange- Expand the maximum visible distance of structure blocks.
New Commands
/variable- Creates and manages variables that hold Java objects.
/logchunkbehavior addColumn|removeColumn- Creates and manages custom columns for chunk behavior logger.
/messcfg list [<label>]- List options with given labels.
/lag while & /lag once- Freeze a thread of the game for once, or freeze the current game at a given phase for a given number of ticks.
Other New Features
- Auto-completion of accessing paths.
- More chunk events for
/logchunkbehavior. - Advanced mixin selecting dialog.
- Ticking phase
DIM_REST. - Variable literals.
- Simple node
this. - Save component
GAMERULES. - Entity selector @t.
- Literal node in accessing path.
- Press F8 in the title screen to choose advanced mixins.
Changes
- The dimension argument in
/export addRegioncan be omitted to use the current dimension more convenient. - No longer expand the rendering range of structure blocks by default.
- No longer use scarpet for enabledTools.
- Removed original
/lagcommand.
Fixes
- The default value of
creativeUpwardsSpeeddoesn't match the vanilla mechanism perfectly (#4) - Potential issues related to forking accessing paths.
- Entity names are not reflected properly in the name of logs produced by the entity data logger.
- Crashes caused by
ConcurrentModificationExceptionin entity logger. - Invalid characters in the name of exported saves are not stripped.
- Update callbacks for chunk info renderer are not removed properly.
- Field name suggestion is not available when using some commands as a child of
/execute. - Custom line lists returned by
/hud listFieldsaren't complete。 - Component nodes are not compiled properly.
- Some option parsing errors are not translated.
- Dedicated server crash caused by
EntitySelectorMixin. - Accessing paths are not uninitialized properly.
- Compiled nodes have incorrect output types.
generateChunkGridcauses world generation glitches in basalt deltas.- Argument types are registered on the client too late.
- Cannot use non-ASCII characters in the name of exported saves.
- Cannot use . in method & mapper node.
- Unicode escapes in string literals are not handled properly.
/lazyloadaffects all dimensions.- HUDs are rendered incorrectly when rendered on the left or bottom of the screen.
- Using already used names in new sidebar lines is reported as successful despite rejection.
- Header lines are sometimes rendered outside the screen.
- Not compatible with Fabric 0.15+.
Port 0.5.1+v20231202-BETA to 1.17.1
Fixed
/lazyload add|remove <corner1>doesn't work properly.- Game crashes if Carpet is not loaded.
- Dedicate server crash.
- Changes to blocks with inventories cannot be undone properly.
- Automatic mapping downloading doesn't work when using modern versions of TIS Carpet Additions.
The biggest update since the mod was created, I guess.
New Features
Options
allowTargetingSpecialEntities- Mainly to enable UUID suggestions for entities like ender pearls and items.
fletchingTablePulseDetector- Measures the length and exact starting and ending time (including ticking phases) of an redstone pulse.
- By default, only positive pulses are detected, but you may enable detecting negative pulses with
fletchingTablePulseDetectingMode.
fletchingTablePulseDetectingModefillHistory- Allow you to undo or redo
/fill.
- Allow you to undo or redo
allowSelectingDeadEntities- Allow entity selector
@eto select dead entities.
- Allow entity selector
disableEnchantCommandRestriction- Remove the restriction on enchantment level and compatibility from
/enchant.
- Remove the restriction on enchantment level and compatibility from
blamingMode- Used by the chunk event cause analyzer mentioned below.
blameThreshold- Used by the chunk event cause analyzer mentioned below.
Commands
/lazyload- Simulates lazy loaded chunks.
- Currently, only entity ticking is disabled within marked chunks, other properties of the chunks are not influenced.
- Unlike
/forceload, the states are not permanent.
/countentities- Counts entities, especially stacked ones, in a easier way.
Other Features
- Four kinds of entity selector options
typeRegex- Specify a regular expression matching the ID (including the namespace) of selected entities.
nameRegex- Specify a regular expression matching the name of selected entities.
class- Specify a regular expression matching the class (package name is optional) of selected entities.
instanceof- Specify a concrete class name of the super class or implemented (directly or indirectly) of the class of selected entities.
- Accessing path compiler
- Compiles custom accessing path nodes into bytecode to enable higher performance.
- Experimental feature.
- A chunk event cause analyzer
- Allows the chunk behavior logger (
/logchunkbehavior) analyze the cause of chunk events. - When enabled, you can select whether raw stacktrace or a few analyzed tags will be written to the file with option
blamingMode.
- Allows the chunk behavior logger (
- Storage policies for entity logger.
- Previously, logs produced when both the server and the client ticks are saved.
- But now, you can disable logs from one of these sides by specifing a policy with
/entitylog sub <entities> <policy>or/entitylog setDefaultStroagePolicy <policy>. - By default, only logs from the server are saved.
- Saving all logs in a single file is possible, but not recommended.
- A warning screen displayed when trying to load a survival save for the first time with MessMod.
- Server ticking phase
REST.- Represents the point where all async tasks like player inputs are finished.
- Accessing path node
class.- The
Classobject representing the class of the input.
- The
- Support exporting more parts of saves in
/exportsave.- It can be customized with
/exportsave addComponent <comp>and/exportsave removeComponent <comp>.
- It can be customized with
Changes
- Allow using wildcards in commands.
- The format is similar to DOS filename wildcard.
- It can be used in commands involving adding (subscribing) or removing (unsubscribing) some items, including:
/logchunkbehavior subscribe | unsubscribe <event>/logpacket sub | unsub <type>
- No longer permit using primitive types in class cast node.
- Using them may lead to failure in compiled accessing paths.
- And they are actually invalid as all direct input of all nodes are of refercence types.
- Methods nodes now references one of the deepest overriden method correctly, which makes them more adaptable.
- For example,
Object.toString()instead ofLivingEntity.toString()is used.
- For example,
- Mapper nodes now only recognize targets with exactly matching descriptors.
- (Un)subscribing fields won't restart entity information logger, instead, it fails if the logger isn't idle.
- No longer marked as conflicting with lithium.
- Ticking events are now triggered at the beginning of corresponding stages.
- Spilt
/logchunkbehavior setSubscribedinto 2 commands. - More accurate elapsed time measuring in
/exportsave. - Updated channel version from 2 to 3.
Fixes
/freezentityprevents the chunk position of entities from updating.- Certain movement restrictions are calculated twice in
/logmovement. - The error message sent when using a undefined network side in entity selectors is incorrect.
- Temproary files produced by
/exportsaveare not cleaned. - Undo and redo are performed twice within a single click.
- When using key bindings
F3 + <Key>, actions attached to<Key>are performed.- For example, when pressing
F3 + E, the inventory screen is opened.
- For example, when pressing
- Multiple targets can be found even if a descriptor is specified.
- Chunk event
TICKET_ADDITION&TICKET_REMOVALis not triggered correctly.- If the are documented before.
- Vanilla hotbar texture is not available when
hotbarLengthis modified.- Previously a simple grey background is used.
- Save specific options are still used after exiting from the save.
- Shapes for different players are not sent independently.
- For example, previously the block outline renderer effectively only renders shapes for one player (possibly a bot), making the feature not available for other players.
/raycast entityfails when the language is set to Chinese.- Some error messages related to options setting or arguments in method and mapper nodes are not translated.
- Argument types are not serializable.
- An consequence of the bug is that some warning messages are output when players log on and that arguments of these types are absent in
/help.
- An consequence of the bug is that some warning messages are output when players log on and that arguments of these types are absent in
- Listening to
-THIS-in entity information logger without specifing an accessing path leads to crash. - Class literal of primitive types cannot be used.
- Fields without a mapping couldn't be referenced in
/entityfield. - Block entity changes cannot be undone.
- However, it is not completely fixed now, as inventories is still unable to get restored.
- Exported save folder doesn't match the given name.
Fixed
- Not compatible with Pehkui (See Issue#4)
- Not compatible with Java 8 & 9
Added
- Client ticking events, which can be used in entity logs and sidebars.
- Option optimizedEntityPushing
- Chunk behavior logger, and command /logchunkbehavior
Fixed
- Some bugs caused by using overriding methods in mapper & method nodes.
- Misbehavior of mapper & method nodes, when literal E+ENUM is used.
- The feedback of /entitysidebar remove is not translated.
- The rendering distance of structure block is not enlarged when the carpet is not installed.
- Buggy exception handling in mapper & method nodes.
Changed
- Remove black outline of chunk loading status markers
Add
- Visualization of the fluid flowing direction
- chunkLoadingInfoRenderer & chunkLoadingInfoRenderRadius
- /accessingpath list
Fix
- Mapper nodes doesn't work properly
- Vec3d literals couldn't be used in method invocations as the commas are also delimiters of arguments
- NPE are thrown when MethodNode & MapperNode couldn't be parsed and its toString() are called.
- NaN & Infinities are not allowed in literals
- Maybe more


