#need help
1 messages · Page 1 of 1 (latest)
Please don't throw the whole data pack at us.
What are you trying to do, how are you trying to do it, and what is happening instead?
Show your work. How are you trying to do it?
Describe what I'm looking at
The issue is your @s[distance=..1] check, I assume you want to make sure that the player is in the right dimension but this is not the way to do that.
I quite frequently make similar mistakes myself with target selectors, you need to change your logic.
anything you check within the braces of a @s target selector will be run as @s at @s so a distance on @s can and only ever will 0
the correct way would be to actually check on @a rather than running stuff after selecting all players.
how can you do this properly?
-
create a predicate to check if a player is in the end dimension and put that in the first
@aselector since that will ensure only players in the right dimension will be doing anything after that. -
instead of the
@s[distance=..1]selector put inif predicate {condition:"minecraft:location_check",predicate:{dimension:"minecraft:the_end"}}this is worse than above solution for various reasons but does the trick. -
Start your entire execute with
in minecraft:the_endthis way you can only select players within a volume in the end, do your outer volume check immediatly after, no need to "if" it since a volume selector already is a "if/else" itself.
Option 3 is arguably the best
both for readability and your own sanity
I hope my explanation is clear enough but if you do end up stuck or think something isn't working the way you want it feel free to ask me again.