#server-plugins-read-only
1 messages · Page 90 of 1
Hope you enjoy our services! Reach out to the BisectHosting support if you need anything 💙
Has anybody figured out how to trigger technical blocks such as the prefab spawner? have not yet fully gotten into the serverside but was wondering if anybody figured it out before i try
Currently it just exists and does nothing
Why my item does not appear in game? Maybe I created json in wrong directory? Should folder structure (Server, Common) created next to manifest.json? Or I am missing something? I little bit confused 🥴
Ok that was because I'm trying to manually create the item, that's bad, instead we can use the generateItemDrop, that function do all the basic works
Holder<EntityStore> holder =
ItemComponent.generateItemDrop(
store,
stack,
spawnPos,
Vector3f.ZERO,
0f, 3.25f, 0f
);
don't they trigger on world gen?
good on you for sharing the solution! (I'll probably end up doing that sooner or later so it will be useful)
Thats possible, i was thinking of using them to generate structures while the world is loaded in
so i think that's out of the question then
I know several situations where they fail to trigger tho, it's really funny. I think I have a block spawner on my own server and multiple structure spawners on another server
afaik those are already reported bugs so we can laugh about them
yeah i've seen a lot of people say the reported it so i would think so
Do I need to edit pom.xml to make it working?
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>manifest.json</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
i guess that would require me to generate a new world for each iteration of my structures, and move everyone over to the other world before shutting down the old one?
that seems like the only way then
sounds painful
guys please how to get entity id?
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
this is enough, <includes> will potentially prevent your assets from being appended to the jar
why do you need entity id?
ServerCameraSettings settings = new ServerCameraSettings();
settings.attachedToEntityId = ???
settings.distance = 10.0f; // Zoom distance from player
settings.isFirstPerson = false; // Third-person mode
settings.positionLerpSpeed = 0.2f; // Smooth camera follow
pref.getPacketHandler().writeNoCache(
new SetServerCamera(ClientCameraView.Custom, true, settings)
);
im exploring this thing
this settings.attachedToEntityId
oh it is
thank you
let us know how it looks and goes, I'm curious
having control over the camera is something minecraft brain is finding hard to accept lol
How can I add a custom permission to my command so only OPs or players with a specific permission node can use it?
guys im having a trouble with my server because of dependencies, is there someone to help me config that? im totally noob on this and i dont understand the log
you should be able to add a permission node in super() of command class you're extending
if not, there's likely a method for it in the base command class
Guys is there any plugin for a HG server like it was in mcpvp for mine?
i dont have ide open rn so cannnot confirm
okay
I'm trying to create my first .jar mod to record a video, and I've done almost everything, but I'm having problems with the final code in IntelliJ. Is there any experienced developer or modder willing to help me solve these code errors? I'll give credit in the video.
don't ask to ask, noone knows everything at this point. best you can do is share the code here or on github and we can look at it
Okay, thanks friend. I'm trying to create a mod inspired by the Solo Leveling mechanic of transforming dead mobs into allies like a necromancer, but I'm running into some problems with the mechanics. Would you like to take a look at the code?
public void register(EventRegistry eventBus) {
try {
eventBus.register(BreakBlockEvent.class, this::onBreak);
LOGGER.at(Level.INFO).log("Registered BreakBlockEvent listener");
} catch (Exception e) {
LOGGER.at(Level.WARNING).withCause(e).log("Failed to register BreakBlockEvent");
}
}
private void onBreak(BreakBlockEvent event) {
LOGGER.at(Level.INFO).log("test");
}```
what am I doing wrong? the event is registered cuz everything logs fine but the listener just won't work
block break is ecs event, you need a system for it
Does someone know how to async run something x number of times with y delay between every run
ScheduledFuture<?> repeatingTask = HytaleServer.SCHEDULED_EXECUTOR.scheduleWithFixedDelay(
() -> {
run your code
},
10, 10, TimeUnit.SECONDS
);
for global executor
okay this is so confusing. I think i can figure it out by myself now, thanks
Are you referring to “interactions”?
or if you don't want the delay at the start: use scheduleAtFixedRate
I want something to run on a world x number of times
basically you need a new class liek this
public class BlockBreakSystem extends EntityEventSystem<EntityStore, BreakBlockEvent> {
public BlockBreakSystem() {
super(BreakBlockEvent.class);
}
public void handle(int index, @Nonnull ArchetypeChunk<EntityStore> chunk, @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> commandBuffer, @Nonnull BreakBlockEvent event) {
// your logic here
}
}
I have a problem with excessive RAM consumption on the server, even when there are no people on it 🙁
I teleport player to other world by code and always get error Incorrect teleportId - how to fix it ?
no you do not. java will use as much memory as you tell it via -Xmx startup param
then I would just execute on the world in that world.execute
it's a misunderstanding on how java memory allocation and management works
@mellow tendon Do you know how a system for an event would work when a player opens a chest?
I think it's UseBlockEvent
but doesnt this run infinitely?
you cannot teleport between worlds, you need to use Universe.get() methods to move players between worlds as each world is on a separate thread
UseBlockEvent intead of BreakBlockEvent iirc
I've tried it and it doesn't work.
i use this java -Xms4G -Xmx10G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:ActiveProcessorCount=6 -Dhytale.auth.storage.plaintext=true -jar HytaleServer.jar --assets Assets.zip
world.execute will run until the task inside it is completed
i try
you can add checks to your runnable to only run it so many times
then it will use up to 10gb of memory + around 2gb ovrhead for java itself
Do you have an example for it ?
add a return if it is the case?
your ide should autocomplete the methods on Universe.get()
Universe.get().getWorld(fromWorld).removePlayer();
Universe.get().getWorld(toWorld).addPlayer();
Like this huh
Another problem I have is that I can't get it to save my session, so I don't have to log into my account every time I restart the server.
ScheduledFuture is just the java class itself, you can cancel it
guyss, do u guys know why is my bettermap isnt working? i cant put a mark on my map and i cant open the menu. is there any solution?
sounds like a question to whoever made bettermap
possibly a bug report aswell
gra ktos z polski jesli tak to pv
du know whats mobs are if player is Player? are they NPCEntity?
How can i fix it?
2026-01-20 15:38:18.4171|INFO|HytaleClient.Networking.PacketHandler|Disconnecting with error during stage InGame: Failed to apply CustomUI HUD commands
2026-01-20 15:38:18.4171|INFO|HytaleClient.Networking.PacketHandler|System.Exception: Could not find document Hud/MyUI.ui for Custom UI Append command. Selector: System.Exception: Could not find document Hud/MyUI.ui for Custom UI Append command. Selector:
resources/Common/UI/Custom/Hud/MyUI.ui
I just took a look at TeleportWorldCommand.class from Hytale, they still use Teleport for teleport between worlds
Can anyone help me how to upload mods to the server which are not .jar files, how to upload those mods which are in .zip format
is it possible to spawn instances of a preset world?
like i have a world like myPreset and i need to spawn 3 instances so i have presetWorld1 presetWorld2 presetWorld3
Did you create a right directory or a package, I met this problem before and re-created the directory
New > Directory > Common/UI/Custom/Hud
has anyone figured out how to animate blocks through plugins?
or is it only possible with keyframes in blockbench?
Can anyone help me how to upload mods to the server which are not .jar files, how to upload those mods which are in .zip format
send me a PM and i'll help you
In general settings run diagnostic mode
see request
Hello, may I ask if there is a configuration or someone who can disable the option that when someone connects to the server, it does not display their nickname and they connect to the default, and when they teleport to another dimension, it does not display anything at all? I would just like to modify it so that when someone connects to the server, for example, [+] nickname connected [-] nickname disconnected.
Did you find where to use this?
@shut cosmos ive sent you a friend request in regards of the custom cam.
I known how to do F press to intreract 😄
anyone know how can i fix "Failed to load CustomUI documents"
In general settings run diagnostic mode
Pray the god of this terrible ui system 😂
thanks
I am running a Hytale server on a Pterodactyl panel (Linux/Docker environment, Java 25). I am facing an issue where the server fails to persist the authentication session.
Every time I restart the server, I am forced to re-enter the OAuth device code (/auth login device).
The Error: The console logs show the following warning during the auth process: [EncryptedAuthCredentialStore] Cannot save credentials - no encryption key available And finally: Credentials saved using: Encrypted
HyUI helps a lot
And in manifest "IncludesAssetPack": true,
yeah it was .ui syntax issue
true !
hey man
🇧🇷 Bom dia pessoal, queria uma ajuda em um mapa que estou criando.
Algum de vocês saberia se é possível fazer um trigger para o player (bloco invisível ou hitbox) fazendo ele ativar uma câmera fixa ou alguma interação como alguma particular?
🇺🇸 Good morning everyone, I need some help with a map I'm creating. Does anyone know if it's possible to trigger the player (an invisible block or hitbox) to activate a fixed camera or some other interaction, like a special feature?
If you dont known how doto something in the UI you can check the Assets.zip there you have lot examples xD
anyone knows how to replicate de swapt player model from creative menu, but with code? any function that does that?
Is it currently posible to add settings for keybinds to the user settings page?
can you accept me in private i have a short question, if you don't mind
I don't do dms, you can ask here if it's not deeply personal
i need if somebody can check if my plugin will work
i can
i will send dm
how do i bounce an entity?, like player to make they seems like jump?
Is it possible to listen to Primary interactions (attack) and modify them, make it slower (including animations)?
oh okay, i studied C, and i have knowledge of OOP from school, so i am not a complete programming beginner, but i want to make something good in hytale, a minigame network, what do you think i should do, i know java to some degree, i did make some plugins for mc couple years ago, but now for this it's ecs and all that, what do you think is the roadmap for me, to make something more complex like what i said ?
how can i:
- copy a world
- use it for a bit (for a minigame)
- delete it after the minigame is done
generally with hytale you need to forget what you know with OOP, it's all about ECS (entity component system) here. Educate yourself on how this works, it's not that hard to comprehend when you spend a little while hacking at it and understanding it, there's a nice video from TroubleDEV (not me, another Trouble) that explains ecs.
There is never a "roadmap", don't buy into that, you will waste a lot of time. All you need is the basics and the parts you need for what you're doing currently. In time the knowledge will sum up into fuller picture
Probably need to set permissions for hytale to write it to the environment. Not sure tho
well, let me expand a little bit, there is A roamap, not THE roadmap. You make one depending on what your goal is. You want to add a new mob? then you only need to know how to do that, you don't need to handle items, worldgen, etc
that's the approach I've always taken
Is there a move event that i can use? I want to react on movement of a player
YEP. i just found out right now by digging through the games source code for a long time 😭 it's very easy. do you have a server.lang file already setup?
Install the HyFixes mod from curseforge
Anyone wanna start an hytale SMP for the heck for it?
i need someone that can verify the functionality of my code or modify it a little
verify the functionality of my code
run the mod yourself in a test world and you will see if it works
you'll even get nice stacktraces if it doesn't!
its possible remove recipe from the game using plugin?
is there a guide on how to do optional arguments for commands?
thanks, so if i never made a minigame i need to cut it into smaller parts and learn that way, for example the commands part, the item giving, and all those small things, i will try my best
private final OptionalArg<String> durationArg;
this.durationArg = this.withOptionalArg("duration", "Mute duration [I, H, D, M, Y] - Blank = Permanent", ArgTypes.STRING);
in game usage would be like --duration=<input>
you have to use the dashes?
yes
How to teleport between worlds
I don't, mind if i dm you?
is there a BukkitRunnable equivalent? CompletableFuture exists, but I want something that will run synchronously + globally
ideally with a delay between executions
sure thing
yep. seems like you got it. good luck!
thanks 🙂
Thanks for ur message, now i found, what ecs means, never heard of it 
ey, do you know a good documentation for World Generation ? : )
What is the name of the event that occurs when you log into the server?
how do i get player entity object with the player uuid?
PlayerConnectEvent
Thanks
Good morning, I need help.
Yesterday I paid the hytale and it's been more than 18 hours and it doesn't confirm the payment I make. I want to play, help me
hi all maybe not the right place, but has anyone gotten a "Disconnecting QuicConnectionAddress with the message: Invalid skin! Invalid eye attachment!" error on the server side? i can login to other servers fine, but not my own on a dedicated PC on my local network
Does anyone know how to add a custom sound for playback?
update the assets and jar file on your server to latest
SoundUtil is the base
Yes, I understand. I'm trying, but it's not working. I put my custom sound in the assets, but it can't find it
You have to define a sound json
Does someone know how to run something on a world thread x amount of times with a delay between each run
How can I teleport a player from one world to another?
did anyone used sqlite-jdbc
How can I teleport players between worlds for example default lobby world > arena?
I think you have to delete them from their current one and add them to the one you want
In a plugin, can i register my own i18n keys, or do I have to make that a client mod?
there is no client mods. you just attach the asset pack to the mod
It is possible that the server does not remember the player's last position and that every time they log in, it sends them to the spawn point?
Is there a good way of prototyping .ui files? I seem to suck at them 😄
hytale,ellie,au/ if you mean making them maybe this could help
Asking again here since the other discussion moves quickly, but I have a question for modders:
- If I wanted to make a mod that allowed players to place their own NPC vendor (like the ones in the Forgotten Temple), set pricing and be able to configure its inventory / manually supply/resupply it, would that be a pack or a plugin?
- If plugin, what resources would you suggest for someone to begin learning java?
Is it possible to create subdirectories for custom configs? It looks like I could just supply a path to withConfig, but unsure if this is stable/officially supported
Where are the UI fields that I can use for a CustomUI? I need a Dropdown and a TextField object.
Does anyone know how i can make a UI like the workbench with categories up top but instead of the crafting menu to have my own UI?
Tried to mess with the workbench asset but can't figure out how to make a block open something like that in my plugin, or how to handle events from it.
Also to have the player's inventory open like when inside a workbench, thanks!
Hello! Is it possible to make a Hytale mod now? If so, how? If not, what should I prepare until tools are available?
You can start with the Asset Editor ingame
if you wanna make a mod you dont really need a tool you just need hytale there asset editor ingame for mod making
there few not handmade but still better than nothing ai docs for it
hi Im trying to reduce a item durability but I didnt find correct method for that
where the fck is any block break event with player in it
.withIncreasedDurability just create new itemstack for item
All structures in my adventure world now only appear with "Block Spawner", is there any fix to it or do I need to create a new world? Since i have no more chests spawning
com\hypixel\hytale\server\core\event\events\ecs\BreakBlockEvent.class
doesnt have player
com\hypixel\hytale\protocol\BlockBreaking.class does this have
public void handle(int i, @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk, @NonNullDecl Store<EntityStore> store,
@NonNullDecl CommandBuffer<EntityStore> commandBuffer, @NonNullDecl BreakBlockEvent breakBlockEvent) {
//FOR TESTING PURPOSES ONLY
Ref<EntityStore> ref = archetypeChunk.getReferenceTo(i);
Player player = store.getComponent(ref,Player.getComponentType());}
I was having the same issue of people being timed out on connecting. I believe I fixed it by adding parameters to the config for "InitialTimeout" and "AuthTimeout". From what I could assertain Hytale only allows for ~10 seconds to connect and after it auto boots, so I added the following to my "ConnectionTimeouts" in the config.json
"ConnectionTimeouts": {
"InitialTimeout": "PT30S",
"AuthTimeout": "PT60S",
"JoinTimeouts": {}
},
Hopefully that helps you (and the many others having the same issue).
honestly, no idea
its not really used like
public void onBlockBreak(BreakBlockEvent event) {}
so what do i have to extend?
EntityTickingSystem<EntityStore> or what
Can I add an image over an existing colored button, keeping functionality?
Have you fiddled with entity creation? I am trying to create a static entity, sort of a projectile, however I cannot wrap my head around assigning a custom model to that entity
public class BlockBreakListener extends BlackboardSystems.BreakBlockEventSystem {
@Override
public void handle(int index, @NotNull ArchetypeChunk<EntityStore> archetypeChunk, @NotNull Store<EntityStore> store, @NotNull CommandBuffer<EntityStore> commandBuffer, @NotNull BreakBlockEvent event) {
super.handle(index, archetypeChunk, store, commandBuffer, event);
}
}
i guess its it
hmm I use the ecs event for break block(hytalemodding [dot] dev/en/docs/guides/plugin/creating-events#ecs-event-classes) I dont know other wise
Would be a plugin
The best bet is to start with the basics, don’t try to go for a plugin right away just get your Java environment set up be able to run a main method.
From there, YouTube is usually the best for people to follow along - also learn to read theough GitHub repos to reference how other people do things
Bless and thank you.
Bump, If anyone by any chance could help my buddy that be great thankyou ^_^
How do I install Violet Wardrobe etc? Do I unzip it and put it in mods?
just put in mods dont unzip
Ah ok thx
N||ice||
How can I inspect the JAR to see if my code works properly? I think I set up my project correctly but I am getting nothing in logs. Do I have to do anything special to mark my main function apart from Manifest.json?
It could also be because I am using Kotlin but everything seems to compile fine and I was under the impression both compiled into the java IR
Hi guys im trying to create new UI and i dunno what i have wrong.. it keeps kicking me off server and saying "Could not find document TutorialPage.ui for Custom UI append command. Selector: "
I have "IncludesAssetPack": true
and
tasks.jar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from("src/main/resources")
}
and UI in resources/Common/UI/Custom/TutorialPage.ui
@Override
public void build(UICommandBuilder uiCommandBuilder) {
uiCommandBuilder.append("TutorialPage.ui");
}
Whats the best permission plugin to use? Is LuckPerms good to use atm?
yes, it's perfect for me.
luckperms is best for mc so i assume its best for hytale
Nice
oh I see, I get errors in the log. ok
open diagnostic mode in settings rejoin
Missing the enderpearl? Missing that frenetic PvP or crazy exploration? Install the mod VoidPearl! URL: curseforge com/hytale/mods/voidpearl
how do i get the entire inventory of the player like minecraft? because backpack stuff i cannot like save them
is this the best way to add luckperms support as a shiv?
/**
* LuckPerms-backed permissions using the standard LP API,
* which also works on Hytale (per the LP Hytale docs).
*/
public final class LuckPermsPermissionService implements PermissionService {
private final WorldManagerPlugin plugin;
private final LuckPerms luckPerms;
private final ContextManager contextManager;
public LuckPermsPermissionService(WorldManagerPlugin plugin) {
this.plugin = plugin;
this.luckPerms = resolveLuckPerms();
this.contextManager = (luckPerms != null) ? luckPerms.getContextManager() : null;
}
private LuckPerms resolveLuckPerms() {
try {
return net.luckperms.api.LuckPermsProvider.get();
} catch (Exception e) {
plugin.getLogger().at(Level.WARNING).log("[WorldManager] Failed to get LuckPerms instance: " + e.getMessage());
return null;
}
}
@Override
public boolean hasPermission(Player player, String node) {
if (player == null || luckPerms == null) {
return false;
}
// Hytale Player exposes a UUID; use that to look up the LP user.
java.util.UUID uuid = player.getUuid();
User user = luckPerms.getUserManager().getUser(uuid);
if (user == null) {
return false;
}
QueryOptions queryOptions = contextManager.getQueryOptions(user)
.orElseGet(() -> luckPerms.getContextManager().getStaticQueryOptions());
return user.getCachedData()
.getPermissionData(queryOptions)
.checkPermission(node)
.asBoolean();
}
}
Hi, does anyone know if there's a spawn protection plugin that also blocks interactions? (e.g. not being able to collect stones, etc.) I've tried two and they don't block this
I think HyGuilds does. Their claiming system.
Hi, I have a question.
How can I increase item stack sizes?
Is it possible to do this on a server side, or only through a mod?
If yes, how do I properly set it up on a server?
Thanks 🙏
From what I've seen only through mod.
hmm i decompiled it now.
I think this isnt in server.jar as sutch its handled by the client itself isnt it or am i wrong?
i see maybe you can trigger it from server when you got something. But not quite sure jet if client category is also directly downloaded by the client when you put it in the server itsel as mod.
a lot of things are defined via assets that you can attach to mods
ah oke was wondering if thats somethign i have to look into next
public class CameraPlugin extends JavaPlugin {
private static final String CODEC_CAMERA_SHAKE = "CameraShake";
public CameraPlugin(@Nonnull JavaPluginInit init) {
super(init);
}
protected void setup() {
AssetRegistry assetRegistry = this.getAssetRegistry();
this.getCodecRegistry(CameraEffect.CODEC).register("CameraShake", CameraShakeEffect.class, CameraShakeEffect.CODEC);
this.getCodecRegistry(Interaction.CODEC).register("CameraShake", CameraShakeInteraction.class, CameraShakeInteraction.CODEC);
assetRegistry.register(((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(String.class, CameraShake.class, new IndexedAssetMap()).loadsBefore(new Class[]{CameraEffect.class})).setCodec(CameraShake.CODEC)).setPath("Camera/CameraShake")).setKeyFunction(CameraShake::getId)).setReplaceOnRemove(CameraShake::new)).setPacketGenerator(new CameraShakePacketGenerator()).build());
assetRegistry.register(((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(MovementType.class, ViewBobbing.class, new DefaultAssetMap()).setCodec(ViewBobbing.CODEC)).setPath("Camera/ViewBobbing")).setKeyFunction(ViewBobbing::getId)).setPacketGenerator(new ViewBobbingPacketGenerator()).build());
this.getCommandRegistry().registerCommand(new CameraEffectCommand());
this.getEntityStoreRegistry().registerSystem(new CameraEffectSystem());
}
}
as you can see, it mostly handles setting uphandlers for effects :/
hi How can I return the game?
With the camera plugin would it be possible to trigger cutscenes when entering a custom region?
@steep thicket probably next way to go then
i guess you could make a view bobbing/camera effect that would offset the camera location permenantly to a top down view sort of thing? but that is a bandade solution
no clue, but definitely not on a modding related discord channel
anyone know on the DamageEventSystem how to get the attacking PlayerRef and the victims PlayerRef?
could look into it and see if there is somethin i could use
lol
🔔 Torre Hyatle | Reclutamiento abierto
Buscamos Builders, Programadores y Modders para el server.
Si quieres formar parte de un proyecto en crecimiento, escríbenos por MD. 🚀
someone can't follow the rules
how can i get player's ping
the issue was, that server needed restart. Reload of plugin does not load resources i think
Anyone used Hyssentials with LuckPerms?
problaby
I would use EliteEssentials as it's currently the best for Hytale at the moment
isnt essentialsplus best
In my opinion no
Is it actually impossible rn to cancel a pickup event of for example rubble? All events fire after it has already been picked up
some events are split into Pre and Post
Ah okay how so @topaz cipher
listen for Pre events
i dont think so there pickupableitem event didnt tried but problaby cancelable
InteractivelyPickupItemEvent doesnt have a pre i think :/
and UseBlockEvent.Pre doesnt catch it
EliteEssentials has more freedom then EssentialsPlus in my opinion
Ok I'll try it
Does anyone have a more dev focused discord server than this channel? Im kinda looking for a community a bit smaller than this and more focused on dev than the main server
I’m exploring ways to adapt my single-player mod for multiplayer and would appreciate connecting with someone who has plugin development experience and is interested in collaborating on this project.
InteractivelyPickupItemEvent Fired on item pickup (cancellable)
InteractivelyPickupItemEvent CancellableEcsEvent Yes No ecs
message me
So this means i can only cancel the pickup and not the destruction of what i was pressing F on right?
Hey guys, its possible to make a copy clip board button? I don't know how to do it
problaby not if you cancel pickup it would go back
yea :( thanks for trying to help anyway though
hello
Thanks
wtm
I know when block ticking is off it doesn't allow you to edit or interact with thinks like picking up items from the ground or breaking blocks when in Adventure Mode but allows it in Creative. So maybe allow a regen to turn off block ticking instead?
region*
good idea, i might try that and see if i figure anything else out
look into universe.makeWorld u can copy parameters from an existing world with the name and passit
I'm making a world manager right now and learning how the world creation works
i have code working for that but cant share it here its too long
Hmm is there an issue why I can't interect with statue? Im getting disconnected
anyone know on the DamageEventSystem how to get the attacking PlayerRef and the victims PlayerRef?
anyone know if there is a crate plugin like i use key to open a chest and random item i can get?
ayo Can you do a isometric view like for example like in clash of clans in hytale server plugin for hytale players?
Is there any1 who has implemented their luckperms group into their scoreboard or any UI? if so let me know :)
it tells me to update my server, but i already did and nothing changed! for you guys as well?
Luckperms come with an api to make it easy? Should be a simple check if in group or get parent group?
anyone know how to fix HyUI this error?
CustomUI Set command selector doesn't match a markup property. Selector:
#HYUUIDBackButton66 #HyUITextButton.Style.RenderBold
That's what I thought as well but it simply can't access the API after runtime.
I've tried it through commands, UI changes, everything.
If luckperms interacts with the.haspermission check you could see if they have group.groupname and just do a few if checks while we wait on a proper api system from them?
oh really can I ask you how in DM?
Does anyone know how I can remove the ability to collect stones and crops with F? I've tried removing all the possible events, but nothing works
is there any docs for hytale api?
Only community made. Search hytale modding docs.
Look through a few as some are better than others and some are just ai.
Hmm is there an issue why I can't interect with statue? Im getting disconnected really annoying
uhm, how?
perfect sent you a req
is there any announcement about proper api for the game?
Thank You, And I Will, I've Been Using Bisect For Years Now To Host MC Servers, Can't Wait To Get Back Into It For Hytale, Any Recommendations For Setting It Up Efficiently?
Is it possible to run multiple hytale clients at the same time
Oh damn that worked, you're a real one!
Has anyone played with making UI's yet?
will hytale cost more when it releases?
Hi are there any javadocs or at least a documentation not written with AI?
Nothing public yet
too early for that
Arent jd written while developing?
managed to get Kotlin working
yes but they are internal
for now anyway
Lots of plugins and a few tutorials on it on youtube
What is the thing about Kotlin? Why do ppl prefer Kotlin over Java?
anyone know on the DamageEventSystem how to get the attacking PlayerRef and the victims PlayerRef?
nicer, modern language with fewer rough edges, meant to interop with java
Glad to hear it 💙 While I haven't tried it on Bisect servers myself, I've seen lots of people suggesting to use the Hyfixes mod from CurseForge. Only other thing I can think of is keeping the view distance set around 12-16 in the server config for optimal performance 🙂
Hm, I see
I prefer the syntax
Does anyone here know how I can check if the placed block (PlaceBlockEvent) is a specific (custom) block?
hi did you find a solution ?
unfortunately not, taking a break for a bit - lmk if you find anything though
if you read the server.jar you can get some idea of how they do things - it's up to you at the end of the day though
yeah i was looking for an hour and there's only camerashake, i saw a clip with a top down view and one clip with a 2d scroll view but idk how they did it
yeah I remember seeing that 2d view clip, let me contact the op and see if they know who did it or how to do it. I assume it's a client mod thing but that would be a little annoying
yeah xD
I meant, the code style/guide you use are up to you
@lime juniper I assume to change the view it would work by grabbing the player's camera component (if there is one) and adjusting it's transform in a ticking system
Thank You, Much Love
how to kick player, using Universe.get().removePlayer() ?
The clip comes from one of hytale's dev, either we don't have the tools to do that for now or we didn't find yet
I was thinking about that
yeah it was buddha cat that posted it but I don't know if they were the one that made the mod
If i find anything i'll tell you
Oh okay
cheers, they also said the person who made the mod isn't a programmer so might be an asset editor thing
Good afternoon, I downloaded the API from GitHub to start working with plugins, but I can't find the list of variables. Where should I look? I'm somewhat new to Java, and I don't quite understand where I can find class, method, and variable names to include in the plugin I'm creating. I have the API downloaded, but I can't find them.
Is there any way to make server plugins in C#? Java's a pain in the ass.
are you talking about /player camera demo activate command?
that sounds promising, what does it do?
Does anyone know if the client send any packets at all to the server when right clicking a block without items?
I've noticed that the "Secondary" interaction only gets triggered on blocks if you hold certain items :/
top side view
that easy huh
@lime juniper
OH YES you just have to type /player that was much simpler than i thought wth
tyyy
xD tbf I was trying to do it in a plugin
public class BlockPlaceListener {
private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
public void register(EventRegistry eventBus) {
eventBus.register(PlaceBlockEvent.class, this::onBlockPlace);
}
private void onBlockPlace(PlaceBlockEvent event) {
ItemStack itemStack = event.getItemInHand();
LOGGER.at(Level.INFO).log("[BlockPlaceListener] " + itemStack);
}
}
What am I missing? The listener is registered in the main class, but nothing is sent on block place
same bruh
Does anyone know how to kick player, should I use Universe.get().removePlayer() ?
I'm trying to do a heal AOE with an aoe circle selector that lead to a change stats interaction which add health.
When trying it with a mob, the health get added only to get reset to where it was the next tick, anyone have any idea why ?
Weirdly enough, doing an ApplyEffect does nothing at all.
how do you add a custom sound effect?
are there any documents out yet?
i know im supposed to like, use the asset editor but im not sure how to actually use it
There's some if you google but no official ones. Decompile the server jar if you want to get anything useful done
Has anyone found documentation on how to create a custom item from a server plugin?
Hi, not sure if this is the right area and may be a dumb question but for those running hosted servers. How are you updating mods? Just putting the new version zip/jar and removing the old one?
I have another question as to whether a mod should be a pack or a plugin:
- CONTEXT: I am working on mods for an medieval fantasy RP server that’s moving over from Minecraft
- If I wanted to create a special chest (Coffer) that stored and recorded the amount of a custom currency item and does so on a per player basis similar to the Memory system, is that a pack or plugin?
- Similarly, if I wanted to create a favor-based system that responded to exchanging “offerings” (likely essences) for some boon, and would increase/decrease one’s favor with Gaia or Varyn as a result (per player), would that be a pack or plugin?
- Finally, if I wanted to create a Star Wars Battlefront-style respawn-at-captured-point system, and a way to limit respawns based on a team being in control of said point, I would assume this would be a plugin, yes? Even if I had a customized asset like a banner that could be furled/unfurled as a way of capturing the “area”?
My understanding is that a plugin can contain a pack
Ah neat, so they’d all likely be plugins then.
Plugin can contain a pack because you embed those json files as resources.
Anyone know how to properly pass an entity reference back from the command buffer? I'm assuming the run method isn't necessarily resolved in the same frame as the rest of an interaction's code, but I'm familiar with unity ECS, not java ECS.
For context, I'm trying to grab the entity reference from NPC spawn, in an interaction, to manipulate it post-spawn
I’m trying to achieve something similar to how Minecraft plugins handle their data directories, but this seems to just use the group name directly (e.g. io.aitchn.myplugin).
Am I misunderstanding how this is supposed to work, or am I using the wrong approach?
dataDirectory.resolve("config.json").toFile()
Hi, how can i stop showing my HUD to players? Since there's no close method like in CustomUI
I think it's supposed to work like that to prevent name collisions
Found it, nvm
That makes sense now — it just feels a bit unfamiliar. 
Can someone tell me how to implement interaction with the block through F with a timer (so that the player holds F for 2 seconds, for example, and only then the action is performed)?
hm I updated the assets, i suppose that would make sense it wouldnt do the jar.. i'll give it a go, thanks!
Hey guys , I’m exploring ways to adapt my single-player mod for multiplayer and would appreciate connecting with someone who has plugin development experience and is interested in collaborating on this project.
Hey guys, Anyone know how to get Player player from PlayerRef ?
Pleeeeaaaase i'm stuck
@subtle fern Got a new update coming soon for Hyskills mod. Might be able to get you over a pre-release version if wanted to see what issues you find. Havent started final tests yet on it
Hello im looking for Polish programmer to collab with 🙂 I want to create together guild/pvp server with many solutions as it is in some specific Minecraft servers. Contact me in DM please !
so i've been playing around with modding for couple days now and i have to rant on something.. the UI system is junk whole modding ideology is just glorified minecraft asset packs meaning we cannot add voice chat we cannot add something like storage terminals nothing can be added due to client limits
I'm pretty sure voice chat is coming in the base game though
There is 2 way to get the player
Player player = store.getComponent(ref,Player.getComponentType());
PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
anyone help how to build hytale status bot ?
thats not the point you cannot mod client thats where road ends for me
Hey quick question, what should I use as a reference as to when UI should be loaded so I don't load it too fast, currently when I go through instances it kicks me out cus it tries to load the UI too fast, how could I make it so it loads the UI together with the gameUI at the same time?
My understanding was it was the server who owned it and distributed it. Meaning clients don't need to download things separately. They're given everything they need via the server.
any idea how to cancel teleports?
Where?
you can only make asset packs you cannot do anything that would mod client functionality.
for example you cannot make a UI that interfaces with player inventory it is not possible and will never be.
you cannot/the client cannot interface with anything related to rendering, local files, devices.
.... well that makes sense as to why I've been having a hard time figuring out how to make the dam inventory SCROLLABLE lol
yeah you cannot do it i tried endlessly
Does anyone know how I can get all assets of a type?
I feel like this completely kills hacking, right? Or am i ignorant? What a beautiful sight
Sad...
lol no
Well atleast certain methods i guess 🚣
Is it possible to cancel all teleports attempted?
server cannot mod client but user can do whatever they want thats what forge on mincraft does
hacking no, but perhaps certain things in minecraft like xray packs or something are prevented. Unless the server has it
it's more like garry's mod
no client modifications, only content packs
i get why they chose that system and the idea isn't bad but it kills all creativity don't expect to see applied energetics-like mod anytime soon if ever
Are you sure about that? Because I can almost guarantee it's possible
Ohhh i see, unfort
nah, we'll def see it at some point
i've read 80% of server code tried everything related to UI's its not possible.
you can make a UI and work with local files, actually..
I've been curious on the actual limitations of a lack of client modding.
Got to get a little creative 😉
I have a functioning config system in place already lol
no better then minecraft only thing is that blocks, entities are real unlike minecraft
thats only upside
it is much better than spigot idk what you're talking about
the API is terrible to work with though
Hi, does anybody knows why i'm getting Object reference not set to an instance for an object, when this line gets executed?
if(player != null) {
instance.logger.atInfo().log("Player not null, removing HUD")
player.hudManager.setCustomHud(plRef, null)
}
How does that benefit?
It looked like inventory was indeed totally separated from the rest of the UI. The moddable stuff being "Pages" while inventory was a "window" I'm curious if it will stay like this, or change overtime
you should be able to access the player inventory via a component or the Player object, no?
"plugins" (glorified mods at best) can make real items, blocks, entities which spigot cannot and will never be able to.
UI uses bindings, a bit like shoddy WPF
It seems like you've all forgotten about the fact they literally support patching server functions through early loading plugins...
you can. We're talking about modding it. For instance, I want to make it scrollable so we can have chests of 100 slots instead of 63 (it's all 63 max because it goes offscreen otherwise)
you can you just cannot make your own ui if you get me for example as the badget said you cannot make it scrollable for example
Ah, yeah, you can't mod existing UI. You can hide the ingame UI widgets and make your own on top of them, which is...a chore
I totally overlooked that actually
its component system meaning we will always have to play by their rules which imo kills creativity
I found some example code on one of the unofficial documentation sites but I need a path and I'm not sure what to put to get everything ("/", "/Achievement", or "" doesn't work)
DefaultAssetMap<String, Achievement> map = Achievement.getAssetMap();
commands.append(PAGE_LAYOUT);
for (String key : map.getKeys(Path.of("/"))) {
commands.append("#AchievementCards", "Pages/AchievementEntry.ui");
}
its like playing with same 50 lego bricks for your entire life.
Get the store and then the player component.
Does someone know how to use the vanilla gradient mapping engine for custom blocks and items? I want to use the official gradients already present in the asset but i don't know how to call the gradient mapper
does hytale have action bars, titles or boss bars?
how to enable command for all users (bu default i have no permission)?
Look into EventTitleUtil
Where to put server config JSON file, when you added some config to the plugin?
this.withConfig("ExampleConfig", ExampleConfig.CODEC);
I tried to put it into the server where we have "config.json", but didn't look like it's working
is there a server pluguin that keeps the chat on screen at all times? My friends and I find it super annoying that the chat cant be toggled to stay on screen even if no ones talked in a bit
Heya, what's the file structure for Ore mods? I can't get my Ore texture to show up in the asset editor
hi
how to enable command for all players by default (by default i have no permission)?
Thank you
you can make UI widgets yourself for bars/etc.
Can overwrite the permission check and always return true
Hi im trying to do a .ui, and thats very crazy, someone knows maybe a template or a guide for do de .ui`s?
Does anyone know why this doesn't loop through all my assets (No cards appear in my UI)? They should be registered to the Achievement path... or is there a better way to loop through all assets of a type?
DefaultAssetMap<String, Achievement> map = Achievement.getAssetMap();
commands.append(PAGE_LAYOUT);
for (String key : map.getKeys(Path.of("Achievement"))) {
commands.append("#AchievementCards", "Pages/AchievementEntry.ui");
}
Anyone tried to use BenchWindow / Page.Bench / ContainerBlockWindow? The API does not seem to be moddable
I have an issue with the item container not beeing scrollable
Players collect the codex — is there a related listener for this?
lets rewrite everyting on rust
yeah I was just saying that. It's not possible to mod at the moment.
Is there an Player Move Event or Event when a player enters a zone?
Ok, I will wait for my Refined Storage-like mod
I was thinking that it would be great to have more abilities and such to use
Yeah I'm just making a Hytale implementation for kyori adventure platform so I can port my plugins more easily over
Hello! I'm trying to clear a region into air blocks, the thing is i don't know what I am doing wrong. Can someone help me? I want a easy class to erase from max to min
public class SimpleBlockEraser {
private final World world;
public SimpleBlockEraser(World world) {
this.world = world;
}
public void clearArea(Vector3i max, Vector3i end) {
world.execute(() -> {
for (int x = max.x; x <= end.x; x++) {
for (int y = max.y; y <= end.y; y++) {
for (int z = max.z; z <= end.z; z++) {
world.setBlock(x, y, z, "Filter_Air_Block");
}
}
}
});
}
}```
i assume nobody has found out how to bind guis to inventories yet right
I know there's some systems for it, like PlayerProcessMovementSystem.
That's what I want to do but seems like it's impossible because ContainerBlockWindow is not moddable
yep
You can display a container tho, it will be limited to a certain size
I have a 12 rows container, it goes out of the screen
I seem to be running into an issue when loading UI's and going into different instances/through portals, kicks me out since my UI loads too fast, how do I fix that?
Maybe instead of scrollable have pages of the inventory that flips to other UIs?
That's doable ! With a Page on top of the Window maybe?
Yeah essentially how the crafting benches work maybe? Or layer a UI on top that has forward/back/page number buttons
Am complete noob so take what i say loosely 😆
That's a bit rough but I can try
I'm just surprised they have the creative mode where it has a scrollable section, but the UI doesn't support it when we can set capacities to over 63 (which breaks UX).
not PlayerDeathEvent?
Is there a server in Maven Central, or is the only option to analyze the source code?
Another thing that is frustrating me RN is that I can't get the block the player is looking at accurately in the server. Altough the Client has this info available 🙁
I really hope they port Window to the Page system if they can
Oh damn youre right. Yeah thats goofy af.
For as much as they were prouding themselves on modders for modders, it seems we are quite limited, no? I mean, people still do crazy stuff with MC, but still. I suppose i expected more
The player rotation isn't synchronized precisely?
Which i suppose Simon has mentioned there will be more QOL or w/e, but idk most of this seems fundamental and not too easy to change in the future
To be fair it's early access. And if you compare this to the state MC was in when it was early access... this is bounds ahead of what Minecraft could do at the time (imo).
That was also 15 years ago :p but also, see second comment of im not sure how much will be able to be changed at a fundamental level
I suppose if anyone will be able to do it, its the Hytale team 😁
It is, but the TargetUtil.getTargetBlock doesn't retrieve the correct coords based on what you're targeting. kinda difficult to explain.
unless I try to raycast myself the collision using the block's hitbox (I was trying that yesterday but no success)
@remote creek hi! Can I ask you something about your avatar loader plugin?
How are you currently trying to do it?
They're flying by the seat of their pants. So us modders are gonna be in for a wild ride lol. I'm curious how they are going to handle changes overtime. Because stuff is already marked as deprecated with no clear path to migrate towards. So mods are likely going to break while the API's shift.
I figured it out - in case anyone else is trying to do the same thing:
You can call getAssetMap on an AssetMap to get a regular Map, which you can then loop through
Map<String, Achievement> map = Achievement.getAssetMap().getAssetMap();
commands.append(PAGE_LAYOUT);
for (String key : map.keySet()) {
commands.append("#AchievementCards", "Pages/AchievementEntry.ui");
}
Tell me, is it possible to catch the pressing/holding of buttons somehow?
not yet
ive only seen people register the activation of movement buttons
Damn, I want to make an implementation of holding F with a timer (so that the player interacts with the block for some time)
is there anyway to stop default world map gen?
I want to render some specific chunks on world map
Has anyone figured out how to tell whether a block was generated or placed by a player?
I feel like there is definitely a tag, cause wood logs placed by players dont break like natural ones
Do you use TargetUtil.getTargetBlock from the player's position? The head position isn't the player's position, you have to start from the HeadRotation component's position. See EntitySpawnPage.initPosition
Where can I create mods?
...on your pc?
If you look into getTargetBlock source it does get the head rotation, even using eye height and stuff, it just doesn't do raycast with bounding boxes, so it can't get blocks that aren't "full" blocks afaik
I see thanks, I'll try and have a look
do server plugins work on singleplayer worlds?
yes singleplayer runs a server in the background
Guys, where can I create mods?
the config commands dont work
Bit of a broad question, what mods are you wanting to create?
Does Hytale actually have a Spigot-like config system in place? If not, I've written a library lol
I think you shouldn't use the getTargetBlock that takes a ref but the one that takes an origin. I don't see parts of the code that uses the one with the ref
Any syntax error within a .ui file can cause this error. Its very generic
It does, but use Configurate since it's lots better ;))
Hey! Sure
Hi all, is Single or Multicore Performance more important for Hytale Server?
I want to add a specific country flag and make it craftable and have other functionality for it.
nah I was wondering if I should post mine
For sure, it's great having multiple options & it contributes to your portfolio

...i assume you mean modder portfolio lol
anyone have a idea how I would add prefabs to a server
It's the same really, its just a overloaded function so you can call it with less params.
I meant your GitHub page, having a broad amount of repositories helps
what i dont understand?
ah. i'm a software engineer but i don't tend to do that, so
If you're not planning on open-sourcing it then I wouldn't release it.
i have no problems open sourcing a library, seems silly not to tbh
I can't share links so you will have to google "Hytale Server Docs" or "Hytale Modding", those should yield some results about where to begin modding.
I just meant my portfolio was all what i've worked on for work LOL mb
Ah yeah, I can understand that you'd want your personal/private portfolio regarding companies to be more professional. You could try creating a organisation?
would that function like a shell company?
Anyone know how can I get spawn an NPC within a SimpleInstantInteraction and run a separate RootInteraction using it as a target after it is spawned? I currently have this:
if (entityInteraction != null) {
final InteractionManager manager = spawnedStore.getComponent(spawnedRef, InteractionModule.get().getInteractionManagerComponent());
if (manager == null) {
return;
}
final Entity owningEntity = EntityUtils.getEntity(ref, store);
if (!(owningEntity instanceof LivingEntity executor)) {
return;
}
final InteractionContext subCtx = interactionContext.duplicate();
final DynamicMetaStore<InteractionContext> metaStore = subCtx.getMetaStore();
metaStore.removeMetaObject(TARGET_BLOCK);
metaStore.removeMetaObject(TARGET_BLOCK_RAW);
metaStore.removeMetaObject(HIT_LOCATION);
metaStore.putMetaObject(TARGET_ENTITY, spawnedRef);
final RootInteraction rootInteraction = RootInteraction.getRootInteractionOrUnknown(entityInteraction);
if (rootInteraction == null) {
return;
}
manager.startChain(ref, commandBuffer.fork(), interactionType, subCtx, rootInteraction);
}
but because it's being queued by the commandBuffer in the parent interaction, the executing is "delayed" (I presume), causing the buffer to be invalidated and therefore making the interaction chain start impossible.
I'm running it on the command buffer because I can't pass the active store into the spawnNPC function as it is currently in use.
@Override
protected void firstRun(@Nonnull InteractionType interactionType, @Nonnull InteractionContext interactionContext, @Nonnull CooldownHandler cooldownHandler) {
final CommandBuffer<EntityStore> commandBuffer = interactionContext.getCommandBuffer();
Preconditions.checkNotNull(commandBuffer, "CommandBuffer");
// Spawn it
commandBuffer.run(_ -> spawnNPC(interactionType, interactionContext, commandBuffer));
}
This is wild to say...
I kinda get it for a library, tbh
Like: free code? No? Forget it.
Does anyone know how to properly set the text of an individual element? Right now it's just overriding the text of the first one a bunch of times because they don't have unique ids
public void build(UICommandBuilder commands) {
Map<String, Achievement> map = Achievement.getAssetMap().getAssetMap();
commands.append(PAGE_LAYOUT);
for (String key : map.keySet()) {
commands.append("#AchievementCards", "Pages/AchievementEntry.ui");
commands.set("#AchievementName.Text", map.get(key).getName());
commands.set("#AchievementDescription.Text", map.get(key).getDescription());
}
}
I read in your git docs you use the gradient mapper to automatically apply the gradient pngs to the character texture.
I'm trying to do something similar from custom items for a mod, but i dont know how to call the gradient mapper on the b/w texture, how did you do?
I will not use deliberately libraries that I cannot directly see the code of unless it's literally not possible. Making it source-available is also fine
There's lots of licenses out there, I bet you'll find one that fits
I have no idea what a shell company is, I'm sorry ;((
yeah. at that point not making source available is hiding it
.
how can a ui be shown wihout using a command? like on use on a block?
alguem tendo problemas de erroo critido
Easiest way to start is by watching a few videos (there's also plenty to read if you're not into watching videos) and then just starting a project and learning while creating something that motivates you.
I'm also looking to get an entity reference back from this. If you ever find a solution. Going to poke around with it more today
Set block interaction to "OpenCustomUI"
the entity ref is provdied by the spawnNPC/spawnEntity method
my problem is starting a new interaction after the command buffer has already been consumed
how do you specify what ui to show that way?
final Pair<Ref<EntityStore>, INonPlayerCharacter> spawned = NPCPlugin.get().spawnNPC(spawnedStore, "Empty_Role", null, position, rotation);
if (spawned == null) {
return;
}
final Ref<EntityStore> spawnedRef = spawned.left();
is there any hytale equivalent of servicesmanager?
You can take a look at existing mods to see more info, but you need to set a Page in the json like so:
"Interactions": {
"Use": {
"Interactions": [
{
"Type": "OpenCustomUI",
"Page": {
"Id": "TextSign_UI"
}
}
]
}
},
and then this "TextSign_UI" needs to be registered in the main file.
thanks could not find a mod that did that, so ...
Anyone know how to remove join/leave world messages?
for absolute novice bare bones lessons i suggest w3schools on the java section
BetterModList is on github and has custom ui
For join message
AddPlayerToWorldEvent
event.setBroadcastJoinMessage(false);
Hi guys good evening I needed help, I'm making a server and I wanted to connect two worlds via portal on my server, I create the world but I can't get started is there anyone who can help me?
Lookup Kaupenjoe on youtube, they have a bunch of java tutorials if you're looking for em.
At the gym, will look at what you have cause it might solve my problem. I'm not used to java so I couldn't figure out how to get the reference back in scope of the interaction from the command buffer.
I would think that you could grab the reference by adding a trigger variable that the second interaction looks for and flips when set
I create the world with /world add, but when I try to tip it doesn't work
is there any hytale equivalent of servicesmanager?
Hi, is there a way to catch if a player rightclick with a specific item in his primary hand? (I already know how to check the offhand or mainhand item, i'm just wondering how to get the event)
can anyone help me?
Hello fellow Developers, is there a way in Java to get if a Player Hits a block? ❤️
kaupenjoe does good tutorials yes
🥲
Using IDE, I created folders, json files, structure, and model textures, and how to compile a jar file for the Hytale mod.
so first project is making a block entitiy i can place in hytale then. First milestone - i know a bit of C++ cause of my course and have a general knowledge of background programme processing, just need to research techniques and etc to work on over time.
Mint ty ❤️
u need Gradle
i am not fully sure on that but from what i've read so far you need to put your assets in an asset pack (you make those from within the hytale client) and only the java logic remains in your plugin
yes, check "create plugins" and "events" on hytalemodding dev docs
are there any good community docs on uis atm?
people are commited to hytale-modding dot dev and hytale-docs dot com ( i prefer hytale-docs)
Anyone know how can I get spawn an NPC within a SimpleInstantInteraction and run a separate RootInteraction using it as a target after it is spawned? I currently have this:
if (entityInteraction != null) {
final InteractionManager manager = spawnedStore.getComponent(spawnedRef, InteractionModule.get().getInteractionManagerComponent());
if (manager == null) {
return;
}
final Entity owningEntity = EntityUtils.getEntity(ref, store);
if (!(owningEntity instanceof LivingEntity executor)) {
return;
}
final InteractionContext subCtx = interactionContext.duplicate();
final DynamicMetaStore<InteractionContext> metaStore = subCtx.getMetaStore();
metaStore.removeMetaObject(TARGET_BLOCK);
metaStore.removeMetaObject(TARGET_BLOCK_RAW);
metaStore.removeMetaObject(HIT_LOCATION);
metaStore.putMetaObject(TARGET_ENTITY, spawnedRef);
final RootInteraction rootInteraction = RootInteraction.getRootInteractionOrUnknown(entityInteraction);
if (rootInteraction == null) {
return;
}
manager.startChain(ref, commandBuffer.fork(), interactionType, subCtx, rootInteraction);
}
but because it's being queued by the commandBuffer in the parent interaction, the executing is "delayed" (I presume), causing the buffer to be invalidated and therefore making the interaction chain start impossible.
I'm running it on the command buffer because I can't pass the active store into the spawnNPC function as it is currently in use.
@Override
protected void firstRun(@Nonnull InteractionType interactionType, @Nonnull InteractionContext interactionContext, @Nonnull CooldownHandler cooldownHandler) {
final CommandBuffer<EntityStore> commandBuffer = interactionContext.getCommandBuffer();
Preconditions.checkNotNull(commandBuffer, "CommandBuffer");
// Spawn it
commandBuffer.run(_ -> spawnNPC(interactionType, interactionContext, commandBuffer));
}
Are you using / have you tried using a codec to store the data?
Not trying to store data atm
Hey folks, is there a way to detect a click on a specific inventory slot? I.e. When a player clicks on a slot in the backpack? Planning to use the backpack UI to open other windows and pages. I've poked around at the events and packet handlers but they seem pretty limited.
Hi, how to replace this with something cleaner?
java // Send message to all players for (PlayerRef player : Universe.get().getPlayers()) { Message.raw(formattedMessage); }
Like a general server broadcast message!
But that's a way to pass it probably. Items like the animal crate store info so that both interactions can function
alr will check on that also the modding dev site didnt exist vut the docs one does
That's already pretty clean lol
I know you can do sendMessage on a world, not sure if it can be done for all players on the server
I just found a fix as we were speaking, took a bit of digging through server code, but for anyone wondering this is a good way to start a proxying interaction forking from a command buffer:
final InteractionContext subCtx = InteractionContext.forProxyEntity(manager, executor, spawnedRef);
final DynamicMetaStore<InteractionContext> metaStore = subCtx.getMetaStore();
metaStore.removeMetaObject(TARGET_BLOCK);
metaStore.removeMetaObject(TARGET_BLOCK_RAW);
metaStore.removeMetaObject(HIT_LOCATION);
metaStore.putMetaObject(TARGET_ENTITY, spawnedRef);
final RootInteraction rootInteraction = RootInteraction.getRootInteractionOrUnknown(entityInteraction);
if (rootInteraction == null) {
return;
}
manager.startChain(ref, commandBuffer.fork(), interactionType, subCtx, rootInteraction);
No one will share the Hytale API repository
i do Universe.get().getPlayers.forEach(ref -> {ref.sendMessage(message)})
I'm pretty sure it's not on Maven Central yet.
guys is there any good guides about livingentity behavior?
It turns out that people create mods using their own methods
No, that's not what I'm looking for. I'm searching for the method that sends a message to the entire server, not to each player individually.
is there anyone that can help me with connection issues? i cant seem to join my friends world and vice versa
No, that's not what I'm looking for. I'm searching for the method that sends a message to the entire server, not to each player individually.
What's the json format for messages?
so idk
There probably is not, it's just an abstraction anyway, it would most likely do the same under the hood
Ok, thanks :/
PhantomDev is good developer in hytale plugin develpment
is there a built-in way to activate / deactivate mods per-world in a server?
wrong channel. This is a technical channel for modding not recruitment
I have a model with the extension .blockymodel and is it suitable for hytale?
Yes, that's the file format Hytale uses
When I try uploading my mod it tells me "Manifest.json" not found, im new to modding all I did was zip the pack folder but im not sure if im supposed to do anything special, couldnt find much info on what to do
thks
You need a file called manifest.json in the root directory of your mod. There's examples online, or I can just paste mine in here lol
There is a github template you can also use from the documentation which has it already
let me check where mine is
ah yeah, that's good
oh, really? I looked all over and couldnt find it 😭
thanks guys
if you go to their gitbook documentation, go to "Getting started with plugins" section plugins-java-development/07-getting-started-with-plugins -- it's under plugin template
(step 1)
How do I transfer a player from one world to another? World.addPlayer() throws 'Player is already in a world'. What's the correct way to move a player between worlds?
has anyone found how you can make custom signatures? I'd like to create something similar to the pickaxe signature simon made
How can i register a command, that everybody can use without special permissions given?
Does Hytale Asset Manager allow you to attach simple scripts to objects?
don't believe so
Guys, Seriously, what the fk this UI system, the worst thing I've ever seen before wtf
have you tried using the online editor? It makes it a bit easier to work with
I think you have to do this with the Teleport Component. You need to add a Teleport Component to the player. In that component you can specify the targetWorld
did someone encounter a bug with their java plugin that the hole world becomes white and you cannot rejoin because the default world coundn't be found? the logs then just say "No world available to join"
hytale.ellie.au is the online editor for UI building
Where can I found it? Seems like to be a mixing of a worse version of css, json without keys, old xml, wtf they've made
Does anyone else time out when trying to connect to a server with mods? I put just a couple mods on my server (better repair kits and JEI) and I have to click "try again" 3-4 times to get the mod files to fully download.
My server is on my local network, so I presume it'll be even worse for my friends who are elsewhere.
Good afternoon, I'm having trouble connecting to multiplayer servers. Does anyone know how to fix this? It's not a server with a friend. It keeps trying to connect endlessly after the connection fails.
How do i Query by NPC?
public Query<EntityStore> getQuery() {
return Query.and(NPCEntity.getComponentType());
}
Hi guys, has someone good JVM arguments to start the server ?
I tried using that template and got so many errors
public Query<EntityStore> getQuery() {
return Query.and(
NPCEntity.getComponentType(),
HealthComponent.getComponentType()
);
}
Hi guys, somebody know how to set/add speed to Player/PlayerRef ? for example Walk speed
huh? there is no HealthComponent
Universe.get().sendMessage
The movementmanager component and a movementconfig
You don’t have to Query.and a single query, is this not filtering properly by all npcs?
Hi ✌️ is there a way to register a command, that has no permission requirement? So everybody can use it without them having special permissions?
Use AbstractPlayerCommand
i'm trying to DeathSystems.OnDeathSystem on NPC's and this one not triggering
setPermission in the commands constructor with whatever the one that takes a Gamemode is and pass in Gamemode.Adventure
Im on mobile so I can’t check the exact method name
what happen to the mod:
stable-ping-fix?
Been removed. I demand answers lol!
The system is registered properly?
does this look proper to you?
this.getEntityStoreRegistry().registerSystem
Im pretty sure the DeathComponent is added to NPCs fine, but one second, Ill validate it
It was this.setPermissionGroup(GameMode.Adventure) tysm ❤️
Are "textareas" inputs (like the feedback ui one where you can have multiple lines.) not available for us or is it some config on the text input?
it is. Do i just have to filter inside the event to run on npc?
Just returning NPCEntity.getComponentType() should be working fine
is there a big difference if i run it on any and then filter it?
Well no its just unnecessary to have to further filter it, and slightly less efficient
@chrome fossil What happen to stable-ping-fix?
Some of us had a invested interest in your project and kept enough your information to track you down 😛
There is also just a
NPCSystems.OnDeathSystem
That you can extend instead
What would be the best way to do something on a world.execute() for every player at once
world.execute(() -> {
for (var player : Universe.get().getPlayers()){
// Heres my code!
}
});
Would it be wrong to assume it goes through every player one by one?
Spell books when?
Anyone know how to use the AOT cache? I'm trying to run by adding -XX:AOTCache=HytaleServer.aot , server starts but crashes shortly after
Anyone know if its possible to add an extra gui in the inventory?
I wanna do Witchcraft n shite, I didn't graduate from Luna Nova for nothin
Well yes, thats whats happening
Wait wrong chat
That is a good question. I'm very primitive in my knowledge of Hytale modding right now. Spent way too much time chasing ghosts - trying to modify the inventory system to be scrollable to support larger capacities but.... that was a dead end
I have the specific problem of wanting to play an animation on every players ui at once.
And since the ui doesn't support something like a gif i need to manually make the animation.
The problem i see with this is that when i try to use a delay for playing that animation, every time i am running the function, it will be delayed by another players' animation.
Thats not how that works
Do you stall the entire thread or something? How are you delaying it
Hi, is there a way to catch if a player rightclick with a specific item in his primary hand? (I already know how to check the offhand or mainhand item, i'm just wondering how to get the event)
You can make a new interaction if its your own custom item
it is my custom item, yes
Thanks!
It is currently just theory but:
- Start the world.execute
- Start playing the animation with a function that has a delay between every frame
- the code waits until the function has completed to run
Thats why i am worried about this
Minus the state settings I suppose
Both triggering error while registring.
[ExamplePlugin|P] Failed to setup plugin Example:ExamplePlugin
java.lang.NullPointerException: Cannot invoke "com.hypixel.hytale.component.query.Query.validateRegistry(com.hypixel.hytale.component.ComponentRegistry)" because "query" is null
It wouldn't be delayed unless your method stalls the execution of the thread between calls instead of just scheduling it for later
You don't have to override getQuery the NPCSystem.OnDeathSystem class already has it setup
So i would need to make the animation its own thread action to not interfere?
No there is a scheduler
Please tell me a good solution to develop a duel system on ECS or is it a dumb idea?
Hi, Does anyone know how to create my own ZonePatternGenerator or for example how to create a world consisting of one of my unique zones?
Is there a way to get a list of all NPCEntities using java?
Multi thread architecture is gonna be the death of me, queues and schedulers and thread safety is for losers and hytale should let me run unsafe thread code instead of throwing errors /s
im getting the error "Failed to load CustomUI documents"
HytaleServer.SCHEDULED_EXECUTOR.schedule(action, timeUnit, TimeUnit.THEUNIT);
How do I get a player by username? (For a command with player as an argument)
Sorry for interrupting
I am looking to perhaps hire someone to develop few things for a server
could be long term if all goes well but I need someone that has experience with hytale development already
to not saturate the chat just shoot me a DM ❤️
any way I can change an item stack's description?
does someone know how to prevent the IllegalStateException("Store is currently processing! Ensure you aren't calling a store method from a system.") when getting the world with player.getWorld()?
public void tick(float v, int i, @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
@NonNullDecl Store<EntityStore> store, @NonNullDecl CommandBuffer<EntityStore> commandBuffer) {
Holder<EntityStore> holder = EntityUtils.toHolder(i, archetypeChunk);
Player player = holder.getComponent(Player.getComponentType());
PlayerRef playerRef = holder.getComponent(PlayerRef.getComponentType());
if (player == null || playerRef == null)
return;
...
World world = player.getWorld();
...
How would i stop this after x amount of runs?
Wrap your logic here in a world.execute
someone knows how add a custom interaction to a custom block or docs?
Thats not a repeating task it just fires once
i try, thanks
There is also the scheduleAtFixedRate which runs infinetly but i only need it a couple of times
As far as i understand atleast
private final RequiredArg<PlayerRef> targetPlayerArg = this.withRequiredArg(
"targetPlayer", "The description you want", ArgTypes.PLAYER_REF
);
In your command class
Then schedule a few of them, it doesn't matter
Guys how do I get access to a block's inventory?
Like chests and such?
yes
"Universe.get().sendMessage" does exactly the same thing as what I did in the API:
public void sendMessage(@Nonnull Message message) {
for(PlayerRef ref : this.players.values()) {
ref.sendMessage(message);
}
}```
Thanks anyway!
how do you make translations
any way I can change an item stack's description?
This is insanity. It is sending same error.
You are registering in the "setup" override yes?
How can I create a Codec entry that is an array within a config file? I found some unnofficial docs that say the codec should have a listOf method, but that is inaccurate
Not the constructor of your plugin?
Whenever server crossed 30 players, Its crashing, giving issue and cant break or do anything by players.
Anyone facing this issue?
this.getEntityStoreRegistry().registerSystem(
BlockState state = world.getState(x, y, z);
if (state instanceof ItemContainerState itemContainer){
var container = itemContainer.getItemContainer();
}
How can i print something to the game console that you can get with the ^ key?
this.getLogger().at(Level.INFO).log("Plugin has been initialized!"); is not working for me.
What method is this in, is this in your plugins constructor? Or the setup method
Guys anyone facing an issue where after mins without issue the server just unload the world where all players are?
Thank you! For a double chest it will return the same state at x and x+1?
setup of java plugin
someone knows how add a custom interaction to a custom block or docs? 
It doesn't seem like its an issue for how the game handles it so I assume yes
Ive slightly edited the component name its ItemContainerState not what I had before
Its not an earlyplugin right?
Whenever server crossed 30 players, Its crashing, giving issue and cant break or do anything by players.
Anyone facing this issue?
no
Is the world unloaded? If yes I have the same issue
Hey, does anyone know how to get the code that allowes NPCs to move? I have the AStarWithTarget Class but i dont know how to use it on as an example the player
is there any way to attach an item or UI to anywhere on an entity? For example a sword to a horse's head or a health bar above a skeleton
wrong channel
how do I put an item in players inventory on spawn and prevent them from dropping said item?
i would say even wrong server XD
....yeah. that's fair
Unloaded means? I mean people are playing on that world
You mean world goes to numl and no one can join issue?
Are you reloading your plugin? Try adding
"Hytale:NPC": "*"
In your dependencies block?
Like
"Dependencies": {
"Hytale:NPC": "*"
},
player.getInventory().getHotbar().putItemStackInSlot
And cancel
DropItemEvent.PlayerRequest
Yes
How do I listen for player death events in a plugin? I want to run custom logic when a player dies (teleport them somewhere and drop their items). I see there's a DeathComponent and DeathSystems - should I create a custom system that queries for DeathComponent on players, or is there an event I can register for like PlayerDeathEvent?
/World list = 0
Theres a
DeathSystems.OnDeathSystem
That you can extend
It'll ask you to implement a Query, just return
PlayerRef.getComponentType();
Your event would reside in the onComponentAdded override
my goat
You register it like
getEntityStoreRegistry().registerSystem(new YourDeathSystem());
In setup
How may I know if the user sent arguments in my command handler?
Is it possible to get args using CommandContxt btw?
Example:
/test → args.length == 0
/test hello → args.length == 1
/test hello world → args.length == 2
anyone else still only able to join when using a vpn?
Java side I mean.
Ooh
You have to register your arguments
is there any way to get a players screen size? I'm running into issues trying to set my custom ui page to always takeup 100% of the players screen.
hola tengo problewma con hytale
is there a way to override existing game ui like adding a new botton inside the inventory?
Ah, you mean like to add a permission to the command?
does inventory.getCombinedEverything().addItemStack actually add the itemstack or do I have to apply the transaction it returns?
How do I update a value in a custom store on a player?
protected final RequiredArg<Float> damageArg = this.withRequiredArg("amount", "MY DESCRIPTION!", ArgTypes.FLOAT);
Like this declared in your commands class
Alright, thanks.
Then
context.get(damageArg);
It adds, transaction is just verification callback
did you know how to add a required index? for example i have 2 RequiredArgs,
RequiredArg<Player> target;
RequiredArg<Integer> amount;
and the command must be like that: /test target 100
but, when i use for example /test 100 target, its wrong for me
Change the order haha
The order you register the required args is the order the args need to be sent
so then
RequiredArg<Player> target; // strings[0]
RequiredArg<Integer> amount; // strings[1]
right?
Hi im kind of new to coding and am trying to make a veinmine plugin but im having troubles getting the player position and dropping everything that gets veinmined to that position any ideas?
This is unrelated to what I said
You've registered
target
Then
amount
Right?
Then the command will expect target amount not amount target
The order in which you call "withRequiredArg" determines the order for the user
Ohh thanks man
i know the existence of CustomUI, i made a custom window myself, i was wondering if i can add a button inside the inventory to access it. maybe this is a client side thing and i cant do it server side. I really need and answer for this
The Hytale API is very different as a Bukkit ((
Yep
If anyone comes across this. Seems like the hytale package exports an abstract ArrayCodec class which has an ofBuilderCodec method. It can be used to construct complex data structures such as with nested arrays or an array of objects. An example:
import com.hypixel.hytale.codec.Codec
import com.hypixel.hytale.codec.KeyedCodec
import com.hypixel.hytale.codec.builder.BuilderCodec
import com.hypixel.hytale.codec.codecs.array.ArrayCodec
data class MyCodec(
var foo: Int = 0,
var bar: List<MyOtherCodec> = emptyList()
) {
companion object {
val CODEC: BuilderCodec<MyCodec> = BuilderCodec.builder(MyCodec::class.java, ::MyCodec)
.append(KeyedCodec("foo", Codec.INTEGER), { c, v -> c.foo = v }, { c -> c.foo }).add()
.append(
KeyedCodec("bar", ArrayCodec.ofBuilderCodec(MyOtherCodec.CODEC) { size -> arrayOfNulls<MyOtherCodec>(size) }),
{ c, v -> c.bar = v.toList() },
{ c -> c.bar.toTypedArray() })
.add()
.build()
}
}
How do I get the component type of a custom component? The built in types have methods to do so but I'm not sure how to implement it myself
What is returned by the registry of the component is the component type
You have to store it somewhere
Where do I actually store that? Like can I create a static variable in my Main class and then access it elsewhere?
Yea
anyone who use betterscoreboard i have question
Those getComponentType methods just return the static variable they saved when they registered the component
Thank you very much! Worked. Any info on dependences?
Hi, how can I get a player's coordinate when he does a command?
where should I put the translation file?
Dependencies are just ensures that they load before your plugin
Weird that your plugin was loading before the hytale one, maybe its loaded alphabetically?
Hello ! i'm trying to disable crafting without a permission for each item
But, it works only in the player's inventory ; not in a crafting station
package fr.faiizer.plugin.listeners;
import com.hypixel.hytale.builtin.hytalegenerator.LoggerUtil;
import com.hypixel.hytale.component.Archetype;
import com.hypixel.hytale.component.ArchetypeChunk;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.query.Query;
import com.hypixel.hytale.component.system.EntityEventSystem;
import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.asset.type.item.config.CraftingRecipe;
import com.hypixel.hytale.server.core.entity.entities.Player;
import com.hypixel.hytale.server.core.event.events.ecs.CraftRecipeEvent;
import com.hypixel.hytale.server.core.inventory.MaterialQuantity;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;
public class CancelCraftListener extends EntityEventSystem<EntityStore, CraftRecipeEvent.Pre> {
private static final Query<EntityStore> QUERY = Archetype.of(Player.getComponentType());
// private static final Query<EntityStore> QUERY = Query.any();
public CancelCraftListener() {
super(CraftRecipeEvent.Pre.class);
}
@Nonnull
@Override
public Query<EntityStore> getQuery() {
return QUERY;
}
@Override
public void handle(int entityId,
@Nonnull ArchetypeChunk<EntityStore> chunk,
@Nonnull Store<EntityStore> store,
@Nonnull CommandBuffer<EntityStore> commandBuffer,
@Nonnull CraftRecipeEvent.Pre event) {
// DEBUG
LoggerUtil.getLogger().info(
"[CancelCraft] Launch The Craft Event For "
+ event.getCraftedRecipe().getPrimaryOutput().getItemId()
);
Player player = (Player) chunk.getComponent(entityId, Player.getComponentType());
if (player == null) {
// DEBUG
LoggerUtil.getLogger().info(
"[CancelCraft] No Player In The Craft Event For "
+ event.getCraftedRecipe().getPrimaryOutput().getItemId());
return;
}
CraftingRecipe recipe = event.getCraftedRecipe();
MaterialQuantity output = recipe.getPrimaryOutput();
if (output != null) {
String itemId = output.getItemId();
if (itemId != null && !itemId.isEmpty()) {
String permissionNeeded = "cancelcraftmod.recipe." + itemId;
boolean isAuthorized = player.hasPermission(permissionNeeded)
|| player.hasPermission("cancelcraftmod.*")
|| player.hasPermission("cancelcraftmod.admin")
|| player.hasPermission("cancelcraftmod.recipe.*")
|| player.hasPermission("*");
if (!isAuthorized) {
event.setCancelled(true);
// DEBUG
player.sendMessage(Message.raw("§cyou don't have permission for crafting this item."));
player.sendMessage(Message.raw("§7(Permission needed : " + permissionNeeded + ")"));
// DEBUG
LoggerUtil.getLogger().info("[CancelCraft] Lock Craft Of " + itemId + " For " + player.getDisplayName());
}
}
}
}
}
Here my event class. Do you know how to fix that please ? c:
does anyone know how to use message params? I want as Message const like: final TEST = Message.raw("{player} likes bananas");
and then i want to replace {player} via: TEST.param();
Message.raw(TEST.param() + " likes bananas")?
no i meant like i have a MessageManager with the constant Message.raw("You started a {minigame} match against {player}")
and then later on fill in those arguments
u can use .getRawText() and then replace
'Failed to load CustomUI documents' Can some1 help me?
pls someone, i need to know if its possible or not right now
.param
Oh you already know that
that was what i was thinking but it doesnt seem to work actually
I think you have to use translation messages
withRequiredArg, so it's "mandatatory" ? How to set it optional? Or it's by default, and we can just check on our side (in our class I mean) when it's empty or not, the argument value.
OptionalArg
@civic zephyr I keep getting a 'Failed to load CustomUI documents' error, what does this mean?
ah alright then ill look into those
Alright, thanks.
I don't know I haven't messed with UIs
it cant find the UI file you need to make for rendering custom UI
I need to make one, where?
Just if I let required class, the command will still run if I don't give the args? Or I have to put always optional in this case.
Enable Diagnostic Mode on Settings > General and if will show you the exact issue
How do I register a custom system that extends DeathSystems.OnDeathSystem? I have the system class created but not sure how to register it for a specific world.
you need to make a .ui file in the /resources/ folder
getEntityStoreRegistry().registerSystem
alright, on it
If you have required arguments you have to fill all of them
i myself am unsure how to create the .ui file though since someone else in my team made them
Alright.
Optional args don't need to be filled
the .ui file is how to UI will look like when rendered though
does anyone know how i can apply poison to the player
@abstract orbit is there like a good documentation about UIs?
not that i know of, the member of my team was on it for 2 days
nevermind, they updated i see!
its on hytale-docs com
How do people live update text on HUD? f.e playtime ticking, I can't seem to get it to live update
playerComponent.getPageManager().updateCustomPage()
Does anybody here know if its possible to add zip files into the mods folder on my hytale server? I use third party hosting through bisecthosting and want to add some cool mods from curseforge that comes in zip files instead of a regular jar file
ModelAsset.getAssetMap().getAsset("Cow")
How do I get the model for the Cow properly. Do I need specify the exact path?
I think (correct me if I'm wrong), they mentioned that this should work
You have to unzip the .jar file itself into your mods folder
var newModel = Model.createScaledModel(ModelAsset.getAssetMap().getAsset("Cow"), 1);
You don't have to specify, if the model loaded is called "Cow" then its fine
@civic zephyr Thank you for the help i have finished what i was making
The jar file works completley fine, but i thought that maybe the server would have some problems with all the files within the zip files. Like visuals, sounds and everything
Has anyone created a utility yet to allow colorized messages
IE: &e&lHello &b&lWorld
Forgot to send full line of code, but that's exactly what I'm doing, but ModelAsset is null
Are you sure the model you want is called "Cow"?
Selector.selectNearbyBlocks(origin, radius, collector);
why does this select a 4x4 area if my origin is at 0,0 and radius is 2? I thought it would select a 5x5... Instead it selects a 4x4 and the center is not at 0,0
Is there any way to test things across multiple players alone?
imgur / CLjLi2f.png
Yes that is the model name Ive just checked, are you running this method earlier than the asset manager loading all the assets?
Yup its called "Cow"
bruh I keep trying to send code and it gets blocked for advertising (I am not advertising anything) 😭
if I put a 2.5 radius, it selects a 5x5 but the center is not at origin, but at -1, -1
Would there be a way to assign a tag to a block set with the asset editor, and then call on that tag in a plugin?
ModelAsset/LiveStock/Cow
Are you getting the asset in your setup method or something like that
The model might not be loaded yet
Ahh yes I'm loading the Model in setup and then creating a ModelAsset with it in a command
Other way around?
Should I load my configs at a later stage?
Why not just load the model when you need it?
Yep could do that
has anyone figured out how to apply an effect like poison to the player?
guys evryone got issues when he tring to join any server ?
If you still want to store assets or something for the future, the asset maps are loaded after BootEvent which is a regular IEvent
Does anyone know the blocks that get destroyed from a boomshroom when it explodes is there any way to get the blocks impacted by the explosion ?
puplic servers
can someone share the doc link again 
?
hytale-docs dot com
hytalemodding dot dev better imo
Oh yeah there's that too.
no im asking if evryone like my or not
bump
im just trying to get one of my perks working, and im not good enough at java yet to read the hytale api and see what to do but im working on it 😭
@spark escarp
I'm assuming it'd be Player->LivingEntity.getStatModifiersManager().applyEffectModifiers(...vars)
Would anyone mind trying to join my server to help me test a mod im making? Should be pretty quick ~3 mins
anyone know how to fix a set of corrupted server files? world loads but the chuncks fail to load during the joining process?
i dont really understand the Player->LivingEntity part
has anyone figured out hot to use player.getPageManager().openCustomPageWithWindows()? I figured out how to open windows and how to open ui pages but with this method it only opens the ui page i give it without the given window.
Player is a child of LivingEntity, so you should be able to still use the stat modifiers methods. I'm new to ECS/Mods, I mostly have done art stuff for mods
oh i see
LivingEntityEffectSystem.canApplyEffect() perfect:)
Anyone knows a way to cancel the explosion from boomshrooms ?
Hi, Does anyone know how to create my own ZonePatternGenerator or for example how to create a world consisting of one of my unique zones?
You can replace the asset and get rid of the:
"Interactions": {
"CollisionEnter": "Block_Explosion"
}
how would I go about referencing tags I've applied to a block set?
Would like to keep the damage but get rid of the (block damage) explosion or get a way to control the explosion do disallow it in certain areas
Welcome to the life of a dev enthusiast: trial and error 😉
You can change the interaction to a custom one
does the api have an enum with all the blocks in the game?
in what folders i put the images used inside a .ui?
In Block_Explosion there is:
"BlockDamageRadius": 5,
And one for Entity Damage Radius
Could make a new interaction which is a copy of this one, change the block damage radius to 0, then in your boomshroom override you change the interaction asset to your custom one
All blocks are dynamically data driven so theres not gonna be an enum
I guess that works but would disable the damage everywhere in the world would just like to disable it in certain areas
This might also be helpful
EffectControllerComponent effectControllerComponent = (EffectControllerComponent)store.getComponent(ref, EffectControllerComponent.getComponentType());
assert effectControllerComponent != null;
EntityEffect effect = (EntityEffect)this.effectArg.get(context);
Float duration = (Float)this.durationArg.get(context);
effectControllerComponent.addEffect(ref, effect, duration, OverlapBehavior.OVERWRITE, store);
context.sendMessage(MESSAGE_EFFECT_APPLIED_SELF.param("effect", effect.getId()).param("duration", duration));
You'd have to write custom code to register a custom Explode interaction
Its
BlockType.getAssetMap().getAssetMap().values();
I believe
think i got it working but i cant test 😭 guess ill see when i finish my server, ty for the help
Hey ! Idk if it's the right channel for this kind of question :
I'm using a self hosted server, I configured it and it's working. I tried to add mods and I found this syntax for the config.json file, but is there any other solution ? Because writing it for each mod looks awful
"Mods": {
"Buuz135:AdminUI": {
"Enabled": true
}
how do I make a world generator that generates ONE floating island in the void with a set size? can I do that somehow?
You shouldn't have to enable them in a server (That isnt a local world), just put them in the mods folder
Just that doesn't work, I found this solution for Linux Hosted Server
If I don't write it, it's like they doesn't exist, or they're not enabled
Where did you find this ?
Its the Block_Explosion interaction in the default hytale asset pack
Hi guys. Does anyone know how to add custom components to entities, items, etc.?
how do I force-update an asset?
Maybe it will help, my server is hosted by OVH, but I configure it, its a VPS
you can't. it's not implemented yet afaik
I saw a demos, I know that's developing
Theres no voicechat in the game
What you saw was probably a mod using an external app or something
oh, okay thanks!
it's hersay but I did hear that hytale devs were messin around with it
They might be
When will be available?
don't know how much truth in that
we don't know IF it will be available
"when" is not even a question so far
You have a source that described how to do that ?
I copyed the Explosion asset and set the Radius to zero but how do i link the item and the new interaction now
You just replace the item asset in your new pack
Of the boomshroom
Where it says "Block_Explosion" in the interaction just replace it with your custom one
Well i can find the boomshroom asset but cant seem to see a field interaction in the json structure am im blind ?
Its in Plant_Crop_Boomshroom_Small
Also I found out that my .jar mods are seen, but not .zip mods
HytaleServer.get().getEventBus().register(PlayerMouseButtonEvent.class, event -> {
LOGGER.atInfo().log("opa1");
}```
Is there a problem with my click event? I'm trying to click on an NPC, but the event simply isn't triggered.
The mouse event doesn't fire, its broken
Ah, ok.
Is there any way to make clicking on an NPC work?
And you don't have to register events like that just call
getEventRegistry()
In your javaplugin class
Left clicking?
Yes
Hitting them?
got it all working now ty:)
Has anyone had any luck with renaming an item via the API?
Right-click, sorry.
Or change it's description. It needs to be player-specific though
With an empty hand?
Sick! Glad to hear!
Yes, I want that when the player right-clicks on an NPC, an action occurs, such as receiving a message in the chat.
I understand registering abstract commands but how could you set that command to execuute a console command? Or just run a console comman for ex: /give through code?
As of right now, right clicking with an empty hand isn't available to detect
You can't use the Use/Interact interaction?
How use?
F key
Please 🙏
please, can someone help me?
i can't get it to save the changes to config.json and update the changes when i click "save" in the ui.
Ah okay got it thanks
How you open chests and doors
What is the name of the function I can use to bind to my NPC?
If you have a custom NPC you should add interactions to their custom entity role if you have one
Ok, thanks
hey hey, how could i fix this? .-.
"[InteractionChain] Attempted to store sync data at 0. Offset: 2, Size: 0"
Are you cancelling UseBlockEvent.Pre ?
i did nothing, i installed normal server and play since some hours, now i cant break anything cause its lag 😅
One of the plugins you've installed is using a semi-broken interaction cancelling method
Do you have any plugins installed?
Ahh yea, im using an plugin to create an infinity water source .-.
Hello! You can add both .jar files and zip files to the mods folder on your server. Send me a DM and I can send you a link to our guide if needed. 😄
Try removing it
will this remove currently placed water?
Im not sure what you mean
forgot an word to write
Anyone? Or change an item's description. I'm working on some sort of enchantment system, and I need a way to visualize the enchantment value on the item in the name or description.
I doubt that
Good afternoon, I apologize for the poor translation, I'm using a translator.
I'm trying to create a server, currently the lobby, and I'd like to know how to make the portals work and take you to a match? Is there any documentation on how to create assets or how all the commands work?
The way the game works for renaming items right now are practically as many separate items as there are states for it
Thank you, i will try it!
The "item name" is not a modifiable property for a single instance of an itemstack
I am baffled maybe missing the obvious, but how do you get yourself to a new world you just added to the server files?
I did everything then I was like where's the command to warp to it lol
whats the difference between addWorld and makeWorld?
tp world worldname ?
Not sure it doesn't really seem like theres a noticable internal difference
I see, thanks! Unfortunately having a separate item for every possible enchantment state would be nearly impossible with my preferred implementation... Let's hope they introduce something to make this possible in the future. Any other suggestions on making this visible on a weapon (aside from VFX) would be appreciated!
amazing missed that command because though it was just player tps lol
Did you manage to solve this?
Please someone tell me where are the docs on the API
I found a website but im not sure if it's good? it's HytaleDocs First link
is there a way to load items and languages from a plugin?
there are no official docs
Then how do people create plugins
by reading the decompiled source code
😭
lol
It is unobfuscated and has local variables preserved, so it isn't as bad as it seems.
they got FNAF 1 working in hytale
Is there a way for a Group to just adjust height to the items in it automatically?
There is also good community documentation at Hytale Modding's website, the link is blocked but you can Google it, the domain ends with .dev
Is there a server reload command so that every time the plugin updates, I don't have to stop and restart it?
is there a way to load items and languages from a plugin?
plugin unload
How do you get past the ZipFile invalid LOC header?
Yep! In your resources file! Copy the games folder architecture
Does anybody have some code to teleport between worlds? I just can't figure it out
Hey, there's a list of all items ID and all mobs ID to use them on plugins?
Good evening guys, I'm creating my own server on Hytale. Right now I have two worlds, one flat and one default, on different instances. I just managed to connect the portals via a mod to move from world to world. Question: How do I set up the hub in the flat world and, while I'm in the default world, doing /hub takes me back to the flat world?
Has anyone else noticed that after the latest update some players can’t join servers until they reset their skin?
We’re seeing cases where the connection fails, but as soon as the player presses Reset Skin and reapplies it, they can join normally.
Anyone else experiencing this?
only need to have them in resources or do I have to copy them in /mods?
please help
Is it possible to listen to Hide HUD events by the player (F8) ?
Hi everyone, can anyone tell me how to get World from setup to access ComponentAccessor<EntityStore>
What context are you operating under
Im not really sure what you mean by the question
Universe::getWorld(s)
you can get the World with a String, UUID, or an iterable over all the worlds
if i Understand your question correctly
👋 I'm looking for testers for my new AI NPCs plugin (using LLM/MCP), anyone interested? I'll be releasing a first testable demo this week.
(the JAR file will be open source)
Hello everyone 🫶🏽
I’m building a fan site for the game, but I’m running into some difficulties when it comes to tracking bugs and fixes. Does anyone know if there is an API or a similar source that provides this kind of information?
Thanks in advance!
What is required to test it?
how can i reported bug ?
Do you mean something like Sentry/Posthog? They would provide info about issues users are encuntering
To have your own server and an open router key to use free models. I provide the rest with access to a dashboard to configure NPC.
player.sendMessage(Message.raw("item id: " + itemId));
CombinedItemContainer combined = inventory.getCombinedEverything();
int total = 0;
for(int i = 0; i < combined.getContainersSize(); i++){
for(short j = 0; j < combined.getContainer(i).getCapacity(); i++){
ItemStack item = combined.getContainer(i).getItemStack(j);
if(item == null) continue;
if(item.getItemId().equals(itemId)) total += item.getQuantity();
}
}
player.sendMessage(Message.raw("total: " + total));
have i missed something about this? Its suppsoed to find the amount of itemId that the player has on them in the current moment
Is the op permission also op when using this.requirePermission(); in a command
I see what you mean, but I’m not referring to website errors.
I’m looking for an official or semi-official source (API, feed, tracker, etc.) that lists game bugs and fixes, similar to patch notes or a public bug tracker.
I can do that send me a dm
ah. No not yet i dont think. But who knows: Might get a bug tracker website with an API someday
how do i register a RefSystem in my plugin?
hmm okay, thank you
got it, entityStoreRegistry.registerSystem()
Hi, I'd like to create a learning plugin where, when the player types /mob, it generates specific mobs around them. Does anyone know where I can find this documentation?
Is there a way to perform commands as a player triggered by my plugin
Like simulate that the player has performed it
if possible it is propably in the CommandContext
How do you increase the memory on a Hytale server?
can anyone help me test my skyblock plugin?
you can pass -Xmx8G to the command that starts the server so that the JVM will be able to use up to 8 GB of RAM
I'm not talking about RAM, I'm talking about the memory for installing gates.
Good afternoon, I apologize for the poor translation, I'm using a translator.
I'm trying to create a server, currently the lobby, and I'd like to know how to make the portals work and take you to a match? Is there any documentation on how to create assets or how all the commands work?
you can do commands dump in the console
What would be the best way to find out if one mod causes issues for others?
Is there really no hytale server downloader for arm? :(
I generated a world on my test server (which is a copy of the main one), moved the generated world to the main install worlds. And the world fails to load on boot (its not the defeault one), is there something that did wrong that jinxes it?
how do I create a void world through code? universe.addWorld("world-name", "void", null); is deprecated
I've been able to use addWorld in a try-catch block, checking if the world exists and creating one from catching an IllegalArgumentException. Also, the generatorType is Void, not void. Don't know what to tell you about it being deprecated, I'm not sure what the alternative is.
How can i make configs?
.thenAccept(world -> {
if (world == null) {
plugin.getLogger().at(Level.SEVERE).log("Failed to create skyblock world!");
return;
}
plugin.getLogger().at(Level.INFO).log("Skyblock world created successfully!");
HytaleServer.SCHEDULED_EXECUTOR.schedule(() -> {
setWorldWeather(world, "Zone1_Sunny");
}, WORLD_READY_DELAY_MS, TimeUnit.MILLISECONDS);
})
.exceptionally(ex -> {
plugin.getLogger().at(Level.SEVERE).log("World creation failed: " + ex.getMessage());
return null;
});
}
This is how i get my world, however it may be deprecated but i dont think there is another way currently, it still works, might just have to be re-written at some point
Thanks to whoever made fernflower man
If someone were to make a mod updater that works with jar / zip files for servers that would be amazing
I'm using the PlayerRef#referToServer method, but is there a way to customize the loading screen in server-side ? I know it's possible from client-side to customize this, but what about the server ?
rewritten at some point. They have multiple deprecated things floating around with no docs/comments as to what we should be using instead
I'm using AbstractCommandCollection to register a command and subcommands, but is it possible to make the base command also do something when executed?
It's possible to attach a player command when clicking an Entity created by Entity Tool?
Ask chatgpt, people in this chat ain't gonna know
It will tell you the answer and guide you how to compile it
i found, don't worry, thanks!
You welcome
You mean like a slapper, aka npc
Is there a way to see all the info attached to a block ingame? Tags etc anything else?