#Blocks General
1 messages · Page 4 of 1
Until today, I thought the 16 x 16 x 16 limit was still in place. When did that end?
some point
Whenever it was, I am glad it happened
Selection and collision boxes still 16x16x16
I meanlike how a "waterlogged" block is actually just represented as water in the same place as another block, thus using structure editing, any 2 blocks can be placed inside one another
That no longer works
Also pretty sure one block hitbox was disabled when you did that
Is there a bug with queued ticking? Mine is still ticking even though I set looping to false.
Is it possible to nab the text on a sign using scripts?
Even better would be the command inside a command block
That is a question you should ask in #1067535382285135923
Question: Without exp mode or api in stable can I have a custom block run/have a particle? ie a fireplace have fire
So I can't add blockshape stairs to a custom block? Even if it's replica vanilla block?
Nope
I so wish I could use water blockshapes. They are epic.
Question: Do we have custom block inventories yet?
No
Is it coming soon?
🤷
What about firing a particle can they do that yet?
Just trying to figure out which entities to convert to blocks.
I have some fire places, but they would be lame without fire particles
Is there any way I can interact with the block so that when the player interacts, a text message appears?
In the player chat, is there a command for this
1.20 version stairs to make how did mulit collsion??
/say & /titleraw. Use minecraft:on_interact
You can't
In a block? Does this work on non exp. Stable?
Not stable
Any idea the version of stable it will release in?
Never, block events will eventually be removed and replaced with scripting
Sad
hi there, is it possible to make the block not solid simulating water but not using the collision box to manage it?
the reason for that is because I want to create a custom fire, the problem is that removing the collision box will stop triggering the on_step_on event which I use to apply the player damage, if I let a few height in collision box to allow it trigger the block seems weird acting like a slab...
That seems like overcomplicating your task
I recommend you using execute if block instead of on_step_on either from the block or a function. Get rid of the selection box with the selection box component.
but execute if block runing as a command from the block?
Can be, or from the player, as you wish
I was using something similar from block, with queued_ticking but the idea was to use this custom fire as a kind of spell in my server and it would generate lots of fire field, with the commands running was generating too much lag, so I had to remove it
from the player I never tried, will check how could it work
Hello, please tell me how to make a combination method for me: like a block interacts with an entity?
Open a post and explain with detail what you want to make. Take in consideration things such what type of interaction you want your block to make with the entity.
Ready
Can I q.block_state a custom statement representing bones in the geometry json? Attempting miniblocks using slabs vertical states but also using statements for l1 l2 r1 r2 states on a block face. Sorry trying to type up stuff on work break. Maybe this is the wrong approach to tackle this problem. But looking at the slabs template gave me inspiration.
I don’t quite understand your question
Sorry, I'm very new to this. So in the template for a slab, the json says q.game_state: minecraft:vertical_placement.
This is a built in state for minecraft.
Can I q.game_state: custom:statename
And use that to determine the bones of a geometry.
I'm trying to engineer a way to make miniblocks, using slab mentality.
Are you talking about my slab template in the wiki? Because I did not used q.game_state since that does not exists.
Lemme double check, I may have some confusion.
q.block_state, sorry, line 22 of the template.
What I'm asking is if I can create a custom state and query that.
Wow that was dumb, you literally query a custom state in the same line...
Oof
It already q.blockstate on the vertical placement. I want to split the vertical placement into 4 sections, maybe q1,q2,q3,q4. Making a slab actually 4 mini blocks. Making a block, 8 mini blocks.
I keep seeing entity based mini blocks, and most miniblocks have features I'm not interested in. I don't need sitting features, or for the miniblock to be placed in the center of a block. If there is a simpler way to make a mini BLOCK then I'm all ears lol.
You cannot do that, as it is a vanilla block trait which checks if the block was placed in the upper or bottom side of a block. You can however create your own block states and query them on your block permutations
Thank you so much, I have what I need, now to practice!
can i make it so that the faces that are not visible dont get rendered because i made a block and when i fly into a pile of it every face is still there and i think its gonna impact performance
Use minecraft:unit_cube. If is a custom geometry you’ll have to create your own version of face culling with molang, permutations and material instances
Quite the rabbit hole you have lead me down. A wild selection box has appeared. Went from making my first slab addon to making a small script! Gains baby. Long story short, I'm attempting precise placement as opposed to trying to bend the slabs to my will.
A stair/ramp block is just half height collision box.
Question: How do I control the sound dampening of a custom block?
Great! 
I got multi textures to work with custom geo's by accident but I dont understand the logic. I simply made 4 blocks all using the same texture (which has many variations textures) and each of the 4 had a different textures variations in game (even on different custom geos). It would make sense if they change texture when I rotated them a different directions because it might be using the blocks permutations. But they don't. They stay that texture. Doesnt' make sense yet.
Sorry, what is your issue or/and question?
We couldn't get texture variations to work on custom geos. While doing something else it did work. I just don't understand how or why or how to control it.
What method you used or think you used?
Material_instance to terrain_texture to texture variations.
The only thing different in my custom blocks vs when it failed. Is I added the rotations cardinal directions and permutations
That won’t work as it is using material instance
I made 4 custom blocks and got 4 different texture variations from 1 terrain texture. But I don't understand how it works.
It has to be something buggy with the permutations. But could allow me to setup multi textures if I can figure out the logic
That doesnt' explain how it's working on my custom geos when we couldn't get it to work before
If it is using material instances and the texture is getting randomized, that means that the texture variation is not comming from terrain texture
I used wood. Where else would it come from?
"wood": {
"textures": [
"textures/blocks/log_oak",
"textures/blocks/stripped_oak_log",
"textures/blocks/log_spruce",
"textures/blocks/stripped_spruce_log",
"textures/blocks/log_birch",
"textures/blocks/stripped_birch_log",
"textures/blocks/log_jungle",
"textures/blocks/stripped_jungle_log",
"textures/blocks/log_acacia",
"textures/blocks/stripped_acacia_log",
"textures/blocks/log_big_oak",
"textures/blocks/stripped_dark_oak_log"
]
}
}```
"minecraft:block": {
"description": {
"identifier": "olctd:wall_c_b_block",
"menu_category": {
"category": "construction"
},
"traits": {
"minecraft:placement_direction": {
"enabled_states": [
"minecraft:cardinal_direction"
],
"y_rotation_offset": 180
}
}
},
"components": {
"minecraft:destructible_by_mining": {
"seconds_to_destroy": 5
},
"minecraft:destructible_by_explosion": {
"explosion_resistance": 30
},
"minecraft:geometry": "geometry.wall_c_a",
"minecraft:material_instances": {
"*": {
"texture": "wood",
"render_method": "opaque"
}
},
"minecraft:map_color": "#ffffff",
"minecraft:flammable": {
"burn_odds": 0.5,
"flame_odds": 1
},
"minecraft:collision_box": {
"origin": [
0,
0,
0
],
"size": [
0.5,
0.5,
0.5
]
}
},
"permutations": [
{
"condition": "q.block_state('minecraft:cardinal_direction') == 'north'",
"components": {
"minecraft:transformation": {
"rotation": [
0,
0,
0
]
}
}
},
{
"condition": "q.block_state('minecraft:cardinal_direction') == 'west'",
"components": {
"minecraft:transformation": {
"rotation": [
0,
90,
0
]
}
}
},
{
"condition": "q.block_state('minecraft:cardinal_direction') == 'south'",
"components": {
"minecraft:transformation": {
"rotation": [
0,
180,
0
]
}
}
},
{
"condition": "q.block_state('minecraft:cardinal_direction') == 'east'",
"components": {
"minecraft:transformation": {
"rotation": [
0,
-90,
0
]
}
}
}
]
}
}```
Format 1.20.30
I duplicate this custom block 4 times, change identifier, geo shape. Then spawn in game and get 4 custom geos with 4 different textures
and it is placing random textures on the block
yes but the same one for each block. NOT random each placement. All blocks are the same. But each different custom block has a differnet texture
I though maybe it's using the permutatiosn but I assumed if it was changing the rotation ie.. the permutation would change the texture. But it doesn't. I guess since no event is firing maybe it doesnt' update.
I just made a wall strait, corner, roof... and each one had a different texture. Even thought all used the same texture.
ah, understood
I'd never develop this way but decause I'm making an entire house out of custom blocks I didn't do any texturing per block I assigned them all 1 default texture while I made the blocks. Which is the only reason I found this
Effectively, the texture is not randomized.
Are you defining the texture of wood in blocks.json?
for your custom block
no using it out of terrian texture. unless it's already define in blocks. Which it's vanilla so should be.
On a side note. I got my entire house done but the front door. Can I do an interactive door with stable without api?
Can you show an image or video of it setting its texture randomly? Because I am trying your exact code, and after fixing it by adding it a format version (as the file you provided is missing of it) it does not rotates the texture.
Did you make many blocks?
I don't think you can detect interacting with a block without experimental, so no.
I placed many blocks, correct.
So it worked when I made different custom blocks using the same texture wood.
Not 1 custom block placed many times
That... makes no sense
Each of the different blocks got a different texture.
I know
I made a house of 10 blocks used 1 terrain texture and got alot of different textures in game.
Like I said I don't understand how. I was just being lazy and didn't want to texture them yet. I expected all 10 to be the same texture. But they werent'. Which is why I brought it up here.
I was streaming it on discord but didn't record it.
Can't help you with something like that, sorry.
Were you able to replicate it or am I crazy?
Unable to replicate
hmm, I'll see if I can record it. Thanks for your time.
Any thoughts on this one #1067876948858118185 message
Now that I built my house I notices some audio damponing going on. when I'm inside vs outside the house. I was curious if we can adjust that
So some blocks, block sound more than others
Wasn't sure if it was maybe part of the vibration system
You can't really control the level of a sound comming from a block if it comes from blocks.json as far as I remember
Is coming from and going through the same things? I'm playing to audio by commands at a location. Crickets. Then I walk in side and its muffled. It works ok now. I was just thinking it would be cool to make a sound proof room and other stuff if there was an option for sound dampaning.
If you are running the sounds using commands you can define the level of it
Sure, I'd like to change how a block in-between the player and sound generation spot dampens that sound level.
I won't say that intelligence comes from the block but the sound. Ask in #1067870133328027730.
Here is how I did it. Works pretty well. I think I can use this method on most blocks to make them "interactive" and it removes most the block limits. I could spawn a entity block for the animations then the block door on end of animations to get fancy. But this is a simple solution for stable without apis. The disadvantage is you need a item or a trigger. I'm using a key to open and sneak to close. https://discord.com/channels/523663022053392405/1169058369508749332
That sounds like a workaround. It is still impossible from the block
Yep
where do you get all this info from?
None and also it made by me but you use it in latest version of format version
That should be worked
Question: can the growth rate of weeping vines be controlled? They grow really fast.
No
How can I add a bush that spawns around the world?🤔
#1067869232395735130
I'm back to working on my every vanilla slab combination blocks... it is 1275 blocks...0
Here are a few I was testing the rotation-ability with...
I had way more, using other blocks, but it is like over 4000 blocks, so I decided, version one.. just vanilla slabs
That is a very cool block! How does it works?
I am assuming it doesn’t exactly works with vanilla slabs, or does it? Like, the first slab you place is the custom one or the vanilla one?
No.. Use recipe make block....
If you have the slabs, you can make the block
Kai... I am deciding on if the recipe should have a glue sheet or not... Right now, it would be, cook a slime block to make a goo block, then stonecutter it to make a bunch of goo sheets, like 16 or 32 or 64 and those are what glue the slabs together... instead of straight 2 slabs can make a block... What do you think?
Well, it all depends on how much sense you want it to make. If you want it to be more realistic, keep the glue sheet. If you want to keep it simpler, like Minecraft, then no glue sheet. I personally would have it without it
I will probably go with the glue sheet.. So you can't do it too early game... you would need a blast furnace for the slime book, a stonecutter to make the sheets. And of course a slime block, that is 9 slime balls. So you gotta work for it a little.
Sounds fair
Kinda bummed that I have to keep it HCF for the on_interact and on_player_placing. I need to keep track of the orientation, because I allow the player to turn it, to get it facing the way they want. Maybe I should make a non-exp version too, where you just have to use the correct block face to get it positioned correctly, no turning or tracking... It is a simple block... I need to work out the formulas for flame, destroy time, etc...
It's cool that you are working on your slab add-on again 😊
I need to know something about blocks and script together, can I ask here or in #add-ons ?
How can I fix this? My block is not showing good in the hotbar🤔
out of curiosity can someone explain the 65,536 block permutation limit and is it a big deal to go beyond that limit?
Just a content log error
Doesn't break anything
Unless your on marketplace then there's a hard limit
I need some consultant
If 2 Addons adds the same block
With the same namespace
And the same everything, will that be a problem?
if a world loads the 2 mentioned addons at the same time?
Yes and no, depends really on what they do. What will happen is that the most recent add-on's block should replace the other. I have two packs on my realm, both are exactly the same except for the manifest files and updated block json. The second just overwrote the first is all.
Hmm good to know
Any reasons for "east_face": false in bone visibility does not hides all the adjacent bones?
It is just ignoring it and not hiding it... If I do the same with any of the bones inside the east_face bone, it works just fine. I prefer 1 line over 9 though... So yeah, thoughts?
You can create blocks equal to conduits and Enchantment Tables that have an entity floating above the block
how do I fix this bug
the blocks are gone, but the 3d blocks are normal
No error log
I don't know what it could be
are u sure theres no errorlog?
Could be something wrong in the block's json file. Maybe a component needs to be updated, the version could be wrong for what you are using, there could be misplaced { } somewhere.
No, only one will be used. It is like 2 packs having a player.json.... only one will be used.
Read for neighboring blocks using the molang query and test for the water tag. Define a position (four positions should be defined, which are the cardinal directions) and one block below in Y. If true, do nothing, if false, destroy the block. Do this only for blocks with your custom state for growth in its default value, that way said logic is not applied to already grown blocks.
That should be easy enough compared to the block you are asking for right now
What item the player had in its mainhand when clicking?
Use q.is_item_name_any in your condition for minecraft:on_interact
q.is_item_name_any('slot.weapon.mainhand',0,'namespace:your_item_name')
Make what random?
Ah, that. Easiest way that comes to my mind currently is using the randomize
I don’t think so, no
You mispelled minecraft
That was hard to see
That is in the event
That is what I told you to do lol, but anyway glad you got it
No worries, you’re good 👍
I don’t think it will, but try it and see
Use minecraft:light_dampening to fix that
If the model is below 0 in Y, that can cause the issue too
The texture should be what is cropped
"*": {
"texture": "custom_crop_0",
"render_method": "alpha_test",
"face_dimming": false,
"ambient_occlusion": false
}```
When I did my crop tutorial with Provedule, this is how we did our material instances.
Are both of your set to false @zinc wyvern
Copy mine, and see if it fixes it
No problem 😁 Glad to help
you can try search on mcpedl and look how other people they made the blocks
you can try search on mcpedl and look how other people they made the blocks
Wait so plantables don't use ageable like breedables? Why would you need randomness here? Sorry if dumb question, just trying to understand
No, ageable stuff is used for entities because you can grow them and is an event specific to them. Blocks are not like entities in that way, instead the creator has to mimic the event in some way to represent growth. You can do it using a ticking event and various permutations, creating fake stages. So like after a specific or random amount of time, (depending on how your events are set up) a specific block state would be selected, possibly with a new material instances or geometry to represent growth.
As for randomness with bone meal, not every crop would need it, but if you wanted to make a block act like a sapling where bone meal doesn't necessarily cause growth everytime, then you could. Say for example, your sapling grows into a tree at block state 5 and the player bonemeals it at state 1. You could use a weighted sequence event to randomly select a higher state (2-5) if you like.
Here is an example that Provedule and I made that illustrates how a crop would be made, including the bonemealing part 😉
Are you asking about loot tables?
Oh, that might be a scripting thing, I don't know a way to change that through components or anything. I would possibly ask there
This might help @zinc wyvern
Yeah scripting is rough... I still don't get it 😅 I personally would skip that and work with specific loot tables and events, but that's just me
Nope
So loot tables are what a block or entity drops upon death or destruction, but they can also be called using events in your block.
So let's say you want to get a carrot from your carrot block when a player taps on it while holding a hoe. You can do that using the loot component that drops a specific loot table that has a carrot in it.
The same can be done when a block is destroyed. You can even give a different amount of carrots depending on its growth state.
So what I meant was to find an alternative to pick clicking, unless you want the block to go to your hand like in creative mode. In which case, you would probably need to do something with scripting
Gotcha, have you asked about pick blocking in scripting?
Why my block looks like this? Its a bush made of It’s 2 planes🤔
I mean in the item bar
Sometimes that happens with blocks like flowers and grass. Personally I would create an item that places your bush. That way the players will see the item texture instead of the block model.
The other thing you could do is rotate the blocks geometry model, let's say 90° and see if it changes it. If it does, then add rotation block states to your bush to set it's rotation correctly upon placing
{
"condition": "q.block_state('luna:block') == 0",
"components": {
"minecraft:material_instances": {
"*": {
"texture": "sieve",
"render_method": "alpha_test"
}
}
}
},
{
"condition": "q.block_state('luna:block') == 1",
"components": {
"minecraft:material_instances": {
"*": {
"texture": "sieve_dirt",
"render_method": "alpha_test"
}
}
}
},
{
"condition": "q.block_state('luna:block') == 2",
"components": {
"minecraft:material_instances": {
"*": {
"texture": "sieve_gravel",
"render_method": "alpha_test"
}
}
}
}
],```
Yep, you just use different conditions and states like this
No worries 😉
Not that I can find at the moment.
Yeah the model might be a little difficult but it will be totally worth it 😊👍
Currently I am working on a sieve that has several textures, meshes, and states in which a block is pushed through but it will be cool once done. Here is an idea for you
"identifier": "geometry.sieve",
"bone_visibility": {
"block_0": "q.block_state('luna:stage') == 1",
"block_1": "q.block_state('luna:stage') == 2",
"block_2": "q.block_state('luna:stage') == 3"
}```
You can hide the candle using geometry and show it when a player interacts with one
You can also set a specific texture based on the candle like we talked about earlier
In the case of my sieve, the block being pushed is shown in 3 stages depending on its current block state or (push level)
You can create separate textures, shown here is just 2 separate textures. So for the cake with 16 candles, you could just make 16 textures and only change the candle color on each
It takes a little time but really not to bad
I know, the next best thing would be to add a separate material instances to a bone folder in your geometry file. The candle could then use the vanilla textures
I did a dev resource awhile back that explained how to do it but not sure how up to date it is 😅
#1074556326979575878 message
Here you go
Like I said though, some things may not be current but it should give you a good idea at least @zinc wyvern
Does what?
Like the texture being 8x8 instead of 16x16 @zinc wyvern ?
Oh I getcha... Hmm Probably the best thing would be to make each slice a different bone
Basically the folder is the bone, or what is hidden or show when using bone visibility in your geometry component.
"identifier": "geometry.sieve",
"bone_visibility": {
"block_0": "q.block_state('luna:stage') == 1",
"block_1": "q.block_state('luna:stage') == 2",
"block_2": "q.block_state('luna:stage') == 3"
}```
So here in my sieve example, if the block state "luna:stage" is set to 1 then the biggest block is shown. If it is 2, then the smaller block is shown and so forth. Basically you are toggling them on and off based on events
Yes
Yeah I believe so
"luna:block": [0,1,2],
"luna:stage": [0,1,2,3]
}```
So here are my sieve states so far
Notice that I have 0 as an option for the stages but I don't use it in the geometry component right?
The textures will need to be edited to include the new parts
Yeah, I got lost a little too, sorry about that. So what are you wanting to know specifically
Are you talking about the air gap between it and the block below?
Oh
It's because that part of the cake is slightly lower in height
Yep
@zinc wyvern would you like to have a copy of my sieve file for reference with your block?
Looks right at first glance
"1.20.20" are you using this version of the block?
It's saying that you may not be allowed to use that query in your block geometry, the >= thing possibly
Did you set the block states in the description?
"minecraft:block": {
"description": {
"identifier": "luna:sieve",
"menu_category": {
"category": "items"
},
"states": {
"luna:block": [0,1,2],
"luna:stage": [0,1,2,3]
}
},```
Your missing "states"
It's the old way, states are the new way, not properties for 1.20
Try looking here
Switch slice 7 to == 0 and see if it changes
I know it's okay, just giving ideas, let me take a few minutes and see if I can figure it out
Oh change block property to block state
In the geometry
"block_2": "q.block_state('luna:stage') == 3"
Yeah like this
Yeah
Hmmm... Let me think
Does the block show up at all?
Remove the y, it's a typo block_statey
No problem, let me edit the one you sent me
What does this do? Maybe need to update old components
Okay, I will take a look
Remove each component then try
Those 3 components, I know we will add them back, just a test
This is the updated component list.
I know it and I agree with you about 1.18 things stopped working in that version.
Geometry was one thing that changed for example
Yeah, the error is saying that the version doesn't match the queries
Block state is 1.20
Properties are 1.18
Use 1.20 states
The components need to be changed too
These
I know, you are good in states now, your last errors here for for outdated components
Okay 👍
Still 1.20.20?
Yeah switch block property to block state
Yeah
Yep, just use the updated list I sent you
It's working now?
What's it doing
That's usually because there is a typo in the texture name
Nice! That's awesome
That's fantastic, sorry about the confusion but glad you got it
It's okay, you are learning
Take some time, you will improve and get it 😉
I am gonna go get something to eat but I will check back in a little bit
Friction component does that
Try removing it
Nice ☺️
Yep changed name, and no worries, I wanted to help 😁
My sieve.txt has an item drop event
You can also using normal ticking with specific values instead of random
Yep
You would just need to create a loot table to go with it
"on_tick": {
"event": "wiki:example_event",
"target": "self", // Optional - 'self' is default (targets block)
"condition": "q.block_state('wiki:boolean_state_example')" // Optional
}
}
This is the example on the wiki. Try removing the interval range and see what happens
It's based on tick speed if you are doing random ticking. Let's say your world is set to 1 then it will be really slow, where as 300 is really fast
What's your world tick speed?
That is strange, got an idea
"randomize": [
{
"weight": 1, // 1/4 chance
"set_block_state": {
"wiki:my_state": true
}
},
{
"weight": 3, // 3/4 chance
"trigger": {
"event": "wiki:my_entity_event",
"target": "other"
}
}
]
}
Yep, I would try that. It should slow things down a lot
Got to go, but chat later if you need help 😉
"sequence": [
{
"condition": "q.block_state('luna:stage') == 0",
"decrement_stack": {}
},```
@leah.plyn yes you got to use decrement_stack in an event like in my sieve
@zinc wyvern
Lol no worries, are you familiar with wiki.bedrock.dev by chance?
You can learn all sorts of cool stuff there about coding in minecraft
Here you go
No problem
You could have an event trigger the execute command and check for multiple sides of the block at the same time and then run an event if successful.
I don't thinks so about combining but you can assign different bones a specific texture if you want using material instances, that link to dev resources talks about it
The closest thing I can think of is to make your overall model and texture but make it to where both bones are hidden at first. Once the player interacts with the block with one part, it shows up. After interacting again, the whole bone shows up completing the texture @zinc wyvern
Is it intended behavior that custom block is rotated backward (SW-ish) in the inventory slot?
I believe so
Hmm
Without ScriptAPI, can we make a conditional run command base on q.block_state?
different blockstate run differen command (trigger by the same event)
Or pass the q.block_state as arg in the run command
Nvm, I figure it out
Good deal, I am glad you got it 👍
Otherwise, I would use a sequence event like this
"sequence": [
{
"condition": "q.block_state('luna:stage') != 3",
"play_sound": {
"sound": "block.composter.fill",
"target": "self"
}
},
{
"condition": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:dirt')",
"trigger": {
"event": "luna:dirt",
"target": "self"
}
},
{
"condition": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:gravel')",
"trigger": {
"event": "luna:gravel",
"target": "self"
}
}
]
},```
Or trigger an event that runs the execute command to sort things out
Is execute if block [cardinal_direction] with custom block broken?
Guys, is there a way to change the jumo height of the slime block WITHOUT experimental features? Or even create a new block that behaves like a slime block? (again, w/o EF)
u can add levitation if the player step on the slime block, probably is the only way, and the other option (create a new block) it's not possible for now
Thanks! Great idea!
You can combine some like "q.block_state('candle:color') == 1 && q.block_state('candle:placed') == 1"
I think that's how it goes anyway, you can try it out
Yeah
&&
Sounds good 😊 You are learning quite a bit
Well you might try "!q.is_item_name_any()"
Multiple interactions link to a sequence event with conditions.
I believe so
"sequence": [
{
"condition": "q.block_state('luna:stage') == 0",
"decrement_stack": {}
},
{
"condition": "q.block_state('luna:block') == 0",
"set_block_state": {
"luna:block": 2
}
},
{
"condition": "q.block_state('luna:stage') == 0",
"set_block_state": {
"luna:stage": 1
}
},
{
"condition": "q.block_state('luna:stage') == 1",
"set_block_state": {
"luna:stage": 2
}
},
{
"condition": "q.block_state('luna:stage') == 2",
"set_block_state": {
"luna:stage": 3
}
},
{
"condition": "q.block_state('luna:stage') == 3 && q.block_state('luna:block') == 2",
"trigger": {
"event": "luna:gravel_reset",
"target": "self"
}
}
]
},```
Take a look at the sieve file I sent you, good examples 😉
Got to head to work but I will check back latwr
I believe so
"condition": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:dirt')",
"trigger": {
"event": "luna:dirt",
"target": "self"
}
},```
Trigger an event in an event,
Very good 😊
😅 No worries, I try to help if I can and want people to succeed. I struggled a lot when I first started too and there are still things I still don't get, like scripting lol
You are almost there
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:dirt",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
]
}```
Yes but they go quick, copy and paste and just change the item 👍
True, but blocks like this can be very repetitive. If it makes you feel a little better, I am going to have well over 32 loot tables for my sieve when it's all said and done . I think it's kind of relaxing
|| is or
So you just got the loop error?
What does your event look like?
Oh good I will check
My longest file had about 1300 lines, so no problem
You don't need one state for each candle by the way. That should help you simplifying your file
"condition": "!q.is_item_name_any('slot.weapon.mainhand','minecraft:flint_and_steel', 'minecraft:blue_candle', 'minecraft:black_candle', 'minecraft:yellow_candle', 'minecraft:white_candle', 'minecraft:red_candle', 'minecraft:purple_candle', 'minecraft:pink_candle', 'minecraft:orange_candle', 'minecraft:magenta_candle','minecraft:brown_candle', 'minecraft:lime_candle', 'minecraft:light_gray_candle', 'minecraft:cyan_candle', 'minecraft:gray_candle', 'minecraft:green_candle', 'minecraft:light_gray_candle', 'minecraft:light_blue_candle') && q.block_state('candle:placed') != 0",
"trigger": {
"event": "eat",
"target": "self"
}
},
{
"condition": "!q.is_item_name_any('slot.weapon.mainhand','minecraft:flint_and_steel', 'minecraft:blue_candle', 'minecraft:black_candle', 'minecraft:yellow_candle', 'minecraft:white_candle', 'minecraft:red_candle', 'minecraft:purple_candle', 'minecraft:pink_candle', 'minecraft:orange_candle', 'minecraft:magenta_candle','minecraft:brown_candle', 'minecraft:lime_candle', 'minecraft:light_gray_candle', 'minecraft:cyan_candle', 'minecraft:gray_candle', 'minecraft:green_candle', 'minecraft:light_gray_candle', 'minecraft:light_blue_candle') && q.block_state('candle:placed') != 0",
"trigger": {
"event": "eat",
"target": "self"
}
},```
Looks like your are repeating an event condition here too
Very true
Add 16 bones for the candles in the model, with a different material instance in blockblench. This way you are defining your texture and which bone to show with just material instance and geometry component
You should feel motivated to improve your code imo
If you'd like to get the same results in less lines, now you know how
You have done a lot, and it's all part of the process. You are gonna have those moments but you are almost done and it will be cool and worth it 😉
As for what @white bobcat Said, there are always ways that you can simplify is what He is saying, try to find what works and work with that. If you can simplify great if not at the moment, perhaps later
You can undo it?
I got to head back, but just try different stuff and see what works and what doesn't, kaioga can help too or others. You got this
Oh, I think I see it! You have 2 light gray candles
Oh that too lol
Sure you can, it just makes it crunchier
Teasing you 😅
Once you get everything working, I would simply like kai said
Good, save a copy in case you want to simply so you have the original
So everything is working now?
Take a break, it's alright to come back later
Remember, it wasn't always super simple for us, we just tried, failed, and learned
Those are the most common
Anyone knows how to fix Block Menu Category has an invalid value of commands?
I use
{
"format_version": "1.20.20",
"minecraft:block": {
"description": {
"identifier": "nubs:load_block_windmill_farm_1",
"menu_category": {
"category": "commands"
}
},
in my block
I don't believe commands is a valid option.
Nature, equipment, construction, items should be use, or the menu category removed all together
I did find this though, putting the is_hidden_in_commands argument
Looks like "category": "none" is allowed.
Yes that as well 👍 @small ravine
And they don't show up in inventory!
That's good or bad?
As I expected (good)
Not at the same time but you can use permutations with block states to switch out the ticking component when needed
Or you can use random ticking and normal ticking at the same time I believe
Believe me when I say that's very short
You can't do a condition
I would do it without neighbor block.
With your ticking sequence event, add a run command event that triggers an execute command to look for the water. If water is not found, then the execute command will destroy the block.
Probably be easier anyway
Is it possible to make block animation like in entity?
Just with flip books, but not quite the same as an entity though
Hmm yeah, I need something close to geo moving like entity
Probably those behaviors are hardcoded
Experiment, you will find something that works for you 😉
What doesn’t?
how can I solve this
Your geometry is too big, make it smaller
If you are using on use on inside a block, it won't work. That event is meant to be used inside an item's json instead of the block.
You use block components in blocks, item components in items, and entity components in entities. Confusing on that will result in errors
Set target to self
It will, but not as much as you could think
I think is acceptable, yes
Excellent job
Glad you managed to get it to work!
Is there a way to make block collision box bigger than 16*16
I have a custom block that geo are bigger than 16 *16 and the outline is really annoying
I just need to expand the collision to fit the geo
U sure?
I remember someone use something like transform to make a 128 * 128 collision box
that's definitely a bug and was probably removed
That was a bug. It is impossible to have a collision box bigger than 16*16. Also, the bug was patched, yes.
You cant, use sceipting
Execute command works well to to auto destroy torches
/execute if block ~ ~1 ~ air run say air
You can use it in conjunction with an event to look for air if you want
Is the only workaround to test for air without scripting
Yep
You can
in the same event, you can have more than one event key, run_command is just one of them
So you could just run a condition sequence event that triggers another sequence event that fires both the command and decrement. If I understand what you are asking
You may have misunderstood what we were saying, let me make an example
Hey Leah, side note, please try to send your texts in a single message to avoid flooding the channel. Try to do this everytime is possible 😊
May I know exactly what you are trying to do?
Upon placement, test if there is air above with /execute if block, if true, do nothing, if false, destroy the block.
Elaborate
use my own example
So only do decrement stack if there is no air above?
It should be dropped at ground using my example, so you could pick it up again
You may not like it, but it works 😕
Then you can combine what I told you with a setblock command to re-place the block with a block state in a specific value, use queued_ticking in the permutations of said block state to run the decreament stack key once.
That's what I was thinking but couldn't think how to word it 😅
Does it have to use math.floor?
That's good 😊
Excellent job!
That behavior could be recreated from the entity file of the bee
As to what kaioga said earlier too, it might be more helpful to include all of your messages in one message instead of 7. It will be easier to read and keep up with 👍
I know, ☺️ just a suggestion lol, it's okay.
#1019692489596215388 message
there xd
eh?
only the stage is that color
What
Leah:
You guys should move to #off-topic
Do you mean that you want to make the selection box length of your plant larger than 16 squares?
"looping": true,
"interval_range": [20, 20], // Two values (in ticks) which will be randomly decided between to determine delay duration.
"on_tick": {
"event": "wiki:example_event",
"target": "self", // Optional - 'self' is default (targets block)
"condition": "q.block_state('wiki:boolean_state_example')" // Optional
}
}
How do I know how to increase the tick?
Like 20, 20 are what
How do I make it faster or slower
Someone explain to me
You can increase or decrease the tick speed by adjusting: Number: 20,20
If it is less than 20, it increases the tick speed, and if it is more than 20, it slows down. If you don't understand, tell me. To give you a better explanation.
20 ticks equals 1 second, so the range 20,20 is 1 to 1 second, correct me if I'm wrong.
Yes, what you said is true
You can also change the interval rate at which the event will take place. For example 20 20 means that the event will trigger in 1 sec where as 100 200 would mean the event will trigger somewhere between 10 and 20 seconds
I still do not understand
Wow, it's very difficult to understand, what do you mean?
20, 20 Is it 100 seconds?
I'm confused on the part where I make the tick slower or faster
Slower serious 10, 10 and faster 50,50?
[20, 20] means it will be every 20 ticks
[20, 30] means it will take 20 to 30 ticks
to convert ticks into seconds do ticks ÷ 20
to convert seconds into ticks do seconds × 20
How it works to set the speed
higher value = more time between event triggers
?
how often do you want the event to trigger?
"looping": true,
"interval_range": [20, 20],
"on_tick": {
"event": "wiki:example_event",
"target": "self"
}
}```
So here we see a basic set up for ticking.
Interval range is the time frame in which the component will trigger the event "wiki:example_event". In this case [20,20]. Time in Minecraft is based on ticks. And 20 ticks is equal to about 1 real life second. So this event will activate in a range of 1 to 1 real life second.
I want a slow one every 10 minutes and a fast one every 10 seconds
If it was [20,60] it would activate every 1-3 seconds
I need to know how to make it very fast and very slow
Ah gotcha let me see
The bigger the slower
And that?
[12000,12000] is every 10 minutes and [200,200] is 10 seconds
Yes essentially, if you need anything else, just ask 😉 Sorry it took so long as I am at work
"carried_textures" don't work on custom blocks, I have to make a separate item for it.

didn't get it
but how it got about 3px extra selection box?
wasn't it about the same height as normal blocks?
16x16x16 for wheat?
Can someone help me
Why is this code giving a loaded data error?
Block rotation settings not working
Someone help me
{
"format_version": "1.19.50",
"minecraft:block": {
"description": {
"identifier": "hiro:illager_head_hr"
},
"properties": {
"block:direction": [ 0, 1, 2, 3 ]
},
"components": {
"minecraft:creative_category": {
"category": "Items",
"group": "itemGroup.name.skull"
},
"minecraft:destroy_time": 0.5,
"minecraft:loot": "loot_tables/blocks/illagerhead_hr.loot_table.json",
"minecraft:breathability": "air",
"minecraft:geometry": "geometry.illager_head",
"minecraft:material_instances": {
"*": {
"texture": "illager_head_hr",
"render_method": "opaque",
"ambient_occlusion": false,
"face_dimming": false
}
}
},
"events": {
{
"setDirection": {
"set_block_property": {
"block:direction": "(q.cardinal_facing_2d-2)"
}
}
},
"permutations": [
{
"condition": "q.block_property('block:direction') == 0",
"components": {
"minecraft:rotation": [0, 0, 0]
}
},
{
"condition": "q.block_property('block:direction') == 1",
"components": {
"minecraft:rotation": [0, 180, 0]
}
},
{
"condition": "q.block_property('block:direction') == 2",
"components": {
"minecraft:rotation": [0, 90, 0]
}
},
{
"condition": "q.block_property('block:direction') == 3",
"components": {
"minecraft:rotation": [0, 270, 0]
}
}
]
}
}
}
I would really appreciate it if someone helps me solve it
use traits instead
you are not triggering the event
add "minecraft:on_player_placing"
also, events its an array [ ], not an string { }
"minecraft:on_player_placing": {
"event": "wiki:example_event",
"target": "self", // Optional - 'self' is default (targets block)
"condition": "q.block_state('wiki:boolean_state_example')" // Optional
}```
Could you tell me what I need to put inside the "q.block_state" It's block:direction?
And in the event it would be my setDirection
Would it be this
its optional
dont add it if you dont need any condition
yes
does not work
16:13:10[Json][error]-block_definitions | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/development_behavior_packs/Project expansion 1.3 - Behavior Pack | blocks/illager_head_hr.block.json | upgrade blocks/illager_head_hr.block.json | failed to parse file into a json document: Missing a name for object member.
16:13:10[Blocks][error]-block_definitions | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/development_behavior_packs/Project expansion 1.3 - Behavior Pack | blocks/illager_head_hr.block.json | Unexpected version for the loaded data
These errors appear
why dont you use traits instead properties?
you know I'm not using it, I showed you the codes
Wow, man, how do you give me a hard time with him?
I still showed you the codes and you ask about traits
I'm asking you why you chose to use an old method instead of a new and more efficient one.
And regarding these errors, isnt cause the trigger, it is probably the format version
I agree with Gabriel, using the newest methods provide you a better chance of somebody being able to help you, better chance of your block doing what it needs to, and saves frustration in the long run. Switching to the latest format version is recommended if possible, just makes life a tad easier at times
yeah, traits is more optimized thant using properties and trigger components
Question: What should the collision be for custom stairs. 1 stair works great. But if I have a staircase, I have to jump up it.
Unfortunately we still can make multiple collision blocks, so most that I have seen keep them as slabs collision
what is that?
It would be 16 x 8 x 16 so 8 pixels high for the y value @haughty compass
so origin would be -8, 0, -8
I believe so, it's been a while since I messed with slabs but sounds right
You cannot
only with entity
Can anyone help me my custom sandbag block don't appear in the world or can't be spawn in with commands anymore knows why is this doing this ?
@winter elk
@oak totem
Okay
thats from the manifest probably
You used a Add-On creator app didin't you?
Those are trash. Use bridge. or something.
I am able to be pinged and I don't mind it, it's in my profile 😅
So your json file has several errors in it and some things to note. If you don't mind, I am actually going to recommend a different way to create blocks for you and then I am going to point out some errors. Have you heard of Block bench?
Yes in general it is bad, in both of our cases, we were pingable so not to bad 👍
@neon dome So I went ahead and changed your block to the updated 1.20.20 version and switched out some stuff for you. Hopefully it works now ☺️ If it doesn't, let me know and we can take a look at it again.
I mentioned block bench earlier as a good solution for you, especially if you are already using programs to make your blocks. Block bench is up to date and builds your block's json accurately, I use it too at times. Give it a shot
The block group is a string that is outside of minecraft:creative_category, in addition the friction cannot be 0. Also try changing the version to 1.16.100.
Yeah that was one of several errors I found to
The geometry doesn't seem to be valid either.
Yeah
No worries, try the new file I posted and see if it works 🙂 Block bench also has block wizard that will help create blocks if you like with the json
Thx u very very much
No problem 😁
I will that sounds helpful
No worries, I didn't know if it would completely work as I just scrapped it together, but did you get something working @neon dome ? I have got to go to a meeting but I will be back at the house in maybe 3 hours or so and then I can help me
I'm still fixing sadly maybe u can look at it in bridge when you come back
Huh... The json came up as valid when I just checked it. Did you get any error codes @neon dome 🤔
I am gonna put it into my pack now and try it
So I did a test, and the code I sent you works fine, I just switched the geometry and texture to one of my blocks
If you are comfortable with it, can you send me your addon here so I can test it for you?@neon dome
That's very kind of you ☺️❤️
Probably right, either that or it's not define in the blocks.json or the manifest file is wrong in some way
Oh gotcha... It does help if it is on. Yeah that sounds like a manifest error, but wouldn't know for sure unless we get our hands on the pack
"format_version": 2,
"header": {
"name": "Sieve The Day",
"description": "Sieve The Day Resource Pack",
"uuid": "62d01705-af38-7ba9-f5f2-d9a9c4b29ef6",
"version": [1, 0, 0],
"min_engine_version": [1, 16, 0]
},
"metadata": {
"authors": ["Ivyman1992"],
"generated_with": {
"blockbench_block_wizard": ["1.2.1"]
}
},
"modules": [
{
"description": "Sieve The Day",
"type": "resources",
"uuid": "4c038108-a015-2e38-41a2-2f21ec30be34",
"version": [1, 0, 0]
}
]
}```
In case I am not on, this is what it to look like if the pack was generated with block bench @zinc wyvern
In case there is an error there.
The manifest file tells Minecraft what version your pack is playing in and and additional imports that it will need. The main thing is the min_engine_version and in regard to the error, making sure that the metadata section looks like mine.
Other then that, maybe the geometry or blocks.json depending on what the block is doing
That works too 😁 I do that as well except changing it's uuid
Right 👍
Mine was block bench, the rest of the code is edited by hand. I am not a fan of code generators because they often mess things up
Sometimes they do lol 🤣
I think once you get a template to work with, the rest is easy
Yep, and once you create one type of block, as long as you keep it, you will have a nice reference to copy and adjust
I agree, something to consider would be to create a tutorial for a specific part of it in Dev Resources. That is if you would like to help others learn
I think you have improved a lot on your cake, you got it working great, and it now looks great 😃👍 So if you had something in mind, like for example, how to make your block emit particles, or something niche then that's what I am referring to.
For example I made one on menu category awhile back
#1084031893776891915 message
You don't have too, but I am encouraging you to share your block and help others with specific things if you want
After I finish my sieve project, I was going to do the same
No worries, it's all right 👍 Messy, nah, but it could be simplified if you wanted. Just tossing ideas your way 😅 Trying to be a mentor of sorts lol
You are doing good
As for helpful, you never know, it may be just what someone is looking for
I just woke up
No worries, I tested the code I sent you, everything works great. So I was wondering what your block was doing exactly and what content log errors do you have
The block was not just appearing in the game
Any errors? And you looked in the sandstone category?
Not of I know of
Can you attach your pack here and I can take a look at it on break? If you are comfortable with it
I just worry about any body reusing my models
I sent you the file to you in Dms
is it possible to make a block have a similar interaction to tallgrass? for instance, when you place a block where a tallgrass is, the block places on the tallgrass instead of above it like what normal blocks do.
Alright you are good to go ☺️ I am sending it back to you now
You should be able to, but there are several ways to go about it. You can make use of bone visibility in your blocks geometry to hide the top part until it's interacted with. You can use events that lead to a run command event to setblock the top part as well. Really, however you like there are several ways that could work 👍
yeh, i definitely could see those solutions helping in different circumstances to mine. unfortunately for me, i need the block placement to behave exactly like it does when you place a block on a light block, a bugged structure void, and of course tallgrass.
Can you give me an example of what you are looking to do specifically? I am not sure I am following you @gritty gyro
i already have a solution to this which was semi similar to your bone visibility solution, but the issue is that my solution involved entities which isn't optimal
entity geometry is much more lenient while block geometry has much more limitations on the bounds
but all i'm wondering is after ive waited for 2 major updates if anything changed on the basis of block customization in the realm of placement collision and such
Ah gotcha, so you want to overwrite the block with a different one...
Nah collision and placement is still pretty much the same unfortunately. At the present the only thing I can think of in terms of block usage is to add an interaction event to the block that you want to overwrite. When you hit the block with another, it will be replaced with air, leaving room for your new block to be placed.
Other then that, scripting may be a possibility, but I don't know anything about scripting. Still you can do a lot of crazy things with it so maybe I would ask over there to be sure 😊 @gritty gyro
alr, i hope scripting does work out, thanks anyways
Me too, if it does, I wouldn't mind knowing the solution too. Wish I could help more with that one
i saw tutorials on making liquid with scripting, but it definitely didn’t act like water
but i’m sure there’s something, if not, eventually there will be
Some things might be easier to replicate then others, this may be an easy thing 🙂
Yeah I agree, we could use more to work with
i was crossing my fingers that the liquid would be overplaceable
to add more context
It wasn't?
nope.
Ah that's a bummer
I can see how your entity would work, but that's a lot to chain together
that’s what i was linking in my head and that’s what makes me think that there’s nothing i can do, unless bedrock oss is made of mediocre devs, which i highly doubt lol
surprisingly it’s not that complex, it’s really just moving the geometry 20 blocks down from the hit box to ensure the collision box won’t be in the way
I am sure there is something, it may take a new creative approach to it, you never know. Still, I bet it can be done with scripting.
Oh that's fancy! Really cool
Anyway, let me know if you come up with something 😉
sure, will do
please help, the block does not turn
"minecraft:on_player_placing": {
"event": "aba:turn"
},
"aba:turn": {
"set_block_property": {
"aba:direction": "(query.cardinal_facing_2d)"
}
},
{
"condition": "query.block_property('aba:direction') == 2",
"components": {
"minecraft:rotation": [ 0, 0, 0 ]
}
},
{
"condition": "query.block_property('aba:direction') == 3",
"components": {
"minecraft:rotation": [ 0, 180, 0 ]
}
},
{
"condition": "query.block_property('aba:direction') == 4",
"components": {
"minecraft:rotation": [ 0, 90, 0 ]
}
},
{
"condition": "query.block_property('aba:direction') == 5",
"components": {
"minecraft:rotation": [ 0, 270, 0 ]
}
}
"properties": {
"aba:direction": [ 1, 2, 3, 4, 5, 6 ],
"aba:properties_bag_loot": [ "closed", "open" ]
}
},
Give this a shot, you are using an old format for your block. Updating to 1.20 is a little easier for rotation with block traits 👍
1.18.0
blocks
minecraft 1.20.41 reliz
@fickle trench
1.20.20 / 1.20.30 would be the new ones. A few things change though, like block properties are now block traits, but things are simplified, not as lengthy, it's worth switching over
I can't help you with this.
зачем пишешь на английском?
#welcome message
ок
why do you write in English?
Oh gotcha, the translate command 😅 That's cool
[Json][error]-block_definitions | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/behavior_packs/[АБА] | blocks/box_loot/bag_loot.json | upgrade blocks/box_loot/bag_loot.json | Final json version '1.20.30' failed to upgrade from document version '1.20.30'
/переводить перевод работает?
does the translation work?
Yes it works 👍 What that likely means is that you have outdated components/properties in your block. Take a look here and make sure everything is up to date
😭
It's okay, not much has changed, only a few things
"menu_category": {
"category": "items"
}
"minecraft:geometry": {
"identifier": "geometry.example_block", // Geometry identifier from file in 'RP/models/entity' or 'RP/models/blocks' folder.
"bone_visibility": {
"wiki_bone": false, // Hide cubes in this bone
"conditional_bone": "q.block_state('wiki:example_state') == 3", // Molang expressions can conditionally set visibility
"another_bone": true // true is the default so has no effect.
}
}
[Blocks][error]-block_definitions | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/behavior_packs/[АБА] | blocks/box_loot/bag_loot.json | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/behavior_packs/[АБА] | blocks/box_loot/bag_loot.json | aba:bag_loot | components | permutation conditions only allow 'block_state' Molang queries
It means that in your permutations section, you are likely still using 'block_property' and it needs to change to 'block_state' instead. @magic glade
"condition": "q.block_state('luna:block') == 1 && q.block_state('luna:plate') == 0 && q.block_state('luna:treasured') == 0 && q.block_state('luna:mesh_strength') == 0 && q.block_state('luna:mesh_type') == 0",
Like this
I didn't understand :/
Can you send your file here in .txt format? Like "my_block.txt"
"condition": "query.block_property('aba:properties_bag_loot') == 'open' "
This needs to be
"condition": "query.block_state('aba:properties_bag_loot') == 'open' "
Also "minecraft:loot": "loot_tables/blocks/box_loot/bag_loot.json",needs to be under components, not properties
[Blocks][error]-block_definitions | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/behavior_packs/[АБА] | blocks/box_loot/bag_loot.json | /storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojang/behavior_packs/[АБА] | blocks/box_loot/bag_loot.json | aba:bag_loot | components | minecraft:ticking | child 'minecraft:ticking' not valid here.
"looping": true,
"interval_range": [20, 20], // Two values (in ticks) which will be randomly decided between to determine delay duration.
"on_tick": {
"event": "wiki:example_event",
"target": "self", // Optional - 'self' is default (targets block)
"condition": "q.block_state('wiki:boolean_state_example')" // Optional
}
}
Right I forgot events changed too, it is now like this
[Scripting][warning]-[Watchdog] 149.614 ms script spike detected in behavior pack '§l§2[АБА]'
[Blocks][error]-Block name = 'aba:bag_loot' | Geometry Component bone_visibilities bone another_bone is invalid, in block aba:bag_loot
[Blocks][error]-Block name = 'aba:bag_loot' | Geometry Component bone_visibilities bone conditional_bone is invalid, in block aba:bag_loot
[Molang][error]-Block name = 'aba:bag_loot' | Error: query.block_state is making use of non-registered block state.
[Blocks][error]-Block name = 'aba:bag_loot' | Geometry Component bone_visibilities bone wiki_bone is invalid, in block aba:bag_loot
[Blocks][error]-Failed to find Block State wiki:axis in set_block_state
I already have a headache 🙁
Хотя я и сам иногда писал сообщения на этом сервере не на английском, но я делал это в отдельных обсуждениях где это никому не мешало.
Although I myself sometimes wrote messages on this server not in English, but I did it in separate discussions where it didn't bother anyone.
because when there is entity.collision false
Interact doesn't work?
Is it possible to resolve this?
I wanted my block to not have an entity box but to be interactive
but it's not working
that not a block component that's an entity thing
use ```py
"minecraft:collision_box": false
Hey, how does the "permutations" limit actually works?
I always thought that a block could only have a total of 64 block states; as it always broke the block if I exceeded that. However, it seems like that has been changed
Huh?
does it means you exceeded that limit?
Correct
Please block fans, show your support at https://bugs.mojang.com/browse/MCPE-177045 ❤️
We need less limitations 💪
Ok
In summary: 64 block states limit is not working as intended, making that in some cases, the limit is 32 instead.
anyone know how to target behaviour block block in the makecode editor? in the education editon version?
I've never heard of a 64 value limit, i thought the limit was meant to be:
- no more than 16 valid values for one state
- no more than 65536 possible combinations of state values
If you have 20 states with 2 values each, the block has 1048576 permutations which exceeds the limit of 65536
You are mentioning two different limits. While first one is true, second one isn’t
Let me explain you why. The 65536 limit is for the number of permutations in the world. In your provided example, you have 0 permutations, however it is important to note that you could indeed have 1048576 permutations (assuming you made the math right 😛)
Oh also, the 64 block states limit is because you can have a block with 64 working block states values (4*16) and if you exceed that, the added ones won’t work
according to [this message](#1067876948858118185 message) that's because you've hit the limit of a single block's permutations (65536) however, according to the ms docs, the limit is about amount of permutations existing in the world. Based on your bug report, it seems like the limit kayla described is what's actually measured, not the amount of permutations placed in the world.
I might create an issue on the github because the ms docs aren't very clear about this
But you actually didn’t because the error is not showing up. They simply don’t work, no errors are given in content log. The bug report I mentioned aims to fix the previously mentioned issue and the wrong logic of Mojang for this.
A limitation ought to be determined by its inherent attributes rather than speculative considerations. Receiving a content log error for 65536 permutations is nonsensical in a scenario devoid of permutations within any of the blocks.
Currently, the block checks how many possible permutations it can have based on the block states when it should simply check how many permutations the block has
By definition the permutations is all possible state combinations
saying "possible" before permutations is redundant
I’m pointing out a definition that is not well made
The permutations field isn't declaring the permutations, just assigning particular ones (actually groups of them) to different components
That’s the error in the Minecraft logic
Part of the error 👆
That logic is well stated but too limiting. We need it to be changed.
If some state combinations are impossible, you need to model that appropriately
There are cases where you are simply not allowed to do so
I know your example from the report is artificial, but you would want to model that as an enum state instead of 20 booleans
Trust me. I simplified a block that could have more than 100 permutations defined to have 0 permutations and I’m still experiencing that issue
What goes in permutations is irrelevant, clearly the key needs to be named better
If you want a more specific case where something like that would not work, I can provide you with one
a block cannot have 0 permutations. all blocks have at least one
Sure
definitely, although i'm not sure what it would be changed to other than "permutation_based_components"
I don’t know how could I word this without an image… hm… give me a second
I would probably call it apply or something
How would you check for all neighboring blocks from your block in all possible directions?
(All possible directions equals 8, since only 8 blocks can be placed around your block)
testing for 🟦 ?
🟦🟦🟦
🟦🟥🟦
🟦🟦🟦
I know the query and stuff. Skip that. Just go to the permutations and states part to see how would you do that logic
Yes, in x, y, and z
Not sure if I explained myself correctly
I'm not an expert with blocks, does that need to be cached as a state? Can you not put other queries like relative_block_has_any_tag or whatever in the condition field?
the condition field of a "permutations" item is purely based on the block's current state values
Yeah, which limits a lot of things
So it's like how they nerfed entity properties, very epic
Yes it has to be
Don’t know the context of that 🤷♂️
Haven’t worked with entities for a while because I fell in love with blocks
they probably only used molang for the condition to make it easier to write, rather than something like this:
"condition": {
"all_of": [
{ "state": "eg:hello", "operator": "==", "value": true },
{ "state": "eg:dye", "operator": "!=", "value": "yellow" }
]
}
What I want is for the bug I reported to be fixed (which is not exactly what we are talking here)
And based on the resolution we receive from that I’ll create the other bug report or not
I don't think it will change
Java's biggest block (redstone wire) has 16*3*3*3*3 = 1296 permutations, same system
It's just not designed for blocks with lots of states
The problem is the logic, is poorly made
How in the world I am allowed to have a block with 64 working states
With no errors
the limit might be working correctly, just there's poor documentation and lack of an error message
If I am allowed to have that, I should be allowed to have 32 Boolean block states but I am not
Definitely should fix the error message
How is this one?
By states, you must not mean properties, right?
Is the logic what has the issue, otherwise explain this
I mean a block with 4 block states with 16 values on each one
That works with no content log error and all states values can be read within permutations
If having a block with 4 block states and 16 values (which equals to 64 block states values in the same file) work, that means that 32 block states with 2 values each should also work
And that is the first issue, the one I am reporting
A block with say, 5 boolean values has these possible permutations:
00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111
A block with 6 boolean values has twice as many, 7 twice still, and so on
4 properties with 16 values is 65,536 combinations
32 properties with 2 values is 4,294,967,296 combinations
It may well be that you're allowed to have more combinations defined than exist in the world, but the second one definitely blows past even an additional limit
And I find that said logic should not work like that
I recently tried to make connectable blocks and experienced this issue… really frustrating
I simplified my block to the point of using no permutations and still got the issue
(Because with the logic, it has permutations)
what do you mean by "no permutations"?
I don't know why you're just multiplying, it should be clear that
2 states with 3 values 00 01 02 10 11 12 20 21 22 is different from
3 states with 2 values 000 001 010 011 100 101 110 111
No permutations field
the permutations still exist, you just aren't doing anything with them
And the game still has to include that information when generating the network palette
If you don't need them, don't include them. If you do need them, they are going to bloat the palette
I hope they change it or at least, give us workarounds
Because something like this would fix most of my problems with this
Microsoft loves "user stories", if you can come up with a compelling use case I'm sure they'll come around
After I make my block public
But yes, really intrigued to see the resolution of this report
Hopefully either the logic changes or we get workarounds to not have to depend that much on states
I'll vote for it
Thanks!
@white bobcat I get what your saying, 4 states with 16 values works, but 32 booleans with 2 do not and that no doubt is frustrating. Still I can't seeing it being fixed in the way you are mentioning. The reason being is that you can technically do what you like with the block using the 4 and 16 values.
I guess the question is really, do you have to have 32 booleans states, when less states can achieve the same? I am just trying to understand why you want it changed in the way you are asking
Less block states will be able to achieve the same in most of cases, but there are some where they won’t, as you require certain data to be managed individually.
For example, when checking for neighboring blocks you want to be able to say “My block has a block in north and east, but not in west and south”. Doing that check within a single block state will make you unable to set that behavior, as it would only mark one of the blocks found, independently if it has more than one around or not.
If you are testing just for the cardinal directions it can be done in one state, but if you are including the diagonals, then it would require two block state. Something like this is what I came up with. Is it closer to what you need? @white bobcat
//where as 0=none, 1=N, 2=S, 3=Both
“luna:blocks_ew”: [0,1,2,3]
//where as 0=none, 1=E, 2=W, 3=Both
“luna:blocks_ne_se”: [0,1,2,3]
//where as 0=none… ect
“luna:blocks_nw_sw”: [0,1,2,3]
//same idea
“luna:cardinal_blocks”: {
“values”: { “min”: 0, “max”: 13 }
}
// Values 0-13 represent each cardinal block present ( n,s,e,w,ne,se,nw,sw,new,sew,ens,wns,none,all)
The same can be done with the diagonals```
So 4 states vs 2 states cardinal + diagonal which is not shown
Seems easier to keep up with then 32 states
That would still preserve the issue I mentioned
About the booleans?
I tried all ways that appeared in my head to simplify the block I am working with the most... still had to use the booleans
Still require to check data individually, so I still need the use of boolean block states
How many placements are you checking for?
First of all, can't replace the cardinal checks with block straits; the block is an always check, not a check-on-place
I put em all in a single block state of 5 values and made my test as the following:
"kai:direction": "q.block_neighbor_has_any_tag(0, 0, -1, 'connected_glass') ? 'north' : (q.block_neighbor_has_any_tag(0, 0, 1, 'connected_glass') ? 'south' : (q.block_neighbor_has_any_tag(1, 0, 0, 'connected_glass') ? 'east' : (q.block_neighbor_has_any_tag(-1, 0, 0, 'connected_glass') ? 'west' : 'none')))"
Could you use the execute command with ticking to constantly check for your blocks?
No, that would reset my block
Gotcha
This has all cardinal checks in a single block state. Not usable for my needs
So put simply, what exactly are you needing? I may not be following you
Basically a block that checks for all these combined positions
- all cardinal directions, ne, nw, se, sw, up and down
I pretty much need 18 booleans block states
Okay, let me think on this and see if there is anything I can come up with 🤔
Oh okay, I think I have an idea, I will write it up on break for you
Sounds good. Note that the ones with the same material/color are like that because they have to be that three
So, is either true if there are the three placed, or false if there are 2 or less
By the way, my break is only 15 minutes so if I don't get back with, be rest assured that I am working on it lol and will get back to you as soon as I have something
Lovely ❤️
Thanks!
No problem 😁
anyone know what this means?
“values”: { “min”: 0, “max”: 13 }
}
// Values 0-13 represent each cardinal block present ( n,s,e,w,ne,se,nw,sw,new,sew,ens,wns,none,all)
//The cardinal values should only be true when it’s corresponding corner plane is unfilled. This means that your block may have a block to the east and west, but if the west block is part of a corner then only the east value would be set.
“luna:vertical_blocks”: [0,1,2,3]
// 0=none,1=top,2=bottom,3=both and only active if the shared plane corners are not fulfilled
“luna:ns_plane_corners”: {
“values”: { “min”: 0, “max”: 13 }
}
//tests for each corner shape on the NS axis, similar to testing for the cardinal directions, except with shapes instead. Each value would only be set if 3 blocks are present in each corner.
“luna:ew_plane_corners”: {
“values”: { “min”: 0, “max”: 13 }
}
//Do the same for the EW axis```
So it relies heavily on conditional molang and is tedious, but I believe that these states will be enough to do what you like as long as you are careful when writing up the conditions, what do you think?
@white bobcat
The planes are vertical as well, I didn't know if you needed the horizontal ones, but if you do then you will need to add one more corner plane representing the flat plane
If so, there would be 5 state checks
“values”: { “min”: 0, “max”: 13 }
}```
All in all though, I see what you mean though about booleans. With this many values, I would prefer to be able to use 26 booleans to check for each block in a 3x3 cube versus 46 values 😅
It would also simplify things a lot because you wouldn't have a lengthy molang condition that tests for several blocks, but rather tests for one specific one
{
"format_version": "1.18.0",
"minecraft:block": {
"description": {
"identifier": "hiro:pure_concrete_powder_hr"
},
"components": {
"minecraft:creative_category": {
"category": "Construction",
"group": "itemGroup.name.concretePowder"
},
"minecraft:on_interact": {
"event": "interact"
},
"minecraft:destroy_time": 0.5,
"minecraft:explosion_resistance": 0.1,
"minecraft:loot": "loot_tables/blocks/decoration/pure_powder_hr.loot_table.json"
},
"events": {
"interact": {
"sequence": [
{
"condition":
"q.is_item_name_any('slot.weapon.mainhand', 'minecraft:potion_type:water')",
"set_block": {
"block_type": "hiro:pure_concrete_hr"
}
}
]
}
}
}
} ```
Can someone help me understand why it doesn't work?
Off the top of my head, you are running a sequence event instead of a normal single event. Maybe switch that and see, you could also try setting the target if the event to self
You can also try ```"wiki:generate_stone_above": {
"set_block_at_pos": {
"block_type": "minecraft:stone",
"block_offset": [0, 1, 0]
}
}
You can also put the interact condition on the interact component as well
I understand what you are doing, but once again, this type of data cannot be evaluated in a single state because the block should be able to, for example, have a block to the north but no block to the south. If all the data is being processed in a single block state, the and logic will be replaced by an or.
Not sure if I am explaining myself with this
Yeah, single state logic for your block is impossible as long as you are tied to 16 values per state.
Exactly, and cases like this is why we need more than 16 working boolean states
unrelated, my head is blowing right now thanks to black and magenta texture on another block
in my terrain_texture.json:
"black_painted_planks": {
"textures": "textures/blocks/planks/painted_planks/black_painted_planks"
}```
In my blocks.json:
"kai:black_painted_planks": {
"sound": "wood",
"textures": "textures/blocks/planks/painted_planks/black_painted_planks"
}
my block file
So, yes... why black and magenta texture?
Any fix that prevents blocks to be "update blocks" when you remove "minecraft:unit_cube"?
Register them in blocks.json
you either have to use geometry, unit cube or blocks.json. although it seems they're going to make unit cube the default in the future and remove the component
quazchick? 🥹
yea well using transparent blocks, you can see the model and stuff freak out with a unitcube
the textures value should be the terrain textures entry name
black_painted_planks
let me recheck in case I misread
ah yes, I missread
Honestly, I would love if the "title" for block codes in wiki were of a vibrant color
Because currently is not noticable enough to not ignore it
RP/textures/terrain_texture.json
skill issue honestly 😛
hehe
I forgot that unit cube was always the cause for blocks to look smaller in the inventory
Ya
placement filter seems buggy for me
How
Can someone help me understand why it doesn't work?
{
"format_version": "1.18.0",
"minecraft:block": {
"description": {
"identifier": "hiro:pure_concrete_powder_hr"
},
"components": {
"minecraft:creative_category": {
"category": "Construction",
"group": "itemGroup.name.concretePowder"
},
"minecraft:on_interact": {
"event": "interact"
},
"minecraft:destroy_time": 0.5,
"minecraft:explosion_resistance": 0.1,
"minecraft:loot": "loot_tables/blocks/decoration/pure_powder_hr.loot_table.json"
},
"events": {
"interact": {
"sequence": [
{
"condition":
"q.is_item_name_any('slot.weapon.mainhand', 'minecraft:potion_type:water')",
"set_block": {
"block_type": "hiro:pure_concrete_hr"
}
}
]
}
}
}
} ```
You don’t have the just saw!minecraft:on_interact component
minecraft:potion_type:water isn't an item
You are looking for minecraft:potion
i'm not sure if the molang query supports data values, but it would be minecraft:potion:0
Can we set transparent textures with blocks.json?
No
😔
So I guess the only stable way to create air-like blocks is with custom geometry?
you can use an alpha_test render method in material instances and apply the texture in blocks.json (https://wiki.bedrock.dev/blocks/custom-glass-blocks.html#basic-glass) however the block won't be breathable
material instance without unit cube results in update block
not if you define a texture in blocks.json
Let me see
Great! Glad we can make custom air without experimental (without geometry too)
Wonder when unit cube will be depreacted
Soon™️
This was what I was cooking: https://discord.com/channels/523663022053392405/1176959922408259664
So, if any suggestions on how I could accomplish the same results without the boolean states, let me know here
(and the reason for my username to be ihateglass last week)
how do I check the block property below my block?
like my custom block checks the block below it if it's an acacia planks?
You can use execute if block or give your block a tag based on the block state (property) it has in order to be able to check for it with q.block_neighbour_has_any_tag.
Of course, are you blind?
What is the item in the water bottle?
I just didn’t saw it at first 😅
No need to be rude.
👆
and why do u not use that?
transparent texture
What?
I think this has been answered, but checking in to see if there's still confusion. Regardless, we can probably do better on our docs and warnings to communicate this stuff.
Yeah it was answered. However, I don't think the way they work is the best. Have you check my bug report? I recommend you checking it MCPE-177045
yeah I've seen that bug. It's as designed, since 20 boolean states would exceed the permutations maximum.
That logic should either be reworked, or give users some workarounds to not make many things states-dependent
currently that's the limitation we have. we always look at ways to improve things but, as it stands, this is as-designed.
Why doesn't bone_visibility accepts more molang queries?
That is a way to improve, for example, instead of using block states and q.block_neighbour_has_any_tag, we could directly check them there... no need for block states.
I understand that it is not common to face an issue with this limit, but there are cases. Something like that would have helped me in the case I faced this limitation.
pretty sure we did add molang support for bone_visibility back in. or are you asking for more Molang support?
Im asking for more, yes. Currently it only accepts query.block_state
That limits bone_visibility's access to molang to block states, as is the only data that can be read within said field
What are you specifically trying to do?
I am trying to make a block that changes the way it looks with bone_visibility based on the neighboring blocks. I have to read for all this data, colors and/or materials are like that as they have to be combined to be true.
Required of that to make https://discord.com/channels/523663022053392405/1176959922408259664
We are planning a "connected" block trait, which may help in this scenario.
Interesting. Any details in how that would work that you can mention?
nope 🙂 I'm going to let the engineers figure that out in their own time. But you can read-up on how block traits work today with the two we've already shipped.
Understood. Well, I still suggest this
understood. though overloading bone_visibility with more molang support is unlikely to bubble up in our priority list.
Good to know! Can't way to see that block trait and all the team has planned for block traits in the future
The current block traits are all rotation based. It's all what we could do before but still very useful since your not using on_player_placing
I imagine "connected" block trait to be like...
I do too, it'll be very interesting to use for sure
{
"traits": {
"minecraft:connected": {
"enabled_blocks": ["minecraft:cobblestone"]
}
}
}
Wild Guess
Then the permutation can be like...
I guess all cardinal directions
{
"condition": "query.block_state('minecraft:connected') == 'up'",
"components": {
"stuff_here"
}
}
With how the current block traits are I don't see a way to test for block states
Something like that would definetly fix my problem with glass
Un-related but related question. Let's say I have two cubes in a geometry. Both of them are 16x16x16. Anyway we can decide which one will overwrite the other?
As in what texture will be shown based on the render methods and the texture itself
Let me make a visual of what I mean
ok
um
one cube has the glass texture and the other has that blue bb texture
like there are two material instance permutations registered to same property state?
Sort of
You know how I am removing the borders or corners based on neighboring blocks?
ya
Well, I need to replace it, not simply remove it
replace said border or corner with another texture
Only way to accomplish that is with two cubes
What I just dmed you is what I mean with this
I was working in this with Kaioga, my version is pictured and I ran up against the same wall. Because only 16 of my 18 states work. From the picture, the tall wall is perfect, the one laying down, I cannot turn off those bones. If bone_visibility accepted q.block_neighbour_has_any_tag, as it should because it is molang, then our blocks, which btw, have no permutations in them, would not need the states at all, as Kaioga said. So it is not more molang that is needed, just everything related to a block. And there is nothing about block traits that can reproduce the blocks in the picture. @wooden whale
I am thinking a look-up table is built with every possible combination within a file and permutations are matched to it, so would be faster... So I can see the need for a limitation, as the lookup table and indexing can get out of hand.... but a file with no permutations section at all... maybe if it were possible to not include them in the lookup count. I still think the number of permutations that are actually in the file should just be counted and made into the lookup, after all, we cannot dynamically add permutations to a file. It is static and will never change.
hello everyone!
Is there a maximum number of values inside stats in the block's json file.
secretly teasing a trait to make fences easier 
next up is one for doors and stairs
then make it so custom blocks can be waterlogged
The emoji makes this message funny
We can't rotate indvidual faces of a cube without a custom geometry right?
(& without rotating the texture)
Oh well
woahh
What do you guys prefer for a template?
1 texture and a geometry or
3 textures and no geometry
I'd go for 1 texture & a geo
Sounds good then 👍
kaioga, im very intrigued by how you assign the states in bone_visi and how to set the block state, im really dumb at it
To assing a state in bone_visibility you have to use q.block_state in the bone you want to apply it, for example:
"your_bone": "q.block_state('namespace:yourstate') == 0"
ohh okay, how does it enable and disable a bone through the events, that part im most curious about
I added an alpha_test block, it only has 1 geometry but, when positioned, it changes the material_instances randomly. Does anyone know why the game crashes when this block is placed? I used randomize to apply the states
If the condition is met the bone will be set to false. Is not something only limited to events
I would assume because you have in your permutations other material instance components with other render methods
But is hard to tell without seeing the code.
I replaced set_block_state with run_command with /setblock and now the game stopped crashing but when the block is positioned it "pauses" the game time and nothing else happens, the map doesn't even render anymore. I think this is a bug because this block has 3 states that are randomly activated at the same time. So I'm going to leave it as it is but without different textures.
Sounds like you are causing a loop
The event is triggered using on_placed, so when the block is replaced it triggers the event again. Thanks, I'll try to fix this later.
No problem 👍
It worked, thanks
Glad it worked
How do I make it so my glass doesn't drop an item unless it interacts with an item that is enchanted with silk touch?
if you only want your block to drop if mined with silk touch, you can set the loot component to this:
"minecraft:loot": "loot_tables/empty.json"
oh
thank you very much
where is the enchantment table code?
i wanna get the code for the book following the player
There is no code for it available to us. However if you want to recreate it, then you might make a block that summons the book as an entity. The entity will always look at the player and run an animation. Once the block is removed, so is the entity
Remember that vanilla blocks server side code is not publicly available.
Does anyone how a detailed guide on bone visibility with molang, im trying to make a table but am stuck on how to use bone visibility.
I finally figured out how to fix the Failed to find material for ''. Did you forget to add the '*' material instance?
just add an extra material instance with a wildcard 😭
This is all you’ll need https://learn.microsoft.com/en-us/minecraft/creator/reference/content/blockreference/examples/blockcomponents/minecraftblock_geometry?view=minecraft-bedrock-stable#bone_visibility
hello everyone!
Can anyone help me?
How can I solve this problem? What is its cause?
You are probably scaling your geometry too much. May I see your transformation component?
ok
"minecraft:transformation": {
"translation": [0.0, 0.0, 0.0],
"scale": [1, 2, 1]
}
@white bobcat
hello!
I would also need to see your geometry, but that is probably the reason. You may be trying to exceed the 30x30x30 limit with the component, which is not possible.
thes is
I don't have any experience with this so I don't understand what you mean
Block geometries have a limit of 30x30x30, that means they can't be bigger than that. Your geometry does not seems to go beyond that limit, but with your transformation component you are trying to scale it to values that will make it go beyond that, which will result in error. I have not received the error you are showing, but im pretty sure it is reffering to what im saying you.
So I have to make the geometry height 16 x 16 x 16 and then do the mass transformation, right?
The same logic will apply. If you want to make a block bigger than 30x30x30 you simply can't
You'll have to use more than one block in order to get the same results
Like beds and doors do
No problem!
Sorry, but how do I reshape my geometry to 16x16x16?