Debugger's Delight

Client Utility

Created2 years ago
Updated5 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.



  • Field data inspection system has been completely rewritten

    The base abstract class that holds a field data tree is FieldDataHolder, which is generic over the node type. If you don't need custom functionality in nodes (for example, in packet dumping), you can use DefaultFieldDataHolder. The source of field info is now represented by a FieldDataSource, which is async and meant to be easy to implement. gadget provides the LocalFieldDataSource for local Java objects and RemoteFieldDataSource is used internally for field data screen.

    The network format has also been changed to also support sending errors back to the client.

  • Packet dumping has been completely rewritten

    Packet parsing is now done based on a system of UnwrappedPackets, which have methods for gathering search text and writing to owo-ui/plain text.
    Some helper interfaces (FieldsUnwrappedPacket for field dumped objects and LinesUnwrappedPacket) are provided to help with implementing custom packets.

    DumpedPacket can have arbitrary context data (which is now used for search and rendered component data), and all events now take an ErrorSink parameter, which accepts non-fatal errors.
    Most dumping code is now in io.wispforest.gadget.dump.{read|write}, and most client-side packet renderers are now common code
    PacketDumpReader and PacketDumpWriter have been added as nice objects for reading and writing packet dumps

  • Field dumps and packet dumps can now be exported to a user-readable format
    Packet and field dumps can be exported to plain text, and field dumps can also be exported to JSON
    An example of a plain text packet dump is
    Additionally, the new packet dump and field data holder interfaces support writing these dumps

  • Added bytes field object
    Used to represent byte arrays and byte buffers. Displayed as a hexdump instead of a list of byte values.

  • Complex field objects now track recursion

  • SynchronizeRecipesS2CPacket is now represented as a gadget fake packet that doesn't break whenever a recipe is missing

  • Dump stats screen improvements:
    A progress toast is now used to track loading progress.
    Additionally, a back button added to sidebar.

  • Added experimental owo-ui error check option
    Right now, this just replaces Component#remove with a more fault-tolerant version

  • Quiltflower code now uses new HTTP client to get versions
    Should be much faster than old implementation


gadget-0.2.0+1.19.4.jar(791.72 KiB) Primary Download

Project members





Technical information

Client side
Server side
Project ID