Block Conditions
Condition settings
All conditions are formated the same, you have:
{theCondition}{theCondition}Msg: The message to send if the condition is invalid{theCondition}Cancel: Whether or not the event should be cancelled if the condition is invalid{theCondition}Cmds: The command(s) to run if the condition is invalid- Example:
blockConditions:
ifBlockAge: <2
ifBlockAgeMsg: "héhéhé you can custom your message here"
ifBlockAgeCancel: true
ifBlockAgeCmds:
- say how sad
Info
For numerical conditions, you can assign 2 conditions at the same time.
Example:
"I want to create a condition that only activates if the value is greater than 50 but less than 250"
{theCondition}: 50 < CONDITION < 250
ifContainerEmpty - Not
- Description: Check if the block contains items or not.
- Example:
blockConditions:
ifContainerEmpty: true
ifContainerNotEmpty: true
ifContainerContains
- Description: Check if the block contains material(s)
- Example:
blockConditions:
requiredItems:
requiredItem0:
material: STONE
amount: 1
notExecutableItem: false
ifContainerContainsEI
- Description: Check if the block contains EI(s)
- Example:
blockConditions:
requiredExecutableItems:
requiredEI0:
executableItem: Bergbauhammer
amount: 1
ifIsPowered - Not
- Description: Checks if the target block is (or must not be) powered by a redstone signal
- Example:
blockConditions:
ifIsPowered: false
ifIsPoweredMsg: ''
ifMustBeNotPowered: true
ifMustBeNotPoweredMsg: ''
- Example Situations:
- If the block you are clicking at is a lit redstone lamp, the activator will activate
- Required: NO (Default: false)
ifMustBeNatural - ifMustBeNotNatural
- Description: Checks if the target block is a natural block (so not a placed block) (CORE PROTECT MUST BE INSTALLED)
Danger
Don't use that in an activator very frenquetly used because it will require a lot of performances
- Example:
blockConditions:
ifMustBeNotNatural: true
ifMustBeNotNaturalMsg: ''
ifMustBeNotNaturalCancel: true
blockConditions:
ifMustBeNatural: true
ifMustBeNaturalMsg: ''
ifMustBeNaturalCancel: true
- Example Situations:
- If the block you are clicking is/isn't natural, the activator will activate
- Required: NO (Default: false)
ifPlayerMustBeOnTheBlock
- Description: Checks if the target block has a player on top of it
- Example:
blockConditions:
ifPlayerMustBeOnTheBlock: false
ifPlayerMustBeOnTheBlockMsg: ''
- Example Situations:
- If the block you are clicking has a player on top of it, the activator activates
- Required: NO (Default: false)
ifNoPlayerMustBeOnTheBlock
- Description: Checks if the target block has no player on top of it
- Example:
blockConditions:
ifNoPlayerMustBeOnTheBlock: false
ifNoPlayerMustBeOnTheBlockMsg: ''
- Example Situations:
- If the block you are clicking has a player on top of it, the activator doesn't activate
- Required: NO (Default: false)
ifPlantFullyGrown - ifPlantNotFullyGrown
- Description: Checks if the target block is a fully grown plant.
- Example:
blockConditions:
ifPlantFullyGrown: true
ifPlantFullyGrownMsg: ''
##################################################
blockConditions:
ifPlantNotFullyGrown: true
ifPlantNotFullyGrownMsg: ''
- Example Situations:
- If the wheat crop is fully grown, the activator will activate.
- Required: NO (Default: false)
ifBlockAge
- Description: Checks the target block age (crops)
- Example:
blockConditions:
ifBlockAge: <2
ifBlockAgeMsg: "héhéhé you can custom your message here"
ifBlockLocationX - Y -Z
- Description: Checks the target block location X / Y / Z
- Example:
blockConditions:
ifBlockLocationX: 500 < CONDITION < 1500
ifBlockLocationXMsg: "héhéhé you can custom your message here"
ifBlockLocationY: 50 < CONDITION < 150
ifBlockLocationYMsg: "héhéhé you can custom your message here"
ifBlockLocationZ: 500 < CONDITION < 1500
ifBlockLocationZMsg: "héhéhé you can custom your message here"
ifUsage
- It checks the usage of the clicked ExecutableBlock, if the usage is valid, the activator will work, otherwise an error message is displayed.
- Example:
blockConditions:
ifUsage: 4< #it also supports intervals like 4 < CONDITION <= 8
ifUsageMsg: "&cError the executableBlock clicked must have more than 3 usages but less than 10"
- Required: NO
ifContainerContainsSellableItem
- Description: Checks if the clicked container has items that can be sold
- Example:
blockConditions:
ifContainerContainsSellableItem: true
ifContainerContainsSellableItemMsg: "&cError the executableBlock clicked must have more than 3 usages but less than 10"
Block Around Conditions
- Description: Checks the blocks around the clicked block:
- Example:
blockConditions:
blockAroundCdts:
blockAround0:
southValue: 0
northValue: 0
westValue: 0
eastValue: 0
aboveValue: 1
underValue: 0
errorMsg: '&c&oA block is not placed correctly !'
blockTypeMustBe:
- STONE
- COBBLESTONE
- ANDESITE
- ITEMSADDER:turquoise_block
- EXECUTABLEBLOCKS:CUSTOMDIRT
- !DIRT
- ALL_ORES
errorMsg: error msg inside here
blockAroundCdtsMsg: error msg outside here
blockConditions:
requiredItems: {}
requiredExecutableItems: {}
blockAroundCdts:
blockAround0:
southValue: 0
northValue: 0
westValue: 0
eastValue: 0
aboveValue: 0
underValue: 1
errorMsg: ''
blockTypeMustBe:
- stone
errorMsg: error msg inside here
placeholdersConditions:
plchCdt0:
type: PLAYER_STRING
comparator: EQUALS
part1: '%var_x%'
part2: '10'
cancelEventIfNotValid: false
messageIfNotValid: ''
messageIfNotValidForTarget: ''
stopCheckingOtherConditionsIfNotValid: true
placeholderConditionCmds:
- say not run
blockAroundCdtsMsg: error msg outside here
Q: What exactly is going on in placeholder conditions?
A: The placeholder %var_x% is being parsed according to the block in that position. Meaning, you can use this method to assign a specific number to insane amount of unique EBs without writing each id that may change overtime in blockTypeMustBe
Created Oct 26, 2025Last updated Dec 30, 2025 by Josef Miko Urquico
Edit this page on GitHub