#Script API General
1 messages · Page 117 of 1
Bedrock is getting a shit load of money from the marketplace and is run by a multi billion dollar company. My experience so far has been bugs unpo bugs and sloppy features implemented all over the place. Not just this API which feels inconsistent, lacking and when new feature come out the solve micro problems badly instead of addressing the general solution not to mention the game itself is full of bug of its own, internals must be full of legacy backwards compat spaghetti yet new updates still manage to break addons in some ways. I could go on. I have a huge list of those I pass to Mojang contacts when I can. Honestly there's no justification for this. Got to voice my opinion on this tbh, working for the marketplace is very frustrating
.
the rest works
nope
?
You can't cancel the hit
This is an afterEvent
The hit has already happened
hm
how else can i do it
Hence the "after"
Cancelling an event is strictly for beforeEvents where you detect before the Event
Not every afterEvent has a beforeEvent equivalent, so you'll need to double check
how am i supposed to do ts
cant do that with script api
Custom PVP system
you can technically rewrite combat from scratch by setting attack component's value to huge negative value in player.json
but ill tell you its gonna be hard
why do you say the api feels inconsistent?
It was inconsistent, but now it's pretty stable.
I think he is referencing to past
if i have to be honest
being very negative about stuff kinda feels like it drags us away further from actually getting good stuff
i feel the same
there could be more interesting things that could be made
i think it would be better in the long run if they focused on the events in general
implement a bunch of events, since the api is event driven
and after so, start implementing other things
Maybe inconsistent is the wrong word I just meant buggy and often opting for heavily specialized solutions for stuff instead of general ones and often lacking basic functionality
Most of things are possible by combining JSON and Script API, what else do you need for example?
is this serious or not?
When you say JSON do you mean the player file
If so, I believe he's a marketplace creator
still doesnt matter much, its no surprise that many things arent doable nicely or at all. take for instance simply getting the weather of the workd. can you do it? sure. is it nice as a simple world call as it should? heck no, you got to track the weather state with events. Thats an easy example. theres many other things that require super slow workarounds or just not possible at all, like the before mentioned properly preventing silk touch drop of a block, or simply making the player properly swing or not the hand. Very inconsisntent there how half the block components events force swing the hand even when they arent used. other half just doesnt
There is already an API method for weather.
Everything in JSON (entities, blocks, etc.)
theres theres a set weather. there isnt a get one. still you can do that with events. not the end off, the world. theres many more examples for obvious things that arent there, like how to prevent a block fron connecting to glas panes or walls? theres no tag for that. or that blocks placed by worldgen features with a tick component DONT get tick when placed. infact the game barely uses tags at all. for entities they use tags + that old entity family system. animal entity family just has goat in thee for some reason and so on.
thats just added
should be beta cant be used yet. still this is besides my point
well, atleast you can try to use it while it's experimental i guess
me and @slow walrus also talked about why getWeather method is still in beta and tried to get answers from mojangsters
While I understand your point and your valid frustrations, you need better examples. As true as what you say is, why would anyone want to stop a glass pane from connecting to other blocks? Just sounds really, really random
i dunno if they replied or not tho...
this just validates my point even more. my experiene so far has been this, stuff just works "good enough" tm. And for most this is enough, thats what sells i guess, fancy visuals and no attention to details. If i add a block for instance i want it to behave exactly like vanilla. Yet many of th features are misisng hooks or tags.stuff that most people won't notice, small interactions like that one but they all add up. latest i found was that whatever you do, if you give a custom block the SAME PBR textures that vanilal use, the look will be just ever so slightly off from the original block.
Another one was that ambient occlusion didnt even work on custom blocks till some time ago.
Franlky what surprises me the most is that peorople are either oblivious that these issues exist or just dont care
Ambient occlusion on custom blocks has always been (and still is) broken, that's what's causing the PBR textures to look different
Still, it exists.
And as you mentioned - there is a still work-around for getting a weather.
thats what i thought too but i dont think the case. I think there are 2 issues at play there as its a lot worse than that and AO you can just see when you place blocks next to eachother, not free standing looking at their top face
yes now tackle the rest of the issues i mentioned
You can reimplement custom walls and glass panes.
Also you can add an entity that will tick a block inside a structure after loading.
Yes but you can't prevent vanilla ones from connecting which is the issue I stated
You don't know where blocks are after they are spawned by a feature. Would be extremely inefficient to manually scan all blocks around like that
In a fixed place. Just spawn with an entity and on load, just execute an action and remove it.
Your point is essentially valid. It's just that the API and everything else can't be perfect. Especially when it comes to features: to have all the capabilities of vanilla things, you'd have to modify Minecraft itself. The rest are just bugs that are supposedly being fixed, although the speed with which they are being fixed clearly does not suit everyone...
So, just ask a specific question, and they will try to help you, if your idea is possible, of course. After all, these are addons, not mods
is onBreak blockComponentRegistry broken? bc when I try to break the block it doesnt return anything
or am I using it wrong?
I recently tested it on version 1.21.120 (beta API), and as far as I remember, it doesn't trigger on piston destruction or placement_filter conditions not being met. It does trigger on water destruction, player-initiated destruction, block replacement (via command or method), and explosions. So, you're probably doing something wrong.
Guys i have interesting questions
I never thinked of
In Minecraft java specifically
Does Blocks plays as placeholders ?
So everyblokc in Minecraft java dosen't have its own instance
but it doesnt work though, I used /setblock on the custom block and it doesnt trigger
But shares one instance? And swap between those instances and their pre defined behaviours
onBreak: ({blockDestructionSource, block, dimension}) => {
console.warn("Breaking big block at " + JSON.stringify(block.location));
console.warn("Block destruction source: " + JSON.stringify(blockDestructionSource.typeId));
dimension.fillBlocks(new BlockVolume(
{x: block.location.x + 2, y: block.location.y - 1, z: block.location.z + 2},
{x: block.location.x - 2, y: block.location.y + 9, z: block.location.z - 1}
), "minecraft:air", {ignoreChunkBoundErrors: true, blockFilter: {includeTypes: ["minecraft:barrier"]}});
},
Are you sure you have added the component to the block and you don't have any errors?
yeah I also have onPlace and that works
thats why I'm confused
I use the older version of custom component maybe thats the issue?
"minecraft:custom_components": [
"ct:big"
],
probably yes
yeah that was the issue. But now I can't change the scale of the block I get an error. Thats the max scale It can use
"scale": [2, 1, 2]
but if I use an older version I can change it up too
"scale": [5, 10, 5]
or more
I changed the version of the block to 1.20.80 and now both works the scale and onBreak event
its not in a fixed place. its a feature. they spawn random. and couldbe many many blocks. you could work around it bug asive said its unrelableand suboptimal. imagine you needthem to tick as soon as they spawn. if you are too many trying to find all of them you might time out script time
anyways tbh idk if that particular one is still an issue, it was some months ago, ive reported it and they mght have said something like they were working on it
What are you talking about? I don't really understand.
you know what a feature is? a worldgen feature. say a random patch of blocks. could be a patch of flowers for instance
which could even be placed far away and scripts can only access stuff really close to the player, no way to get a block at an arbitrary position (say a double block wants to break its connected part ends up being in a connected unloaded chunk). i guess thats another story tho
Your bio mentions that you are a software engineer student. Have you considered putting in an application with Mojang to contribute?
already did. im not the brightest of the bunch by any mean tho so i don't have any hopes there but still gave it a shot for the lols
comes back in 2-3 months...
・ hi guys! i work at mojang now 🤣
1st year Minecraft software dev vs 2nd year
The contrast reminds me of squid game
Installation for @minecraft/server
Latest API module install:
npm i @minecraft/[email protected]
Beta API module install:
npm i @minecraft/[email protected]
Preview API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
Installation for @minecraft/server-ui
Latest API module install:
npm i @minecraft/[email protected]
Beta API module install:
npm i @minecraft/[email protected]
Preview API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
Whats the best way to detect movement of a player? I feel like constantly checking all players positions with a run interval would get laggy.
Can you use /server-net?
That might work
You can listen to a movement packet and get a player that triggers it
Pretty easy, just apply your world with an addon there
I use regolith so itll be a little bit harder
Installation for @minecraft/server-net
Beta API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
I have never used Regolith, lol
Its nice, a little hard to get started but I like it
My friend is making a better one tho
What is the most effective method to simulate rising lava while avoiding chunk boundary errors?
Could do it on a chunk-by-chunk basis. Subdivide your volume into chunks by taking floor(x/16) and floor(z/16), then iterate those chunks and attempt to fill a 16×16 space. Could query if the chunk is loaded beforehand, too
Is it possible for me to disable the /say or /tell commands? Can I change their permission levels? I don't want players to use them.
/tell
This is only possible via a dedicated server.. you can't disable commands on worlds or realms.
Is it possible for me to do this on a regular dedicated server?
Or does it have to be modified like Endstone's?
as?
But I want it specifically for the server.
How do you turn off those commands? Do you know?
<your_server_folder>/config/commands.json --> json { "default_permission_level": "admin", "permission_levels": { "me": "internal" } }
You just add commands into it like "me" is done
That'll stop players from being able to use the command
uau
very nice
Hey friend, where did you see that? Could you send me the document?
This is just the information I have.. Mojang doesn't document stuff like this and it's really annoying
I think someone might have also mentioned something in here before so I'll try and find it
Only other thing is this...
Honestly, I'll never understand why Mojang chooses not to document this stuff
How would I disable them, even for admin?
For example, I want to turn off "/list", would that be possible? lol
It's all there for you..
You would just put "list": "internal"
I added it, and even so I can use that command, but /tell doesn't work.
I was going to replace the /list command with my own custom command, to make the interface prettier.
as????
wdym as?
How did it work for you and not for me? Because I literally did this.
now I have it set to any with list as internal and still list is gone
this screenshot doesn't have "list" in the permission levels
do you have it in the right location? inside your config folder and then commands.json?
@verbal aurora
why is it in the default folder?
I hadn't realized that, thank you very much.
Now that I've removed it, it has removed all my commands.
even with the map admin
yeah I noticed that.. i don't remember admin doing this before
I disable the command and lose all administrator privileges? lol
do you plan on giving anyone op besides yourself?
Yes, but I only want to disable those commands that people without an operator can use.
i see why these permissions aren't documented.. they're shit
There's an extra permission that wasn't displayed
You can also use game_directors which is your "operator" permission level
Just make your file look like this though:
{
"permission_levels": {
"list": "internal"
}
}```
Remove the default part
That'll make everything default and then you can disable the ones you want disabled
Also it seems that the help and ? command are weirdly hardcoded
They will be hidden from the list but can still be used
Were you able to hide them all?
{
"permission_levels": {
"?": "internal",
"help": "internal",
"list": "internal",
"me": "internal",
"say": "internal",
"tell": "internal"
}
}```
You don't need to include "w" or "msg" as they seem to be all part of the "tell" command
It worked perfectly, thank you very much!
I've already achieved what I wanted.
Happy to help, sorry that was such a pain to get working
Again.. if Mojang actually documented stuff like this we wouldn't be having problems like this
Everything's fine, the important thing is that it worked, and I appreciate your attention in helping me.

Use structures
I have no idea but there is a guide
Hey. ¿There's a script that makes a entity fast impulse to a straight direction?
Something like "applyimpulse"
would it be better to use maps or arrays if I wanted to store ids of entities that the player looked at, then clear it when they're not looking at them anymore?
Hashmaps are way better
I see, guess I'll use that then
thanks for the info 👍
I think that you'll use this data structure for multiple players, right?
yep, but the main way I'm using it is to show entity outlines when looking at them with an item
I figured this would be the best way to do it, since I need that property override thingy scripts have
which gives me another question
it's possible to get keys from a map right?
not just value
Map.keys()
Is there any way for me to see when I've started breaking a block?
entityHitBlock
do you happen to know if this is still the case?
Thanks
Hey does anyone know why this won't work?
system.run(() => {
for (const player of world.getAllPlayers()) {
const kit = { x: 5000, y: 4, z: 502, row: 0 }
const items = getKitItems(player, kit, 1)
const inventory = player.getComponent("inventory").container
const slot = inventory.addItem(new ItemStack("minecraft:chest", 1))
const shulkerInv = slot.getComponent("minecraft:inventory").container
items.kit.forEach(i => shulkerInv.addItem(i))
items.armor.forEach(i => shulkerInv.addItem(i))
inventory.setItem(slot, shulker)
}
})
I'm trying to add items to a chest and give it to the player.
You can't get the inventory instead of an inventory 🤷
For some reason they don't exist once they go inside of a container
shulker is not defined to start with
there is other ways to do what you are trying to do
The inventory item component only works for bundles.
setBlock
get inv component
put the items you want
get the block itemStack
Bit silly that it doesn't work for the other containers then if it works for bundles...
I think it's quite literally introduced just for bundles for the first round since it isn't a block item.
Fair
Does anyone know how to do this? I want to add a custom component to a custom item that makes it so that, if the item is used on a dirt block, it transforms that dirt block into a grass block. I tried to use onUseon, but I can't figure out, how to use that returned BlockPermutation to replace the block.
Use the https://stirante.com/script/server/2.3.0/classes/ItemComponentUseOnEvent.html#block instead.
Documentation for @minecraft/server
Oh okay, thank you :)
How do I stop the LocationInUnloadedChunkError error from popping up? I'm using getBlockFromViewDirection and it triggers the error when looking into unloaded chunks
Wrap it in a try/catch block.
this simple though why not make it your self?
Is it possible to prevent the player from changing the selected slot?
Worked amazingly, had to use tiling for areas larger than the structure limit, thank you!
if you only need to store the ids then just use a Set
oh that was a while ago nvm lol
how do i get all block ids again?
Log the type ids by interacting
BeforeEvent block interact
Console.warn(Block.TypeId)
You should be able to understand
BlockTypes.getAll().map(t => t.id);
Thanks i got it earlier
Now the only problem i had is how to only get blocks that is an item, because blocktypes returns other block ids that is not the same as the item id
mc.system.runInterval(() => {
for (const player of mc.world.getPlayers()) {
const riding = player.getComponent("minecraft:riding")?.entityRidingOn;
if (riding) {
const mobData = Mobs.find(mobData => mobData.id === riding.typeId);
if (mobData && !player.hasTag(mobData.tag)) {
console.warn(`2: ${mobData.tag} e ${mobData.item}`);
mc.system.run(() => {
player.addTag(mobData.tag);
155- player.runCommandAsync(`give @s ${mobData.item} 1 0 {"minecraft:keep_on_death":{},"item_lock":{"mode":"lock_in_slot"}}`);
});
}
} else {
for (const mobData of Mobs) {
if (player.hasTag(mobData.tag)) {
console.warn("1");
player.removeTag(mobData.tag);
removeItem(player, mobData.item);
}
}
}
}
}, 5);
[Scripting] [error] -TypeError: not a function <anonymous> at (wg.js:155)
help
runCommand()
Ok
If anyone would like to use vanilla-data without going through the hastle of bundling it, here's both the TypeScript and JavaScript versions for stable.
anyone have an updated item list for aux ids?
half my items are not displaying the correct icon whilst half of them are correct
import * as mc from "@minecraft/server";
mc.world.beforeEvents.entityRemove.subscribe(data => {
const entity = data.removedEntity;
const player = entity.getComponent("projectile")?.owner;
const dim = entity.dimension;
const loc = entity.location;
const test = Projectiles.find(test => test.id === entity.typeId);
if (!test) return;
const particles = test.particlesImpact ?? [];
const others = dim.getEntities({
location: loc,
maxDistance: test.rangeImpact,
excludeTypes: ["minecraft:item", "minecraft:xp_orb"],
excludeFamilies: ["inanimate", "projectile", "attack"]
});
mc.system.run(() => {
for (const part of particles) {
if (!part) continue;
try {
dimension.spawnParticle(part, loc);
} catch (err) {
console.warn("Erro ao spawnar partícula:", err);
}
}
for (const mob of others) {
if (!mob.isValid()) continue;
try {
console.warn('dano');
155- mob.applyDamage(test.damageImpact, { damagingEntity: player, cause: "entityAttack" });
} catch (err) {
console.warn("Error applying damage:", err);
}
}
});
});
export const Projectiles = [
{
id: "dred:fire",
rangeImpact: 5,
damageImpact: 10,
particlesImpact: [
"minecraft:camera_shoot_explosion"
]
}
]
It's not working, it's giving the error "Error applying damage: not a function" on line [number]. 155
tabs... 😢
How do you guys implement dynamic property for an item?
item.setDynamicProperty('id', 'value');
?
they're talking about your code looking like this
so because there's no tabs (the empty spacing) that's why they said it
I have a question, is there a possibility to prevent entity being hurt by a player with some item in hand?
There is no beforeEvents.entityHitEntity and I can't figure it out without manipulating vanilla behaviors
Either modify player.json or modify entity.json... or you could try the weakness effect.
is it possible to modify spawned particles with scripts?
like setting the expiration on a condition
Installation for @minecraft/debug-utilities
Beta API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
The "Show Live Diagnostics" button in the Minecraft debugger still doesn't work, right?
can someone help me? i don't get any logs and I don't really know what I am doing wrong
onPlayerDestroy isn't a thing anymore
use onPlayerBreak
bruh
did u use /reload all?
yeah, I don't even get logs
yeah the same custom component is working
show code again
Debug your code using console.log
On the entityhitentity event is it possible to “cancel” the original damage and replace it with my own, so like if a condition is met I can make a certain weapon do less damage
No.
Would it be possible to apply my own damage the tick of or tick before and since after the hit the mob would have invulnerability blocking the intended game damage?
Would need to be 10 ticks.
Due to iframes.
i found a work-around set my custom weapon damage to 0, then have a script that heals back the vanilla damage, then have my script apply my custom damage
so im trying to take out a model and script from a mod and add it to my addon anyone can help
Indentation
- Don't be that offensive.
- Indentation is very important to your code - it's one of the factors to maintain your codebase readable for others, even you.
If you're too lazy to format files on your own, use libraries like Prettier.
lol
before spawn you can do it though
yeah
wait
can you lay out what you meant?
appear and disappear when player holds out item
the problem is the expiration
I don't think particles can detect accurately when the player stops doing a certain thing
or if they're even able to at all
why not an emitter instead, make an entity and in that entity spawn the particle
yeah that's basically what I did, was also way easier
I see, good job
👍
also it's nice to see you again Felix, what are you working on? if it's fine for you to tell/
things related to furnitures and such
been learning much more scripts as of late
and think I'm starting to understand it now
which means the plan to continue the L4D2 addon continues
other than that I just have been doing nothing other than playing Factorio
fun game but offtopic
wait there's a L4D2 addon? is it on CF?
well I got the tank into an addon on cf
but not the other infecteds yet
wait wrong person
@lilac glacier
oh cool
Do you think obfuscated dynamic property has any effect?
its unique to the world
Alright ty
it's just useless
...why?
dynamic properties are only accessible in the same scripting environment
you cant get DPs from other environments
hi, you know if it’s possible to be able to give permission to a fly player in the idea of the mayfly
You can use Education Edition and use ability command
exist'il a class, an argument to directly modify that
I don't think so
so we need use runCommand
indeed, it’s a good idea I think that I will do this
Would you like to get a sample code?
why not
JS/TS?
TS please
import { Player } from "@minecraft/server"
class PlayerAbilityWrapper {
private player: Player
public constructor(player: Player) {
this.player = player
}
public setMayfly(status: boolean): void {
player.runCommand(`ability @s mayfly ${status}`)
}
}
thanks you
#overtakes!!!!
Player class is so bloaty at this point, that wrapping a single method inside an another class might be a bit better approach in my opinion
i guess, but don't forget that there are apis that has more thasn 45 functions on single classes on Java Edition haha, but yea you right
but in that case i would prefer static method with player as argument so i don't have to create instance every time
or something
¯_(ツ)_/¯
i like how the player is private just in case haha
It could be readonly also, lol
my favorite imaginary modifier
It's easier to scale with a constructor if he would like to add more methods per ability permission
right, always depends on the goal at the end
i wouild use over takes with namespace like object
player.abilities.mayfly = true;
or just method setMayfly
its more explicit
Using a proxy class, right?
Setter, you mean?
getter for abilities property
Oh, I get it
There are some modifiers, lol
"minecraft:damage_sensor": {
"triggers": {
"on_damage": {
"filters": {
"any_of": [
{
"test": "has_tag",
"subject": "self",
"value": "noPvP"
},
{
"test": "has_tag",
"subject": "damager",
"value": "noPvP"
}
]
}
},
"deals_damage": false
}
},``` what would i have to do with these damage sensors to make it so that players can only hit other players that share a a tag
Tag A hits all tag A player nobody else
Tag B hits all tag b players but no tag As. etc
is this possible without script api
would be perfect if VSCode could see them
use typescript
Can u show an example?
I am at bed now so typing it on mobile is really bad, ping me tomorrow or ask @woven loom
but basically use module declaration syntax
Well.. I don't want to switch to TS, so I don't really need it
Can you change the apareance of a NPC with gametest?
nm
can you get existing FOV of a player to use with camera.setFov()?
no
greatly saddening
hopefully getFov() will be a thing
there's the camera API for it but it's just useless rn because I don't know how to modify FOV off of that 😭
?
the setFov method, but it's kinda useless rn imo since you can't get the player's base FOV in the first place to read anything off of it
I wouldnt say its useless
but yeah, it would be better if we could get the current.
that's more of what I was meaning, yeah
You can have type files and still use js. JS diagnostics are running over the ts language server
Anyone know if it's possible to remove an item inside a bundle?
The thing I wanna do is make an item both right clickable and change what it does depending on what's inside of it's bundle functionality
yeah
is there anywhere to find references for doing that?
or a reference in general
nope
bundles has an inventory component
modify the bundle and update it
okay i've gotten far but i've found having only one slot is a problem because right clicking with a bundle drops the items closest to the top
and with only one item available it just throws out what i want it to read
im not sure if there's a way around that or not
you can prevent rightclicking on a bundle
it's alright i fixed it, thanks for the guidance though
anyone available for a bit of testing
i need to test stuff all my friends are in skl and im out of devices
what you need to test?
a system where only players who share a tag can hit eachother
it works for when 1 player is hitting another
but i need to see if 2 players attempting the hit at the same time will block both or let in both
whats your xbl?
no
i aredy sent the request
What's the right way to do this?(Lock mode and Keep on Death)
inv.setItem(player.selectedSlotIndex, new mc.ItemStack("hash:item.2"));
inv.getItem(player.selectedSlotIndex).lockMode = 'slot'
inv.getItem(player.selectedSlotIndex).keepOnDeath = true
you need to make a new ItemStack as a variable and set the stuff from there
const item = new mc.ItemStack("hash:item.2"));
item.lockMode = 'slot'
item.keepOnDeath = true
inv.setItem(player.selectedSlotIndex, item)
anyone know the max reach on bedrock by player hit?
yo max
can i ask u a Q
yo
how do i change a players like nametag
to display a health indicator or a rank of some sort
for example
i know you did it with HCV once
player.nameTag = `hi`
@dawn zealotthanks
np
its pretty good but MC bug stopping me from working on it
yeah
what bug?
script api isnt returning player pfid
so me database no worky
there is
but i dont feel like changing everything
so just waiting for it to be fixed
Oh, thanks
How do I find the index of a slot(Example, slot: 2)?
This returns an [Object object]
const inv = player.getComponent("minecraft:inventory");
const lastSlot = inv.getSlot(player.selectedSlotIndex)
player.sendMessage(lastSlot)
uhm, just
player.sendMessage(player.selectedSlotIndex)```
Ah lol
It was so simple
Tnhk
heya!
so i am facing an issue while trying to use herobrine's chestui
it's the same issue as this one: github.com/Herobrine643928/Chest-UI/issues/27
(couldn't send link because of automod)
anyway, does anyone have a script that can update the typeIDs? python, javascript, anything really
i dont think the link should be automodded?
especially github links
it said i couldn't send links until after i join for 30 mins
btw, do you have any suggestions on this?
and thanks
for posting the link
whatcha mean by updating the typeIDs?
see his pack works by aux ids
which basically translates ids like minecraft:stick to a number
ah i get it now
when minecraft adds new items, etc. it breaks
and so i am asking if there's a more streamlined way of just updating them
oh?
two days ago
np
heya i got another question if you're still online
I'm trying to disable two hoppers being put facing eachother
like
hopper1: -> <- :hopper2
because there is a dupe related to it
i know how to use the playerPlaceBlock event
I'm just not sure how to get the direction of the new block
cuz there isn't a .face property just chilling on it
and also i don't know how to check if they're facing eachother, cuz I'm terrible at math 😭
I think it's called the permutation or state
yea i know
but there isn't a .direction on it, and for good reasons
I'm not sure what state relates to the lateral directions (ones that aren't up/down)
of a block
not sure if they've changed the direction bits around but using commands, facing_direction 2,3,4,5 are the correct directions and then you have to make sure that toggle_bit is true
ah okay thanks
it's 2-3 and 4-5 that connect
👍
epic lol
only one direction done 😭
i've never actually messed with permutations lol
Is there a way to get the spawn or any ticking area coordinates?
In the pack I am making, I want to turn it off if any entities files are broken/missing. I have that down, but it relies on the dim/loc of that first player. So for local and realms it may work, but servers do not need a player on...
Any suggestions, before I just consider no players as validation and if it's broken, they just get errors?
In the preview there is a ticking area manager.
Ah, so I wait for release.... okay, thanks Smokey
Oh wait... I thought I looked first, but now I see world.getDefaultSpawnLocation. That may work.
Yup that is what I am using in my addon to get world spawn
// Returns a Vector3 {x, y, z}
const worldSpawn = world.getDefaultSpawnLocation();
thats just replacing the nameTag with your rank and health
tags
hey, i couldn't get that to work
could you send the code you used for it?
are you using javascript or typescript?
typescript
but you can send javascript
this only accounts for placing them by the way
?
like i'm only checking on playerPlaceBlock
isn't placing the only way to put them down?
like in pure survival
as a normal player
yeah but if you use a piston and place it one block away that bypasses the code i wrote
ah
i guess I'll have to also check out the piston stuff
this is gonna be messy probably
i revamped it a bit, don't be fooled by the .js extension, it's actually typescript, discord doesn't want me to send typescript tho so i had to rename it
anyway I'm not sure why the piston logic doesn't work
I'm too tired from finishing alot of todos today
I'm going to go sleep
if anyone can fix the piston logic in the mean time, I'd appreciate it
world.afterEvents.playerBreakBlock.subscribe((ev) => {
console.warn("block broken");
const player = ev.player;
const multiplier = getScore(player, "multiplier");
if (ev.block.typeId == "cosmos:tier_1_ore") {
console.warn("Tier 1");
addScore(player, "Pending", 1 * (multiplier / 100));
} else if (ev.block.typeId == "cosmos:tier_2_ore") {
addScore(player, "Pending", 2 * (multiplier / 100));
} else if (ev.block.typeId == "cosmos:tier_3_ore") {
addScore(player, "Pending", 3 * (multiplier / 100));
}
});```
anyone know why this aint working
no errors
the first .warn works but the 2nd one no
even tho the typeId is correct
use ev.brokenBlockPermutation.type.id instead of ev.block.typeId
the block is already broken, when the event fires, so it's typeId almost always will be "minecraft:air"
can I change a certain area of my world to a different biome?
ah
any example of adding container to armor slot?
What?
wait
A.getComponent(EntityInventoryComponent.componentId).container.addItem(new ItemStack('minecraft:'+))
but for specific armor slot
is it possible to get if the player has a title displaying on their screen?
Titles are generally sent as packets to the client, so no; that would be like reading if a sound is being played.
But generally, screen titles are very controlled. If you need to know if something is on the screen, chances are you were responsible for putting it there to start with.
What do you need to get that for?
well my issue is i have a system that displays a title over and over with a value that i then customive with a JSON UI but i was thinking if someone added my addon to a server if the title is constantly being displayed it would override if the server tries using titles for whatever
so i was going to do something where before displaying i check if the player has a title allready being displayed so the server or whatever else takes priority
Ah, gotcha. That is a tricky one
i do have it rn so if they dont hold my custom weapons (when it gets displayed) it removes it so titles will show then but again if they hold the weapon it overrides any other titles
whats the limit of setting dynamic properites on a player?
a lot lol
There isn't really a limit of keys, there's a very limit on size of a data
So kinda the same as scoreboards?
What's difference between setDynamicProperties and setDynamicProperty in Script API?
nothing really
one lets you set one dp
while one lets you set multiple
i think the multiple one takes something like:
.setDynamicProperties({
key: 'value'
});
the other takes something like:
.setDynamicProperty('key', 'value')
btw anyone got a fix for this?
i couldn't get it to work mainly because of the attached blocks legitimately being piston arm extended or something and air
no hoppers whatsoever
Better to use this method, you can add queue system to speed up an add-on by a bit
anyway do you have any suggestions for this?
Not much different, but pretty useful for optimizing
Give me a second
true
alright, i appreciate any help
On which line there is an error or smth?
Does listener trigger?
yes
^^^
if you happen to know a workaround to get the blocks moved by a piston or something, please let me know
Doesn't block change due to position change?
i think it does
Maybe that's an issue
hm
To be honest, I haven't coded any add-ons in a while, lol
lol
neither have i
i just thought that the .getAttachedBlocks would atleast have a reference to the blocks
i guess i am gonna have to do a more advanced getting method
I'm not looking forward to it
thank you for the help anyway
A few ticks after activating a piston, the blocks turn into moving_block, so you have to wait a few ticks until they turn into normal ones
oh?
well i suspected that too
but it still doesn't change
lemme send the code
I'll open a post
yeah its practically not so different from using for loop to set multiple DPs in the end
but in interval, its probably better to use that one
By interval, you mean a queue/larger datasets?
i didnt meant that but yeah i guess you could also say that
equippable component
Player.getComponent("equippable").setEquipment(<slot>, ItemStack)```
equippable component only works for players tho
well, i've tried using the command but it doesn't work
does it means i have a wrong input?
imma try it tomorrow, thank you for the explanation sir 🗣️ 🔥
Can you show me your command?
from a script how can tell which device I'm on
player.clientSystemInfo.platformType
thank you! i was doubtful there was something. unfortunately idk if it would cut it I just got a content review claiming some bugs are just on windows 10
Does someone have a custom fence template with the new component for this instead of using scripting API?
Installation for @minecraft/server-admin
Beta API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
wait for 2 hours from here
wasn't there a release to detect how the blocks were destroyed, like via fire destruction
try searching at #1072983602821861426
There are only scripting api ones
Scripting api ones are kinda slow
Check out #1019665690233405500
I realized theres a new component for that but is it already stable?
I'm very bad at block components that's why I was looking for an example because ik there's a new component but I don't have idea how to use it 😔
I will try tho since I see there are no templates yet
You can see people use it in #1019665690233405500
Is it already stable tho?
world.afterEvents.entitySpawn.subscribe(({entity:A})=>{
if(A.typeId=="minecraft:wither_skeleton"){MobBuff(A,0.5);ArmorEquip(A,Head_4,Chest_4,Legs_4,Feet_4);HandEquip(A,Main_4,0.95);A.runCommand("Replaceitem Entity @s Slot.weapon.offhand 0 totem_of_undying");};})
sorry cuz i have a lot of task on my academic
damn
i actually thought it was obfuscated for a second
until i focused on it
you should probably try to make it a bit more readable
for easier debugging
and so that people can understand your code easier
anyway guys is BlockVolume.isInside faster than using vector3 calculations to check if a vector is inside a volume?
btw i think it's supposed to be ‘slot’ not ‘Slot’
and ‘Replaceitem’ should be ‘replaceitem’
and ‘Entity’ should be ‘entity’
if anyone can do some benchmarks, I'd appreciate it
because i don't really own a pc, and i can't use the minecraft debugger
If it's a simple BlockVolume, then math should be faster, but if it's a ListBlockVolume or CompoudBlockVolume use the method
You don't have a space between a slot and an item, this probably causes a fail
Anyone knows how to subscribe to chats? The chatSend event doesn't seem to work
okay, thanks!
it's beta only rn
world.beforeEvents.chatSend.subscribe
idk if there's an afterEvent too but yea
that doesn't work
i have beta api enabled too
this probably the reason
then can i use this?
${P1[Math.floor((Math.random())*P1.length)]};
i'll try it next time here for a question
🫡 🗣️ 🔥
Slot.weapon.mainhand work with uppercase?
i have tested it back in the day, it was work
but i forgot about now
lemme check again
even this works
alr
as long the "@" isn't upper case
Just add a space
show code
You could use "[email protected]_of_undying".replaceAll("-", " ")... there are too many spaces ;)
sure, i'll try it 🗣️
i write the code either it'll confuse stealer or confuse myself
"to confuse your enemy, you must first confuse yourself"
Am i allowed to ping darknavi about a bug thats not been fixed over like 2 months
No
Just complain about it like everyone else, and of course do a bug report and watch it.
Been watching that hug report for 3 months now.
Bug*
ok, good. That is about all you can do. Bugging them is not going to make it get done. They have priorities and their own internal politics. Be patient and work around it.
How can I interact with vanilla blocks?
is it possible to get projectile impact damage value?
Bedrock APIs is a better place to do it
Okay I kinda did It. Now I need to know how can I Interact with any block using a custom item
So here is where I can get help with my script right?
Correct
Okay
Sry this is my first time in this server so I'm kinda new to this
So how does this work?
Is it possible to remove the player join message?
By using scripts, like idk playerJoin or chatSend
I think so?
Let me find out
I believe this might work
world.beforeEvents.playerJoin.subscribe((ev) => {
ev.cancel = true;
Uh just that? But does it changes on chat?
I'm kinda new to this so it might not work
Idk but I can test it for you
It should cancel the event and remove it from the chat completely.
If it works
Oh if possible I would want
Yeah... makes sense on paper but I dont think it really makes sense because it doesnt affect the chat I think...
Sorry 🙏 I'm am very new to this
I know there is something called globalJoinMessage and globalLeaveMessage
No problem lol, I am just like you
Oh I am making a friend's SMP, but I needed to learn script to make some items like an item to toggle you invisible and visible, one to toggle between creative and survival, one for setting me in spectator, one for spectator but summoning a lighting and one for toggling invisibility but summoning a lightning
Oh I think I can help you with that
Actually it already works fine lol, now I need to do something with the leave and join
Wdym
What app do you use
Is there a way to cancel or prevent player to player damage directly in the script without modifying player.json file?
sadly no
😔
okay so.... after trying with a different scenario, looks like the replaceitem command is broken in script idk why lmao
even it didn't want to run in my character itself
B.runCommand('Replaceitem Entity @s Slot.Hotbar 8 Ulkd_Ess:Debug_Stick 1 0 {"keep_on_death":{},"item_lock":{"mode":"lock_in_slot"}}');
this one is actually work
i just wanted to make it like this
why are you capitalizing the commands 😭
this doesn't work because you don't have a space between the slot and the item name,
your commands would look like this
Replaceitem Entity @s Slot.armor.head 0cactus
also you shouldn't be using capitals in the commands
Can i add score to offline players if i know their entity id ?
well, it's actually works
auto first letter capitalization
he born to make essays but resorted to code
🗣️ 🔥
only if they're valid
i mean it's online
You can't.
anyway, will function file works for applying entity an armor?
entity.runCommand("function entity_armor")
set a world dynamic property, if the player is online set that score and delete the world dynamic property.
Okay that seems the best way to do it
goodluck
i need someone to quick debug my addon you need only 20 seconds jump sprint (move randomly around) and tell me if it stutters or lag
you can try diagnosis
(if you dont know what that is, its a debugger command that records and calculates performance usage)
(or live diagnosis if youre using vscode and minecraft debugger)
system.beforeEvents.startup.subscribe(({ customCommandRegistry }) => {
customCommandRegistry.registerCommand(
{
name: "cb:tpa",
description: "Ce téléporter a un joueur !",
permissionLevel: CommandPermissionLevel.Any,
mandatoryParameters: [
{
name: "send | accept | deny",
type: CustomCommandParamType.String
},
{
name: "Joueur",
type: CustomCommandParamType.PlayerSelector
}
]
},
(origin, methode: tpaMethode, targets: Player) => {
const player = origin.sourceEntity as Player;
if (player.isInPvp) {player.msg("§cTu est en combat ! "); player.playError(); return { status: 0 }}
if (!player) return { success: 0, status: 0 };
const targetPlayers = Array.isArray(targets) ? targets.filter(t => t instanceof Player) : [];
if (targetPlayers.length === 0) {
player.msg("§cErreur : Aucun joueur trouvé.");
player.playError();
return { success: 0, status: 0 };
}
const target = targetPlayers[0] as Player;
tpa(player, target, methode);
return { success: 1, status: 0 };
}
);
});
Hi, where would someone come from?
Why aren't you using Enum?
For the string?
indeed I don’t know, I just changed
Did a quick search though for your error: https://bugs.mojang.com/browse/MCPE/issues/MCPE-230568
To Do (Open)
Unresolved
it’s a Minecraft bug so I can’t do anything about it?
Yes, for the PlayerSelector at least.
ok thanks you
Hey @wary edge
Sorry for the ping but I know you know a lot about this
Is there any way to display items in blocks? Example a pan with a raw cooked beef
Like this
v1 of?
What's the event?
So are you interacting with an empty hand?
yes, but thats not what I want
That's quite literally what the error is, empty hand = undefined item. Hence it cannot grab a typeid.
You can't set permutation in a beforeEvent, you need to use afterevent or wrap it with system.run
oh, thanks
how can I make this work?
Make it an array.
Place it in square brackets and make it an array.
Did you learn JS before trying to use Script API?
no 😭
Consider learning it before Script API. It's very fundamental to know the basics of a language itself, before getting into deeper concepts in Script API.
import { world } from "@minecraft/server";
world.beforeEvents.chatSend.subscribe(function(data) {
world.sendMessage(Echoing )
})
Small question: is the player gliding property read-only?
Unfortunate.
Thanks though.
put in a system.runTimeout or system.run to go in next tick
and read this #1067535608660107284 message
system.runInterval(() => {
const player = world.getPlayers()[0];
const offhandItem = player.getComponent("equippable").getEquipmentSlot("Offhand").getItem().typeId;
if (offhandItem === "cosmos:ring_of_regeneration" && getHealthPercent(player) > 60) {
console.warn("Regen");
player.addEffect("regeneration", 1, 1);
}
}, 20);
``` anyone know whats wrong with this
theres no errors
its just not doing the console.warn or addEffect
anti-multiplayer support
+no reliance on player == undefined
youre trying to get the first player
instead, do:
world.getPlayers().forEach(player => {
player.addEffect()
})
or
for (const player of world.getPlayers()) {
player.addEffect()
}
oh right
i usually do that but windsurf tried that way so i thought it would be the same
@shy leaf
any idea why#
i found out
i think
the third argument accepts EntityEffectOptions
not a number
do
player.addEffect("regeneration", 1, { amplifier: 1 });
not working
no errors
found this on jayly site
villager.addEffect(MinecraftEffectTypes.Poison, duration, { amplifier: 1 });
what is vanilla-data
i never touched this
its an external library thats not included in native module
you need to either get the npm to use it
or use standalone file made by jayly
it works
not for me
show the code
I think not
choiw mc k
cos lamf addon j k
Co
addon j
Backpack, prison, auction house, chat game,......
phats hanhf chuaw
I was trying to heal a player though effects, and Instant_Health amplifier 2 kills the player?!?
I guess I'll have to just get the health component and set health, but still
huh??
No idea! /effect @s instant_health 2 2 killed me
wtf 😭
overflow maybe???
but that shouldnt happen??
if its an overflow, it shouldnt trigger entityHurt event, but still, can you try tracking health changes via event callbacks?
Why would you even use effects for healing in the first place?
i dont see why not
Component is a bit more reliable in my opinion, also a cleaner solution in code
Is there any way to capture private messages? Like using /w and /tell?
Without a proxy or custom server software, you can't.
hox to fix property values return undefined?
You can't use those query in the behaviour.
How do you know that it can't be used?
mojang doesn't note in documentation
It does not make sense for it to. The server has no knowledge of the entity's geometry.
With entities, the behavior pack simply defines how the entity should interact with the world mechanically. It cannot know what the client definition might look like, because you could overwrite the definition (or geo) to use any other geo—now you are looking at two different sources of truth based on which client should be the one to interpret it.
Now you could hardcode what values those queries would return into the default values for those properties. Could even have some kind of script that populates it for you; read the geo, find the head bone, then stick the x-, y-, and z-axes of the bone's origin into each respective property.
I'm using a runInterval for a detection system that I made. I'm trying to figure out a way to make it detect the moment a player has a dynamic property set (kind of vague so), here's an example (not actual code):
system.runInterval(() => {
if (!player.hasTag("startInterval") return;
player.setDynamicProperty("TF", true)
if (player.getDynamicProperty("TF") == true) {
player.setDynamicProperty("TF", false)
...
}
})```
How can I stop this from constantly looping through true and false every tick and only detect the moment that the loop initially starts?
Any help is sincerely appreciated
Why do you need such a system?
Great question honestly
I'm essentially trying to make an animation controller in a runInterval since I don't use player.json files (very dumbed down version since the regular one is a bit more lengthy)
So I need to detect the moment movement occurs in the player but not continuously so that it doesn't keep replaying animations from the tick that it starts
Its very specific movement in terms of its purpose so different from just walking and running regularly
I think I might've figured out a way using an event that's tied to when the movement begins so I'll see 🤷♂️
My apologies for being vague
Why not just call a function instead of changing the dynamicProperty and then detecting its change?
anyone know the lastest stable server version?
2.2.0
good
2.0.0
where do i find this at i keep forgetting
Doesn't that show latest stable is 2.3.0?
it does
Cause the function would be called every tick still, (or am I misunderstanding?)
Depends on your system actually..
Do you mean changing it for a runTimeout?
Do elaborate (please)
I mean, I don't know what system you have and I don't really understand what's going on. Maybe you could send me the entire code or explain it in more detail?
I'll do the latter since the former option may not be do-able due to 150 lines of code
Basically, I made a flight system some time ago, but changed the system to not use player.json and when I did, it meant the animations were stiffened/static, so now I'm trying to create a system that mimics an actual animation controller.
So my plan if to make 2 different sets of uses of player.playAnimation(). One set to control the player beginning to move, and another set for just transitioning between animations
Because of this, I need the system to detect the players movement for the first moment of movement, so that if the player moves forwards in the beginning moments of flying, that movement will trigger an animation relating to the first state
(If I didn't make sense let me know)
Well, you can just use WeakSet to store players who have already played the start animation.
Sorry for the late reply
Thank you for replying at all lol
Is WeakSet from base javascript or script API?
1
Sorry for the late reply
Thank you, I'll look into it and try to make sense of it
u could do before
Are there any script component that allows the player to summon a projectile
Similar to minecraft spawn entity
wdy mminecraft spawn entity?
Basically spawns an entity when this component is triggered
Like launching a snowball
like how entity.dimension.spawnEntity() ?
i dont think so?
the closest thing you can have is to spawn a projectile and use .shoot() method from projectile component
/**
* @param {String} projectileId
* @param {import('@minecraft/server').Dimension} dimension
* @param {import('@minecraft/server').Vector3} location
* @param {import('@minecraft/server').Vector3} direction
* @param {Object} options
* @param {Number} [options.power]
* @param {Number} [options.uncertainty] Controls the accuracy of the shot. A value of 0 is perfect accuracy.
* @param {import('@minecraft/server').Entity} [options.owner]
*/
function shootProjectile(projectileId, dimension, location, direction, options = {}) {
const entity = dimension.spawnEntity(projectileId, location);
const projectile = entity.getComponent('projectile');
if (projectile == undefined) return;
projectile.owner = options.owner;
const power = options.power ?? 1;
projectile.shoot({
x: direction.x * power,
y: direction.y * power,
z: direction.z * power
}, { uncertainty: options.uncertainty });
return projectile;
}
Usage example:
shootProjectile('arrow', player.dimension, player.getHeadLocation(), player.getViewDirection(), {
power: 2,
uncertainty: 5,
owner: player
});
Dayumm thanks😭
I was looking for copper but found gold
function savePlayerData(player) {
const dp = world.getDynamicProperty("playerScores") || {};
dp[player.id] = {
name: player.name,
id: player.id,
Coins: getScore(player, "Coins"),
Kills: getScore(player, "Kills"),
Deaths: getScore(player, "Deaths"),
Hours: getScore(player, "Hours"),
};
world.setDynamicProperty("playerScores", dp);
}```
anyone know the problem here
where are you calling it from?
any idea on how this doesnt work? the beforeOnPlayerPlace event doesnt work
im using scripting V1
Anyone can help me on #1441132483708977292 ?
is it worth it to implement a proper search algorithm if I'm searching the players inventory a lot? or is checking every slot good enough
Does https://stirante.com/script/server/2.3.0-beta.1.21.113-stable/classes/Container.html#find not suffice?
Documentation for @minecraft/server
thats fantastic i didnt know that was a thing
and ive read this exact page 💀
embarassing
i remember someone pointing out that contains/find/findLast methods check for the exact same ItemStack that was passed into the methods
and the methods only accept ItemStack as parameter
so you still need to use old loop way for finding items with same typeId or something like that
@unique apex i think its worth pinging to let you know this
okay thanks :) thats useful for me
i think i had a function used for inventory loop, hold on...
does the inventory search have to be done constantly?
no i call it only explicitly but will be doing so a lot
working with simulated players
i see, so not runInterval then
function inventoryAddLore(source) {
const inv = source.getComponent('inventory').container;
let slot = inv.size;
while (slot--) {
const itemSlot = inv.getSlot(slot);
if (!itemSlot.hasItem()) continue;
const item = itemSlot.getItem();
if (!item) continue;
// ...
}
}
this is the snippet of old inventory loop code i used before
im not sure if making an algorithm is worth it since they all boil down to looping
Decrementing from the inventory size is so smart actually
Iirc they're mostly used for much larger databases but I was wondering if somehow in bedrocks quirky world if it was more cost efficient with a search algorithm or smth
meh, unless you meant larger database as in huge servers that does heavy lifting in a regular basis
i think itll be fine
np
For some reason, when I change the state of a block that has 2 custom components, one of the components stops working
Both components are registered in the block "components" property and not inside any permutation
I even tried getting the component with block.getComponent() and it becomes undefined once in the second state
But the component that doesn't stop working is actually being redefined in that permutation
hey yall where can i ask about bds? i js wanna ask on how can i do server switch using commands or scripts idk
used with server admin am i right?
make a post and add the BDS tag
or just ask here
anyways where can i see the console logs in bds
i cant see any script errors i alr placed it in dev behavior packs
in the server console
i dont see it either
Can i make a custum block act as a redstone block but only when an if condition is true
Yes. Add the redstone components in a permutation.
Got any guides on how permutations work
@wary edge ty but how do i get script to change a blocks block state
99999
100,000th message
anyways
how can i have subcommands (not enums) in custom command
like this
Nuh uh
you can't have subcommands
no 🙁
💔💔💔
When using permutations how do i use a script to change a blocks block state
can you make the entity move while riding an another entity using applyImpulse?
#1067535712372654091 is dead for a long while xd
use resolve
BlockPermutation.resolve("minecraft:sign", { ground_sign_direction: 8 });
or like this
block.setPermutation(block.permutation.withState('si:growth', 3))
I don't know if this still works
this was done at 1.21.3
They both work still, if you use the first one make sure you import BlockPermutation
When using permutations how do i use a script to change a blocks block state
Bruh, read the two messages above
What 2 messages
Oh i have them blocked dont remember why memories horrible
So lets say a block uses a world dynamic property integar
When that integar is above 0 it uses permutation that req true if it hits 0 that permutation is set to false
Is there a way to check which player a phantom is targeting within a script?
Can you use beta apis?
Nope, Marketplace.
Tough luck then.
Darn. I'll either forget it or make something super janky. lol
I'm using scripts to give my boss entity multiple firing patterns.
Cooldown, projectile/entity summoned/shot, range and spread, sound, all customizable
Music is Epic the musical
Does anyone else get the error "unknown block descriptor" when using itemStack.matches?
show code
I really wish i could get a team on my projects doing solo is really draining
do you know it?
if (!itemStack.matches(ITEMS.AntiqueCodex)) return;
As soon as I added this line the error appears once per world load, when I interact with a block (This line of code is under a playerInteractWithBlock before event)
The script still performs normally, however. I also found it odd that the content log says its a JSON error
just do itemStack.typeId != ITEMS.AntiqueCodex
Yeah, that's probably what I'll do. Thanks!
-# (Should I file a bug report)
is getLightLevel() is still on beta?
Doesn't look like it
how can i stop players from glitching into blocks using ender pearl?
How can we make addon achivement friendly
can I teleport an entity to a location in a different dimension that's loaded by /tickingarea
I tried this and it does work but the entity just cease to exist
Installation for @minecraft/server
Latest API module install:
npm i @minecraft/[email protected]
Beta API module install:
npm i @minecraft/[email protected]
Preview API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
Installation for @minecraft/server-ui
Latest API module install:
npm i @minecraft/[email protected]
Beta API module install:
npm i @minecraft/[email protected]
Preview API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
Installation for @minecraft/server-gametest
Beta API module install:
npm i @minecraft/[email protected]
Preview Beta API module install:
npm i @minecraft/[email protected]
#debug-playground, for endless usage of the bot/app
Add this to your manifest to make it stop disabling achievements
"metadata": {
"product_type": "addon"
}```
Maybe your entity has the minecraft:despawn component



