events vs. plugins

Lucas7eixeira

Villager
Member
Joined
May 1, 2019
Messages
24
Reaction score
3
First Language
portuguese
Primarily Uses
RMMV
In my actual project I have a lot of plugins, some of then I can implemente with common events, like the time/weather that I have two option: one I made with only a few common and map events, the other option is to have 2 plugins "MOG_TimeSystem" and "MOG_WeatherEX". The difference between the two is that one is just 2 plugins I have to install and some note tags and scripts I have to call, but its more 2 plugins I have to add in a game that already has a lot of plugins, and of course, I have to make sure that theres no conflict between then; in the other hand I can use 2 or 3 common events to implement the time/weather system and instead of note tags and script calls I have to use map events to "talk" with the time/weather system.
Now let me ask ( It's not exactly a question of what is better, but a discussion of the pros and cons of each one) : what is better, have a lot of plugins or try to implement some with events? And for what purpose which one is better at?
PS : I ask the difference between the 2 options in general, not talking axactly about the Time/Weather system, it was just the example I thought first.
PS 2 : I already aware of using a plugin is better than messing with the base code.
Thx in advance! :)
 
Last edited:

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,248
Reaction score
1,252
First Language
Spanish
Primarily Uses
RMVXA
if you only have one occurrence of the feature (or a handful, not that relevant to the gameplay), use an event.
if you have a frequent occurrence of the feature, at the point where it becomes gameplay relevant and merits being part of the engine itself, use a plugin.
 

Eliaquim

Hakuen Studio
Veteran
Joined
May 22, 2018
Messages
1,696
Reaction score
1,113
First Language
Portuguese - Br
Primarily Uses
RMMZ
Hi @Lucas7eixeira !

I believe that the use of plugins come in handy if you have to repeat that same thing multiple times in your game.
But if you, for example, have made the weather change only in one map, i think it's better use events for this.

The thing is, plugins are made to give to you a new feature(or upgrade an existent feature) that by default RM MV not have or for simplify a lot of events commands and other process.

See Yanfly Move Routes, instead of have a move route command:
"Move Down"
"Move Down"
"Move Down"
"Move Down"
"Move Down"
"Move Down"
"Move Down"
You can simply put:
"Down: 7"

So, you have to question yourself if you really need a lot of plugins. That's how i do. ^^
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,370
Reaction score
7,678
First Language
German
Primarily Uses
RMMV
In a way that is like asking "do I use a car or a boat to travel" - events and plugins have completely different purposes and limits.
There are parts where they intersect and where either can be used, but as you imagined yourself you should not use them if it goes too far away from their purpose.

Events are mostly ingame object that are intended to work within the engine, while plugins are supposed to change the engine and add new parts to it.
A weather system is one of the few functions where you could use either depending on the effects you wish.

In general you should use as many plugins as are neccessary, but as few plugins as possible. There are a lot of reasons for this from compatibility to game quality. Or as I posted often in the past, "A titanic list of features is the surest way for the project to go Titanic (to the bottom of the ocean)".

As a question of whether something should be done by events or by plugins there is something that should be considered as a guideline:
If the system would require a lot of parallel processes or a few very complicated parallels, then you should consider looking for a plugin.
That includes cases where you need parallels to check for a new element in the controls.

Contrary to the posters above the number of uses should not be taken into consideration - if it is repetive in eventing, you can make it a common event and call it whereever needed.


However, there is a type of plugin that stands outside the rules above: "Convenience Plugins" - that is plugins that do not add new elements to the engine, but modify existing ones to make them easier to use. Exactly like the example "use ten move command or give a special command".
In these cases it's always up to the developer to decide if he wants to add the plugin for the increased risk of plugin compatibilities to make the eventing easier, or does he stay with the repetive eventing to keep the plugins easier to remain compatible.
And that depends in my opinion on the number of plugin writers whose plugins you're using (not the number of plugins but the number of plugin writers).
Because every plugin writer keeps his/her own plugins compatible - if you already have fifty of yanfly's plugins, adding another of those is much easier than suddenly trying to add-in a single Victor Plugin into yanfly's lists.
 

Lucas7eixeira

Villager
Member
Joined
May 1, 2019
Messages
24
Reaction score
3
First Language
portuguese
Primarily Uses
RMMV
In a way that is like asking "do I use a car or a boat to travel" - events and plugins have completely different purposes and limits.
There are parts where they intersect and where either can be used, but as you imagined yourself you should not use them if it goes too far away from their purpose.

Events are mostly ingame object that are intended to work within the engine, while plugins are supposed to change the engine and add new parts to it.
A weather system is one of the few functions where you could use either depending on the effects you wish.

In general you should use as many plugins as are neccessary, but as few plugins as possible. There are a lot of reasons for this from compatibility to game quality. Or as I posted often in the past, "A titanic list of features is the surest way for the project to go Titanic (to the bottom of the ocean)".

As a question of whether something should be done by events or by plugins there is something that should be considered as a guideline:
If the system would require a lot of parallel processes or a few very complicated parallels, then you should consider looking for a plugin.
That includes cases where you need parallels to check for a new element in the controls.

Contrary to the posters above the number of uses should not be taken into consideration - if it is repetive in eventing, you can make it a common event and call it whereever needed.


However, there is a type of plugin that stands outside the rules above: "Convenience Plugins" - that is plugins that do not add new elements to the engine, but modify existing ones to make them easier to use. Exactly like the example "use ten move command or give a special command".
In these cases it's always up to the developer to decide if he wants to add the plugin for the increased risk of plugin compatibilities to make the eventing easier, or does he stay with the repetive eventing to keep the plugins easier to remain compatible.
And that depends in my opinion on the number of plugin writers whose plugins you're using (not the number of plugins but the number of plugin writers).
Because every plugin writer keeps his/her own plugins compatible - if you already have fifty of yanfly's plugins, adding another of those is much easier than suddenly trying to add-in a single Victor Plugin into yanfly's lists.
I have like 1 houndred plugins lol
Most of then from Yanfly, and a few from MOG, SRD and GALV.
Working on get rid of some without interfering on the gameplay features I need...
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,100
Reaction score
13,705
First Language
English
Primarily Uses
RMMV
My thoughts are, if you can do it with events, and it's easy and not messy, do it with events.

I am guilty of writing plugins for things that could be done with events, just because it's less effort to do it that way. But I write all my own plugins and don't use anyone else's, so I don't have to worry (usually) about compatibility issues. I might have 20 plugins though, not the hundreds that some people have.
 

_Shadow_

Tech Magician Level:
Moderator
Joined
Mar 2, 2014
Messages
4,078
Reaction score
2,654
First Language
Greek
Primarily Uses
RMMZ
Wow. This is a great question.
Mostly because I had to think about it a lot when I was about making a game.
@Andar and @Shaz cover it very well, but I feel like sharing my own point of view, which has similar thoughts and a few more stuff to be discussed.

Events can be classified into three categories:
  • Map Events
  • Common Events
  • Battle Events

Map Events can work in parallel, on trigger or automatically. What happens is that Parallel events can cause performance issues.
Also if you need something to trigger on EVERY map, you can do it with three ways:

1] Building it on an Event, being VERY complex and doing a copy - paste to all maps you will need it. Obviously this is not the best approach. It is actually awful, since it is spaghetti eventing (google spaghetti code).

2] Using Common Events and calling the Common Events by using a map Event. You can even call a Common Event from a Common Event, thus you can create chains of small Events that all together can create very complex systems. If possible through Eventing, it takes a lot of work and is very complex, but you CAN do that.

3] Same principles like [1] and [2] but not on a map. It happens on Battle Scene.


So here are a few things you should think when taking a decision on if you are about to use or not a plugin:

If you can't do it with Eventing, or using a few script commands using Eventing, then you NEED a plugin.

If you can do it with Eventing, how complex will it be if implemented? If complexity is high to a point that it doesn't worth the effort, then use a Plugin.

A time system can be implemented using a plugin or a Common Event system, called by map Events. The advantage of the Event system is that it will never have compatibility issues or break your game.

Compatibility issues:

  • Major updates of RPG Maker MV core engine can break plugins and it is up to the plugin developer to fix them.
  • Plugins can have compatibility issues between them. So the less you use, the more likely your game will work.
Game Breaking:

I lost a deadline on a contest once, just because I could not figure out why my game was broken.
When you are packing your game to deliver a build, you can exclude unused assets. Guess what! That feature checks for stuff used by the Eventing System and the maps. Thus if you are using a Picture through a plugin, the picture is ignored, thus deleted!!! Thus the game breaks. Happened to me using Smrndude's plugin "Picture Choices". Great plugin, breaks the build by default though. There is a workaround of course, you can make a dummy map nobody can access, and make a lot of Show Picture Event Commands, including the picture files you wanna keep. Now the System will not ignore them. IMAGINE how annoying this thing was before realizing what the problem was. Still the plugin was doing something that would be too complex to be done by Eventing (if not impossible) for no reason. So for my next games I will include the plugin in it, no matter what.

It comes down to this:
  • Do you REALLY need something in your game?
  • Is it ultra hard or impossible to be implemented using Eventing?
  • Does the specific plugin play well along with the majority of the other plugings or at least the ones you wanna use?

These are the questions you should ask yourself.
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
For me, after performance etc, its also a case of personal preference..

Usually I suggest doing things using eventing if its possible to do so, but in my own works, I mostly deal with scripts/plugins because Im more used and faster when writing them than when clicking around menus.
 

Lucas7eixeira

Villager
Member
Joined
May 1, 2019
Messages
24
Reaction score
3
First Language
portuguese
Primarily Uses
RMMV
Wow. This is a great question.
Mostly because I had to think about it a lot when I was about making a game.
@Andar and @Shaz cover it very well, but I feel like sharing my own point of view, which has similar thoughts and a few more stuff to be discussed.

Events can be classified into three categories:
  • Map Events
  • Common Events
  • Battle Events

Map Events can work in parallel, on trigger or automatically. What happens is that Parallel events can cause performance issues.
Also if you need something to trigger on EVERY map, you can do it with three ways:

1] Building it on an Event, being VERY complex and doing a copy - paste to all maps you will need it. Obviously this is not the best approach. It is actually awful, since it is spaghetti eventing (google spaghetti code).

2] Using Common Events and calling the Common Events by using a map Event. You can even call a Common Event from a Common Event, thus you can create chains of small Events that all together can create very complex systems. If possible through Eventing, it takes a lot of work and is very complex, but you CAN do that.

3] Same principles like [1] and [2] but not on a map. It happens on Battle Scene.


So here are a few things you should think when taking a decision on if you are about to use or not a plugin:

If you can't do it with Eventing, or using a few script commands using Eventing, then you NEED a plugin.

If you can do it with Eventing, how complex will it be if implemented? If complexity is high to a point that it doesn't worth the effort, then use a Plugin.

A time system can be implemented using a plugin or a Common Event system, called by map Events. The advantage of the Event system is that it will never have compatibility issues or break your game.

Compatibility issues:

  • Major updates of RPG Maker MV core engine can break plugins and it is up to the plugin developer to fix them.
  • Plugins can have compatibility issues between them. So the less you use, the more likely your game will work.
Game Breaking:

I lost a deadline on a contest once, just because I could not figure out why my game was broken.
When you are packing your game to deliver a build, you can exclude unused assets. Guess what! That feature checks for stuff used by the Eventing System and the maps. Thus if you are using a Picture through a plugin, the picture is ignored, thus deleted!!! Thus the game breaks. Happened to me using Smrndude's plugin "Picture Choices". Great plugin, breaks the build by default though. There is a workaround of course, you can make a dummy map nobody can access, and make a lot of Show Picture Event Commands, including the picture files you wanna keep. Now the System will not ignore them. IMAGINE how annoying this thing was before realizing what the problem was. Still the plugin was doing something that would be too complex to be done by Eventing (if not impossible) for no reason. So for my next games I will include the plugin in it, no matter what.

It comes down to this:
  • Do you REALLY need something in your game?
  • Is it ultra hard or impossible to be implemented using Eventing?
  • Does the specific plugin play well along with the majority of the other plugings or at least the ones you wanna use?

These are the questions you should ask yourself.
Thats exactly what I was thinking about the plugins right now, trying to get rid of as much as I can to make the game clean, first thinking what I really need, than thinking what can I do with events without taking too much time.
About the "exclude unused assets" option, I was aware of that it can delete plugins related assets, I was just trying to figure an workaround for it too... lol
So many thx for the addition to discussion and for that workaround, now it's one less thing for me to worry about! :D

For me, after performance etc, its also a case of personal preference..

Usually I suggest doing things using eventing if its possible to do so, but in my own works, I mostly deal with scripts/plugins because Im more used and faster when writing them than when clicking around menus.
I'm planning to start making my own plugins in the future since I know how to code and I'm learning javascript syntax right now, can u recommend me some tutorials? (reading, video or even a game tutorial...)
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
I usually just read the engine's JS files and some plugins, try to do stuff and search on google if I dont know something
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Are we allowed to post about non-RPG Maker games. and, if so, would any of you be interested in a short, proof of concept type non-euclidian puzzle game?
I should realize that error was produced by a outdated version of MZ so that's why it pop up like that
Ami
i can't wait to drink some ice after struggling with my illness in 9 days. 9 days is really bad for me,i can't focus with my shop and even can't do something with my project
How many hours have you got in mz so far?

A bit of a "sparkle" update to the lower portion of the world map. :LZSexcite:

Forum statistics

Threads
105,883
Messages
1,017,232
Members
137,607
Latest member
Maddo
Top