RPG Maker MZ Plugins 101: A Primer on plugin structure

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 พ.ค. 2023
  • ---Transcript---
    drive.google.com/file/d/15wrS...
    ---Links---
    The UnproPro TH-cam channel: / theunpropro
    VS Code: code.visualstudio.com/download
    The AUTMOUSE_Learning.js File: drive.google.com/file/d/14MZT...
    RPG Maker MZ Documentation: developer.rpgmakerweb.com/rpg...
    RPG Maker Coding Reference: tkool-jp.translate.goog/mz/pl...
    Welcome to my first coding tutorial focusing on the basic structure of a plugin in RPG Maker MZ. Follow along as we build a plugin that has examples of all the basic features, parameters, arguments, commands, and proper JavaScript doc formatting.
    This tutorial will be most useful if you have a rudimentary understanding of JavaScript but little to know idea how to turn that knowledge to plugin making.
    Thank you for checking out the channel and happy game making!
  • เกม

ความคิดเห็น • 32

  • @CephasBenAdiMahoungou
    @CephasBenAdiMahoungou ปีที่แล้ว +6

    Nice tutorial, i always wanted to create my own rpg maker plugins for some specific functions that i imagined. I hope to learn everything I need to know with the next videos.

    • @AutMouseLabs
      @AutMouseLabs  11 หลายเดือนก่อน +1

      Glad I could help! Good luck on your project! :)

  • @arcinon
    @arcinon 8 วันที่ผ่านมา

    you are a saint 🙏

  • @linuxsever5727
    @linuxsever5727 หลายเดือนก่อน

    A note: You can replace "args" with anything. For example:
    (params){
    console.log(params);
    }
    Remember you must use inside the code, the same word you put between brackets.

    • @AutMouseLabs
      @AutMouseLabs  หลายเดือนก่อน

      True, thanks for giving it a watch.

  • @eggstacy4178
    @eggstacy4178 6 หลายเดือนก่อน +1

    Excellent tutorial, really breaks down the topic in a workable way.
    For anyone who finds that their registered plugin command mysteriously won't run (i.e. fails silently) when called for in the event editor and invoked at runtime, one possible reason is that the plugin name has to match the .js file name it comes in, minus the .js. So the plugin defined in "MyNewPlugin.js" must be named "MyNewPlugin".

    • @wyattcoats2362
      @wyattcoats2362 5 หลายเดือนก่อน +1

      I was having that issue lol. I had to delete the event and remake it afterwards. Thanks!

  • @AstraAnime
    @AstraAnime 10 หลายเดือนก่อน +1

    This was incredibly well organised and easy to understand. I might be interested to pick up javascript again if I can extend rpg maker and I'm excited to follow these tutorials. I did watch on 2x speed but I could understand everything perfectly, going through it line by line was incredibly useful.

    • @AutMouseLabs
      @AutMouseLabs  10 หลายเดือนก่อน

      Thank you! I have been working on my game primarily lately but if you have any questions feel free to post them in the comments and I will try to answer them.

  • @ryancampbell6110
    @ryancampbell6110 6 หลายเดือนก่อน

    This was so helpful, I was making an item weight system, just a simple one but couldn't get it to work and realized I had quite a bit of structure errors in my code and this video got me to fix it correctly and get it going!

  • @rofinatheirin9929
    @rofinatheirin9929 6 หลายเดือนก่อน

    Just found your channel. Hi Penny! Thank you for this tutorial!! ^-^

  • @bramblefur12
    @bramblefur12 ปีที่แล้ว +1

    Thank you for making this video! I've been wanting to get into developing my own plugins for a while, but didn't know where to start. I'm excited to watch more of your videos~

    • @AutMouseLabs
      @AutMouseLabs  ปีที่แล้ว +2

      Glad I could help! I am interested in doing more plugin coding videos. Let me know if you run into any specific questions. :)

  • @kronchybitz1223
    @kronchybitz1223 4 หลายเดือนก่อน +1

    Really easy to digest and helpful. Thanks Penny!

    • @AutMouseLabs
      @AutMouseLabs  4 หลายเดือนก่อน +1

      I'm glad it was helpful!

  • @nerdwarrior0956
    @nerdwarrior0956 22 วันที่ผ่านมา

    Please add more plugin Videos! I want to know which plugins are available free or cheap.

  • @arrose-youtube
    @arrose-youtube 10 หลายเดือนก่อน +1

    This video is good. Most script tutorials on the Internet use RMMV as an example.

    • @AutMouseLabs
      @AutMouseLabs  9 หลายเดือนก่อน

      I find scripting in MZ to be much more intuitive. The two are relatively similar though.

  • @Tamschi
    @Tamschi ปีที่แล้ว +1

    This may be a bit nitpicky on my part, but ` is usually called a backtick while ~ is a tilde. They're on the same key on a US keyboard, though.
    (Thanks for making this! I'll follow along to improve the MZ compatibility of my plugins while I'm not able to test on MZ myself.)

    • @AutMouseLabs
      @AutMouseLabs  ปีที่แล้ว

      You are absolutely right! Thanks for catching that. 😅

  • @aoki_ch
    @aoki_ch หลายเดือนก่อน

    Nice tutorial for those who want to use plugins. Where did you study how to make them?

    • @AutMouseLabs
      @AutMouseLabs  หลายเดือนก่อน +1

      I learned JavaScript a few years ago while playing with another engine called Phaser. Then I watched some tutorials on TH-cam for coding RPG Maker VX since I already knew Ruby. I also looked at several existing plugins and pieced together how they worked. Lastly, Casper from Casper Gaming gave me some tips on the Reddit. So it is pretty pieced together. :)

    • @aoki_ch
      @aoki_ch หลายเดือนก่อน

      @@AutMouseLabs thank you for your reply! For me, I learned C language when I was a student, and have learning JavaScript while making lots of plugins through RPG makers.

  • @HolderOfLife
    @HolderOfLife ปีที่แล้ว

    I'm not someone who knows how to code. I'd personally benefit from (if it's possible) being able to locate certain configuration parts within the code to alter.
    Example being there's a part of a battle system that I'm using that plays the item use pose way too quickly.
    How'd I go about locating that part of the code and altering a value.

    • @AutMouseLabs
      @AutMouseLabs  ปีที่แล้ว +1

      Hello, that process is the subject of my next coding video. It is called aliasing or overriding. The gist is to open one of the core js files in a code editor and use the finder to search for keywords like battle or to use the reference documentation linked at the bottom of this video. I will have a whole video on it soon though. :)

    • @HolderOfLife
      @HolderOfLife ปีที่แล้ว

      @@AutMouseLabs Looking forward to it.

  • @tennlam4356
    @tennlam4356 5 หลายเดือนก่อน

    How would you go about adding multiple commands? I tried adding a new section for multiple command names, but it the new ones don't work (LineOne still works).
    * // First line of text.
    * @command LineOne
    * @text One Line
    * @desc Custom textbox for one line of dialogue.
    *
    * @arg speaker
    * @text Speaker:
    * @desc Target speaker.
    * @type text
    * @default Undefined
    *
    * @arg textLineOne
    * @text Line One Text:
    * @desc Text for the first line of dialogue.
    * @type text
    * @default Undefined
    *
    * @command LineTwo
    * @text Two Lines
    * @desc Custom textbox for one line of dialogue.
    *
    * @arg speaker
    * @text Speaker:
    * @desc Target speaker.
    * @type text
    * @default Undefined
    *
    * @arg textLineOne
    * @text Line One Text:
    * @desc Text for the first line of dialogue.
    * @type text
    * @default Undefined
    *
    * @arg textLineTwo
    * @text Line Two Text:
    * @desc Text for the second line of dialogue.
    * @type text
    * @default Undefined

    • @tennlam4356
      @tennlam4356 5 หลายเดือนก่อน

      For reference this is what my register commands look like in case the issue is there instead.
      // Displays a line of text for each textbox function. Each line can hold roughly 80 characters.
      PluginManager.registerCommand(
      tennshii_textboxes.pluginName,
      "LineOne",
      (args) => {
      console.log(args);
      tennshii_textboxes.textBeingSaidOne = String(args.textLineOne || "Undefined");
      tennshii_textboxes.nameOfSpeaker = String(args.speaker || "Undefined");
      $gameMessage.setSpeakerName(tennshii_textboxes.nameOfSpeaker);
      $gameMessage.add(`${tennshii_textboxes.textBeingSaidOne}`);
      },
      "LineTwo",
      (args) => {
      console.log(args);
      tennshii_textboxes.textBeingSaidOne = String(args.textLineOne || "Undefined");
      tennshii_textboxes.textBeingSaidTwo = String(args.textLineTwo || "Undefined");
      tennshii_textboxes.nameOfSpeaker = String(args.speaker || "Undefined");
      $gameMessage.setSpeakerName(tennshii_textboxes.nameOfSpeaker);
      $gameMessage.add(`${tennshii_textboxes.textBeingSaidOne}`);
      $gameMessage.add(`${tennshii_textboxes.textBeingSaidTwo}`);
      },

    • @AutMouseLabs
      @AutMouseLabs  2 หลายเดือนก่อน

      Did you end up figuring it out. As far as I can see that should be valid. Are the commands showing up in the plugin commands menu?