#1.20.80.22 - Preview

1 messages ยท Page 2 of 1

sinful stump
flint cypress
#

There were all sorts of inconsistencies with things like :shank:. A lot of those work now.

#

I'll have to figure out where and how later.

signal scarab
#

:_input_key.sneak:, :_input_key.jump: I imagine there is other ones like .attack .interact?

candid monolith
#

attack and use
Also forward, left, right, back, inventory

long scaffold
#

Ah, you should try onQueuedTick when it comes.

flint cypress
#

Will do

sinful stump
#

That's.... ๐Ÿ˜‚ does it work on signs? It sohuld?

candid monolith
#

Seems like it does not work on signs or books

flint cypress
#

Yeah, it only exists in limited places. ๐Ÿ˜ฆ

candid monolith
#

So I guess the changelog was very literal, it's not a change to raw text, it's literally /tellraw and /titleraw specifically

flint cypress
#

Hopefully script-correspondant ones, too.

candid monolith
#

So even more weird and bad

flint cypress
#

Well, it's a stopgap for especially Marketplace teams.

#

But, yeah, hopefully they'll have something more consistent down the road.

signal scarab
#

Input key list:

  • :_input_key.togglePerspective:
  • :_input_key.jump:
  • :_input_key.sneak:
  • :_input_key.forward:
  • :_input_key.left:
  • :_input_key.back:
  • :_input_key.right:
  • :_input_key.inventory:
  • :_input_key.use:
  • :_input_key.chat:
  • :_input_key.codeBuilder: - EDU
  • :_input_key.cycleItemLeft:
  • :_input_key.cycleItemRight:
  • :_input_key.attack:
  • :_input_key.sprint:
candid monolith
#

Doing something like this has been wanted for a while, so even the bare minimum is not so bad

signal scarab
#

Darknavi if you are still around will these work in server ui forms?

candid monolith
agile verge
#

Are we still waiting on the update to be available?

flint cypress
signal scarab
#

Lang!

flint cypress
#

Oh, there are more. Like menuTabLeft.

fringe bluff
#

When we looked at these tellraw updates, the original proposal was to rework the entire system, which would have taken months. Instead, we looked at doing as small of a change as possible to unlock new scenarios quicker. So yes, what was released today is limited. But I stand by the call that getting this out quicker is more important than waiting much longer.

signal scarab
tropic dove
#

kinda huge tbh

signal scarab
#

Small features fast!

#

As the creators of marvel snap did a GDC talk on. Build, Play, Learn. Repeat.

agile verge
#

Marketplace maps are definitely going to be using these inputs once it releases as stable

flint cypress
#

tellraw @a {"rawtext":[{"text":":_input_key.mobeffectsandinteractwithtoast:"}]}

signal scarab
#

What does that display as ๐Ÿ‘€

flint cypress
#

Unassigned, to me as a keyboard user. ๐Ÿ˜›

#

It's for controllers.

#

hotbar.1 is another that works.

#

Lots of things, reallyโ€ฆ

#

I wonder what happens if you use the feature wherein multiple keys are bound to the same thingโ€ฆ

signal scarab
#

Stop opening cans Cici!

flint cypress
#

It's clear we've never met. Hi, I'm Cici! bao_foxxo_foxxa

candid monolith
#

It's hard to tell which ones are valid since any random thing like :_input_key.ajsdlfkjasklijraoesijf: turns into Unassigned

flint cypress
#

I can guess at which ones are valid. Give me a minute.

#
attack
pickItem
use
drop
hotbar.1
hotbar.2
hotbar.3
hotbar.4
hotbar.5
hotbar.6
hotbar.7
hotbar.8
hotbar.9
inventory
togglePerspective
jump
sneak
sprint
left
right
back
forward
mobEffects
chat
command
emote
menuTabLeft
menuTabRight
copy_coordinates
copy_facing_coordinates
lookUpSlight
lookDownSlight
lookUpRight
lookUp
lookUpLeft
lookRight
lookCenter
lookLeft
lookDownRight
lookDown
lookDownLeft
lookUpSmooth
lookDownSmooth
lookLeftSmooth
lookRightSmooth
cycleItemLeft
cycleItemRight
flyUpSlow
flyDownSlow
mobeffectsandinteractwithtoast
#

These are the canonical option settings for input systems.

#

I'd documented them a while back.

wicked grail
flint cypress
#

Be blinded!

sinful stump
flint cypress
#

Can't promise they'd work! But they should.

flint cypress
lean wind
#

dawg

#

its invisisble

opaque scroll
#

colour blind?

sinful stump
#

Captain's log:

6 hours since the changelogs were posted. No signs of the update anywhere on the windows platform. Some BAO users are getting angry and hungry for new things to play with. It appears the update was lost in the sea of pipelines when they were being transferred. The mobile and console ships are enjoying their treasures. The Java ship is rolling in MLG tricks and hammer time

faint cosmos
#

Iโ€™m liking those captain logs, they should always delay Windows releases so we get more

umbral trail
#

The bogged got stuck in the pipeline again. Gotta call a plumber

fringe bluff
#

Thomas, can you kick the Windows Store server again?

sinful stump
#

@radiant mango @vagrant valley Check the store

elder flareBOT
#

Minecraft Preview v1.20.80.22 is out now on the Microsoft Store!

opaque scroll
#

WOOOO

idle hornet
#

Oh hey it's out

idle hornet
#

Too bad I can't get on now

faint cosmos
#

Looks like the bot failed to send the message the first time

signal scarab
hexed hornet
#

new updaye?

#

or bot is slow

faint cosmos
#

@sinful stump Captain log

radiant mango
#

As soon as I turned of my PC, the update drops

sinful stump
faint cosmos
#

;w;

faint cosmos
sinful stump
junior flame
#

๐Ÿ’€ lmao they released it after I woke up

sinful stump
#

Captain's log:

A few minutes after my previous entry, the Windows Store army has returned us our stolen Preview build. Every BAO user is now hopping in joy. The gods have blessed us. Thomas no longer has to walk the plank

#

"treasure": true
Hey, anyone know what this function does in loot tables?

uneven thunder
#

Sorry to bother but Any news on defferd coming to consoles in the beta and preview version @fringe bluff ?

Ps4/ps5

fringe bluff
#

no news

#

we'll announce this sort of thing in the changelog, so no need to message me

junior flame
#

They are coming just wait. Bruh

uneven thunder
radiant mango
#

epic bug

uneven thunder
opaque scroll
uneven thunder
#

There's something wrong in the sky I told you

junior flame
sinful stump
opaque scroll
#

uhh what

junior flame
#

But sorry if I come across as rude, didn't mean to

uneven thunder
#

@radiant mango

#

This glitch is from 1.20.81

sinful stump
faint cosmos
flint cypress
#

That's not a function. It's just a property for that that allows treasure enchantments to be rolled.

wispy rapids
sinful stump
#

Editor mode

wispy rapids
#

aaaah okay

signal scarab
sinful stump
signal scarab
#

Whyyyy!

sinful stump
opaque remnant
#

We can still sacarfice Thomas for more features in next preview

opaque scroll
#

wait, the mace is AoE??

#

like it blows stuff back that's nearby the entity hit

sinful stump
opaque scroll
#

ye

#

sadly

#

it's already OP still without the AoE damage

little storm
#

Not sure if this has been mentioned, but I just saw it. "Harcore mode" coming soon.

opaque scroll
#

ye, it was mentioned

sinful stump
#

Cant believe theyre abandoning hardcore mode in favour of harcore

opaque scroll
#

lmao

#

I didn't even realise it said "harcore" xD

#

And I thought you said "hardcode mode"

#

๐Ÿ˜‚

little storm
opaque remnant
#

Java peeps always said they would never add harcore mode to bedrock!

little storm
#

No one thought they would ever add harcore

opaque remnant
finite kernel
little storm
agile verge
#

You must fall 83 blocks to one tap the warden with the new mace with a crit

#

Useless shit but I'll still find it out lol

wicked grail
#

pvp is going to change to just people launching themselves into the sky to try and jump on you

#

I'm guessing shield will still block it at least

opaque scroll
#

ye lol

little storm
opaque scroll
#

on java they can use offhand for the charge

flint cypress
#

@primal lake, thoughts on #announcements message?

little storm
agile verge
#

Will we ever see Java 1.9 combat come to bedrock?

little storm
sinful stump
#

We will see combat v3

wicked grail
#

wolf

signal scarab
#

It's cute and that is all that matters

cerulean marlin
#

soo uhh

#

what i miss

#

(what does reflections look like)

primal lake
# flint cypress <@562417767970766860>, thoughts on https://discord.com/channels/5236630220533924...

Thank you for asking.

They've been telling us it was coming so I've only been doing entity stuff. I don't use any of those.

As long as they don't remove Entity stuff I'm find. IMO Blocks and items have already been "dump" objects

My biggest block request was let us use the water blockshape on/with custom blocks. It's the most powerful and amazing blockshape there is and with 2 minor changes to how it culls to custom blocks it would really make alot of vanilla and custom blocks epic. I use it now for sand, gravel and other "soft" material blocks, but it has some light leaking and culling issues with custom blocks that need fixed.

I can do everything I want to from the BP/RP side it just harder to do but with the added entity properties and query scoreboard it easier today than it was last week.

No reason to hold you all back because of my stupid old ass. Enjoy your JS, make wonderful things with it. Maybe someone will make a bridgev3 that does it all.

Or maybe I'll go back to mainly UE5 as JS takes over. Who knows.

I'm just happy I get to make games today.

long scaffold
primal lake
#

I had been waiting for 3-4 years for custom blocks to do connected textures. But after I saw block events were going to work. I just sat down and worked it out from the BP/AC player point of view and commands. I can push this out 80+block so 99% of the time the player doesn't even see it converting in real time.

This also shows the water blockshape in the mud. Notice it's not squared and instead meets the water, I know this break minecraft but I like it alot more. https://youtu.be/yBk3RdNEW2A

Presented by CyberAxe of www.OutLandishlyCrafted.com

Tip and Support Welcome, it takes hordes of hours to provide free support.
HTTP://www.OutLandishlyCrafted.com

#minecraft, #bedrock, #mcpe, #indiegamedev, #blockbench, #animations, #portals, #prototype #live

โ–ถ Play video
#

I also worked out.
Block doors, keys, multi-blockdoors
Sitting on blocks, block animations
Trigger Block "fake" events and many others just from the BP side. I have guides for most those.
So I think there are still 2 clear paths BP/RP and JS... Im not sure the powers that be are happy about that. But is what it is.

primal lake
flint cypress
#

I feel weird. I was doing JS long before it was reborn on Bedrock. I love Molang. I kinda just wish they had gotten that right the first time around.

signal scarab
#

I think molang has a big place on the RP still! Script on server (with molang), molang on client vibes

long scaffold
#

Deprecate molang when client scripting comes ๐Ÿ˜›

flint cypress
#

Also, we need client scripting just because.

cerulean marlin
#

anyway

#

iโ€™m making my own pbr pack soon

#

๐Ÿ‘€

#

spaghetti pbr

#

or nostalgia pbr

#

or big eddy pbr

primal lake
#

Yes, that would have been nice. However, it's so hard to have a child (Bedrock) this new game out there. You really have no idea how it will do in the world as it grows up and interacts with people. So looking at what was java, and what was C++ games.

There just doesn't seem like an easy logical middle compromise. So I understand json basics and lets just get it out there and see how it does.

But since it's done so very very well now that looks like a silly idea. But if it would have failed like a few other titles we wont name. I think it would have looked like a good business choice.

I think ever developer/studio/producer is struggling with this choice. So I don't fault them at all. It's an impossible choice to make and win at. Might as well go to Vegas and put it on a table.

I commend them for sticking with it and focusing on the creators. Most AAA game studios don't get that the creators are what keep the games alive for decades.

signal scarab
# flint cypress World gen

I wonder if with custom world gen client side chunk generation would get disabled. A client might not know how to generate custom biomes? ๐Ÿค”

flint cypress
#

They don't disable it with features. And you can put structures in the resource pack to have them compatible with client-side chunk generation.

#

So I don't think so?

sinful stump
flint cypress
#

Nothing is. I don't think I've seen a single product on the Marketplace that used features or feature rules.

signal scarab
#

This fix might lead to it would be disabled? Or at least if we had biomes today

sinful stump
flint cypress
#

We are allowed toโ€ฆ

sinful stump
#

I should probably ask my marketplace owner for further clarification...but i dont think we're gonna do add-ons

signal scarab
#

If it's stable its fair game!

sinful stump
#

#1214988608654540850 message yeah just the part "mess with world gen"

signal scarab
#

Oh you didn't mention Add-Ons

sinful stump
#

Ig that refers to vanilla. Ig also @hearty wind comment from a while back threw me off

flint cypress
#

Yeah, only random seed worlds can use features and feature rules.

sinful stump
sinful stump
signal scarab
#

Don't generate that many chunks?

flint cypress
#

God, if not even Sean remembered dynamic worldsโ€ฆ that's not good.

#

No wonder those didn't take off.

signal scarab
#

Dynamic world makes sense though

sinful stump
#

Its just not ad avdertised

flint cypress
#

I guess the blatant failure of documentation for world-gen doesn't help. Nor does not including features or feature rules in the vanilla assets repo. Nor does the small creator community for such. Nor does not having biomes working yetโ€ฆ

I'm hoping it'll take off in the future.

#

I think the last one is the biggest for a lot of people. Biomes are great, and I think people will see how great features areโ€ฆ but only once we get biomes.

sinful stump
#

No offense to kayla she did an amazing job trying to push dynamic worlds but after that i barely saw any mentions of it anymore?

drifting imp
#

Isn't having some sort of a map a requirement for marketplace? How does that affect dynamic worlds

flint cypress
#

I donโ€™t think there are enough world-gen pros to do anything with it. Non-world-gen kinda worked, though. I know some studios that did something with that. But most of those endeavors are now best served with add-ons.

drifting imp
#

Ah

primal lake
#

Personally I feel Minecraft, No Man's Skies and many other dynamically gen'ed games struggle from the same issues. 2% of no man's skies has been explored but we've already seen everything interesting to see.

Biomes are great but if you have 20 biomes and just repeat them over and over, you still only have 20 biomes. I think where marketplace does well is meeting in the middle in some cases.

The best marketplace map IMO is a normal seed with a custom build themed area in the middle. I think a 50% hybrid of dynamic generation with 50% hand crafted is key to an immersive story and long term engagement.

Sadly there are warehouse partners whose goals seem to be, to get the player in and out of their addon as fast as they can to keep sales going. Instead of building quality long term customer relationships. We see the opposite with the mobile microtransaction scum.

If marketplace paid by both player engagement and playtime and upfront sales instead of only upfront sales I think things would change.

fringe bluff
# flint cypress No map for those

yeah, Dynamic Worlds are essentially Map Templates, without world data. So any seed can be used. But it can only create "New Worlds".

Add-Ons are a different flavor, and can be applied to new or existing worlds. They also have significantly more rules on what they can do to try and prevent collisions and player data loss.

primal lake
#

So will we get access to change Dynamic Worlds template or make our own

primal lake
#

Like could I have a snow only template

#

or space..

fringe bluff
#

We'd need to provide data-driven approaches to control world-gen.

#

(which we want to do, of course)

primal lake
#

Right now I have to start flat, remove everything, then build outward

fringe bluff
#

but like a "space" one... not sure why you'd want a Dynamic World here instead of a normal world template

primal lake
#

sure. totally.

#

Personally. I'd like a template for water only. void only, land only...

sinful stump
#

๐Ÿ˜… Kayla...idk how much influence you have over the social media team... (maybe i can pester LZA instead) ... but a "round up"/recap of what the marketplace has achieved the past year might be great! And helps introduce each category

fringe bluff
#

"Dynamic Worlds" is really just a marketplace thing. Ya'll could already do all this stuff with normal add-ons.

primal lake
#

oh sorry. I missed that. I was thinking worldgen templates

fringe bluff
primal lake
#

Thank you for all the hard work

primal lake
# fringe bluff Lots more social stuff is planned for Marketplace, don't worry about that.

I understand if you can't tell me this if it's under nda.

Is there a limit on pixel depth for marketplace content. Can I submit HD addons for marketplace? I can't tell if my struggles with HD content is because partners don't want to take the risk or if there is a "policy" against it. I know there is alot of distain for HD content in the community and I'm told a lack of interest, yet no one has tried it, so I understand eitherway. I'd love to put my space game and other hybrid HD content on marketplace but have assumed by my interactions with partners its 0% chance. I'm getting close to finishing my space game and have to decide now what.

fringe bluff
#

There is no HDR pipeline in the game currently AFAIK

primal lake
#

I just me HD textures

fringe bluff
#

oh - not sure offhand.

signal scarab
#

What resolution do you mean by HD? Lifeboat has some maps that have high poly high texture size models iirc

primal lake
#

Thats why I'm asking I don't know what the limits are or if there are limits

#

Here is the inside of my space ship. This is on the players head and is the 1st person viewport.

torpid spade
#

There's definitely a max size for the atlas.

primal lake
torpid spade
#

It's probably different per platform too. Like I don't expect a Switch to have the same GPU capabilities as a desktop PC.

primal lake
torpid spade
#

I've also heard it's possible to be graylisted on the Marketplace. However, I'm not sure if that's only related to performance.

primal lake
#

I'm not sure what we can talk about related to that. but my focus is not mobile. I'd really like to provide some content for everyone else not mobile I feel is under served. The rest of us shouldn't be held down because of those platforms. We should have options for mid/higherend devices too IMO. If I have to self publish I'd only hit PC anyways.

primal lake
# torpid spade I've also heard it's possible to be graylisted on the Marketplace. However, I'm ...

I'm excited to see how well it will do on lowerend devices though. I've been really working hard to keep the particles and load low. Other than having to tick stuff map wide for the particle to play I think it will do well. Since most of the map is open space the block count total map wide is extreme low. In testing on highend I can have hundreds to thousands of fighters and pirates entities all attacking each other at once with out alot of issues. Bedrock as an engine is AAA IMO. with a finished lighting system be it RTX or deferred it will be epic.

fallen spoke
#

harcore mode

sinful stump
#

Oh....something is very wrong with the full block geo or the material instances in this preview

signal scarab
sinful stump
# signal scarab How so?
"minecraft:material_instances": {
                "*": {
                    "texture": "sculk"
                }
            },
            "minecraft:geometry": {
                "identifier": "minecraft:geometry.full_block"
            },
``` this...is what you're seeing in the video....it's supposed to be a sculk texture...but it ins't
sinful stump
#

Also steam is like....downloading a game for me rn so i cant record the other two components yet

signal scarab
sinful stump
#

Smh...looks like thomas has to walk the plank after all...the gods are obviously not pleased

signal scarab
#

Please not the plank ๐Ÿ˜ญ

sinful stump
#

takenotes definitely gonna mess around before i make a yt video on the technical changes in 1.20.80.22 if i bother making one lol

signal scarab
#

"Don't leave me"

#

I'm so excited by block components

sinful stump
fringe bluff
#

Tick tock: Step off!

tired trellis
#

daamn, didn't expect the beta to be this late

#

and yes i still called it beta
just a 3-4 hours gap after i slept and woke up

#

also yeah btw, the resource packs tab in the create world screen still crashes @sullen lotus

sullen lotus
#

eh maybe i might try beta to see if it gonna crash for me or what

worn grove
#

i don't think that's gonna work
Or it is ?

worn grove
#

The block was so loyal even it start talkin when you leave it ๐Ÿ˜”

tired trellis
#

They added grid support for mobile?!

#

this wasn't possible before.

#

it was only lists

#

you can only change the grid - list and vice versa after turning the GUI scale from 0 to -1 then switch it again and boom.

cobalt coral
tired trellis
#

since I didn't try messing with GUI sizes since just a bit

faint cosmos
winged cedar
#

If you didnt know, mace breaks all blocks 1.5 times faster on bedorck

rigid cobalt
#

I found a gameplay bug which is quite broken. If you collect a decorated pot which has loot tables with the fist, u get the decorated pot and the loot table.

However, if you put the decorated pot again and break it again with the fist, it will give another item from that loot table. And that goes infinitely, so infinite loot

sinful stump
#

@compact epoch

eventData.blockTypeRegistry.registerCustomComponent(
        'adk-lib:on_random_tick_say_hi',
        {
            onRandomTick: (componentData) => {
                componentData.dimension.runCommand(
                    `say Tick tock! from ${componentData.block.typeId} at ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z}`
                );
            }
        }
    );
compact epoch
#

oh

#

so ${componentData.block.typeId} is the trick?

#

and dimension

wicked grail
#

does onRandomTick not let you define the randomness?

compact epoch
#

uhh preview is crashing kinda too often

sinful stump
compact epoch
#

setblock <block_pos> grass

wicked grail
#

As in how random is it, what if I want the random tick to only go off 1/100 ticks at random vs 1/1000

sinful stump
wicked grail
#

well then there's no point in doing onRandomTick

obsidian nexus
wicked grail
#

because that just adds an extra layer of unknown randomness

sinful stump
#

Xorkent beat me to it

compact epoch
#

That's exactly what im doing

#

is not working

#

let me see if my packs got cached

sinful stump
obsidian nexus
#

Though ideally youโ€™d want to isolate the block into its own const to minimize calls to component data

wicked grail
#

I want to be able to define how random the tick is lol

#

IT doesn't make sense to me for there to be a randomTick component we can define, without being able to define the randomness of it

sinful stump
#

So basically you want queued ticking then

wicked grail
#

I mean that's what I'll have to use to create an actual randomTick component

#

because you can't define the randomTick range

sinful stump
#

So then you just have to wait for the upcoming previews

wicked grail
#

So how random is onRandomTick then

compact epoch
#
eventData.blockTypeRegistry.registerCustomComponent(initEvent => {
    initEvent.blockTypeRegistry.registerCustomComponent('kai:hello_world', {
        onStepOn: e => {
            componentData.dimension.runCommand('setblock ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z} grass');
        }
    });
});
#

is this good

sinful stump
wicked grail
#

and how random was that

sinful stump
sinful stump
#
Minecraft Wiki

Nearly all video games (including Minecraft) are driven by one big program loop. Just as every gear in a clock is synchronized with the pendulum, every task involved in advancing a game simulation is synchronized with the game loop. Appropriately, one cycle of the game loop is called a tick.

wicked grail
#

Seems useless then

compact epoch
sinful stump
wicked grail
#

Not knowing how random it actually is is the issue

sinful stump
#

Random tick is used for grass/fire spreading/decay. Crops growing, etc

compact epoch
sinful stump
wicked grail
#

What is that randomness ๐Ÿ—ฟ

sinful stump
#

A game tick is where Minecraft's game loop runs once. The game normally runs at a fixed rate of 20 ticks per second, so one tick happens every 0.05 seconds (50 milliseconds or 1/20 seconds), making an in-game day last exactly 24 000 ticks (20 minutes). However, if the computer is unable to keep up with this speed, there are fewer game ticks per second (TPS). As the vast majority of actions are timed based on tick count rather than on wall clock time, this means that many things take longer on a slower computer.

compact epoch
#

that's why you have 3 weeks delay zack

wicked grail
#

I know what a tick is

sinful stump
#

๐Ÿ—ฟ

compact epoch
#
import { world } from "@minecraft/server";
eventData.blockTypeRegistry.registerCustomComponent(initEvent => {
    initEvent.blockTypeRegistry.registerCustomComponent('kai:hello_world', {
        onStepOn: e => {
            e.dimension.runCommand('setblock ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z} grass');
        }
    });
});

not working

sinful stump
#
import { world } from '@minecraft/server';
world.beforeEvents.worldInitialize.subscribe((eventData) => {
    eventData.blockTypeRegistry.registerCustomComponent('adk-lib:on_step_on_say_hi', {
        onStepOn: (componentData) => {
            componentData.dimension.runCommand(`say Hi from ${componentData.block.typeId} at ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z}`);
        }
    });
    eventData.blockTypeRegistry.registerCustomComponent('adk-lib:on_step_off_say_hi', {
        onStepOff: (componentData) => {
            componentData.dimension.runCommand(`say D: don't leave me!!! from ${componentData.block.typeId} at ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z}`);
        }
    });
    eventData.blockTypeRegistry.registerCustomComponent('adk-lib:on_random_tick_say_hi', {
        onRandomTick: (componentData) => {
            componentData.dimension.runCommand(`say Tick tock! from ${componentData.block.typeId} at ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z}`);
        }
    });
});
wicked grail
#

you sure that 3 week delay was for me>?

compact epoch
#

oh i forgot

compact epoch
#

im sure

#

So like this?

world.beforeEvents.worldInitialize.subscribe(eventData => {
    eventData.blockTypeRegistry.registerCustomComponent('kai:hello_world', {
        onStepOn: e => {
            e.dimension.runCommand('setblock ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z} grass');
        }
    });
});
compact epoch
#

pfft im not reading

amber field
#

You are using a string literal. These are represented by double quotes or single quotesโ€”"" or ''. You need to use a template literal, which is represented using accent marksโ€”``

sinful stump
#

OH i didnt even notice that as well

compact epoch
#

are the commas needed if so, then?

#

no right?

sinful stump
compact epoch
#

yay is working

#

I can't believe im writing ts

amber field
#

Although you probably want to use an API method to place the block instead of running a command

compact epoch
#

What if I want to change from state 0 to 1 of that same block

#

that command was the clearest example of what i needed

amber field
#

Even more reason to use an API method. It should have a way to change block states, lemme look real quick

#

Yea a command is the most straightforward, but comes with limitations of its own

compact epoch
#

Also how do you "look for what you need" when it comes to scripting

sinful stump
#

I think command is an easy entry for kaoiga since hes never done scripting

amber field
#

I do the latter personally, the web docs are more annoying to navigate

compact epoch
#

yeah... asked because the docs are confusing

#

imo

opaque scroll
#

agreed

compact epoch
#

also just a quick update, you can't still send a redstone signal with scripting right?

compact epoch
amber field
#

Actually how do you set a block at another location

#

Can't seem to figure out how I change a block ID, I see it's stored in a BlockPermutation, but I cannot edit the properties of the block's permutation, or use the new constructor on the BlockPermutation class

#

Oh, I'm overthinking it. There's a Block.prototype.setType() method

amber field
# compact epoch This is what I have, by the way

Sometimes the API has native methods that are really easy and straightforward to use. Here setting the block ID on itself could not be more straight forward:

import { world } from '@minecraft/server';

world.beforeEvents.worldInitialize.subscribe((eventData) => {
  eventData.blockTypeRegistry.registerCustomComponent('kai:hello_world', {
    onStepOn(e) {
      // This
      e.block.setType('grass')
      // vs
      e.dimension.runCommand(
        `setblock ${e.block.x} ${e.block.y} ${e.block.z} grass`
      );
    }
  });
});
compact epoch
#

Oh cool you can do ${e.block.y+1} too, looks useful

amber field
#

And if you want the block adjacent to the event's block, you could use e.block.above(1)?.setType('grass')

compact epoch
#

But when you say "straightforward", does that means it is faster or just more compacted?

amber field
#

A little of both, but primarily with a focus on "easier to read."

#

Past readability, it also uses a method native to the API instead of having to run a command. Commands are not particularly fast and can slow down script execution, especially if used synchronously like this

#

So in that sense, it is more "straightforward" by using the simpler, intended solution instead of making one up on your own

compact epoch
#

I see

amber field
compact epoch
#

Sounds good, thank you very much

#

can setType do custom blocks as well?

amber field
#

I believe so

compact epoch
#

And is the namespace not needed?

amber field
#

I'd expect Minecraft to assume no namespace to be "minecraft:"

#

Looks like there is a static method on Blockpermutation to create a permutation, neat.
So here's the thing to understand about blocks in scripting. You have a Block class, which represents the location in the world (and type ID), then you have a BlockPermutation, which represents information about the block at that location (including block states). When we want to change the block state, we apparently need to create a new permutation from scratch, like so. Be sure to import both world and BlockPermutation at the top:

onStepOn(e) {
  e.block.setPermutation(
    BlockPermutation.resolve(e.block.typeId, { my_state: 1 })
  );
}

You can assign other states in the object there, at { my_state: 1 }

#

I should probably test to see if this works

compact epoch
#

So this means we don't have to define that permutation in the server block.json file, in the permutations field?

amber field
#

You likely still do, scripting can only safely assign states/permutations the game knows about after all

compact epoch
#

Hm, okay, interesting

#

Yup, that is working, neat!

#

It is very compacted in comparison to commands

amber field
# compact epoch What if I want to change from state 0 to 1 of that same block

Now if you have multiple block states and they should be preserved, you need to include the old values when resolving a new BlockPermutation. JavaScript has convenient syntax for doing this:

/*1*/  onStepOn(e) {
/*2*/    e.block.setPermutation(
/*3*/      BlockPermutation.resolve(e.block.typeId, {
/*4*/        ...e.block.permutation.getAllStates(),
/*5*/        'custom:bit_1': !e.block.permutation.getState('custom:bit_1')
/*6*/      })
/*7*/    );
/*8*/    console.warn(JSON.stringify(e.block.permutation.getAllStates()));
/*9*/  }

On line 4 we are using the getAllStates() method to obtain the states from before. This returns an object much like the one in my previous example. Then we use the spread syntax ... to add all of its properties to the current object (that we are building).
On line 5 we specify the property we want to set. Here I am simply toggling the bit_1 value on and off by obtaining the old value and grabbing the inverse of it.

#

So in my pack I have three boolean states: "custom:bit_1", "custom:bit_2", and "custom:bit_3"
e.block.permutation.getAllStates() may return something like { 'custom:bit_1': false, 'custom:bit_2: true, 'custom:bit_3': false }
Then by combining that object's properties with the expression on line 5, I get { 'custom:bit_1': true, 'custom:bit_2: true, 'custom:bit_3': false }, still preserving the value of "custom:bit_2"

#

It's stuff like that that makes scripting complicated, since you need to be very precise about what you are changing, and to be aware of what exactly the API calls you make are returning.

tired trellis
amber field
compact epoch
#

I see, I understand this

#

Is interesting how specific we must be for something as simple, Iโ€™m not sure whatโ€™s my opinion on it yet

#

This works perfectly:

import { world, BlockPermutation } from '@minecraft/server';

world.beforeEvents.worldInitialize.subscribe((eventData) => {
  eventData.blockTypeRegistry.registerCustomComponent('kai:hello_world', {
    onStepOn(e) {
      e.block.setPermutation(
        BlockPermutation.resolve(e.block.typeId, {
          ...e.block.permutation.getAllStates(),
          'kai:collision': !e.block.permutation.getState('kai:collision')
        })
      );
      console.warn(JSON.stringify(e.block.permutation.getAllStates()));
    }
  });
});
amber field
#

Scripting is more robust than the old JSON system. With that power comes greater responsibility

#

(I do miss the old block events though)

compact epoch
#

Agreed, yup

candid monolith
signal scarab
tough elm
#

does anyone have a good tutorial on how custom components work for the preview?

candid monolith
tough elm
#

im curious tho, it seems like someone could make a library of classes i could just use for each event for blocks or items i can use for custom components

signal scarab
sinful stump
candid monolith
solid thistle
candid monolith
#

tbh. I don't know what a project root is. It's a minecraft world

grand elbow
#

the new starter has the lint rule, vanilla-data, and math all built in now too ๐Ÿ™‚

tough elm
signal scarab
#

The lint rule checks to see if you are using a command that has a native api already ie if you do runcommand("/setblock") it will suggest you use the native api instead

#

Why is the scripting starter git in the microsoft github org but the libraries, samples, and editor starter kit are in mojang thonk

signal scarab
grand elbow
grand elbow
#

it's a minor nuance though, but if you do run into problems with that specific set up, feel free to post an issue up

grand elbow
signal scarab
signal scarab
tough elm
#

I guess it's a matter of getting docs updated

#

That's gonna be very helpful, and amazing with the changes coming

solid thistle
grand elbow
#

it does need bundling to use. The documentation for the typescript starter is going to be updated really soon with the new starter stuff

wicked grail
#

hm... I have a problem, not sure if it's something that is intentional or not with onStepOff

#

It looks like the boundary for onStepOff isn't the entire block?

#
customEvent.blockTypeRegistry.registerCustomComponent('runecraft:cure', {
        onStepOn: (eventData) => {
            const entity = eventData.entity;
            entity.__onEffectBlock = 1;
            const cureInterval = system.runInterval(() => {

                if(entity.__onEffectBlock == 0) {
                    system.clearRun(cureInterval);
                } 
                
                entity.removeEffect('darkness');
                entity.removeEffect('mining_fatigue');
                entity.removeEffect('blindness');
                entity.removeEffect('bad_omen');
                entity.removeEffect('nausea');
                entity.removeEffect('poison');
                entity.removeEffect('slowness');
                entity.removeEffect('weakness');
                entity.removeEffect('wither');
            }, 0)
        },
        onStepOff: (eventData) => {
            const entity = eventData.entity;

                if(entity.dimension.getBlock({ x: entity.location.x, y: (entity.location.y) - 1, z: entity.location.z }).typeId != eventData.block.typeId) {
                    world.sendMessage(`You have stepped off the ${eventData.block.typeId}. Now standing on: ${entity.dimension.getBlock({ x: entity.location.x, y: (entity.location.y) - 1, z: entity.location.z }).typeId}`)
                    entity.__onEffectBlock = 0;
                } 

        },```
#

this issue only exists at the boundary between two solid blocks

wicked grail
#

I cooked too much

#

ended up cooking my brain

#

the boundary part is still true though

tired trellis
#

Didn't notice the new search for players screen. Recommended players feature gives the ability to connect with more players.

sullen lotus
#

i guess this is more of adding xbox friends.

#

would be more useful if it allows the user to directly join the friend world with it

tired trellis
sullen lotus
#

once someone adds you even without you knowing them, they'll able to join your world regardless.

#

this happened to me everyday.

tired trellis
#

bruh

sullen lotus
#

even i add someone who literally doesn't knows me or read my username, i still can join their world

#

don't know why but this is really flawed.

#

unless you turn multiplayer off entirely

sinful stump
#

Cool...

#

Wow...

#

Damn

#
export class effect extends onStepOn {
    onStepOn(componentData: BlockComponentStepOnEvent) {
        componentData.entity.addEffect('speed', 200, {
            showParticles: false,
            amplifier: 2
        });
    }
}
``` if you export your custom component registration and import it into the main.js file you cant reload
lament moon
sinful stump
#

Too bad impulse doesnt work on players

faint cosmos
#

applyKnockback :3

sinful stump
#

Why are they two different things? (Question is for above not for video)

#

Oh boo...knocback works for all entities except item entities....impulse works on all entities except players

faint cosmos
#

Which is why itโ€™s disabled for players

sinful stump
#

:/ and i assume the same reason for item entities for knockback then

faint cosmos
#

Probably

umbral trail
sinful stump
#

one thing Im confused on is Thinkdricks directionX: number, directionZ: number, horizontalStrength: number bc all that really matters is the strength and the numbers are just for direction. What's the formula for it? like 1, 1, 1 makes it weak but 1,1,10 makes it strong. If i do 10,10,1 i just go 3 diagonally

lament moon
#

Direction doesn't affect the strength. Final strength is computed as vertical*vec3(0, 1, 0) + horizontal*normalize(vec3(x, 0, z)). Normalization part makes it so that direction is a vector of length 1 so it doesn't affect the kb strength but only defines horizontal direction

sinful stump
#

I see

balmy lodge
#

Poopmutation

sinful stump
#

It's the ancient debris texture

#

But something is wrong with geometry.full_block

compact epoch
sinful stump
compact epoch
#

So far Iโ€™m only doing stuff with onstep

sinful stump
compact epoch
#

Leave and rejoin

#

And see if it stops

long scaffold
#

Does grass stop growing when you leave and rejoin?

compact epoch
#

I mean, it was an issue present with minecraft:random_ticking so Iโ€™m seeing if they fixed it lol

#

But no it doesnโ€™t stops in grass

drifting imp
#

^

compact epoch
sinful stump
#

Skill...issue

compact epoch
sinful stump
wicked grail
#
customEvent.blockTypeRegistry.registerCustomComponent('runecraft:leap', {
        onStepOn: (eventData) => {
            eventData.entity?.applyKnockback(eventData.entity.getViewDirection().x, eventData.entity.getViewDirection().z, 3, eventData.entity.getViewDirection().y * 1.5);
        }
    })```
#

oh

midnight wyvern
#

i wish these components were for vanilla blocks as well

wicked grail
#

I guess I need to use applyImpulse

#

for non players

midnight wyvern
wicked grail
#

yeah

#

but I want it to work on everything

midnight wyvern
#

applyKnockback works for most of entities

#

only items or xp orbs doesn't supports knockback

#

but all "mobs" does

wicked grail
#

yeah, applyImpulse I would need to just use it's current velocity

#

honestly, anything other htan players I should be using velocity

#

I don't think mobs have a view direction?

compact epoch
#

Chad is on our chat

wicked grail
#

weird, are wind charges supposed to be considered range damage? I feel like magic makes more sense

compact epoch
#

Is the launch pad from fortnite

wicked grail
#

It's not meant to be

midnight wyvern
#

entities does have view vector

#

but idk about items

#

and projectiles

#

ya projectiles does

#

but not sure about items

compact epoch
#

Pretty sure they donโ€™t, unless they save their owners vector

midnight wyvern
#

but i think they also hove view_direction,

wicked grail
#

still trying to figure out how to do constantly effect application while keeping track of the player effectively

#

think this will be better for a ticking component when we get that though

midnight wyvern
#

you should just apply Y knockback

#

you dont need other axis changing

wicked grail
#

I'm not

#

the only thing being applyed is y knockback

compact epoch
#

You have to change that to on_fall_on when it comes

wicked grail
#

wdym

midnight wyvern
wicked grail
#

why would I do that lol

compact epoch
#

I mean activate your code when on_fall_on

#

Is more logical that just stepping on it

#

Like fortnite launch pads or slime blocks

wicked grail
#

no, it's intended use is to mimic my custom potions

#

I have a leap potion that does the same effect, players will be able to use them on sponges to make the sponges apply their effect to entities on top of them

compact epoch
#

Ohh

#

Okay

#

Feedback; include so when you break the sponge it leaves an area of the potion effect for some seconds

wicked grail
#

nope

compact epoch
#

๐Ÿ˜”

sinful stump
wicked grail
#

because I want it to go in the direction the player is looking

#

I kinda just copy pasted my potion effect knockback over

#

but I can kinda see why it should function differently if it's on a block

wicked grail
#

I could use view direction for the Y, but it just looks unintuitive if it isn't going in the direction the player is looking imo

sinful stump
wicked grail
#

This just looks janky and uncontrollable

sinful stump
#

Oh well lol normal people would be running towards the jump pad

long scaffold
# wicked grail

You didn't add any vertical knockback. And you need to adjust the horizontal knockback too

wicked grail
#

Idk, my intended use is for it to go in the players view direction

#

player velocity looks unintuitive

long scaffold
#

How do you use slime blocks?

wicked grail
#

counterpoint:These aren't slime blocks

long scaffold
#

Counter-counter point: A player would assume you'd be going in the direction you were going before like a slime block

wicked grail
#

Counter-counter-counter point:A player would reasonably learn that you go in the direction you are looking after 1 use

#

especially considering that is how the potion functions

long scaffold
#

Right, you have your own potion

#

Ok then

sinful stump
faint cosmos
#

I canโ€™t wait for parameters

compact epoch
opaque remnant
#

Parameters would be bitchin

sinful stump
sinful stump
compact epoch
sinful stump
flint cypress
sinful stump
#

That works for Vanilla...but custom plants with custom growth stages? No

flint cypress
#

You do want players to have the freedom to use their own property names, right?

#

Iโ€™m just sayingโ€ฆ

sinful stump
#

stev regex when /s

compact epoch
#

Like they did with what components are getting its scripting version

#

But oh well

#

A good โ€œtemplateโ€ for a custom component for a plant would be random ticking that changes from state 1 to 2, from 2 to 3, from 3 to 4.

#

Ping me when you make that

#

It sounds like you will do it lol

cerulean marlin
#

soon..

drifting imp
sinful stump
#

Unless they literally hardcode the functions but give us params

#

Wait.... depressed please no kayla

drifting imp
#

Yeah that's what I was thinking would happen

#

Or they just don't make those parts data driven

#

Like instead of adding a custom component for durability loss to the tools, they just make the rest of it data driven and let creators figure how they want to handle the durability loss

sinful stump
#

Durability still should be a component thing...there's damage change for a reason

drifting imp
#

You mean the durability decreasing automatically being a component? Or the current component we have

sinful stump
drifting imp
#

I think that's only taken into account for armor

flint cypress
#

Tangentially, it doesn't get talked about enough just how weird custom item durability loss is with vanilla components.

#

What would you want, @sinful stump? Customizable classes for custom components? Custom events/named entries on the object?

wicked grail
#

Did you know that giving a min chance of 0 for damage on durability does nothing

#

It still takes durability damage ๐Ÿ˜”

sinful stump
#

๐Ÿ˜… My current implementation isnt the best

class onStepOff implements BlockCustomComponent {
    constructor() {
        this.onStepOff = this.onStepOff.bind(this);
    }
    onStepOff(_componentData: BlockComponentStepOffEvent) {}
}

export class sayHi extends onStepOff {
    onStepOff(componentData: BlockComponentStepOffEvent) {
        componentData.dimension.runCommand(
            `say D: don't leave me!!! from ${componentData.block.typeId} at ${componentData.block.x}, ${componentData.block.y}, ${componentData.block.z}`
        );
    }
}
``` but if we had something like this for vanilla events that would be great
drifting imp
#

Why is everything it's own class

wicked grail
#

this looks like too much work

sinful stump
sinful stump
#

Its probably not the ideal but it does help me organize

#

inb4 cici rants about how i just comitted a war crime atrocity or something

sinful stump
#

Good to know...if it overflows it goes back to the default ๐Ÿ˜„

long scaffold
sinful stump
#

Yeah

#

There's no way to know all the vallues from a block state though Thinkdricks

#

Ignore above

#

Hmmm nvm

#

Nvm

#

Let's see if this owrks!

#

letsFuckingGOOOO IT WORKS

#

RAHHH

compact epoch
#

What does

sinful stump
#

@compact epoch do you have a plant block v1.20.60 i could borrow? Preferabbly that changes model

compact epoch
#

Yea

#

One sec, lemme get to my pc

#

With model you mean bones or literally model

#

Because I have both

sinful stump
#

eyes_wasntme Which ever one uses bone visibility

compact epoch
#

Okay first one then

#

I will make a quick new geo because I didn't made the geo

#

or u just need the code

sinful stump
#

Both would be preferrable

compact epoch
#

let me see if it works with this new geoโ€ฆ

#

@sinful stump ๐Ÿ‘†

sinful stump
compact epoch
#

Nice!

wicked grail
sinful stump
balmy lodge
# wicked grail meanwhile

I am interested to know how you pulled the "Intentional Game Design" kill, or does that automatically happen (as it is only possible to do that with beds afaik)

signal scarab
#

That's a nice explosion

wicked grail
#
customEvent.blockTypeRegistry.registerCustomComponent('runecraft:self_destruct', {
        onStepOn: (eventData) => {
            eventData.entity?.dimension.createExplosion(eventData.entity?.location, 3, { allowUnderwater: true, breaksBlocks: true, causesFire: true })
        }
    })```
#

createExplosion is still ridiculous since damage is tied to radius size, but is nearly exponential

#

a radius of 3 one shots players..

wicked grail
#

Loving these components and what I can do with them for blocks

compact epoch
#

I don't understand what you made in that vid

#

you transformed raining to snow?

junior flame
#

๐Ÿ’€

wicked grail
#

I wonder

junior flame
#

if you know

compact epoch
#

that was very smooth if it was because you even moved the camera when stepping on it

compact epoch
#

OHHHH

#

lmao

#

I did not realized

tough elm
tough elm
# wicked grail

Is it always one tick (after), or is there beforeEvent options?

#

Does that make sense? What's the delay

wicked grail
#

it's just using onStepOn

#

I think there is a forced delay though

#

because onStepOn changes a players actor property and runs a permutation to change scale

#

that's why it's not instant

sinful stump
#

Oh wack

#

If two blocks use the same name for block states but have different values then BlockStates.get('kai:growth').validValues will just choose a random state it seems

#

Or...scratch that, not random, just the first block that uses that state determined by the alphabetical of the identifeir

#

This sucks

#

I could use trySetPermutation I guess? But that wont really work for what I want. I really thought you could just get a block's state's valid values using BlockStates

wicked grail
#

oh yeah got another bug ๐Ÿ˜

sinful stump
#

#1067535608660107284 message

wicked grail
#

shameless bump

sinful stump
little turret
#

These scripting methods are actually big. I have a lot of NPCs that do "RTS-style" work (woodcutters, miners, smelters) and they have to "find blocks" in certain volumes. Currently using "flood-fill" TypeScript impl., but these methods are god-send.

#

Now if we can just get the pathfinding API exposed into the JS side...

sinful stump
#

๐Ÿ˜‚ yeah, we joke about navigation scripting api

long scaffold
drifting imp
little turret
#

Ah, so it seems to already be in the JS API then - just not exposed as a stand-alone API.