Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
Introduction
Moonflower is a localization and event-based plugin for RPGMakerMV. It allows the developer to both localize their game in any language of their choosing and create flexible events out of text files. This plugin is free for non-commercial use but commercial use requires a license that will support any future updates.

Version 1.2.0


Phase 1 was localization which has been completed and can be done using a spreadsheet and the companion website.
Phase 1 has some of the following features:

  • Text code support
  • Localization support
  • Supports any language
  • Switch languages on the fly
  • Localize skills, enemies, other database information
  • Notetag support for localizing database
  • text codes for random NPC or sequenced NPC text
  • text code support for colors large text, and should work well with Yanfly's text codes

Phase 2 is the scripting language for creating event commands out of text files.
Most event commands have already been added, but documentation needs to be added before it can be used long term. Here are some of the features:

  • Text code support
  • Many of MV's event commands
  • Call event support
  • Script calls for running your event command scripts
  • 1.5 Plugin Parameter support
  • Scripting language for writing event commands
  • Share your event command scripts with anyone else who uses the plugin
  • Documentation for scripting language to help you get going quickly
  • Advanced commands for writing simpler commands to do advanced things in MV


Plugin
You can find the plugin here: http://endlessillusoft.com/moonflower/

Please try it out and give your opinions on either phase 1 or phase 2.

Screenshots

MoonFlower5.png


MoonFlower1.png




Example Script:

Code:
comment: This is a comment line
cml: This is line 2 of my comment

showText: , 2, Window, Bottom
text: Hello World this is line 1 of my show text command.

script: console.log("Hello World");

changeGold: Direct, 2000
changeGold: Direct, -50

changeItems: 1, Direct, 10
changePartyMem: 1, Add, false

:end:

No Access Script
Code:
comment: Disables all menu, save, encounter, and formation
cml: access in RPGMakerMV.
changeMenuAcc: Off
changeSaveAcc: Off
changeFormAcc: Off
changeEncDisable: Off
:end:

Conversation Script
Code:
character: Zack, Actor2, \C[1]Zack\C[0]
character: Sam, Actor1, \C[3]Sam\C[0]
conversation: Window, Bottom, Actor1
Zack[0]: How are you doing today?
Sam[1]: I'm doing well Zack, thanks.
:endConversation:


This is an example of what the scripting code would look like.
You can copy and paste this into the mlCommands parameter in the plugin.

Then you can type
MoonFlower.run(1); to run it as any MV event in your game.

Notes

I decided to make this plugin because I find clicking and creating event commands to be a pain, and this plugin basically allows you to sidestep a lot of the pain, plus share any event commands you've written with anyone else.

As of now I've learned you can expand the MV game interpreter to add more intricate text commands and thus I will be adding support to the scripting language for more complex commands to make using it easier in MV.

If you'd like to help, please offer any suggestions down below and I'll get back to you and see if it's possible.

Once the scripting language is complete I'll add documentation for it.

Scripting Reference:

 
Last edited:

Alastor01

Veteran
Veteran
Joined
Nov 13, 2016
Messages
218
Reaction score
257
First Language
Russian
Primarily Uses
N/A
This is a very helpful plugin!
Not only we can share these event files, but save / archieve / reuse / dynamically change scripts inside :D
Thanks!
 

Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
Yup that's exactly the idea; spread the word I'd like to get more ideas in here!
 

Bricabrac

The Storyteller
Veteran
Joined
May 24, 2016
Messages
113
Reaction score
218
First Language
Italian
Primarily Uses
RMMV
Oh!
This is EXACTLY what I did for my project - but since I'm a scrappy scripter, I reached the result though a hellish mixture of javascript and common events instead of making a proper script.

Would you like to give my system a look, maybe? It has documentation! I implemented more event commands - and most importantly, useful commands for narrative games like dynamic show choice and jumping to different dialog lines.
Might give you ideas. Idk. I'm just happy someone is making the same thing I'm doing.
 

Rabosion

Retro Pixlr
Veteran
Joined
Mar 20, 2016
Messages
159
Reaction score
239
First Language
Dutch
Primarily Uses
N/A
I really love the concept of localising your own game, so I tried the plugin out. Somehow I run into the same problem each time. I don't know if it's a bug or not. Anyway, this is the way I set everything up.

My goal was to let the sentence 'This is an introduction to the new world of MoonFlower!' appear in English and Japanese. (This was the example sentence found in your example file.)

6.png

So first I downloaded your .xlsx file and converted it to .json and put it in the game folder 'Project 1'.
5.png

Then I installed the plugins (these are the only ones active).
3.png

I filled in the list of the languages (japanese and english), the rest remained blank. (I don't understand how to work/ what to do with 'Localization Information' so I didn't want to mess with it)
4.png

I made an event like I saw on the website with (I think) the correct plugin commands.
1.png
2.png

When I test the game however, this message appeared twice:
7.png

I tried it again with only the 'setLang en' plugin command and the ' \LX[npcchat-introduction] ' text message, but that gave the same message

Did I do something wrong with the plugin? Do I need to configure it differently?

(Sorry for the long message @Kino, but I hope this makes it easier to understand everything. Again, I really love the idea of this plugin, thank you for making this!)
 

Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
Hey @Rabosion

Did you download the Amaryllis plugin?
It's a core plugin for my library and goes at the top of the plugin list!

If the issue persists, just send another message I'll help out. And if it can help someone else, send it to em!
 

Rabosion

Retro Pixlr
Veteran
Joined
Mar 20, 2016
Messages
159
Reaction score
239
First Language
Dutch
Primarily Uses
N/A
I downloaded both Amaryllis and Moonflower and put them both at top of the list, @Kino . But just to doublecheck I redownloaded and reinstalled the plugins, making sure they were at the top of the list. Sadly, the issue still persists. But as a reference for you I will post the project in a few hours.

EDIT: you can download the project here. I removed unneeded files (for file size reasons). Everything is the same as I described in my previous post (see spoiler).

https://www.dropbox.com/s/9ilttqa2oi7y7gy/Project1.zip?dl=0
 
Last edited:

Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
@Rabosion try adding .json to where it says localization in the plugin parameters. That might be the issue.


Also I'll check out the example file project many thanks!
 

Rabosion

Retro Pixlr
Veteran
Joined
Mar 20, 2016
Messages
159
Reaction score
239
First Language
Dutch
Primarily Uses
N/A
Do you mean the 'file path - "localization" ' parameter @Kino ? I've changed it to "localization.json". However, that doesn't seem to change the message, it stays the same as before.
 

Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
Hmmm okay I'll check it out today and send a message / update these instructions.

@Rabosion Hey; I updated the plugins and you should redownload both of them. I updated it to work on all browsers.
 
Last edited:

DaedraTalos

Evil Plugin Overlord in the making
Veteran
Joined
Jul 8, 2016
Messages
73
Reaction score
60
First Language
English
Primarily Uses
RMMV
Hey @Kino ! Quick question: would it be able to use this plugin to do the following: (if not, do you have any idea on how to do it?)
- a lot of events (20+) activate the same common event at the same time
- that common event moves the event that activated it (hence, all of these events) in a random direction (random for every single event, so there shouldn't be the case where all of the events move in the same direction
using variables for this would be way too complex, since 20+ events would be setting variables at the same time, and I don't see how we could make the common event check for every single one of them (keep in mind that the events need to move at the same time)

an easy way to do this would be to reserve the eventId of the event that calls the script $gameTemp.reserveCommonEvent(ID); by adding another parameter to the script call (like $gameTemp.reserveCommonEvent(ID, eventId);), and then somehow access it (self variable?) to make that specific event move. :D

If I didn't make this clear enough (which I probably didn't, obviously :| ), just say what you didn't understand and I'll try and make it clearer! ;)

See ya!
 

Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
@Rabosion

Try the latest version and tell me if it's fixed for you. I used your sample project and fixed it up there.


@DaedraTalos

This plugin doesn't cover that use case Daedra; it's for creating multiple events outside the game.
 

DaedraTalos

Evil Plugin Overlord in the making
Veteran
Joined
Jul 8, 2016
Messages
73
Reaction score
60
First Language
English
Primarily Uses
RMMV
:D Ok then, thx anyway, and sorry for posting in the wrong place, then :p

btw, any idea on how I could make it happen anyway? :)
 

Rabosion

Retro Pixlr
Veteran
Joined
Mar 20, 2016
Messages
159
Reaction score
239
First Language
Dutch
Primarily Uses
N/A
Sorry for the late response, @Kino . I tested it as soon as I saw a notification. I redownloaded the plugins on the site (from the section Moonflower - I think that was the correct spot to download them again?) and tested the same event.

I tested it in two conditions:
1) I used the same setup as my first post (meaning the file path is just 'localization'). This gave me the following result : the message from the event said npcchat-introduction (this time it doesn't show any brackets)
Untitled2.png

2) Then I tried changing the file path from 'localization' to 'localization.json', as you suggested. An error occured when I talked to the bat: the message box would open and when it tries to load/display the message the game crashes and the following pops up.
Untitled.png


SUPER important edit!
3) I've tested it another time. This time I redownloaded the .xlsx file from your site, converted it again to .json and reinstalled it in the same spot. (keep in mind, the event and plugin parameter setup was exactly the same as my first post with the path set to 'localization') Now the messages appear correctly:
Untitled2.png


So I guess it's important that with each new build, we should install the newest versions of Amaryllis, Moonflower and the example .xlsx/json file to be safe.

Thank you so much for your time, @Kino ! I'm so happy you've found a solution. Now I can easily translate my npc dialogue:kaojoy:
Untitled2.png

I do have a question though:
Is it possible to translate every menu term/description (that the player can see) in the game with this plugin? For example I tried to translate the menu using the \LX[sheet-nickname] text. While testing the menu showed only what I typed in the database, no translations from the .json file. So I'm not sure if it is the correct way to do it or not. I also updated my project if that could be of help to you. (I have also included the .xlsx file so it's easier for you to see my edits in the sheet 'npcchat' )

https://www.dropbox.com/l/scl/AAD_bbQoC-iY8PqHEqxnwxcLrG_Lq9kpHk8

I hope I'm not bugging you with all the rambling and the questions about the plugin, as I am super grateful that you made and improved the plugin already!
 
Last edited:

Kino

EIS Game Dev
Veteran
Joined
Nov 27, 2015
Messages
560
Reaction score
801
First Language
English
Primarily Uses
RMMV
You mean like editing skill menus and stuff? I think it'd be pretty hard since some of this stuff is hard coded. You can translate all the database items though.

I have an idea for translating the system tab.
 

Rabosion

Retro Pixlr
Veteran
Joined
Mar 20, 2016
Messages
159
Reaction score
239
First Language
Dutch
Primarily Uses
N/A
I was actually referring to the Terms tab. It would be super neat to be able to translate the main menu. Like putting a notetag or text code to reference the .xlsx file somehow. My wish is to be able to be able to translate like 'save' , 'game end' and stuff like that. And I figure that other people might want to translate their skill types and such (in the 'types' tab). I'm afraid I don't exactly follow with the System tab part however. Apart from the Game Title, is there something else that can have a translation?

I can surely understand that updating the plugin for translating the terms tab might be (and the types tab a lot more ) difficult. You already made what seemed impossible possible with this plugin. You made us able to translate some things already for our games (for which I want to thank you again @Kino !). So no matter how hard things may be on the coding front, I believe in you. Whenever a new update appears, I'm absolutely down for some testing. :kaothx:

Terms.png

Types.png

System.png
 

dullman

Villager
Member
Joined
Jun 7, 2015
Messages
20
Reaction score
0
Primarily Uses
Hello, I have a question about using your plugin (moonflower), I set everything to run a custom script from external txt and it working at least in theory, all your code shows that it has a proper return for text command (i get the one from your examples) but it still did not display any message text or any other command, so my question what I do wrong since truthfully i can't find any fault in code (last function that is called is MoonFlowerAnalyzer.prototype.createCommand with proper parameters)
 

Latest Threads

Latest Profile Posts

hmm... I just solved one of the more annoying sideview battler problems in MV.. Passive States and Visual States can make it so when your character is in crisis HP, they don't go back to normal walk/wait when it's their turn. they stay in the crisis motion... neat.
Apparently all of LGBT reddit hates me. I posted a simple question and only got hate mail. What's the deal? The doompost was literally 6 months ago and I've changed my views since then and apologized.
MOD NOTE: See second response before replying to this. - Wavelength
Amazing. Simply amazing...

JRPG Browser - Playlist:
Hello, comrades, do you have a pack of modern or student clothes? i need for my project: 3

Forum statistics

Threads
109,098
Messages
1,042,004
Members
141,581
Latest member
neex84
Top