#server-plugins-read-only

1 messages ยท Page 117 of 1

spice oak
#

Getting the item, doesn't give you a method for that?

dusky bobcat
#

unfortunately not ๐Ÿ˜„ since the translations are preset for assets and not for an individual object

lyric mortar
#

Thas funny, Iโ€™m also making a warhammer fantasy mod

autumn lava
#

alguien espaรฑol para jugar hytale

frail mason
#

Hi ive been disconnecting a player via an event and using PacketHandlers, but when I do, all players in the server or world idk which it is, get disconnected.

merry harbor
#

how can i get the drop of an item?

                    blockType.getItem()```
final quartz
#

hello all, looking for help getting friends onto my server. I've set it up, but when i try to join via my public IP i can't access it. I've set up the port forwarding, but i'm using LAN via a mesh which i think is messing up the connection. anyone got experience with something like this? Thanks!

half kiln
#

In the world config I have disabled Fall Damage. It doesnt seem to have taken effect. Is this a known bug?

fringe herald
half kiln
final quartz
#

Also if this is the wrong spot for the message, point me to the most relevant tech help sectionHypixel_Sweatingf

hushed totem
#

The only way to do it currently is to create your own asset. So if you want to mimic a sword then clone from the vanilla asset and alter it so its sent to client. Hopefully they will improve this as it doesnt make sense to go through all this work to simply have custom item descriptions.

dusky bobcat
severe ivy
#

Hey @random briar can you provide a working example? Below is what I have and it does not trigger when using the "F" interaction.

            BuilderCodec.builder(PlayerInteractSystem.class, PlayerInteractSystem::new,
                    SimpleBlockInteraction.CODEC)
                .documentation("Handles player block interactions for regeneration areas")
                .build();

        // Register with the interaction codec registry
        plugin.getCodecRegistry(Interaction.CODEC).register(
            "harvest-area-protection",           // Unique identifier
            SimpleBlockInteraction.class,    // Class type
            build                       // The codec
        );
    }


        private class PlayerInteractSystem extends UseBlockInteraction {

            @Override protected void interactWithBlock(@NonNullDecl World world,
                @NonNullDecl CommandBuffer<EntityStore> commandBuffer,
                @NonNullDecl InteractionType type, @NonNullDecl InteractionContext context,
                @NullableDecl ItemStack itemInHand, @NonNullDecl Vector3i targetBlock,
                @NonNullDecl CooldownHandler cooldownHandler) {```
random briar
devout harness
#

how do I change a blockstate from within code? I want a block to begin animating when a player gets nearby, similar to a minecraft enchantment table

random briar
# severe ivy Hey <@247397339508113409> can you provide a working example? Below is what I hav...
    public static final BuilderCodec<PlayerInteractSystem> USE_CODEC =
            BuilderCodec.builder(PlayerInteractSystem.class, PlayerInteractSystem::new, SimpleBlockInteraction.CODEC)
                    .documentation("Interaction Use Event")
                    .build();
    protected void interactWithBlock(@NonNullDecl World world,
                                     @NonNullDecl CommandBuffer<EntityStore> commandBuffer,
                                     @NonNullDecl InteractionType type,
                                     @NonNullDecl InteractionContext context,
                                     @NullableDecl ItemStack itemInHand,
                                     @NonNullDecl Vector3i targetBlock,
                                     @NonNullDecl CooldownHandler cooldownHandler) {
        if (type.equals(InteractionType.Use)) {
            
        }
    }
#

and get context to get interaction manager and chain use the chain to cancel
interactionManager.cancelChains(chain);

gritty basin
#

how do i get into the server setting? for example pvp and stuff like that

random briar
gritty basin
#

is that in game?

random briar
#

it was last time i played it

hollow bane
#

Hi, is there a way to display only nearby players in the Map

azure ice
#

Do you have a link perhaps to a full example ?

#

or is there no need for registering the codec and it does that automatically on build

random briar
#

he might also not register the code

protected void setup() {
        super.setup();
        getCodecRegistry(Interaction.CODEC).register("UseBlock", PlayerInteractSystem.class, PlayerInteractSystem.USE_CODEC);
    }
azure ice
fringe herald
#

Is there a way to copy over the components when updating a state on a block?

stark folio
#

I'm looking to create a rankup because it's lighter, does anyone know of a good mod for plots and rank-ups?

sinful bone
#

Is there any clear docs?

devout harness
#

I'm getting this:

[2026/02/08 17:36:33 SEVERE]                                                          [Hytale] Exception in thread Thread[#143,WorldThread - default,5,InnocuousForkJoinWorkerThreadGroup] potentially caused by com.anare:AnareCore:
java.util.ConcurrentModificationException
    at java.base/java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.base/java.util.ArrayList$Itr.next(Unknown Source)
    at ThirdParty(com.anare:AnareCore)//AnareCore.Components.ResourceRegenComponent.PassTime(ResourceRegenComponent.java:44)
    at ThirdParty(com.anare:AnareCore)//AnareCore.CastingSystems.AnareResourceRegenerationSystem.tick(AnareResourceRegenerationSystem.java:51)
    at com.hypixel.hytale.component.system.tick.EntityTickingSystem.doTick(EntityTickingSystem.java:92)
    at com.hypixel.hytale.component.system.tick.EntityTickingSystem.tick(EntityTickingSystem.java:36)
    at com.hypixel.hytale.component.Store.tick(Store.java:1974)
    at com.hypixel.hytale.component.system.tick.ArchetypeTickingSystem.tick(ArchetypeTickingSystem.java:36)
    at com.hypixel.hytale.component.Store.tickInternal(Store.java:1930)
    at com.hypixel.hytale.component.Store.tick(Store.java:1900)
    at com.hypixel.hytale.server.core.universe.world.World.tick(World.java:454)
    at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:95)
    at java.base/java.lang.Thread.run(Unknown Source)
#

I imagine it's because of

 Ref<EntityStore> inner_ref = archetypeChunk.getReferenceTo(index);
 var regenComponent = commandBuffer.getComponent(inner_ref, ResourceRegenComponent.TYPE);
 regenComponent.PassTime(dt);

with PassTime being

public void PassTime(float deltaTime)
    {
        for (ResourceRegen Regen : RegenList) {
            Regen.TimeLeft -= deltaTime;
            if (Regen.TimeLeft <= 0) RegenList.remove(Regen);
        }
    }
#

I'm trying to allow a statue to apply a special regeneration effect on the player for a custom mana implementation

boreal echo
#

@devout harness whats the declaration of RegenList?

RegenList.remove(Regen) is being called by separate threads by the looks of it.

devout harness
# boreal echo <@360805213403086848> whats the declaration of RegenList? RegenList.remove(Re...
public class ResourceRegenComponent implements Component<EntityStore> {

    public static ComponentType<EntityStore, ResourceRegenComponent> TYPE;

    public List<ResourceRegen> RegenList = new ArrayList<>();

    public ResourceRegenComponent() {
    }

    public ResourceRegenComponent(ResourceRegen Regen) {
        RegenList.add(Regen);
    }

    public boolean AddRegen(ResourceRegen Regen) {
        if (RegenList.stream().anyMatch(r -> Objects.equals(r.Source, Regen.Source))) {
            RegenList.stream().filter(r -> Objects.equals(r.Source, Regen.Source)).findFirst().ifPresent(r -> r.TimeLeft = Regen.TimeLeft);
            return false;
        }
        return RegenList.add(Regen);
    }

    public String GetAllRegen() {
        if (RegenList.isEmpty()) return "No Regen";
        StringBuilder RegenString = new StringBuilder();
        for (ResourceRegen Regen : RegenList) {
            RegenString.append(Regen.Source).append(" ").append(Regen.ModifierValue).append(" ").append(Regen.Type).append("\n");
        }
        return RegenString.toString();
    }

    public void PassTime(float deltaTime)
    {
        for (ResourceRegen Regen : RegenList) {
            Regen.TimeLeft -= deltaTime;
            if (Regen.TimeLeft <= 0) RegenList.remove(Regen);
        }
    }

    @NullableDecl
    @Override
    public Component<EntityStore> clone() {
        return new ResourceRegenComponent();
    }
}
#

I did have 2 statues standing next to eachother, is that causing issues?

#

I guess that's already kind of stupid, as it'll tick down multiple times in a single second

boreal echo
#

that new ArrayList<>();

Looks to be the problem. Im not sure if you are expecting multiple threads to be operating on that collection. If not you should figure out why.

If you are, new ArrayList should either be new CopyOnWriteArrayList() or Collections.synchronizedList()

alpine creek
devout harness
#

Do I make both of these changes or one of these?

#
public void PassTime(float deltaTime)
    {
        Iterator<ResourceRegen> iterator = RegenList.iterator();
        iterator.forEachRemaining(r -> r.TimeLeft -= deltaTime);
        RegenList.removeIf(r -> r.TimeLeft <= 0);
    }

is this better?

paper nebula
#

Anyone knows how to disable player colliding only with other players?

fringe herald
#

What's the difference between the Class BlockType (which implements Component<EntityStore>) and the Holder<ChunkStore> that you get returned by blockType.getBlockEntity() ?
I thought BlockEntity either is of type Component<ChunkStore> or Component<EntityStore>?

alpine creek
raw otter
#

Can anyone help me? How do I stop the Hytale Create default world on startup?

west elk
surreal flame
#

does someone knows how to draw zones like the selection tool does? are at leas have a hint what class its in?

#

its not the debug shape, they are ugly solid and show lines of the vertexes

dim pendant
#

how to change a server to a creative world?

#

so i can go to the HUb

surreal flame
#

its in the world config in universe/worlds/worldname/config.json

pine holly
#

ehehehe, i finally found time to build a reverse proxy on my vpn

fringe herald
jolly crypt
#

Did any of yall tried to host a server on your computer. I have an issue when i try to run server.bat to install all of server files it does not want to open(it closes instantly when i open it)

clear berry
#

whats the content of your server.bat

#

and make sure that the spelling and capitalisation aligns

jolly crypt
#

sorry i meant start.bat

#

like its just a file that opens cmd

#

it instantly closes for some reason

west elk
#

open cmd and run the start.bat from there. that will show you the error

clear berry
#

yea im doing the same for my server but it keeps console, can you dm a screenshot of the .bat and the folder its in

west elk
#

or add pause at the end

jolly crypt
#

like i cant even get to it

#

it closes instantly

distant crane
#

Do you guys have a good way to delete a world and teleport all players from that world properly ? Everytime i try to delete a world via

Universe.get().removeWorld(worldName)

It works and i can see the world beeing removed for the file system but not When players are inside. When players are inside the world doesnt really get deleted. Any one experience with that?

west elk
median fox
#

Hey can I join anyoneโ€™s world that is public domain r server

#

Iโ€™m new

distant crane
ornate raven
#

how to get eventbus in main class?

main wyvern
#

Hi there! How can I block interaction with plants?
I'm using the block interact event โ€” it blocks every block and plants that were seeded with the Eternal Seed, but not plants from normal seeds.

west elk
ornate raven
#

thanks

keen estuary
#

??

distant crane
livid falcon
#

is there any documentation for "InteractionVars" in the json assets?

dusky bobcat
#

Anyone here good with CustomUIs? Im failing to append a list of strings to my .ui file as labels

low mortar
distant crane
low mortar
#

uhh
should be something like

WorldConfig config = world.getWorldConfig();
InstanceWorldConfig instanceConfig = InstanceWorldConfig.ensureAndGet(worldConfig);
instanceConfig.setRemovalConditions(new WorldEmptyCondition());

pretty sure you can do it in json too

distant crane
#

Ohh thats cool what changes when i do that?

low mortar
#

when there's no players in the world it gets removed (not deleted)

#

and you can set in the world config to delete worlds once they're removed

distant crane
#

Does that mean the world gets automatically deleted when no players are inside?

low mortar
#

it makes sure a player has been in the dimension first, but yes.

#

there's a check for hadPlayer in the instance data

distant crane
#

Intersting. will keep that in mind but in my case the player can decide with a command to delete the world

low mortar
#

well then in the command I would just run that java code - should be fine

#

it'll set that world to delete on removal, and then you InstancesPlugin.exitInstance the players in the world and the system deletes it afterwards.

distant crane
#

Ah ok pretty interesting

oblique barn
#

Is anyone familiar with .ui? im trying to get a outline on a ItemSlot but its not working for some reason
ItemSlot #Slot0 { Anchor: (Width: @SlotSize, Height: @SlotSize); OutlineSize: 10; OutlineColor: #ff0000; }

distant crane
low mortar
#

lots of good reference stuff for the InstancesPlugin in the PortalsPlugin to look at (at least imo).

distant crane
# low mortar lots of good reference stuff for the InstancesPlugin in the PortalsPlugin to lo...
public static void DeleteHideout(PlayerRef playerRef) {
    HytaleLogger.getLogger().atInfo().log("HideoutManager - DeleteHideout - START");
    World playerHideout = Universe.get().getWorld(playerRef.getUuid());
    if (playerHideout == null) return;

    World defaultWorld = Universe.get().getWorld("default");
    if (defaultWorld == null) return;

    var playerRefs = playerHideout.getPlayerRefs();
    if (playerRefs.size() != 0) {
      InstanceWorldConfig instanceConfig = InstanceWorldConfig.ensureAndGet(playerHideout.getWorldConfig());
      instanceConfig.setRemovalConditions(new WorldEmptyCondition());

      for (PlayerRef pRef : playerRefs) {
        HytaleLogger.getLogger().atInfo().log("WorldEvents - OnWorldRemove - DOING - TELEPORTING ACTIVE PLAYER TO DEFAULT WORLD");
        TeleportUtils.TeleportPlayerToWorld(pRef, defaultWorld, new Transform(0, 81, 0));
      }

    } else {
      InstancesPlugin.safeRemoveInstance(playerHideout);
      Universe.get().removeWorld(playerHideout.getName());
    }

    HytaleLogger.getLogger().atInfo().log("HideoutManager - DeleteHideout - FINISH");
  }

I tried this but when the deleteHideout gets executed and players are inside i can see the players are beeing teleported out. I expected after teleported out the world would get deleted or do i have to do something else too ?

umbral mauve
tropic axle
#

Is there a way to change the base permission for commands?

gilded olive
#

Is it possible to create plugins without the Hytale API?

low mortar
#
// add deleteonremove=true to the world config
// add your removal condition...
// if you go to com.hypixel.hytale.builtin.instances.removal you can read the codec builder docs to see how these properties are used. 
// remove the players.
for( PlayerRef ref : playerRefs ) {
    // exitInstance tries to get the return point set by the entity or the world config if it's not present. 
    // you can/should set this when you create the instance.
    InstancesPlugin.exitInstance(playerRef.getReference(),playerRef.getReference().getStore()); // cache the store probably
}
// grab a snack, the world should cleanup on its own. this is how the portal plugin does it afaik.
#

I'd approach it like this

umbral mauve
# tropic axle Is there a way to change the base permission for commands?

You can see this:

Permission System
Setting Permissions

public class MyCommand extends CommandBase {
    public MyCommand() {
        super("mycommand", "description");

        // Explicit permission
        requirePermission("hytale.custom.mycommand");

        // Alternatively, use the helper for standard format
        requirePermission(HytalePermissions.fromCommand("mycommand"));
    }
}

Permission Generation
If no permission is explicitly set, permissions are automatically generated:

System commands: hytale.system.command.<name>
Plugin commands: <plugin.basepermission>.command.<name>
Subcommands: <parent.permission>.<name>

Permission Groups

// Assign to a game mode permission group
setPermissionGroup(GameMode.Adventure);
setPermissionGroup(GameMode.Creative);

// Assign to multiple groups
setPermissionGroups("Adventure", "Creative");

Argument-Level Permissions

private final OptionalArg<PlayerRef> playerArg =
    withOptionalArg("player", "desc", ArgTypes.PLAYER_REF)
        .setPermission("mycommand.target.other");

Checking Permissions
Java
// During command execution
if (context.sender().hasPermission("some.permission")) {
    // Permission granted
}

// Utility method (throws NoPermissionException if permission is denied)
CommandUtil.requirePermission(context.sender(), "some.permission");
distant crane
low mortar
#

I'd prefer to keep assistance to the public forum. I don't wanna be DenverCoder9.

umbral mauve
# distant crane That seems like a good approach could you accept my friend request. Would have s...
public static void DeleteHideout(PlayerRef playerRef) {
    HytaleLogger.getLogger().atInfo().log("HideoutManager - DeleteHideout - START");
    World playerHideout = Universe.get().getWorld(playerRef.getUuid());
    if (playerHideout == null) return;

    World defaultWorld = Universe.get().getWorld("default");
    if (defaultWorld == null) return;

    var playerRefs = playerHideout.getPlayerRefs();

    if (!playerRefs.isEmpty()) {
        InstanceWorldConfig instanceConfig = InstanceWorldConfig.ensureAndGet(playerHideout.getWorldConfig());
        instanceConfig.setRemovalConditions(new WorldEmptyCondition());

        for (PlayerRef pRef : playerRefs) {
            HytaleLogger.getLogger().atInfo().log("Teleporting player " + pRef.getName() + " to default world");
            TeleportUtils.TeleportPlayerToWorld(pRef, defaultWorld, new Transform(0, 81, 0));
        }
    }

    InstancesPlugin.safeRemoveInstance(playerHideout);
    Universe.get().removeWorld(playerHideout.getName());

    HytaleLogger.getLogger().atInfo().log("HideoutManager - DeleteHideout - FINISH");
}
#

I don't know if this work so tell me if it's good

distant crane
#

When you try to do that file system gets locked and the world doesnt get deleted

umbral mauve
#

why you do'nt evacuate all the players before delete the world?

distant crane
#

thats what the deleteHideout is doing the first time you call it it first removes all players, and the second time it then can remove it properly

placid jetty
#

I'm trying to write an NPC action that will take an item from an adjacent chest, I've successfully got it to find the coordinates of one of these chests, but I can't get it to actually take an item from the chest because I can't find a way to access the actual container object just based on world coordinates. I'd assume that it's a block entity of some form but I just cannot figure out how to get from coordinates to container.

It's also entirely possible I'm just thinking about this entirely the wrong way, so tell me if I'm being dumb :P

public class ActionTakeFromNearbyStorage extends ActionBase {
  private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
  protected final int quantity;

  public ActionTakeFromNearbyStorage(@NotNull BuilderActionTakeFromNearbyStorage builder, @Nonnull
  BuilderSupport builderSupport) {
    super(builder);
    this.quantity = builder.getQuantity(builderSupport);
  }

  public boolean execute(
      @Nonnull Ref<EntityStore> ref,
      @Nonnull Role role,
      InfoProvider sensorInfo,
      double dt,
      @Nonnull Store<EntityStore> store
  ) {
    super.execute(ref, role, sensorInfo, dt, store);
    ComponentType<EntityStore, NPCEntity> component = NPCEntity.getComponentType();
    assert component != null;
    NPCEntity npcEntity = store.getComponent(ref, component);
    assert npcEntity != null;

    World world = npcEntity.getWorld();
    assert world != null;

    // Check surrounding blocks
    Vector3i containerPos = findNearbyContainer(npcEntity);
    if (containerPos == null) {
      return false;
    }

    Vector3i npcPos = npcEntity.getOldPosition().toVector3i();
    Holder<ChunkStore> holder = world.getBlockComponentHolder(
        containerPos.x, containerPos.y, containerPos.z
    );
    // Maybe? No idea...

    return false;
  }

  private @Nullable Vector3i findNearbyContainer(NPCEntity npcEntity) {
    World world = npcEntity.getWorld();
    assert world != null;
    Vector3i pos = npcEntity.getOldPosition().toVector3i();

    // Check surrounding blocks
    Vector3i[] directions = {
        new Vector3i(0,0,-1),
        new Vector3i(1,0,0),
        new Vector3i(0, 0, -1),
        new Vector3i(-1, 0, 0)
    };

    // Shuffle order to prevent order of check being predictable
    List<Vector3i> shuffled = Arrays.asList(directions);
    Collections.shuffle(shuffled);
    for (Vector3i dir : shuffled) {
      BlockType type = world.getBlockType(pos.add(dir));
      if (type == null) {continue;}
      String blockID = type.getId();
      if (blockID == null) {continue;}
      if (blockID.equals("container")) {
        return pos.add(dir);
      }
    }
    return null;
  }
}
zealous ginkgo
#

if i have a money system that gives me money killing monsters and mining ores, would i be able to implement the same thing for harvesting crops?

distant crane
zealous ginkgo
umbral mauve
#

so i can confirm this work fine.

placid jetty
umbral mauve
zealous ginkgo
#

sadly im a basic noob with only be able to edit, not write it.

distant crane
low mortar
#

it's the PortalsPlugin built in

zealous ginkgo
#

Honestly dont even know where to start, ive learned slight json modding from scap mechanic and thats bout it

umbral mauve
zealous ginkgo
#

yea thats what im trying to do lol, Theeconomy mod died and its what i use currently for a money system and shop together

placid jetty
zealous ginkgo
#

ill check it out, ive got tons of ideas just cant bring em to life yet

opal bane
#

Dumb Q time : is there a way to change my server's version? like from Pre to release? . was trying to change from pre-release to release, but im getting the following (any help is welcome):

Caused by: java.lang.IllegalArgumentException: Version 4 is newer than expected version 3

finite crane
zealous ginkgo
#

how so? lol

finite crane
# zealous ginkgo how so? lol

Java likes to be annoying. It's one of those programming languages. The specific things that annoy people vary from person to person, but Java is nothing if not good at finding a way to annoy everyone in slightly different ways. If you're lucky you might not run into anything that you find annoying, but be prepared for if you do.

low mortar
#
public class DeleteHideoutCommand extends CommandBase {
    public DeleteHideoutCommand() {
        super("yo_delete_me", "deletes the thing from the thing");
        this.setPermissionGroup(GameMode.Adventure);
    }
    @Override
    protected void executeSync(@Nonnull CommandContext ctx) {
        Ref<EntityStore> pRef = ctx.senderAsPlayerRef();
        Store<EntityStore> store = pRef.getStore();
        World world = store.getExternalData().getWorld();
        WorldConfig worldConfig = world.getWorldConfig();
        InstanceWorldConfig instanceConfig = InstanceWorldConfig.ensureAndGet(worldConfig);
        worldConfig.setDeleteOnRemove(true);
//        instanceConfig.setReturnPoint(); // if you wanna force a return point
        instanceConfig.setRemovalConditions(new WorldEmptyCondition());
        world.getPlayerRefs().stream()
                .map(PlayerRef::getReference)
                .filter(Objects::nonNull)
                .forEach(ref -> InstancesPlugin.exitInstance(ref,store));
    }
}

@distant crane here's my good deed for the day ๐Ÿ˜„ untested of course. but should get the idea across.

dire beacon
#

I'll pay whoever discovers the reason why players on my server are randomly disconnecting, or sometimes the host itself disconnects for no reason.

placid jetty
distant crane
finite crane
terse coral
#

anyone want to make a server with me or smth open to any ideas

low mortar
azure ice
# random briar he might also not register the code ``` protected void setup() { super.s...

could you please check the following, it should be correct. the first part is called during plugin setup. I expect a log on interaction. But I do not get one.


in setup ->
        BuilderCodec<PlayerInteractSystem> build =
            BuilderCodec.builder(PlayerInteractSystem.class, PlayerInteractSystem::new,
                    SimpleBlockInteraction.CODEC)
                .documentation("Handles player block interactions for regeneration areas")
                .build();

        // Register with the interaction codec registry
        plugin.getCodecRegistry(Interaction.CODEC).register(Priority.NORMAL.before(100),
            "harvest-area-protection",           // Unique identifier
            PlayerInteractSystem.class,    // Class type
            build                       // The codec
        );
    }
----

        private class PlayerInteractSystem extends UseBlockInteraction {

            @Override protected void interactWithBlock(@NonNullDecl World world,
                @NonNullDecl CommandBuffer<EntityStore> commandBuffer,
                @NonNullDecl InteractionType type, @NonNullDecl InteractionContext context,
                @NullableDecl ItemStack itemInHand, @NonNullDecl Vector3i targetBlock,
                @NonNullDecl CooldownHandler cooldownHandler) {
                           plugin.getLogger().atInfo()
                        .log("Player interacted with block at " .....

dark pine
#

@random briar hey

How to intercept/block ChangeBlockInteraction and HarvestCropInteraction from a separate plugin?

These two interaction types modify the world directly without firing any ECS events:

  • ChangeBlockInteraction.interactWithBlock() calls chunk.setBlock() directly
  • HarvestCropInteraction.interactWithBlock() calls FarmingUtil.harvest() โ†’ chunk.breakBlock() directly

Neither fires BreakBlockEvent, PlaceBlockEvent, UseBlockEvent, or any other cancellable event.

I've tried:

  • Cancelling PlayerInteractEvent โ€” doesn't stop the chain
  • Calling InteractionManager.clear() from event handlers โ€” chain still executes
  • All available ECS events (UseBlockEvent.Pre, BreakBlockEvent, DamageBlockEvent) โ€” none of them fire for these interactions

I saw a WorldGuard-style approach that overrides simulateInteractWithBlock() and calls interactionManager.cancelChains(chain) from inside the interaction class itself โ€” but how can I do this from a separate plugin without modifying the original interaction classes?

Is there any way to:

  1. Register a custom IInteractionSimulationHandler that can block interactions?
  2. Hook into the interaction pipeline before interactWithBlock() runs?
  3. Override or wrap SimpleBlockInteraction globally?
  4. Monitor and revert block changes after the fact?
azure ice
dark pine
azure ice
#

from harvesting tools? yes same

dark pine
#

Quick_Farming_by_Krynnx-1.4.1?

placid jetty
dark pine
dark pine
finite crane
azure ice
#

github . com/Buuz135/SimpleClaims/blob/main/src/main/java/com/buuz135/simpleclaims/interactions/ClaimUseBlockInteraction.java

#

if you look at this. it should be similar but for some reason it does not trigger the interaction system

azure ice
#

I havent tried. but i expect it to work , its a somewhat popular plugin (62k downloads)

#

and in theory i understand why it should work. but it doesnt. i am not even trying tocancel the chain. just get notified about it

low mortar
#
  "Dependencies": {
    "Hytale:EntityModule": "*",
    "Hytale:InteractionModule": "*"
  }
azure ice
#

"forgot" ? noone told me to ๐Ÿ˜ญ

#

let me trythat ๐Ÿ™‚

dark pine
azure ice
dark pine
#

plugin manager?

azure ice
#

in manifest

dark pine
#

yes

azure ice
#

@low mortar are you familiar with custom components on blocks? I tried making a tile enitity like block with a custom component that ticks and has an inventory. But I couldnt get the inventory to open properly. And when trying to copy the chest and add the custom component there the block was no longer ticking. I think something similar was discussed here previously. (maybe a bug?)
Do you maybe know how to achieve this? e.g. ticking block with custom component that also behaves like a machine /chest with inventory that you can open

low mortar
azure ice
dusky bobcat
#

Anyone here good with custom HUDs?

low mortar
ornate raven
azure ice
dusky bobcat
azure ice
#

Here this was the thread. apperantly it breaks the ticking

ornate raven
dusky bobcat
#

Ya but how do I append a label? ive tried using appendInline and its just throwing an error

#

Also even if I hardcode the labels they are all in the same spot one ontop of eachother

ornate raven
#

builder.append("#MyHud #LabelContainer", "MyLabel1", "Label")
.set("#MyLabel1.Text", "Hello World!");

not %100 sure about the "("#MyHud #LabelContainer", "MyLabel1", "Label")" this part but this should work

dusky bobcat
#

Its Left

ornate raven
# dusky bobcat Its Left

can you try adding anchor to it .set("#MyLabel1.Anchor", "(Height: 20, Bottom: 0)"); not sure how the heights gets added but it should move the label

violet sorrel
#

Hey, does anyone know why they did not add debug points to the jar so that we could see function comments?

broken dragon
#

right so does anyone know how to get some information to properly control setBlock?

public boolean setBlock(int x, int y, int z, int id, @Nonnull BlockType blockType, int rotation, int filler, int settings)

the blockType is actually the name ID of the block, however the int id here is somethiing else entirely. Within BlockType is this

    public static final int DEBUG_MODEL_ID = 3;
    public static final BlockType DEBUG_MODEL;

therefore if you enter 3 here. the block becomes the debug model and not the BlockType. Now, I'm assuming these values are assigned at runtime so HOW do I get the integer ID for a block to use setBlock?

ornate raven
violet sorrel
#

Does someone know the difference between store.addComponent and store.putComponent? Iโ€˜m a bit unsure why these exist at all as far as I understood you should not adapt the store anyway. At least not directly but using commandBuffer

ornate raven
#

if you try addcomponent x that will give a error

#

if you try putcomponent it gonna replace it

#

system.onComponentSet(ref, oldComponent, component, this, commandBuffer);
system.onComponentAdded(ref, component, this, commandBuffer);

violet sorrel
#

So put is for updating a component?

broken dragon
ornate raven
ornate raven
broken dragon
#

yup that was the trick. thank you! it would have taken me another day of scouring to try and find how to get the ID

unkempt minnow
#

Hello! This seems like the right place to ask this.
I've been trying to develop a plug-in for the third person camera and have been running into a couple of bugs.

I wanted to know if there were some workarounds, good ways to report the bugs, or just simply a way to directly modify core code like this.

Bugs:

  • When using the method like this sudo code: SetServerCamera(View.ThirdPerson, false, settings)

    • The method ignores all settings and just applies the default third person view
  • When using the view.Custom setting, the player place/break block and f interactions are never moved from the original position the method was called.

violet sorrel
# ornate raven yes

But is it thread safe? I learned you should use the commandBuffer but for example in a ui event you only get the store can I use put in that case ?

ornate raven
#

but you should able to get the commandbuffer on ui event

dusky bobcat
#

this CustomUi stuffs is driving me nuts

ornate raven
#

offical doc of customui didnt really helped a lot if you compare to other offical ones

dusky bobcat
#

The offical docs are out?

ornate raven
#

not fully

#

problaby in march mid or march end

west elk
#

for the ui file syntax yes

#

hytalemodding,dev/en/docs/official-documentation/custom-ui

ornate raven
#

dani do you know the which blog post

#

they said we going to give a offical doc in 2-3month

west elk
#

modding strategy blog post said that the source code will come a couple months after release

#

they didn't specify a timeline for publishing their gitbook, only "after release"

ornate raven
#

oh right damn i read that wrong i guess i was waiting for a doc like that

dusky bobcat
#

Do you know anything about them adding a way to change descriptions per object meaning I dont want to change the translation for a specific asset rather only for a specific object

west elk
#

No, but that's on the feature request trello already

dusky bobcat
#

amazing. Thanks ๐Ÿ˜„

west elk
#

trello com/c/5FFH00xK

distant crane
#

is there a way to save world templates ?

west elk
#

like instances?

dusky bobcat
distant crane
#

Yea so for example you build a dungeon world or something and then reuse that to create newinstancens

rain rune
#

in onEntityRemove, how can i get the world with these parameters: @Nonnull Ref ref, @Nonnull AddReason reason, @Nonnull Store store, @Nonnull CommandBuffer commandBuffer. I don't know what store type it is so i am stuck here... seems simple i know but i have been at this for hours and my brain is fried

west elk
violet sorrel
rain rune
#

is it a chunk store?

dusky bobcat
west elk
dusky bobcat
#

oh lol my bad ๐Ÿ˜„ thanks

ornate raven
ancient osprey
#

It is possible to know which player has placed a liquid and which blocks, when this liquid expands, belong to that player?

random briar
dusky bobcat
#

Is there agood way to test if my plugin is heavy or not?

random briar
dusky bobcat
random briar
#

hehe not sure how to check if plugins are heavy loaded or not

pale anchor
#

Anyone got recommendations for fixing server lag? I'm hosting on Bisect, only play with 4 players max, and have 8GB of RAM. I also updated the Performance Saver mod to the latest version, but didn't change anything in the config. I don't seem to have any issues personally, but my friends are saying they are getting bad lag spikes even when alone on the server.

fringe herald
raw otter
#

any method to delete last message by player from chat ?

sharp lake
#

anyone know how to get the SwitchActiveSlotEvent??
I cant figure out how to listen to the event its a cancellable Esc event

fluid vault
#

Nope

fringe herald
bright pelican
#

anyone know how I can get NPCEntity component from the world entity list?

if(currentEntity.getClass().getSimpleName() =="Player"){
  System.out.println("IS PLAYER");
}else{
  System.out.println("NOT PLAYER");
  NPCEntity npcComponent =     worldy.getEntityStore().getStore().getComponent(currentEntity.getReference(), NPCEntity.getComponentType());
String npcName = NPCPlugin.get().getName(npcComponent.getRoleIndex());
System.out.println(npcName);
                }```
This is failing for me so far
rain rune
#

What am i doing wrong here. Whjen i use this:

                    WorldTimeResource wrt = world.getEntityStore().getStore().getResource(WorldTimeResource.getResourceType());
                    Instant until = wrt.getGameTime().plus(5, ChronoUnit.SECONDS);

I get the following error:

[2026/02/09 00:16:38 SEVERE]     [BlockTick|P] Failed to pre-tick chunk: com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk@754ef6dd
java.lang.NullPointerException: Cannot read field "requestedGameTime" because "t" is null
    at com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection.lambda$static$0(BlockSection.java:1059)
    at java.base/java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:473)
    at it.unimi.dsi.fastutil.objects.ObjectHeaps.downHeap(ObjectHeaps.java:57)
    at it.unimi.dsi.fastutil.objects.ObjectHeapPriorityQueue.dequeue(ObjectHeapPriorityQueue.java:180)
    at com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection.preTick(BlockSection.java:542)
    at com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk.preTick(BlockChunk.java:463)
    at com.hypixel.hytale.builtin.blocktick.system.ChunkBlockTickSystem$PreTick.tick(ChunkBlockTickSystem.java:47)
    at com.hypixel.hytale.component.system.tick.EntityTickingSystem.doTick(EntityTickingSystem.java:92)
    at com.hypixel.hytale.component.system.tick.EntityTickingSystem.tick(EntityTickingSystem.java:36)
    at com.hypixel.hytale.component.Store.tick(Store.java:1974)
    at com.hypixel.hytale.component.system.tick.ArchetypeTickingSystem.tick(ArchetypeTickingSystem.java:36)
    at com.hypixel.hytale.component.Store.tickInternal(Store.java:1930)
    at com.hypixel.hytale.component.Store.tick(Store.java:1900)
    at com.hypixel.hytale.server.core.universe.world.World.tick(World.java:413)
    at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:89)
    at java.base/java.lang.Thread.run(Thread.java:1474)
sharp lake
bright pelican
#

Anyone know how to convert/cast an entity to NPCentity?

fringe herald
#

in the event data there is SwitchActiveSlotEvent evt; evt.newSlot . This is the new slot. Maybe that helps. If you want to execute code after the event, you can use commandBuffer.run(entityStore -> { /* your code here */});

finite crane
sharp lake
#

also. i dont have that Object

fringe herald
fringe herald
# sharp lake also. i dont have that Object

In your callback from the EntityEventSystem<EntityStore, SwitchActiveSlotEvent> the commandBuffer is passed as parameter:
public void handle(int i, ArchetypeChunk<EntityStore> archetypeChunk, Store<EntityStore> store, CommandBuffer<EntityStore> commandBuffer, SwitchActiveSlotEvent evt)

bright pelican
finite crane
fringe herald
bright pelican
finite crane
bright pelican
#

NPCEntity npcComponent = worldy.getEntityStore().getStore().getComponent(currentEntity.getReference(), NPCEntity.getComponentType());

fringe herald
finite crane
bright pelican
fringe herald
finite crane
sharp lake
#

Its actually for the second hand slot area

#

where you can put torches

stoic swan
#

is there a way to check if a player is mounted on something?

faint void
#

im running into an issue where if handleDataEvent in the custompageUI is called at the same frame that sendUpdate is called, the handleDataEvent never occurs. Has anyone else ran into this issue?

compact shard
#

Does anyone know of any open-source project/mod that uses instances with a specific goal involved, or something like a wave-based dungeon instance?

surreal flame
#

anyone has any clue how i can force an npc to go to a target location? i found several options in the server code but the behaviour tree seems to overwrite it everytime

finite crane
surreal flame
finite crane
pale crest
#

How do i get load order to work correctly? I added it to my optional dependencies as its not needed but it keeps loading before the plugin it needs?

  "OptionalDependencies": {
    "Jemsire:JemPlaceholders": "*"
  },
thorn flume
#

Hey im looking for help with hosting my hytale server. Anyone know about it?
wondering how i get a hosting license for it

stray pasture
thorn flume
stray pasture
#

Oh for auth your getting a 403 forbidden?

thorn flume
#

yea

#

im using the rigfht account that i have purchused the game on

stray pasture
#

Hmm, I don't understand why that would be given you are going through Oauth, and that is a directly link to your account given your signing in.

Should just allow you right in! Unless your using incorrect credentials there is nothing I know or can do to help ya.

Should be "start server: -> Type "/auth device" or something close to that, can't remember ever word -> Click on link provided -> Sign in

thorn flume
#

okay ill ahve to do some more research. im running it off of pterodactyl in my home lab but it doesnt hive much debug other than 403 error forbbiden

stray pasture
thorn flume
#

it auths me than tells me 403 which is indicating licensing issue

thorn flume
#

game manager

stray pasture
low mortar
low mortar
#

if the egg isn't installing, that's a different issue

stray pasture
thorn flume
#

its installed

thorn flume
stray pasture
#

Hmm. Do you see those two files in your file menu? - Or what do you see? I am thinking you had my exact problem.

No matter what I did and tried, I could not for some reason be authenticated by their auth server to get the CLI tool to download the server files.

low mortar
#

you shouldn't need to move anything over manually. the egg installs it for you.

stray pasture
thorn flume
low mortar
#

you don't need auth to download it. just to run it.

#

like, you're not even prompted with auth until after the downloader has ran

thorn flume
#

yea thats where i am

#

it auths me and than give me a 403 error forbbiden

low mortar
#

what gives you 403.

stray pasture
#

Their server manual explicitly states the downloader prompts for auth. - It returns 403 forbidden for me as well.

thorn flume
#

[Pterodactyl Daemon]: Finished pulling Docker container image
Checking for Hytale server update...
2026/02/09 03:51:52 error fetching manifest: could not get signed URL for manifest: could not get signed URL: HTTP status: 403 Forbidden

low mortar
#

your server needs a FQDN

#

that error is a security error, but not because you're not logged in

#

because the server doing the request has bad ssl or is missing a fqdn

stray pasture
merry harbor
#

Hey is there a way to actually make this work i want to make it so it gives the item that the block gives when it breaks is there a way to repair this?


                    if (itemAsset != null) {

                        ItemStack drop = new ItemStack(itemAsset.getId(), 1);

                        player.getInventory()
                                .getCombinedHotbarFirst()
                                .addItemStack(drop);```
stray pasture
vocal kelp
#

has anyone noticed that blocks placed in creative mode when broken it will also drop the block item itself?

#

why is that

crimson mason
#

So is a World just a separate instance running on the same server? Like when you teleport to the first quest area? Or I suppose the dungeons that are still under construction?

crimson mason
#

Thanks, just wanted to make sure my mind was thinking right. lol.

vocal kelp
glad juniper
#

Where are the interaction translations located in the assets?

bright pelican
#

Yeah, I'm hitting the exact same roadblocks as you. Everything with controlling entities becomes imposbile once you start tring to access it via a timer.
I have a strange feeling this might just be the way the code works and we might have to find workarounds for anything timer based... Maybe the command system will be able to do some of the things we can't do in Java easily.

steel island
#

hi everyone,

im having a lot of trouble playing with friends. We have tried hamachi, enable firewall, aternos, and we cant play together. always someone have a troble ยฟany solution? Thx btw

vocal kelp
#

anyone know where the BlockType JSON assets are stored? I'm trying to figure out how to edit them when plugin is loaded

west elk
vocal kelp
fathom dune
balmy sparrow
#

Hello, can someone tell me how I can get access to the types of my costume components in an interaction?

green lava
#

How to fix connecting to a server using via-code, hamachi, joining public servers: failed to connect any avaliable adress the hosy may be offline or behint a strick firewall, An unexpected error occurred

mellow tendon
#

that's not really a thing you fix with code, sounds like you have a network issue

green lava
#

I tried with the firewall, with time synchronization, with the IPv4 setting in the network settings and nothing

fathom dune
# balmy sparrow Hello, can someone tell me how I can get access to the types of my costume compo...

I start my testing by adding a custom interaction in a custom plugin, using one of the existing as reference how to set it up.
The base interaction class seem to give access to a couple of different entities, so trough that you should be able to get the actual player interacting with the target item.
Use the proper store quering for the component types of your costume based on the player info, and do what ever logic you need to do if you find any components of the type.

Would be my guess at least not having the ability to try right now.

The Interaction should then be added to the interaction chain of the type you want to extend at a proper place based on if it should be able to cancel the original interactions or not from what i've understood, but I don't have the insight into have the interaction chain is populated. So this could be the wrong way to go.

If you just want to catch that the interaction happened and do something, I think you could listen for a event instead, then from the event see if you have access to player causing it and can get the components from the store based on that, and do what you need to do, but not sure if thats the right way either.

thick beacon
#

Not sure if this has been asked before but is persistance added so every time i fire up server i dont have to auth?

fathom dune
#

yeah

#

just use encryped so there is less risk of username/password leaking. Otherwise it will be stored in plain text from what i understand it.

thick beacon
fathom dune
#

Could be that you don't have the permissions to create the file where it needs to be stored.

#

Or if you are running in somekind of vm environment that only hold states in memory until closed.

peak shell
#

Hi. I want to ask if there's any preferred way to have per world mods on a server?
I found a mod that seems to do this, but it has a very few downloads so I am not sure I trust it.

west elk
peak shell
frosty void
#

is there a player falling event?

fringe herald
#

What's the way to query the environment for blocks or components? For example, how does the bench recognizes all nearby inventories?

thick beacon
#

Sorry not 100% sure what you mean?

west elk
west elk
#

just mount it into the container

oblique thorn
#

Hello everyone, Iโ€™d like to ask if youโ€™re still experiencing the Forgotten Temple issue when exiting the area. Is it still the same problem? Iโ€™m using the Discord Game Server.

thick beacon
#

Thankyou for trying to help though

west elk
#

then it does it automatically for you

thick beacon
west elk
warm agate
#

quick question, is it possible to build a server plugin that includes a data asset pack that can be viewed in the asset editor, or are the included assets in the resources folder just not visible in the asset editor?

warm agate
fathom dune
west elk
fathom dune
#

As for querying the chunks for blocks there should be other examples in the code that does that.

#

But the majority of cases it is getting access to the world object, and then ask the world for the store of the thing you are looking for, or in a system you could set it up to give you the store for the components you are interested at, at the get go. Depends a bit on where and when you need to access them.

warm agate
ocean lake
#

Why some items in hand don't trigger secondary interaction on blocks?

fathom dune
ocean lake
#

i have Secondary interaction on my custome block to read item in hand and add it to filter list. But some items like Life Essence / metal bars dont trigger any interaction when i click on my block

fringe herald
warm agate
#

my only problem is, right now I don't see any asset packs in the editor, and can't find a newly created item I have as a json file in the resources/Server/Item/... folder, but I can spawn it so it's definitely there. I set the "IncludesAssetPack" to true in the config. Is there anything else I have to configure so it shows up? I'm using the idea hytale plugin project template. Maybe some build configuration stuff? I'm sadly a bit unfamiliar with the java ecosystem

west elk
fathom dune
#

i think...

warm agate
#

oh, do I have to set a specific server version in the manifest? I'm currently on pre-release * also, is there something like "latest" or "any" I can use so I don't get the warning?

ocean lake
fathom dune
ocean lake
#

will try this after work ๐Ÿ™‚ thx

warm agate
warm agate
fathom dune
#

That could sound resonable. Also nice to keep assets in a different depth at times, or if you are multiple people limit the risk that you change break something someone else is working on at the moment, due to source control stuff.

empty wyvern
#

is there anyways to change player movement speed?

fathom dune
#

There is a MovementManager that reads MovementSettings. I bet one of those settings control the players movement speed.

#

yeah looking at the parameters there you see there are for instance BackwardRunSpeedMultiplier
if you then use a tool to search trough the json files in the assets

#

then you see that server/entity/MovementConfig/Default.json sets that value.

#

so by altering those defaults in the json you could probably control all different movement values you might need.

warm agate
#

Oh, that reminds me: @fathom dune is there a way to get all the asset json files instead of overriding them one by one?

warm agate
fathom dune
#

But wait.

granite palm
#

It is possible to block commands from other plugins?

glossy turret
#

For one of my systems I could only find an EntityTickingSystem as a solution. How could I check the impact of it running all the time?

fathom dune
#

you could make a template and state that its a parent to the current item or maybe even to the template object, depending on how they designed it.
Then it would atleast pull the same values into every object. but that would still require a change to each file.

glossy turret
fathom dune
glossy turret
west elk
glossy turret
#

ah, that looks good, thx

plain finch
#

Did anyone test server performance? How much ram it will require to support like 64players(32vs32). Is it possible to not let some chunks be loaded?(For a minigame)

fathom dune
#

sure you would still run the base update but you would atleast filter away your own logic to the duration it would actually need.

glossy turret
fathom dune
#

Yeah. People really sweet to much over things being just updated. It's rarely the big impact if the updates does essentially no work.
It never comes close to multilayered updates of the same items or large performance impact logic in itself.

glossy turret
#

I try to work with block states without using BlockState as it is marked as deprecated, feels really wonky rn

west elk
#

BlockStates are being deprecated in favor of block components, Component<ChunkStore>

fathom dune
#

โค๏ธ

glossy turret
#

yeah I know, I use that. But converting a component on a block to the item stack and vice versa seems not so easy

fathom dune
#

Dani might have seen me rage during the weekend in another channel about objects not being Component enough, so this makes me glad.

glossy turret
#

I handle my own block breaking and block placing to update the components/metadata

#

from reading the decompiled server jar, I saw that the old BlockState is handled everywhere for block placing and destroying but this is lost when using item stack metadata and block components

polar pasture
#

Anyone know a mod that adds a custom sized world border and not just a square or circle ?

fathom dune
#

There is always an issue of knowing what level to break down the components too.

#

The extremist case is that every value type should be a component, and thats a bit to far.
But I do not like components having lots of logic in them, that could have been in a system instead. ๐Ÿ˜„

glossy turret
#

In my case I made it now that my custom block does not drop anything, then in handle the block break event and figure out if the broken block is mine. If so, I add an generate the drop with the relevant component data into the metadata of the itemstack

#

feels like a lot of work just to keep state around

west elk
#

Can totally be the case that components are not 100% feature complete yet and some things can only be done with blockstate for now. I'm not too knowledgeable in that area

glossy turret
#

It feels like it, but having components on blocks feels like the right choice

dark pine
#

@teal briar

fathom dune
#

I would like to create a crafting system that works on a material component level, rather than defined items.

#

It would require a lower level declaration of material properties. But it would increase the crafting freedom a infinite amount.

teal briar
dark pine
teal briar
dark pine
#

?

teal briar
#

I dont know what you mean

granite palm
fathom dune
#

I think he wonders if you are the creator of plotplus.

slim quest
#

hey, how can I get the player as the Player object in an event like PlayerDisconnectEvent that only give you the PlayerRef ? it's for accessing their inventory

warm agate
slim quest
#

no not on this event

fathom dune
#

If there is a disconnect the ordinary player object probably doesn't exist anymore. Since they disconnected, You would probably have to look up how the Player usually read and write to its inventory and replicate that somehow without the player object.

#

wasn't there a guid connecting the player account to the player data so it could be recreated on the next connect?

#

I remember someone talking about it a few days ago

fathom dune
tough ravine
#

There is a guide for how to make a plugin in hytale?

glossy turret
random briar
# slim quest no not on this event

maybe like this?

var playerRef = event.getPlayerRef();
var ref = playerRef.getReference();
var store = ref.getStore();
var player = store.getComponent(ref, Player.getComponentType());
slim quest
random briar
#

not really sure sorry

fathom dune
# slim quest ah yes, but the Player is deleted before the event so it's unusable is there a w...

You will need to use the uuid from the playerref, and via codec or other solution read the player inventory from the file its stored in. (the file name is just the players "{uuid}.json" i think)
then save it again when you've done your changes.

There i LivingEntity codec you could try to make a version of that would just read the player information and the inventory i guess, that might help.
I haven't worked enough with codecs yet to be sure.

glossy turret
finite vault
fathom dune
#

Yeah. Events i would leave to things that needs to react to what happened to something that is not the object itself.

#

Outward communication not internal.

fathom dune
glossy turret
fathom dune
#

Yeah probably in the new item type, aggregated from the relevant properties from the crafting components.

west elk
fathom dune
#

Makes sense there was a existing way to do it.

slim quest
west elk
#

yeah why not? lol

slim quest
#

I will try when I get home

slim quest
west elk
#

only a bit awkward to use because it returns a CompletableFuture

#

since it's an IO operation

fathom dune
#

But you just have to await that right or do you have to do a async callback?

west elk
#

both are valid

fathom dune
#

I am java rusty, so wasn't sure the terms where the same, but thats good.

#

I should take a look trough what stores there are, because that would probably be 99% access to things.

fringe herald
#

Is there a way to have something like getComponentAt(Vector3i targetPos, ComponentType<ChunkStore, Component<ChunkStore>>)?
It seems for it to be usable from within systems, it needs to be thread-safe and therefore use a CommandBuffer<ChunkStore>

glossy turret
fathom dune
#

Yeah util classes are always a good idea to look at. Also if there are any kind of ????Helper class.

warm agate
#

I love that Hytale is so moddable

fathom dune
#

It has potential.

#

The interesting part will be to see if servers start to create larger plugin packs a partials of mods and you start to get a unique verions of things.

clever horizon
#

ChunkUtil has a ton of helper methods for block/chunk positions and dealing with the hierarchy. TargetUtil has all the raycast methods and helpers for spatial queries

fathom dune
#

SpaceStation 14 got the issue that public servers cross copied items, but people didn't have the energy to create the components in code, so they dropped features like crazy.
And then conflicting identical system, like a full detailed body/organs for simulating damage, one body part system for visuals, and one for actual body parts that where loose in the world, that did not interact in any of the others.

#

One server added customizable armor from another, but they didn't have the energy for the custom parts, so that they removed that part of it, and just made every unique variant of optional modules you could attach its own fully craftable item.

#

So instead of one armor with 20 components, you got a list of 20 armors with almost identical names. ๐Ÿ˜„

bitter chasm
#

i added Signature Charges and Signature Energy to my weapon but it wont generate any signature energy, anyone know smth about it?

chilly river
#

Is their anything for more mobs and higher difficulty?

oblique barn
#

I'm trying to reference UI/ItemQualities/Slots/SlotDefault@2x.png in my .ui page but it doesnt show up? anyone know why?

prisma hatch
#

Would anyone happen to know how to overwrite the name of a vanilla block in a mod using the server.lang file?

I'm trying to rename "Green Cloth" to "Dark Green Cloth" using this: "items.Cloth_Block_Wool_Green.name = Dark Green Cloth" line in my modded server.lang file. I have also properly overwritten the original block in the asset editor. Have reloaded the world and the name of the block is unchanged.

dusk vine
#

Hello guys, do you recommend any mods to improve server performance?

devout harness
#

how can I adapt this

ParticleUtil.spawnParticleEffect(
                    "ManaRegenParticles",
                    playerPos,
                    commandBuffer
            );

to take in a specific color as well?

#

I know you can be far more indepth with the command, but I'd like to keep it as short and sweet as possible, just adding a color to this

#
if (manaIsRegenerating) {
            ParticleUtil.spawnParticleEffect(
                    "ManaRegenParticles",
                    playerPos,
                    commandBuffer
            );
        }

        if (lifeIsRegenerating) {
            ParticleUtil.spawnParticleEffect(
                    "QiRegenParticles",
                    playerPos.x,
                    playerPos.y,
                    playerPos.z,
                    0f, 0f, 0f,
                    1f,
                    new com.hypixel.hytale.protocol.Color((byte)80, (byte)200, (byte)120),  // Jade Green #50C878
                    null,
                    objectList,
                    store
            );
        }

        if (soulIsRegenerating) {
            ParticleUtil.spawnParticleEffect(
                    "SoulRegenParticles",
                    playerPos.x,
                    playerPos.y,
                    playerPos.z,
                    0f, 0f, 0f,
                    1f,
                    new com.hypixel.hytale.protocol.Color((byte)180, (byte)140, (byte)255),  // Soft Purple #B48CFF
                    null,
                    objectList,
                    store
            );
        }

        if (spiritIsRegenerating) {
            ParticleUtil.spawnParticleEffect(
                    "SpiritRegenParticles",
                    playerPos.x,
                    playerPos.y,
                    playerPos.z,
                    0f, 0f, 0f,
                    1f,
                    new com.hypixel.hytale.protocol.Color((byte)240, (byte)248, (byte)255),  // Alice Blue / Silver #F0F8FF
                    null,
                    objectList,
                    store
            );
        }
#

I find the mana regeneration one far cleaner than the others, so I'd like to use that one instead, but I can't find a way to add a color to that one

#

or would it be better to use an effectcontroller?

fathom dune
#

If its the function signature that annoys you, why don't register your own util function with the parameters you need just like util does?

devout harness
#

well, it seems that either function requires wildly different parameters, which massively changes what I need to send in

fathom dune
#

As i said, if you look in the actual util function they all end up calling the same function internally.

#

So adding a static class ParticleUtilExt{ ... with a function that takes a the parameters you want should be easy.

glossy turret
modern granite
#

Is there an equivalent to Bukkit.dispatchCommand()?

misty horizon
#

Hi, does anyone here know how to create an asset programmatically? Specifically, I want to create an image (png, Texture) using a mod depending on a command.

misty horizon
modern granite
wild spoke
#

how does one reallocate alot of memory?

fathom dune
#

In Java? I don't even dare to consider it.

wild spoke
#

yeah

oblique barn
#

Im using ItemGridSlot in my page.ui file but the items original tooltip stays of i close the page while hovering, does anyone know why?

wild spoke
#

im on windows and trying to start my server up but it says i need more memory

#

[2026/02/09 15:39:53 SEVERE] [SERR] Reallocate: 131072 to 1179648 thats what it says

prisma hatch
low mortar
#
InstancePlugin.get().spawnInstance(...).thenCompose(world -> {
  ChunkLightingManager manager = world.getChunkLighting();
  LightCalculation calc = manager.getLightCalculation();
  manager.setLightCalculation(new FullBrightLightCalculation(manager, calc));
});

I'm trying to set the lighting of a new instance, this doesn't work. I also can't seem to get the command in game to work either. I don't understand lighting :/ anyone got any tips on forced lighting?

merry harbor
#

how can i get the item dropped of a block? is there something like this?
world.getBlock(bx, by, bz).getDropId()

rain rune
#

There are limitations like i'm pretty sure there is a bug with tilled soil decaying into dry dirt because even in vanilla, it only updates when there is a block update, so i can't figure out a way to make it update consistently, even with a scheduled tick which i also found can break the ticking sometimes when using WorldResources to retrieve the time

slim quest
ocean lake
#

how do u ppl go around detecting main block of multiblock models? lets say that furnace is 2x2 and pos of bottom right block hold state. if u query any other part of this multi block and check state it returns null

clever horizon
merry harbor
clever horizon
#

I don't have a simple example. The general flow would be to:
Get the block type string
Use the BlockType asset map to get the block config
Check if the config has a drop list
If yes use ItemModule.getRandomItemDrops() to get the drops
If no then the item ID is the only drop

wary lion
#

i'm working on a public permissions plugin rn this is all the planned features so far is there anything im missing feature wise? or any ideas you guys have

Extensive in-game Control Panel
Create unlimited groups
Per user permissions
Per group permissions
Per user prefixes and suffixes
Per group prefixes and suffixes
Per server groups & permissions
Per world groups & permissions
Multiple prefixes/suffixes ordered by weight (Example: [A] [Member] Player)
Discord bot hooking (Discord roles syncing)
MySQL, Redis, MongoDB, SQLite, JSON & YML storage options.
Multi server sync using Redis.
-# (You can use Redis for both persistent storage and syncing or you can use another storage method with using Redis for syncing.)
Automatic backups to Locally, FTP/SFTP, Google Drive, Dropbox, MEGA or OneDrive.

fervent lava
fervent lava
amber glen
#

somebody know if on assets editor i can override multiple items at the same time? or need to do one by one

fervent lava
wary lion
# fervent lava Why not use HyperPerms or LuckPerms? both are wildly feature robust and successf...

No real reason tbh I'm making my own simply because I want to, it'll be a public feature rich competitor, I've also been hearing a lot of complaints about bugs with luckperms specifically, i haven't heard much about hyperperms tbh I didn't even know it existed until recently and I have a statistics plugin I want to implement into the plugin (similar to plugin metrics or bstats) I want to track how many servers use my plugin and how many players interacted with them i think it'll be cool to see those statistics

summer silo
#

help guys, ive just add some permission to default group in permission.json, but after server restart or player join, the permission is gone from the list of default group, do anyone know why like this?

fervent lava
#

Majority of bugs with LuckPerms is usage/integration from other plugins IMO but yah

fervent lava
dusky bobcat
#

Hey, anyone know if its possible to take an existing entityEffect and copy the object so that I can alter it then delete it without changing the initial entityEffect?

oblique barn
#

does anyone know how to get rid if item info displays? cus when im hovering an item and close the custom ui the tooltip info of the item doesnt dissapear and it feels like ive tried everything

devout harness
slim quest
#

I have a question, using PlayerRef, does the uuid of a player change everytime he logs on and off ?

wary lion
# fervent lava I get what you mean btw, I'm producing an MMORPG plugin and there's heavy compet...

Iโ€™m going for a fully GUI based permissions system. You can still use commands if you want, but the GUI will be way easier. With Hytaleโ€™s GUI tools, it should feel really intuitive. The plugin will pull a list of permissions from all the plugins you have installed, so adding a permission to a group or a user is as simple as picking one from the list and clicking a few buttons. You can choose things like whether the permission is blocked and what scope it applies to, such as global, server, or world. You can also manually add any permissions that arenโ€™t available or couldnโ€™t be pulled automatically.

vast fulcrum
#

Hi, does anyone know how to show custom text on the item on hover? ( in the UI )

finite crane
fathom dune
vast fulcrum
finite crane
vast fulcrum
#

yikes

keen ibex
#

Ya ui is pretty limited rn

west elk
vast fulcrum
#

ah will take a look, tnx!

#

seem like a lot of work for changing the description though haha

rapid marlin
west elk
fervent lava
dusky bobcat
#

Anyone know how I can change the height at which a player jumps?

golden python
#

Hey, for a plugin idea, I need the frame buffer of the current frame from the player's view/perspective (basically a screenshot). This information might not be available to a server plugin because the client renders everything locally. Since I don't want to discard this idea, I'm currently looking for suitable solutions. Can anyone help me with this or have any ideas where i should take a look at? If it doesn't violate the TOS, I would also be willing to write a hook/modification for the client to get this frame buffer or the screenshot file.

I've already tried using the Machinima camera for this, but it doesn't seem to have any frame buffer data.

west elk
#

check how sethbling made a camera with minecraft command blocks 10 years ago :P

golden python
#

Yes, i looked at that, but i dont think reconstructing the scene/view is the way to go for this plugin. Thanks for the reply anyway.

merry harbor
fiery lodge
#

so i have a custom component on my block. I want to modify the data for a block in a different execution loop (when the player interacts with the block using a custom trigger)

How would i access and modify a component's data for a block?

forest grove
fathom dune
#

I am not sure. Differen attacks and abilities seem to influence the value.

clever horizon
#

If it's too long then you can D M me

#

Not being able to say D M here at all is ridiculous

merry harbor
# clever horizon Post it here and @ me, I'll be able to take a closer look in a few hours

I used naturallyremoveblock cuus idk why it didnt work with destroy blocks and this was the only think i could figure out but idk if this is even how it works

                        AssetMap gathering = assetMap.getAssetMap().get("Gathering");
                        if (gathering.getAssetMap().containsKey("Breaking")) {
                            AssetMap breaking = gathering.getAssetMap().get("Breaking");
                            if (breaking.getAssetMap().containsKey("DropList")) {
                                dropListId = breaking.getAssetMap().get("DropList").toString();
                            }
                        }
                    }

                    BlockHarvestUtils.naturallyRemoveBlock(
                            new Vector3i(bx, by, bz),
                            blockType,
                            0,
                            1,
                            blockType.getId(),
                            dropListId,
                            0,
                            chunkRef,
                            world.getEntityStore().getStore(),
                            world.getChunkStore().getStore()
                    );```
clever horizon
merry harbor
final pulsar
#

How do I change the duration of nights vs. days? Our server is noticing that nights are lasting longer somehow.

dark pine
#

If anyone is interested in ordering a mod, DmmM me.

surreal flame
#

how can i read if the player is attacking?

split vale
#

!kiss Hytale

fleet plover
#

Has anyone used the OpenCustomUIInteraction class and registered interactions with it ? I'm trying to do my first NPC interactions, but I'm not finding any infos on it

clever horizon
oblique copper
#

Need ability to work with item tooltips. RN tooltips based on item desctiptions, and Item itself. But ItemStack can contain custom Metatada what we want to display (e.g. custom tags, modifiers, etc.). Want some API what allow us to modify tooltips (or populate it) with data, without making custom UI.

next axle
next axle
fickle saddle
#

When it comes to updating a mod to the "current version" of Hytale, what must one change? I assume it's manifest related but not sure.

surreal flame
#

is there a generator type like Void without the fog and skybox glitch?

#

it should mainly being used to build isolated arenas

#

so i dont need to generat chunks instead just build the arena there

tepid blade
#

There's a hacking campaign targeting hytale accounts. I urge everyone to verify their account information and ensure that the authentication app is enabled.

wary lion
fickle saddle
vocal kelp
#

Custom components with a CODEC are supposed to persist right? Is there something special you need to do to save them?

shrewd crater
vocal kelp
#

my component is not saving for some reason. `public class PlayerData implements Component<EntityStore>
{
public static ComponentType<EntityStore, PlayerData> component;

public int State;
public String Sss;

public static final BuilderCodec<PlayerData> CODEC = BuilderCodec.builder(PlayerData.class, PlayerData::new)
        .append(
                new KeyedCodec<Integer>("State", Codec.INTEGER),
                (data, value) -> data.State = value,
                (data) -> data.State
        )
        .add()
        .append(
                new KeyedCodec<String>("Sss", Codec.STRING),
                (data, value) -> data.Sss = value,
                (data) -> data.Sss
        )
        .add()
        .build();

public PlayerData()
{

}

@Nullable
@Override
public Component<EntityStore> clone() {
    return new PlayerData();
}

}`

#

Ah I think I figure it out. When I register the component I have to include the CODEC, PlayerData.component = getEntityStoreRegistry().registerComponent(PlayerData.class,"PlayerData", PlayerData.CODEC);

hollow tapir
#

Hello, All, Just wondering if anyone has found a way to implement additional character slots in the left panel of the inventory screen? for example a slot for a jet pack or a third party backpack?

#

Or are the API's not yet exposing that?

finite crane
stray pasture
finite crane
stray pasture
#

Interesting and thats not modifiable via the server UI stuff?

hollow tapir
#

That is incredibly disappointing, I hope that adjust this as being able to add things to character sheet is kind of important. Thanks for the reply

#

what about a way to use a custom HUD and make it accessible when the inventory is open? making it so you could drag items into "Slots" there? Or are custom HUD elements inaccessible when the inventory screen is open ( like a modal?)

quaint citrus
#

Also, can confirm inventory related things are hardcoded

#

The whole UI system is trash atm tbh

#

Your best shot is to recreate the inventory page (which is a ton of work) on the server side, and then cancel the opening of the default one, but there are missing components that are only available on the client so good luck with that.

royal mural
# quaint citrus Huds are not interactable

Well you can interact with a hud by getting click events through interactions (for example, move the position of a hardcoded element when clicking), but you can't attach those events directly to a specific hud element.

quaint citrus
#

Could be a nice workaround, but the inventory also uses a PageOverlay which probably hides the hud element

bold helm
#

has anyone been able to rig a block with a custom use event that opens the user's inventory?

hollow tapir
teal kettle
#

S

mental nova
#

Hello, good morning, I would like help about a server that I want to do but in a vps Linux ubuntu that the server does not appear

finite crane
quaint citrus
summer silo
#

help guys, ive just add some permission to default group in permission.json, but after server restart or player join, the permission is gone from the list of default group, do anyone know why like this?

wicked crow
#

@late breach Hey friend, how's it going? I'm having a lag problem on the Hytale server and there are a few things I'd like to know what Hytale is using so I can optimize it as much as possible. Some KD Tree is at 97% usage, could you help me? I promise I won't take up too much of your time!
@Simon @crimson beacon @Connor @empty island
My server is the largest Hytale server in Brazil, but I'm having this constant lag problem. I believe it's due to the number of players, but knowing that information would help. I have the Spark log and a screenshot showing what KDtree is using.

surreal sky
#

Hello someone please help me before i die of frustration. I am trying to guide a NPC to go to a specific custom block. I have been trying for so long that i am now on my last resort so im here for some coding genius to save me. Does anyone have any idea what apis they'd use to make this happen. I've looked at the NPC guide on the dev website and just cant seem to get mine to do what i want.

I want a zombie npc to spawn and seek a specific block like its their only goal in life. For some reason it just wont f'in work ive tried so many solutions but just want to see how someone else would approach it before i give more context to see if im going crazy and if i approached it the wrong way

distant crane
#

Any 1 knows how to create a world from a template?

ornate raven
fleet lark
#

hey... i believe this is a good channel to ask this. im on linux and my friend is on windows, what file paths do i need to follow to view the world files on linux? if this isnt the correct channel let me know what is

ornate raven
fleet lark
#

yeah kinda like that.

ornate raven
#

i dont see the problem there

fleet lark
#

im just trying to find the world pathing since every time i open the world file through the main menu it fails to find the pathing but it can still open the uorld

ornate raven
#

open hytale launcher in top left here settings icon press that open hytale file location with open directory button then im not %100 sure but linux should be same userdata>saves>worldname>universe>worlds

fleet lark
#

aaaahhhhh its just the main menue that isnt working for me

ornate raven
#

you mean the button gets you wrong place? in-game when you inside world settings world file button?

fleet lark
#

nother question, will the charecter data be saved for the world? or if people have played on said world loose all of their stuff?

ornate raven
#

you can transfer data

#

worldname>universe>players

in there you got all your data

fleet lark
fleet lark
#

yeah, just when i try to follow the pathing that it gives me for the crash the pathing doesnt exist

ornate raven
#

in future updates they problaby can fix it if they see it

fleet lark
#

yeah ill get that sent

#

thank you for your assistance i appreciate it

fervent lava
#

How are you supposed to truly change the nameplate color of an opposing enemy player? is this doable yet?

solemn trellis
#

Iโ€™m making a mod with a custom UI page (InteractiveCustomUIPage) like /prices. How do I do multiple pages / pagination (Next/Prev) in the UI? Like click a button and it shows page 2 / page 3. Whatโ€™s the normal way people do pages in mods? I have a button THAT closes the UI but also ESC works, I cant send or show files if needed im just super lost.. anytime i come to UI I end up into more errors then actually building the damn Mod.. is there a easy way to do UI?

fervent lava
solemn trellis
#

Yeah I have been.

#

its only thing i use and the Sources it gives trouble dev the githubs youtube videos.

#

i Even am using staff from another server i play on which is actually helping a lot

ornate raven
solemn trellis
ornate raven
solemn trellis
distant crane
# ornate raven wtm by from a template

Like lets say i have Dungeon_1 But i want the same dungeon but multiple instances. That would mean i need to create first the World Template like the actual world and the ncreate instances for that world no ?

light schooner
#

Anyone knows why after I override an item it works perfectly until I refresh the server? All the changes are unmade after I rejoin and it's frustrating :/

raw otter
#

there exist InstancesPlugin which can create worlds from .bson files(template)

#

but idk how create these .bson files. Maybe exist special util, I couldn't find

distant crane
#

Yea thats what is confusing me too. I thought maybe i can just use a world folder and create instances of that world or something

#

Also couldnt find .bson informations

solemn trellis
#

anyone got .addEventBinding( examples I keep tryna use som but maven/intellij is reading it as Errors, How do you apply UICommandBuilder updates after a button click in this build?

Do they use:
sendUpdate() only?
sendUpdate(builder)?
openCustomPage(...)?

What event binding type they use for buttons:
Activated
Activating
something else?

ruby zealot
#

hi
how do u add buttons in the chat?
like [Vote] or something like that

fathom dune
#

Like if you are changing the files in build/resource rather than src/resources

alpine drum
#

Making a custom UI thats gonna have a non-set number / set value amount of buttons on it, each button would set that players like prefix ingame.

Basically I'm looking at programmatically creating UI elements and adding them to a parent in java

thorny moat
#

Have anyone experience issues if they say reach 12+ players block delays start kicking in, even though I have 8 CPU Cores running at 200 out 800 % and 32GB memory which only uses about 12GB at the time it starts to get noticeable lag/delays, under 10 players I have no issues with block delays and lag, so just find it so odd what it could be.

alpine drum
#

seemingly the game has some issues with packets as even on my localhost server I have packet issues and am marked as bad connectivity, so I'm guessing that your network or PC fails to send out enough information at the right speeds

thorny moat
leaden mulch
#

Hi, does anyone know of a mod option where the whole world is protected and only becomes buildable via a claim?

alpine drum
leaden mulch
#

Oh sry my bad

alpine drum
#

All g

pliant brook
#

i hope hytale adjusts the placement limit on teleporters. bypassing it using mods can be really stressful sometimes because of the heavy load

midnight panther
#

do any one have server i can play hytale and not be stuck in a lobby or cant hit and pick up stuff

west elk
alpine drum
#

Having issues with .ui files? Players fail to load because of customui

@UseButtonStyle = TextButtonStyle(
    Default: (Background: #8b3a3a, LabelStyle: (FontSize: 11, TextColor: #ffffff, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center)),
    Hovered: (Background: #9b4a4a, LabelStyle: (FontSize: 11, TextColor: #ffffff, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center)),
    Pressed: (Background: #7b2a2a, LabelStyle: (FontSize: 11, TextColor: #ffffff, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center))
);

Group {
    LayoutMode: Center;
    Anchor: (Height: 30);
    Background: #1a2433(0.8);
    TextButton #UseButton {
        Text: "PLACEHOLDER";
        Style: @UseButtonStyle;
    }
}
$C = "../Common.ui";

Group {
    Anchor: (Width: 400, Height: 200);
    Background: #1a1a2e(0.95);
    LayoutMode: Vertical;
    Padding: (Full: 20);

    Label {
       Text: "Prefixes";
    }

    Group {
        LayoutMode: TopScroll;
        Group {
            LayoutMode: Middle;
            Group #Prefix1 {
                LayoutMode: Vertical;
                Padding: (Full: 5);
            }
            Group #Prefix2 {
                LayoutMode: Vertical;
                Padding: (Full: 5);
            }
            Group #Prefix3 {
                LayoutMode: Vertical;
                Padding: (Full: 5);
            }
        }
    }
}
west elk
alpine drum
#

Checked docs, you're right dont know what I didnt pick up on that thank you, -- its "Top"

wary lion
# ruby zealot hi how do u add buttons in the chat? like [Vote] or something like that

I have a plugin called SimpleColor that adds all the typical color codes from minecraft along with support for hex codes, gradients (with unlimited colors + a built in rainbow code), links, formatting codes (bold, italic, underline & monospace) also a lot of developer tools e.g.

player.sendMessage(Message.raw(CC.GREEN + "Success!"));
player.sendMessage(Message.raw(CC.RED + "Error!"));

// Legacy codes
player.sendMessage(CC.translate("&aGreen &cRed &eYellow"));

// Hex colors
player.sendMessage(CC.translate("&#FF5733Orange &#00FFFFCyan"));

// Gradients
player.sendMessage(CC.translate("&#FF0000:0000FFRed to blue"));

// Rainbow
player.sendMessage(CC.translate("&*Rainbow text!"));

// Links
player.sendMessage(CC.translate("&(https://example.com)[Click!]"));

// Combined
player.sendMessage(CC.translate(
    "&aSuccess! &7Visit &(https://example.com)[our site]"
));
fathom dune
#

also does the client produce any error log you can look at? It's usually the quickest way to track down where an error is in the future.

alpine drum
fathom dune
#

windows: %APPDATA%\Hytale\UserData\logs
mac: ~/Library/Application Support/Hytale/UserData/Logs

#

Not saying it would log it, or know if it would log it well, but I hope it logs error properly. ๐Ÿ™‚

full briar
#

Did you try looking at %APPDATA%/Hytale/UserData/Logs for the client logs?

mystic cape
pliant brook
#

is there any update on breeding in the future? dont wanna risk having to put a breeding mod when hytale releases that feature

alpine drum
fathom dune
#

I think they mentioned they want to fix more around animal keeping in general. But no idea when it will happen.

mystic cape
#

Or maybe added them since then?

fathom dune
#

I have only copied a npc so far, not even started debugging.
When i do first step is adding a custom block, spawn the npc and just make it path find to it as one of its states.

#

Should be semi trivial I hope. Since there is already pathfinding to a location.

pliant brook
#

crude arrows are the only arrows for now am right?

bright chasm
pliant brook
full briar
#

...

bright chasm
pliant brook
wary lion
#

2 days and ive finally planned out my permissions plugin i'll be making over the next 2 weeks super feature rich should out perform the current top competitors ๐Ÿ˜„

warm veldt
#

is there a way to display player avatar in UI is there some event or thing which takes it

fringe herald
#

Do items held in hand have meta data or some other way of storage? Can they have components?
I'd like to make a tool that stores information on them, i.e a ruler that keeps track of the where the measurement started or in which mode it is

fathom dune
#

It should reference the same entity or entityid no matter if you have it in your hand or not, and being an entity it should have components.

shell lintel
#

Hey is there any info or date for when provider accounts will again be validated/granted?

I tried to emailing the studio or find any possible info, but no way to reach them.

full briar
#

Excuse me, but I am a bit confused. I bought the Cursebreaker edition of the game, yet I do not seem to be in the Cursebreaker category.
What steps do I need to take to fix that?

full briar
#

@west elk Thank you.

fringe herald
west elk
full briar
#

Correct

west elk
fathom dune
full briar
#

@west elk That fixed it. Thank you for your assistance.

fathom dune
#

No. That was a stupid assumption of me, the itemid is just the defined type it is.

fringe herald
fathom dune
#

yeah. I saw that but could not find a good reference to where the metadata was used, but if you can save and store it, it doesn't really matter.

fringe herald
#

see UseCaptureCrateInteraction.java
It boils down to those 3 lines of code where they capture the NPC in the item and remove the NPC entity from the world :

inventory.getHotbar().replaceItemStackInSlot(activeHotbarSlot, item, itemWithNPC);
commandBuffer.removeEntity(targetEntity, RemoveReason.REMOVE);```
fathom dune
#

Yeah and
CapturedNPCMetadata meta = inHandItemStack.getFromMetadataOrDefault("CapturedEntity", CapturedNPCMetadata.CODEC);
as an example for how to read the specific object, and for what type from the itemStacks metadata.

bright chasm
#

I'm getting weird Couldn't resolve relative path: ../Common.ui in my MyPage.ui for some reason. I've placed ui file inside resources.Common.UI.Custom, in MyPage component I've did uiCommandBuilder.append("MyPage.ui") and for some reason it fails

fathom dune
#

have you written Common.ui anywhere in your files?

bright chasm
#

nah

west elk
slim quest
#

hello, I'm trying serialize/deserialize an ItemContainer, but whatever I try I can't figure out how to get a functional ItemContainer to use on a player after deserializing it always returns null with my current code:

public static byte[] serializeContainer(ItemContainer container) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream out = new DataOutputStream(baos);

        int size = container.getCapacity();
        out.writeInt(size);

        for (int i = 0; i < size; i++) {
            ItemStack stack = container.getItemStack((short) i);

            if (stack == null || stack.isEmpty()) {
                out.writeBoolean(false);
                continue;
            }

            out.writeBoolean(true);
            out.writeUTF(stack.getItem().getId());
            out.writeInt(stack.getQuantity());
        }

        out.close();
        return baos.toByteArray();
    }

    public static ItemContainer deserializeContainer(byte[] data) throws IOException {
        if (data == null || data.length == 0) {
            return null;
        }

        DataInputStream in = new DataInputStream(new ByteArrayInputStream(data));
        int size = in.readInt();

        if (size <= 0) {
            return null;
        }

        ItemContainer container = new SimpleItemContainer((short) size);
        for (int i = 0; i < size; i++) {
            boolean hasItem = in.readBoolean();
            if (!hasItem) {
                continue;
            }
            String itemId = in.readUTF();
            int amount = in.readInt();
            container.setItemStackForSlot((short) i, new ItemStack(itemId, amount));
        }

        return container;
    }
west elk
#

ItemContainer.CODEC.encode, ItemContainer.CODEC.decode

slim quest
#

Ohโ€ฆ

#

Do you have some exemples of use ?

#

Didnโ€™t know you can can do that

west elk
#

What are you trying to do with it?

slim quest
#

Storing it in database

west elk
#

it's responsible for storing player data as json files

slim quest
#

like that ? new DiskPlayerStorageProvider().getPlayerStorage().load(playerRef.getUuid())

west elk
#

no

#

it's just an example of how to use the codec to turn an object into a BsonDocument and back

#

since you asked for an implementation example

slim quest
#

oh okay

west elk
#

if you want to load and store players themselves, you can create your own PlayerStorageProvider and tell the hytale server to use that instead of the DiskPlayerStorageProvider

#

they made it modular for exactly this reason

#

but I thought you only wanted to store individual items in your db

slim quest
#

well if I can store the players directly and load them back up on every log in, it may be better

west elk
#

ok yeah this is exactly what it's intended for then ๐Ÿ‘

#

you'll want to implement PlayerStorageProvider and implement your database logic there

slim quest
#

okay I see but it only have a getPlayerStorage, how do i save a player ?

west elk
#

?

#

What does getPlayerStorage() return?

slim quest
#

null by default, the function return PlayerStorage

west elk
#

So, look at the PlayerStorage interface

slim quest
#

oh okay my bad

west elk
#

it has the save(), load(), remove() functions

#

for the default implementation, it's an inner static class of DiskPlayerStorageProvider

slim quest
#

so in my class that implement PlayerStorageProvider I can use load() to get the data so I can save it in the db and then later I can take that data and use save() ?

west elk
bright chasm
slim quest
west elk
bright chasm
#

So I've got like general question - how do you go about creating mods? I mean like how do you know certain stuff exists in the code and what they actually mean? Like it's just trial and error using certain functions, search for something that contains any word that's connected for what we're building? I have no experience in modding either hytale or minecraft, so far was doing some custom UI and basic camera settings changes

west elk
# bright chasm So I've got like general question - how do you go about creating mods? I mean li...

Yes, for me it's a lot of reading the Hytale source code to learn how and where things are implemented and using that for reference. For example for bloup's question above, I knew that the hytale server config.json has this configuration:

  "PlayerStorage": {
    "Type": "Hytale"
  },

then, i searched for PlayerStorage in the source code and found files like PlayerStorageProvider.java, and DiskPlayerStorageProvider.java. Reading them confirmed that this is the logic required for saving and storing player data in .json files on disk.
Now you can go up the chain to see how these classes are instantiated, how the PlayerStorage is being configured and how to tell the server to use your custom implementation

#

If you are just getting started with modding, I can highly recommend video guides by TroubleDEV and Kaupenjoe on youtube. They give you a great overview of what programming concepts are relevant and how Hytale applies them.

bright chasm
#

yeah, I've been following both of them, also going through hytalemodding and hytale-docs. I understand core basics like inheritance, methods, types, overloading, some basic functions of Java (although I'm only node.js+ts developer) so trying to find a way around all of this stuff

warm agate
#

TroubleDEV on youtube has a few videos about the server architecture and ECS which helps with the theory a bit

#

oh nvm, you guys just wrote about that

bright chasm
#

recently I've been looking inside other mods, how people are building them, what they're using in their functionalities

west elk
#

Yeees source code is always the best way to learn for me as well

bright chasm
#

also found kaupenjoe's repo with gradle tasks to run debug server, helps a bit with testing stuff as I don't have to rerun the server all the time, but in terms of UI unfortunately it seems that I have to reset it anyway to apply changes

west elk
#

both hytale source code (majority of it is made up of plugins as well) and community plugins

warm agate
#

some of you probably are way more familiar with java than I, so I was wondering if java devs actually have to create setters and getters each time as I've seen in the source? Isn't there anything like C#'s automatic properties or a short hand syntax?

west elk
#

I just make everything public, lol
It's more important when you expect others to use your plugin as an api. But when you just write code for yourself, you can take some "shortcuts"

finite crane
quartz plover
west elk
quartz plover
#

The alternative is lombok, which generates getters and setters for you based on annotations

finite crane
quartz plover
#

Or the ultimate solution, kotlin.

west elk
bright chasm
#

yaeh, saw lombok being an alternative, just have to add it to your pom or graddle, intellij plugin and simply decorate with @Data and import to file

warm agate
#

hahaha I hit a nerve, it's all good though, thanks for the info ๐Ÿ˜„

finite crane
quartz plover
finite crane
minor depot
quartz plover
bright chasm
finite crane
warm agate
quartz plover
warm agate
quartz plover
#

There were also talks about carrier classes for non-immutable, record-style classes, but I don't think there's a JEP for that yet

#

That might make things better

minor depot
#

I would expect that is part of project valhalla, right?

warm agate
#

think I'll probably use records for immutable data objects and classes for services / logic then. What's a JEP?

finite crane
quartz plover
minor depot
#

I guess it wouldn't have to be a value class

warm agate
quartz plover
finite crane
warm agate
#

It's what you make of it :p

minor depot
quartz plover
minor depot
#

Cheers

finite crane
quartz plover
#

Which is why kotlin is such a lifesaver

#

You get them automatically generated, and you can refactor quite easily by adding a getter or setter method manually on the field

finite crane
#

Also if the refactor changes behaviour behind the scenes then the public api not changing might be irrelevant because it was using it with respect to how it was doing stuff.

finite crane
minor depot
#

There is also Lombok I guess, which generates getters and setters from annotations.

#

Lombok has some issues though

quartz plover
mellow tendon
minor depot
#

An entire library + IDE plugins, yeah ๐Ÿ˜

quartz plover
#

Fields are basically this: ```kt
val name: Type

You can specify getters like this: ```kt
val name: Type
    get() = otherField.type
``` - but the getter is still there even without the explicit declaration
finite crane
finite crane
quartz plover
#

On the JVM it still does .getName() to access that field

finite crane
quartz plover
#

Also, there are some situations where there are no getters generated iirc

finite crane
quartz plover
#

It is an OOP language ๐Ÿคทโ€โ™‚๏ธ

finite crane
#

small violin

Sadness.

more small violin

quartz plover
finite crane
#

Well, it can't have made inheritance any worse.

finite crane
#

Now a setter for a const, that's different.

warm agate
#

Yeah, then you're a sociopath

finite crane
#

Ugh, I don't know enough about js to make a joke about the js const keyword, but I know one would fit here. Just pretend I did.

quartz plover
#

Understandable

#

Just say "js bad"

finite crane
#

JS is worse than Brain#### and Malbolge.

warm agate
#

NaNNaNNaNNaNNaNNaNNaNaBATMAN

quartz plover
#

Brainf*ck is a great language actually, but perhaps we're going a bit too off-topic

finite crane
#

Brain#### computer hytale mod.

finite crane
hollow apex
#

I miss being able to assign keybinds to the โ€œtickโ€ functions of the systems, that is, the typical conditional that you can do in all graphics engines of โ€œif <key> is pressed {do something}โ€. From what I've seen, you can't do that yet. Is that right?

finite crane
hollow apex
finite crane
high bane
random briar
#

hi all if anyone wonder how to create json "pretty"

    public Gson getGson() {
        return new GsonBuilder().setPrettyPrinting().create();
    }
        try (var writer = getFileWriter("mods/YourMod/config.json")) {
            getGson().toJson(new YourModConfig(ObjectValue, OtherValues), writer);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

it looked messy with just new Gson, with the "new GsonBuilder" can make it "pretty"

copper anchor
#

Couldnt you do this with any moderation mod and console..

compact shard
#

How can I generate a prefab in an instance based on condition X, and also generate a block (like a chest) based on condition Y? Is it possible to use prefab spawner blocks and block spawners conditionally?

copper anchor
#

I have the same mod tbh.. so I know what you are doing lol but my web panel is not compulsory

fathom dune
#

Yeah people are always going to be paranoid about any external third party pulling and pushing data to their servers no matter the context.

copper anchor
#

Its a public mod, I havent opened the web panel yet but its something thats basically done
One of the bigger things is, my mod has server as authoritative and has a service provider which only takes action based on authenticated tasks

#

I assume you use rest API or is it a websocket?

#

Its called ModerationPlus on curseforge

#

I would love to see your mod as well if I can check it out

west elk
#

That doesn't address the concerns. If the panel isn't part of the plugin (or at the very least self-hostable), it's a Backdoor-as-a-Service

copper anchor
#

How well protected is the rest service you have made?

#

What if I get a bot to send 10k requests a min

lusty surge
#

hey, how to make a GUI ?

west elk
copper anchor
#

BTW ducky dont take it personally, I am just asking cause I wanna know how you are doing it ๐Ÿ™‚

#

Since we are in "similar" field

gleaming temple
#

i'll be honest
"We use a websocket to send data to our server"
is a very hard pass for me

but nontheless best of luck with your project

#

not only a possible security issue
but also means: your server goes down, i have a problem
but i'm hosting on a root server which is capable of hosting its own webpanels, so there is also no need for this beeing external sourced

#

still means i loose my panel access
and still: i don't see a benefit of this beeing outsourced instead of self hosted

fathom dune
#

I am just not seeing the value of it, compared to having my own. The size where this would be required is not close to being in scope, since i am not runing company, handling hosting of multiple servers.

final pulsar
#

Does anyone know what code handles tree felling/batch breaking of blocks?

fathom dune
#

And that is for me personally.

#

No its probably useful at some point for people, just personaly i see no need, and i think most people will have no need for quite a while with rapid updates and changes. When the plugins grow larger, and distinct implementations happen for separate servers, seeing running plugins and issues in a central place might be good in those cases.

gleaming temple
#

well as i said: best uf luck to your project

and i'm sure then not your target (;
also sounds like monthly costs (;

clear berry
#

My old pc had like a 16gb Single stick ram, i5 6500, 1060 gpu, is that even worth making into a hytale server? My current pc easily Handles both my hytale Client and server on localhost

#

Current pc is 64gb ram, 7900xtx, 7800x3d

fathom dune
#

should do well as long as it runs as a dedicated server i feel like, specially if you run some slimmed down OS and not much else it shouldn't be an issue "i think"

pale crest
solemn trellis
#

anyone got .addEventBinding( examples I keep tryna use some but maven/intellij is reading it as Errors, How do you apply UICommandBuilder updates after a button click in this build? going off WIKI its giving me RED Errors which will not allow me to package.. using maven Itellj and the wiki but always running into UI problems.

Do they use:
sendUpdate() only?
sendUpdate(builder)?
openCustomPage(...)?

What event binding type they use for buttons:
Activated
Activating
something else?

fathom dune
#

The harder questions is if your computer are exposed to the internet trough your ISP, and routers so it will be accessible remotely. Thats what i often find is the issue when running servers.

fathom dune
raw otter
#

do people make nick with upper and lower case, like 2 peoples with Mike and other acc mike ?

solemn trellis
#

My Ui or Java class?

clever raft
#

Java Class

ripe solar
#

Does anyone know of any good towny plugins? I've tried Towny3D but it's very buggy

solemn trellis
fringe ether
#

is there any performance plugins/software for hytale servers?

quartz plover
#

Nitrado's one seems to have had the most thought going into it

fathom dune
#

Yeah I got that wrong, the resource from the game will overwrite the ones in the project folder, since you can create and modify things trough the ingame tools. Not sure why i assume the inverse.

devout harness
#

how can I get a ComponentAccessor<EntityStore> from a TickableBlockState? the Tick function gives me a ComponentAccessor<ChunkStore>

regal burrow
#

how would you go about preventing builder tools from placing/breaking blocks

west elk
#

oh my bad, i misunderstood. world.getEntityStore()

devout harness
#

I need a commandbuffer for EntityStore, but I have a commandbuffer for Chunkstore, and I wonder if I can go from one to the other

west elk
#

EntityStore.getStore()

#
public class Store<ECS_TYPE> implements ComponentAccessor<ECS_TYPE> {
devout harness
#

ah, that works, thank you :)

regal burrow
#

is there a way to get like selection bounds

clever horizon
#

Item metadata is just arbitrary data you can add to an item, it doesn't influence anything on the client. Dynamic tooltips aren't currently possible.

meager coral
#

Hello, I've just started getting interested in creating mods for Hytale. I wanted to start with a simple player list, but when I try to customize the interface further, I feel limited by the game; simply adding a BackgroundColor to a label causes the plugin to crash.

limber crescent
#

Hi, I'm looking for a mod or plugin that has a command to set the player respawn point.

west elk
compact shard
#

How can I retrieve the mobs that are spawned in my instance so I can track them by ID? How do I create a counter for mobs X and Y? I need a code example via a plugin.

west elk
distant crane
#

whats the best way to share code between plugins ?

west elk
#

dependencies

#

you can make a "library plugin" that contains only your shared logic and have your other plugins depend on it in your manifest.json

distant crane
#

So i create another plugin with only the library and use the jar file

#

in my other plugins is that how it works?

west elk
#

yes. make sure to not bundle that library into the other plugins though

distant crane
#

Interesting thanks!

west elk
#

You can look into how it works for minecraft plugins. there is more documentation for it and the concepts are the same. You only need to mentally replace plugin.yml (spigot) with manifest.json (hytale)

distant crane
#

Btw how do i apply custom components to a world? How do i get the ref to a world?= I already managed to add custom components to player but i need the ref to the world to do the same for the world. How would i get that?

clever horizon
distant crane
#

no i mean actual custom component like custom data attached to the world

clever horizon
#

You would probably use a Resource for that instead of a component

distant crane
#

why is that?

clever horizon
#

Components are attached to a specific entity, not the world itself

#

Resources are attached to a world

#

Or more specifically a store

distant crane
#

oh ok, how would i do that? what exactly is a resource?

clever horizon
#

Take a look at ChunkUnloadingSystem. It uses a resource to keep track of a global timer

#

It's also perfectly valid to store global data completely outside of ECS. Each plugin gets a data folder you can use for anything.

distant crane
#

oh do i create that folder ?

clever horizon
#

My use case is overly complex so it's probably not a great example, but this class loads data on demand and saves it back when the server shuts down: github com/elijahlorden/HyCompumancy/blob/main/src/main/java/me/freznel/compumancy/vm/store/InvocationStore.java

west elk
# distant crane oh do i create that folder ?

It gets created automatically if you save a config file into it via Plugin.withConfig(codec).save(). If you want to save custom files, you probably have to create it with Files.createDirectories(Plugin.dataDirectory) or similar

distant crane
#

Im a bit confused so this is not the store for the world itself? var worldEntityStore = world.getEntityStore();
var worldStore = worldEntityStore.getStore();

west elk
#

it's where components for entities are stored

#

but be aware that components for blocks are stored in the ChunkStore instead

distant crane
#

Ok but the world itself is not an entity which means if i would like to attach custom data to a world its just via resources or custom data file?

#

sadge i hoped there was a way to attach components to the world

west elk
#

What kind of data do you want to attach to the world?

distant crane
#

I have a command /leave hideout but i only want that command to work if the player is inside a specific type of world

#

i hoped i could pass like tags or something to the world but couldnt find a way

#

i wanted to pass information the world at creation time so i can check if it is that type of world

west elk
#

Hm I use the world name to determine what it's used for in my plugin

clever horizon
#

Resources are the ECS way of doing this. Instances use InstanceDataResource to store instance data

compact shard
#

Hello everyone! I just want to create a mob counter for an instance. It would work like this: Generate the instance with some NPCs using prefabs. I want to count the number of NPCs of a certain type in the instance, for example: 2x Skeleton_Minion, 3x Skeleton_Knight. Someone can help me?

distant crane
clever horizon
distant crane
#

do you have a resource i could take a look at? Or an example maybe?

west elk
#

Nice, a world's current time is a resource like this. Check the TimeResource

distant crane
#

Thanks!

#

So Basically i need to create a resource like that and then i have to add the resource to my plugin? And inside the resource how to i differentiate between for example for which world the resource is or how do i add the resource? ( Do I create one resource for one world or do i create one resource for all worlds ? )

Sorry for so many question im new to hytale modding and java itself so there are a few concepts that im not quite sure about

clever horizon
barren fiber
#

there's any list for particles? like in json or smth else

#

and the sounds

clever horizon
fathom dune
west elk
clever horizon
#

Resources don't know which store they're attached to, just like components don't know which entity they're attached to

barren fiber
#

@fathom dune @west elk thanks! that map getter is look good for dummy data thanks

fathom dune
#

Riiiight, java have nothing like var or auto, right, you allways have explicitly declare the type?

ripe mango
#

what does "REMINDER: staged update waiting to be applied" mean, after I updated my Server? (I already solved it)

west elk
fathom dune
#

Ah. Since its a generic i have to specify the type for it to know what its supposed to be.

clever horizon
#

Oh type erasure, how we all hate you.

sacred atlas
#

Did you find a solution to this?

jade rose
#

Any words from the devs on when the docs & source code will be released?

dark pine
#

I'm accepting orders for Mods/Plugins, if you're interested, D. .M me.

wary lion
#

if you find any issues create an issue if you want to fix it or add to the docs create a pull request

marble ravine
#

Any official docs yet?

fading sequoia
#

Not a modder and i dont have a programing expiriance xD so basacly idiot playing the game. Anyone can help me by answering few questions about modding? Its in regards to making world restrictions what can and cant player do

wary lion
# marble ravine Any official docs yet?

not yet unfortunately i think me (check my bio) and hytalemodding have the best current docs my docs are more code driven they have a lot more user friendliness but less examples and actual code

west elk
wary lion
#

when? and where?

west elk
#

yeah: hytalemodding dev/en/docs/official-documentation/custom-ui

wary lion
#

oh :V not really official but cosigned by simon

hushed totem
#

Can we whitelist some domains on this discord ? Surprised hytale domains arenโ€™t allowed here

wary lion
#

oh wait

#

nvm im wrong its 100% official

#

yay some actual official docs

hushed totem
#

Makes it really hard to reference hytale docs

west elk
hushed totem
#

Oh I know. I mean any domain used for support purposes

west elk
#

the npc docs for example were shared as a pdf

hushed totem
#

Like why block it is my question

west elk
#

but yeah maybe they can set up a redirect service for small things like the official docs on hytalemodding

wary lion
#

so sick that they're providing official documentation finally but they need to put it on the actual hytale site ngl they 100% need to make a javadocs page that would be so helpful for a lot of people

west elk
#

javadocs will come with the source code release

wary lion
#

i havent kept up with the recent updates but im wondering when that will actually happen

#

i'm just getting caught up with the current changes

west elk
wary lion
#

oh okay sick i wasn't sure if that was changed so thats actually not that far away

#

awesome

jade rose
#

Thanks! ๐Ÿ™‚

wary lion
#

i have some plans for when they release the source its gonna be sick i can't wait i really want to fork the server jar purely because how mad the PlayerChatEvent and how the message system worked

#

i hate the formatter system

west elk
#

keep in mind "shared source" does not mean "open source". We don't know what type of license they plan on using for it, but there's a chance it might restrict reuse

rain rune
#

We can only play one animation at a time right?

#

And blockbench doesn't allow for multiple animations baked into one either does it?

granite palm
#

Is there any way to prevent "Invalid teleport" from crashing the client in very specific situations, such as when trying to teleport a player who has the respawn screen active?

west elk
hushed totem
#

Iโ€™ve been extremely impressed at the current state of hytale in an early release phase. Big shout out to all the developers that poured hours and hours of their sweat and tears ๐Ÿ™‚ The launched API is fantastic. Love the command system and UI

calm birch
devout harness
#

is it possible to build your plugin to keep it editable from within the game? like making it a folder instead?

finite crane
wary lion
sacred atlas
#

Did you fix this?

ornate raven
#

are you having the same issue

sacred atlas
#

I am, yes

ornate raven
#

never tried on huds but can you try with diagnostics mode

sacred atlas
#

No idea what that is

ornate raven
#

go to settings in general bottom there diagnostics mode it can give you .ui errors or other things related to customui / hud to fix it

#

theres a console opens too i think you can log something to that but never saw someone use it

sacred atlas
#

Didn't open a console

#

Didn't appear to do.. anything

ornate raven
#

ohhh mb

misty horizon
#

Hi, can I check in a mod if an Asset exists (at all)? Ideally I can check if its the right type (texture, png)

ornate raven
#

i got the problem wrong i thought you making the hud and something doesnt work thats problaby you need crash log to solve it from some users

sacred atlas
#

Client never crashes, server says client disconnected due to crash
Crash occurs when player enters ancient gateway, any player

ornate raven
#

so no crash log

sacred atlas
#

Right

west elk
#

if the world crashes, the stacktrace is in the server log

sacred atlas
#

World remains uncrashed

west elk
#

the main world or the forgotten temple world?

sacred atlas
#

The server remains up with other players active

west elk
#

I didn't say the server crashes

sacred atlas
#

Whoever enters the ancient gateway gets blackscreen, never crashes

west elk
#

i said the world thread crashes

#

in hytale, every world runs on it's own thread

#

so one world can crash and everything else can continue running

ornate raven
sacred atlas
#

Buffer Cache Report
Total Cache Buffer Requests: 1656
Missed Cache Buffer Requests: 1656
Missed/Total Ratio: 100.0%

misty horizon
ornate raven
#

did i get wrong or you saying you searched wrong

misty horizon
#

I searched wrong was what I wanted to say, sorry. But for me theres no AssetManager in HytaleServer?

#

am using 2026.01.28-87d03be09

ornate raven
#

really? lemme check i might be gived you wrong i just copied from a project the get from but