Greetings witches, wizards, and all magical folk alike!
Welcome to the fourth Technology and Development blog! We’ve seen continuous great support for the previous ones, which we’re so happy to see. As a result, we mention some really exciting things in this blog that we’re super excited for you to learn more about.
As usual, if you haven’t read the previous ones, you can do so here. It’s definitely worth it:
April Development Blog
May Development Blog
June Development Blog
For this blog, we’ll be covering these topics:
July Achievements: What we have achieved this month
The Admin Panel: How gameplay on Potterworld is created
The Future: What we plan on working on in August
- Our mid-July patch notes were released. This update introduced:
- Focused Quests: Display quests on your scoreboard.
- This will allow us to display the location on the map later in the hopefully near future.
- Quest Item Bag: Receive quest items in a bag like menu, instead of in your real inventory. This will help prevent issues of players not receiving items, and will also help players manage their inventories more easily.
- And much more.
- Focused Quests: Display quests on your scoreboard.
- We created an internal moderation system that makes it easier for us to track players who log off to prevent punishments, and as a result, handle the appropriate punishments when they next log on. This ensures all players are treated fairly and our server remains safe. We’re very excited for this to finally be here, and hope it’ll make moderation easier for the staff team.
- /reset is back!
On reflection, we’ve again had a very successful month. We did quite a lot of work behind the scenes that we’re unable to disclose, but we’re really happy with what we’ve delivered.
Have you ever wondered how the Staff team makes the content they make? Have you been interested in applying for Game Design, but a bit afraid you might not have what it takes, tech-wise? If so, we hope that this section here will lessen your worries, and hopefully encourage you to apply and work with our tools to create amazing and fun content! Let’s jump right into it.
All of our content on the server is created using 4 different ‘tools’:
- We have Magic, for spells and our animations.
- We have Mythic Mobs, for our mobs and bosses.
- We have coded features, such as parties, minigames, guilds, etc.
- And then we have everything else: NPCs, GUIs, effects, disguises, holograms, etc. Most of which are created using the Admin Panel.
GUIs are what you interact with when you click on inventories in-game, e.g. if you do /me. That’s a GUI. Let’s show how these are created:
When we want to create a GUI, we have to give it a name (this is the name in the top left corner of the GUI), and an identifier for internal use. Once we’ve done so, we get sent to this page:
There’s a lot of information here, and we won’t be explaining everything, but the important things are:
- We can see a grid at the right side. This is the GUI that players will see in-game. This is where our items are added and displayed for us. Once added we have the ability to display their resource pack icon and re-arrange them accordingly.
- We can also select how many rows the GUi should have. Sometimes, we only want GUIs with e.g. 3 rows. Sadly, Minecraft limits us to have a maximum of 6 rows in a GUI.
This is where the magic happens. We can create our very own custom item here, by filling out the boxes we’re interested in. We can write the item name, the description, what item it should be (e.g. DIRT, or a hat?), and then fill out the commands.
We have hundreds of our own commands to make it easy to work with. Want to send a message? You’d use the command
message [message]. Want to play a sound? You’d use
play_sound [sound]. You can also limit commands to how the user clicked on an item. This allows us to perform different actions depending on whether you left clicked or right clicked an item, or even held shift while clicking it! And even more!
We also have the ability to hide items based on certain conditions or to change e.g. the item name based on other conditions. Maybe we want to change the item name if your level is higher than 50. We can do that easily with the press of a few buttons!
Now that we’ve created our GUI, let’s say we want players to be able to click a block to open the GUI. We can achieve this through utilizing an interaction.
Interactions are things we can bind to NPCs or blocks, and they’ll run whichever commands we want them to. Interactions also have the ability to have holograms, effects, disguises, and even act as mob spawners! However, we won’t be going into that today.
Let’s for now, make a simple interaction that opens the GUI for players who are above level 50, and sends a message to players who aren’t.
First, we need to create the interaction. Here, all we need is to write the identifier, which we’ll need to bind the interaction to a block. Once we’ve done that, we get sent to this page:
Now we need to add an action that opens the GUI for the player. This is quite simple:
We can specify a description for internal use. If someone else is viewing this interaction, we want them to know what the action is doing, without having to look through all the commands. We won’t be covering “behaviour” or “match” today, however we will be focusing on the “commands”.
Now for our interaction, we want to make sure this action ONLY runs for players above level 50. We can do that by adding a rule:
A rule, is like an IF condition in coding. It allows us to essentially say: Only run this action IF these rules are met. Here, we have created more than 100 rules for the staff team to use. In this case, we want to see if their experience level is greater than 50. Their level is considered a “stat” (which is another part of our tech, that we won’t be going into). In this case, a player’s level is saved under a stat named
We have many more rules though, such as, checking a player’s year, a player’s inventory, and so much more.
And that’s it! This action will now only run for players above level 50. What if a player below level 50 tries to click on the block that has this interaction? Well, for those, we can add a new action to handle those! And so, we end with this:
If the player doesn’t meet the first rule, the interaction is going to try to run the next action. Since the second action has no rules, it’ll work and they’ll receive the message.
If the player meets the first rule, it’ll run the commands in there and then stop. This means it won’t run the commands in the second action.
Phew! That was a lot of information, I’m sure. If any of this sounds exciting to you, consider applying for Game Design, or Engineer! Working with these tools can be super fun and for the most part, the biggest limitation is your creativity. If you’re creative enough, you should be able to create anything you want.
Learning this tech usually takes the average staff member a couple of days. We have internal tech training teams to help you get settled into the tech, so you’re not thrown into the deep end. We spend a lot of time evolving this tech to make sure it’s as user-friendly and dynamic as possible.
We wanted to show these tools to shed light on what we as Developers do behind the scenes. We always say we do work behind the scenes, but we can never show any of it. As you can see, sometimes, the work is a lot more complicated. We’re actively working on the Admin Panel, the backend servers, the Minecraft plugins, the staff tools, bug fixes, and much more.
While it’s been a while since we gave one of our legacy plugins a makeover, we now believe it’s time to turn our focus to housing. We plan on addressing the majority of suggestions by the community, as well as implementing a lot of the plans we have internally. We cannot wait to show you what we have in store for this.
We’re also planning on spending more time developing some tools for the Game Design team, but there’s not much we can elaborate on there at this point in time. If we manage to achieve anything that we can say, we’ll include it in the next blog.
This month, and next, also include the return of school and work. Some of us have already returned, so we expect development to slow down. We’ll still keep going with the blogs though, we have a lot more things to show, such as more data, more parts of the admin panel, some code, and/or how we make certain mobs and spells. We have tons of content ready for use!
And that brings today’s development blog to a close. Thanks, everyone! We hope you enjoyed this month’s dev blog. As usual, please continue to give us your feedback, it’s truly appreciated.