Skip to content
Sam edited this page Jul 11, 2024 · 29 revisions

How exactly do I use it on my server?

If you are in Creative Mode, this modification does not affect you in any way. Debug Stick works as intended. Usually in Survival Mode you can't use Debug Stick, but with this mod installed this restriction is gone.


How do I get Debug Stick in Survival?

To obtain Debug Stick you need to craft it with 1x Stick and 1x Chorus Fruit: image


How to use Debug Stick?

Debug Stick has two modes: "Selecting" and "Modifying".

To Modify the property of chosen block, press [Use] (Right Mouse Button) with Debug Stick in hand on that block.

To Select another property for modifying, press [Attack] (Left Mouse Button) with Debug Stick in hand on chosen block.

In versions before 1.2.0 (MC 1.20.5), Select functionality was invoked by pressing [Use + Sneak] (RMB + Shift)


How to customize abilities of Debug Stick?

Debug Stick has a few setting that you can customize in config file. To do that, got to ../config/SDS.json and open that file.

Let's go through all parameters you can customize:

  • Whitelist

If you did not specify any behavior for a block, the decision to modify it or not will be determined by "whitelist" variable. If it is set to True, then any unspecified block will not be able to be modified.

  • Allowed | Forbidden

Contains 2 lists and a dictionary: blocks, tags and properties. Depending on the name, either allows or forbids modifying everything inside.

  • Properties

A dictionary of Properties that are allowed/forbidden to be modified. Usually used for global setting, like "i don't want my player to modify ANYTHING to be waterlogged". This rule will be overwritten by the rules of blocks and tags.

  • Tags

A list of Tags that are allowed/forbidden to be modified. For example, you want your player to only be able to modify stairs - just put { "id": "stairs" } in the allowed tags! You also can specify exact properties and their values that you want for specified tag: { "id":"stairs", "properties": { "waterlogged":["all"] } }. But this rules can be overwritten by settings of specified blocks.

  • Blocks

A list of Blocks that are allowed/forbidden to be modified. You can put here exact blocks you want your players to be (or not to be) able to modify. Works almost same as Tags, but the setting of specified blocks are more important than settings of Tags.


EXAMPLE CONFIG JSON:

{
  "allowed": {
    "blocks": [
                // Gives player ability to modify iron bars (no property specified, other rules may apply)
		{"id": "iron_bars"},
                // Gives player ability to modify properties of bamboo ("leaves" and "age", but not "stage")
                // for "leaves" only "none" and "large" are possible, but not "medium"
                // for "age" every value is possible
		{
                     "id": "bamboo", 
                     "properties": {
                         "leaves": ["none", "large"], 
                         "age": ["all"]
                     }
                }  
	],
    "properties": {},
    "tags": [   // Every block in the specified tags can be modified (oak stairs, brick walls, etc...)
		{"id":"stairs"}, 
		{"id":"walls"}, 
                // You can specify the source id of block/tags, if it is not from vanilla minecraft. Just type "<mod id>:<block/tag id>"
		{"id":"c:glass_panes"},
		{"id":"fences"},
                {
                     "id":"slabs",
                     "properties": {
                         "type": ["top", "bottom"]
                     }
                }
	]
  },
  "forbidden": {
    "blocks": [],
                // By adding "waterlogged" property to forbidden, we **Forbid** debug stick to change this property for every block,
                // unless explicitly saying for some blocks or tags to do that.
    "properties": {
        "waterlogged": ["all"]
    },
    "tags": []
  },
                // If the block is not specified in the config, Whitelist decides if we should be able to modify it or not
                // If whitelist is True, we won't be able to modify blocks that are not specified in the config
  "whitelist": true
}