# Copy the last stone slot to a temp array
data modify storage temp Items[] set from block ~ ~ ~ Items[{id:"minecraft:stone"}]
# get the count in a scoreboard and remove one
execute store result storage temp Items[0].Count byte 1 run data get storage temp Items[0].Count 0.99
# Copy the last slot to the output items
data modify block ~ ~ ~ Items append from storage temp Items[0]
{ | |
"editor.tokenColorCustomizations": { | |
"textMateRules": [ | |
{ | |
"scope": [ | |
"source.mcfunction", | |
"string.unquoted.mcfunction" | |
], | |
"settings": { | |
"foreground": "#bbbbbb" |
Ability to detect block NBT within loot tables- Addition of an optional loot table argument in
/loot ... mine
- New entry type in loot tables that runs a function
data resolve
to resolve text components in NBT- Loot table tags. With a new entry type
loot_table_tag
, similar totag
. It also hasexpand
that acts the same. - New entry type in loot tables that drops xp. If the loot table is used in a container, the container will store the xp, like it does currently with furnaces.
- New entry type in loot tables that will insert the loot table that you are replacing. For example if you want to add a new drop to a vanilla loot table without copying the vanilla loot table. This allows multiple datapacks to each add their own drops to an existing loot table. https://gist.github.com/misode/728b6251adfcdef5f71e50e51e002059
- Selecting sublists in NBT arrays with nbt paths. This could have the following syntax:
Items[2..5]
This method is based on PingiPuck's video
You need to run a command once (or on every /reload
).
scoreboard objectives add falling minecraft.custom:minecraft.time_since_death
You need to run these commands for every player every tick
This method for calculating the square root uses an iterative algorithm known as the Babylonian method.
You need to run some commands once (or on every /reload
).
scoreboard objectives add const dummy
scoreboard players set 2 const 2
scoreboard objectives add sqrt dummy
You need to run some commands once (or on every /reload
).
scoreboard objectives add random dummy
execute unless score seed random matches -2147483648.. run scoreboard players set seed random 731031
scoreboard players set mult random 1664525
scoreboard players set incr random 1013904223
scoreboard players set #16 random 16
Orbis works by scanning chunks and performing actions based on certain features of that chunk, like its biome, terrain height and specific blocks in the world. All conditions are based on world generation to make sure everything is seed deterministic.
Every 16 ticks, Orbis does a few things.
- If a player with the
gm4_orbis_active
tag is in a chunk that has bedrock at y=0, it spawns a marker for that chunk, if there wasn't one already. - For every player with the
gm4_orbis_active
tag, it generates the closest chunk that hasn't been generated yet. This calls theorbis:chunk/generate
function. - Kill every chunk that has been generated, but only if all four adjacent chunks have also been generated. This is because chunks use the biome of adjacent chunks to determine the final biome decision.
/loot
can be separated into two major parts, target and source. Those two parts follow each other in the command. In snapshots prior to 18w45a, this command was named /drop
loot <target> <source>
Last updated: 18w45a
The target defines where to drop the items. It has several arguments. The first argument is the target type. It's one of these options: spawn
, replace
, insert
and give
.