#Base64 Heads in Custom Heads Config

61 messages · Page 1 of 1 (latest)

neat bridge
#

Hello, i asked a question back then about base64 code heads in the custom-heads.yml config in GeyserMC. But it seems to be covered by older messages now. So can anyone teach me on how i could use base64 heads in that config? Since there's no place for base64 heads there as i checked in the wiki.

delicate moth
#

Decode the base64 and it should give you the real data for that file

neat bridge
#

@delicate moth Know any way to decode it? And what will be the result like when i decoded it? Maybe i could create a script to decode it.

snow radish
neat bridge
#

@delicate moth Should this be the expected result?

WG;sͽvosM77yζVzoWvu}u9

#

That doesn't seem to be right... But it may be so i wanna confirm.

#

I'm really new to this heads thing since i don't really use it much

#

Nvm i got the desired format. How do it put it now?

mortal needleBOT
neat bridge
#

Update yall i figured it out and created a python script that generates a custom-skulls.yml containing every base64 code from minecraft-heads.com 💀

snow radish
zinc harbor
#

realistically speaking, going over 1k custom blocks might already start causing issues on the Bedrock client

neat bridge
#

just tested it the yml won't even load💀

#

I will ask the Geyser Devs if there's a way to dissect each category in seperate ymls

neat bridge
#

I make the script to allow me to choose which categories i want.

#

And remove the ones that isn't needed

#

I will also try to import it to a local resource pack

zinc harbor
neat bridge
#

Why not just create it to a resource pack right? And don't rely on geyser generating it?

#

It could be way more efficient

#

Some resources packs in bedrock are way larger than 13mb

#

They do great

zinc harbor
#

Geyser is creating a resource pack once, and only re-generates it if the custom-skulls.yml changed. The limitation here is not Geyser, but rather the Bedrock client

zinc harbor
#

There are packs with 100MB that load fine (not on all clients). The issue is how many textures, with what resolution

neat bridge
#

Hmm that's weird.....

#

Heads are like 8x8

#

The miscellaneous category alone is 11k and the humanoid category

#

I really wish the geysermc devs find a way to make heads work in bedrock

#

Rather than us working with sticks and stones

#

Do you have any idea how geysermc generates the texturepack? Maybe i could experiment a little with it and create a script to do it the same as geysermc does but locally. I will try to make a resource pack and figure out how i could make this work.

zinc harbor
#

Okay, to make that clear - the limitation is Bedrock, not us (Custom heads with custom textures simply do not exist on Bedrock). We have two workarounds, which yes, suck, but there is no other way to make that happen.

The first is the custom-skulls.yml. That's required when you want that specific head to also show up in the inventory with a skin; but the downside here is that each head is a custom block with a custom texture; as that's the only way to allow Bedrock to load them in the inventory.

The second does not require any modification of that file/other configuration; but only applies to heads placed on the ground/worn on player heads. We use fake player entities for those to display skins; and that is not limited (as we dont need to use a texture pack in this approach)

zinc harbor
neat bridge
#

That's my original goal to keep the inventory functionality while without having to get every head in your Custom GUIs and add it manually into GeyserMC.

neat bridge
zinc harbor
#

Adding every single head from a head database will not achieve that, and instead crash clients that try to join. If you use some heads in GUIs. you should register those; either via the file or using Geyser's api and an extension

neat bridge
#

Well it seems that's what i will go with for now. But that still seems too big to do tbh. Considering i use atleast 95 plugins with 40% having custom GUI's. That's not including Custom DeluxeMenus.

neat bridge
#

Some plugins don't even display what Heads they use. Since the GUI's are mostly contained inside the plugin's code.

zinc harbor
#

!!forms We'd recommend using Bedrock forms for the best Bedrock experience - those support showing custom icons for buttons based on just web links, and are nicer to use for Bedrock players.

mortal needleBOT
# zinc harbor !!forms We'd recommend using Bedrock forms for the best Bedrock experience - tho...

There are multiple APIs available for different purposes.

  • The Floodgate API allows plugins and mods to check for Bedrock players, or to get important information about them.
  • The Geyser API can be used to interact with Geyser itself - for example, by registering custom items or blocks, and listening to events.
  • You can use the Global API to get specific details about Bedrock players, such as linking status or converted Bedrock skins.
  • Bedrock Edition features built-in GUIs. See the Cumulus API for more information on how to create and send those.
zinc harbor
#

^ see the "cumulus api" if you are interested; or e.g. CrossPlatForms if you want to see how a plugin implements it.

neat bridge
#

The code you sent me doesn't seem to display anything about how it gets the textures of the base64 code you put in custom-skulls.yml. I used python to create the script i made to dump all the base64 codes from the Minecraft-Head website API.

#

And it basically generates a new custom-skulls.yml that already contains all the dumped base64 code.

zinc harbor
# neat bridge The code you sent me doesn't seem to display anything about how it gets the text...
#

as for how it then gets textures; see the SkullResourcePackManager - it'll just request the images using the texture hash from mojang's api; and then add them into the resource pack

neat bridge
#

Thanks alot! Really appreciate explaining most of the technical stuff side of this. I don't really know much about resource packs so this really helped alot.

zinc harbor
#

Sure. If you ask me, the ideal user-experience would be to use Bedrock edition forms for Bedrock players, and gui menus for Java players :p

neat bridge
#

I know some plugins that already use this. It would be more appreciated for plugin devs to use that way for GUI's instead.

#

But tbh the original GUI's still looks more sleek and customizable. And it just doesn't get in the way that minecraft feels. I just like keeping things original lol.

zinc harbor
#

well, you do you - we're unfortunately limited by what Bedrock offers us to use

neat bridge
#

Yeah, and also the glass panes in Bedrock GUI's also kills me when i create custom GUI's...

#

Why are they sideways... But anyways i got a texturepack dev to fix that already. It kills me when i see it.

#

The GUI's just look so crappy

zinc harbor
#

Well, see, Bedrock forms don't :p

#

But yeah; there are differences between the versions, noticeable here

neat bridge
#

Btw how do i import ItemsAdder or Oraxen Custom GUI's to Bedrock? I know a friend of mine who did it and it works. He thought me it but i didn't really listen since im was sleepy as heck.

zinc harbor
#

That's not something i can really help with. The people in #custom-resource-packs will know more about that

neat bridge
#

I never noticed you were a GeyserMC Dev💀