this post was submitted on 15 Dec 2024
5 points (100.0% liked)

Minecraft Commands

121 readers
8 users here now

A place for all things about commands, command blocks and data-packs in vanilla Minecraft; to share, to question, to discuss, and more!

founded 2 years ago
MODERATORS
 

So here's the problem. The new 1.21.4 custom model format supports names, instead of numerical ID's. This is objectively better. MukiTanuki's custom roleplay data cannot support this, as they use the scoreboard to temporarily store the custom model id, and that has to be an integer. Also, in my testing, it fails unless you format your resource pack a specific way as it is pulling in a float, not an int.

I think the better solution now would be to be able to rename an item with the model name, THEN trigger a function to replace the model with the name. So where can we store a string? The actual data storage, which is server-wide, however can hold strings. The problem? The documentation for pulling things out of storage is like non-coming up from my googling.

When you name an item, it is named '"Whatever"' but the double-quotes count. For that reason, the following function (which starts at character 1 instead of 0, and ends 1 from the end due to the -1) stores the item name in a storage namespace:

data modify storage custom_roleplay_data:data model_name set string entity @s SelectedItem.components."minecraft:custom_name" 1 -1

The following actually gets the name out that was stored:

/data get storage custom_roleplay_data:data model_name

The issue is, I can't get the string out. Here's some things I've tried, and all result in basically "not a string":

/item modify entity @s weapon.mainhand {"function":"minecraft:set_custom_model_data","strings":{"values":[{"type":"minecraft:storage","target":"custom_roleplay_data:data","path":"model_name"}], "mode": "replace_all"}}
/item modify entity @s weapon.mainhand {"function":"minecraft:set_custom_model_data","strings":{"values":[{"type":"minecraft:storage","target":{"target":"custom_roleplay_data:data","path":"model_name"}}], "mode": "replace_all"}}
/item modify entity @s weapon.mainhand {"function":"minecraft:set_custom_model_data","strings":{"values":[{"type":"minecraft:storage","target":{"target":"custom_roleplay_data:data"},"path":"model_name"}], "mode": "replace_all"}}
/item modify entity @s weapon.mainhand {"function":"minecraft:set_custom_model_data","strings":{"values":[{"type":"minecraft:storage","target":{"custom_roleplay_data:data":"model_name"}}], "mode": "replace_all"}}

I'm stuck, and would appreciate any ideas.

you are viewing a single comment's thread
view the rest of the comments
[–] Plagiatus 2 points 3 weeks ago

Oh yeah of course, that's an option too. One that'll solve the issue instantly, actually. I keep forgetting that you can put macros into literally anything.