top of page

5 Things I Wish I Knew When I Started Using MapleStory Worlds Creator Tools

Updated: Mar 24

Welcome to the first article in my MapleStory Worlds Development Blog! My articles will obviously be heavily inspired by my experiences creating Everel, but the goal is to write something useful for all MSW creators.


My best advice is always to go to the official documentation at https://maplestoryworlds-creators.nexon.com/en/docs/?postId=472 and start reading. When you're ready to start actually creating, here are 5 things to keep in mind as you start that I wish someone had told me when I first began.


1. Use the LocalWorkspace Feature


When you use LocalWorkspace you can save your work faster and all your files are sitting locally on your hard drive. This also gives you the ability to manually implement the version control solution of your choice.


See the official LocalWorkspace article here: https://maplestoryworlds-creators.nexon.com/en/docs/?postId=1165



2. Make a Beta World



You can export your entire world to a single .mod file...



... and then create a new world and import that file to instantly create a snapshot copy of your world.


This allows you to have a separate world that you can let people playtest and you can simultaneously continue development without worrying about making a change that makes the game temporarily unplayable.


3. Make a New Component for Everything!


Script Components are an excellent way to keep your code modular. If you're describing what one of your components does and you use the word "and" at any point, everything after the and should be in a new Component. It will probably seem silly at first.


Why should I create a new Component to handle opening the radial menu with a mouse click when I can put it in the CustomPlayerControllerComponent where the rest of button clicks are held? The answer in this specific situation is because it wasn't very long until I wanted the menu to appear on things other than the player and my option was either extract it out to its own Component, copy and paste a portion of the CustomPlayerControllerComponent into a separate RadialMenuComponent and have messy duplicated code, or very awkwardly have a function called in the CustomPlayerControllerComponent to open a radial menu on an NPC even though that function has nothing to do with controlling the player.


You make your own code easier to implement in different scenarios the more modular you write it from the start. As a bonus, the more modular your Components are the easier you can re-use them if you ever start a new world or want to share your Component with the community!



4. Communicate Changes Between Components with Events


Events are a fantastic way to abstract interfaces between Components. Get in the habit early on to handle inter-Component communication via the Event system. Try to proactively think of important things that happen in your World that you might want to have the ability to listen for. A good example is the initial loading of user data. When user data is loaded, send an event saying that the user data is loaded. Then whenever any Component you write in the future requires user data to be loaded you just need to listen for the event you already implemented! See the official Event articles here: https://maplestoryworlds-creators.nexon.com/en/docs/?postId=30



5. Save Data When Needed


The official documentation does a great job teaching how to load data when a user logs in, autosave periodically, and save data when a user leaves. You as the creator need to think about how to use those features best for the data you are using.


When I first made Everel for MapleJam '24 I was saving all data when a player left the game and I tested what would happen if I added several thousand inspirations all at once and the answer is I couldn't save data anymore because the amount of data to save was far over the data transfer limit.


I was learning the tools for the first time and also on a time limit for the MapleJam competition so I had followed the documentation closely and hadn't stopped to think about the big picture.


Since then, I've identified that very little of my player data needs to be saved when a user logs out because most data really only needs to be saved at the moment it changes. For instance, I only need to save the fact that a player earned an Inspiration when that player actually earn the Inspiration. I don't need to re-save the earned status of every Inspiration when the user logs off. In fact, the only data that I ended up leaving on auto-save and save-on-exit is the player's amount of Creativity.

See the official data saving articles here: https://maplestoryworlds-creators.nexon.com/en/docs/?postId=33

Welcome to the dream world of Everel!

Explore a positive adventure centered around inspiration, creativity, and encouragement solo or with up to 10 of your family members or friends.

An INSPIRED REVELERS Family-Friendly Game

Available on PC, Android, and IOS Mobile

© 2025 BY INSPIRED REVELERS. Powered and secured by Wix

bottom of page