Topic category: User side tutorials
As someone who loves experimenting with MCreator's procedures, I bring you guys a workaround for allowing your entities to move vertically, without writing any code whatsoever! Just in case you can't find any code help or are not good at coding and have been looking for help on this matter, you can follow this tutorial. This works well with flying mobs as far as I've tested, so here goes!
PREREQUISITES
- MCreator 2020.5, Forge 1.15.2 generator (or at least that's the version I made this on)
- a rideable flying entity
- an adequate understanding of NBT tags & procedure systems
STEPS
1. Creating Key Bindings
Make 2 key bindings. One will be for your mob's upward movement, the other will be for its downward movement. In my case, "spacebar" for flying up, and "R" for flying down, as I'm comfortable with those.
For allowing your entity to move upward
For allowing your entity to move downward
These key bindings, when used, will alter an NBT variable that will be utilized for our entity's vertical movement, which we'll talk about soon.
And here's how it starts. Hold on tight!
2. Upward Movement Key Bind - Procedures
Go to the upward movement key bind (spacebar) and use its two triggers.
In its "On key pressed" trigger, make a procedure that checks if the entity being ridden by the player is a (sub)type of your flying entity. If true, then set an NBT tag with name "VerticalMovement" type "number" of the ridden entity to value of "1", which value would signify that the entity is currently flying up.
It should look like this:
In its "On key released" trigger, make a procedure that also checks for the entity being ridden by the player. However, this procedure should set its aforementioned NBT tag "VerticalMovement" to "0" once you let go of spacebar.
3. Downward Movement Key Bind - Procedures
Go to the downward movement key bind (R), and just like in the spacebar key bind, use its two triggers.
In its "On key pressed" trigger, make a procedure that... once again, checks the ridden entity's (sub)type. This time, set the "VerticalMovement" NBT tag to "-1", which would signify that the entity is flying down.
And in its "On key released" trigger, make a procedure that looks exactly like what we did on the upward movement key bind "on key released" trigger (refer to the 4th image in this forum topic once more). Alternatively, you could save a few seconds of life and just reuse the "On key released" procedure of the spacebar key bind, since they're intended to do the exact same thing (setting "VerticalMovement" to 0.)
4. Entity Living Tick - Procedures
Here comes the best part: actually letting the entity fly up and down in response to the keybinds the player presses! This procedure is where the magic happens. And I promise, this is the last thing we'll do.
Go to your entity, go to its Triggers
tab, and add an "On entity tick update" procedure.
Edit the procedure, and do this:
Basically, this procedure first gets the flying entity's "VerticalMovement" NBT tag. If the tag's value equals "1", then set the entity's Y velocity to 0.3; this will make the entity slowly fly upward. Else, if "VerticalMovement" equals "-1", set the Y velocity to -0.3, which makes the entity slowly fly downward.
5. Testing
Now save it, build the workspace and run the client, test it in-game and see if it works!
That's pretty much it. I hope this tutorial helped you, and happy modding! :D
P.S. if there's anything wrong, if you have suggestions, or need further help, let me know in the replies!
is it normal that when you go up or down you have like a drift that makes you go down for 15 blocks after you released the button, i've tried multiple things but it just not seem to work.
This isn't working for me. The mob just sits and then I get a console error saying; server overloading. I don't know if this is a glitch in later versions in MCreator or if this is an older procedure that no longer works.
I recant. Make sure when you create the flying entity. Make sure to click "Is Entity a Flying Entity?". If you don't this will lag. However, I am trying to find out how to make an entity fly faster
sorry where i can find block "set _______ data number NBT tag ________ to _______"?
Hey, using this for a completely random mod, and when I press one of the set keys while not riding an entity it crashes immediently. I looked around for a 'is target entity riding another entity' to fix this but can't find anything like that. Any fixes?
I looked at this tutorial and did the same thing, but it doesn't work for me. Can someone please help me? I really need to be able to make a rideable flying entity that can fly properly, but it has a problem and it doesn't work properly, it seems to mess up the game.