NPC - Better to code in common events or in the event itself?

Moon_Haven

Veteran
Veteran
Joined
May 5, 2020
Messages
153
Reaction score
61
First Language
French
Primarily Uses
RMMV
Hello!

I'm at the stage where I need to code my NPC, and decided to start with my merchants (apothecary, blacksmith, innkeeper, etc).

I'd like some input, so that I code things right from the get-go: is it better to put all the merchant code in a common event, or in the event itself with multiple event pages?

Details:
  • There are 4 levels of standing with each merchant, depending how much they like you (which can be increased by doing side-quests for them).
  • Each merchant offer 3 branches for text:
    • Trade (buy and sell stuff),
    • Chat (tell me about yourself),
    • Quest (got anything for me to do?)
  • Each text branch expands with higher standing with the merchant. For instance:
    • Trade: at standing level 1, you can buy a health potion. at level 4, you have access to invisibility potion, various poisons, herbs to remove KO, etc.
    • Chat: at standing level 1, chat will only give chit-chat text such as "I'm NPC 123 and been living in this village all my life". At standing level 4, you get multiple sub-options, taking you down the rabbit hole of their lives, siblings, who they love, they view of the world, etc.

My gut feeling tells me everything should be broken down in a common event, but then I'm starting to worry how I would be able to do cut scenes and move the NPCs around. For instance: when renting a room, the Innkeeper will walk you to the room and unlock the door for you.

Thoughts?
 

ShadowDragon

Veteran
Veteran
Joined
Oct 8, 2018
Messages
2,815
Reaction score
989
First Language
Dutch
Primarily Uses
RMMV
if each NPC sells different stuff at different levels in a conditional branch, you
can do it on the NPC it self (while it has a level of trust.

if the items are the same, (without the level of trust) you can built a common event.
if this is a traveling merchant you can use a common event for this one.

but 4 different ones and in 1 place = better in the event itself, if they travel as
well, make a common event.

but this is my personal reference, but how you built it is entirely up to you.

Some make it in the common event (if you dont use all), to quickly find
the error and fix it, so you dont have to search all maps (if you dont name them)
for a quick fix. but this is also u to you how you deal with it.

make it the way you feel most confortable with and follow your heart :)
 

Tiamat-86

old jrpg gamer
Veteran
Joined
Dec 5, 2017
Messages
540
Reaction score
219
First Language
english
Primarily Uses
RMMV
the examples you gave would say use separate events.

dialog options wouldnt want every item shop owner to have the exact same life story and give you quests on the other side of the world.
trying to common event it while having branch dialog for different NPCs would require far more branches and variable checks, while requiring more error testing.

individually eventing this could just make each fame level its own page or just 1 page with conditional branch for fame level.
no need for extra conditions checking what town your in before giving local info.
each NPC can have different life story.
can separate fame level and items available for each different region.

and the last example of the inn keeper. common eventing this movement and door unlocking would require either all inn to have the exact same layout or conditional branches with at least 4 variables to make it work right. individual eventing is just a simple move > unlock > move.
the whole long rest aspect can be common event though.
fade out: play sound: recover: (if have any day/rest based switches can flip those): (other long rest mechanics you make): fade in
 

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,239
Reaction score
1,232
First Language
Spanish
Primarily Uses
RMVXA
you'd be surprised how this problem can be solved by using the most noobish of solutions to the oldest problem of programming ever.

when they teach you programming, one of the first things they tell you, based on what you'd be likely to be doing, is "DON'T USE JUMPS."
you're supposed to use blocks, loops and conditionals to direct program flow.... as in, you know, *proper* programming.

but when you know how to use jumps, and how to bypass conditionals, and how to break loops mid way,... you can control a common event.

it's like the Matrix: "Are you telling me I can use multiple blocks in a single common event?"
"No, I'm telling you, when you are ready, you won't have to."
when you're ready, you can keep the shop event as it is, and transfer all the validations over to the common event, in a sort of hybrid system: trigger from the event, send over to common event, process and decide, send back, and present result.
 

Milennin

"With a bang and a boom!"
Veteran
Joined
Feb 7, 2013
Messages
2,501
Reaction score
1,633
First Language
English
Primarily Uses
RMMV
Any eventing that is used more than once goes in a Common Event, that's how I do it. If it's unique to a single event, keep it on the event itself.
 

Moon_Haven

Veteran
Veteran
Joined
May 5, 2020
Messages
153
Reaction score
61
First Language
French
Primarily Uses
RMMV
Thanks folks! Since the traders will be interacted with multiple times, I think I'll go with Common Events for the traders. With some experience, I'll see about the other NPCs. Most of them will be very simple (like hi, hello, bye) so probably do not justify a full blown common event.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

GOBBLE GOBBLE! Happy thanksgiving.
Oh no. That moment when you try to fix something you modified in your game, like, a year ago but didn't want to fix then, and you now have no idea what you even did. Me right now, trying to figure out why my gold window is over stretched?
LittlePIGGY wrote on atreyoray's profile.
Where are you TT^TT
We need ARP_InGameManual for MZ
Oh my gosh. Thank you, Macy's! Thank you so much! You have made me very happy!

Forum statistics

Threads
105,551
Messages
1,014,570
Members
137,225
Latest member
Eryndor
Top