Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Dualtechs for RPG Maker MV and MZ

Let your actors combine their skills in RPG Maker MV and MZ · By HeroicJay

TypeError: Connot read property 'isSkill' of null

A topic by One-Nil |Team Studios created Dec 25, 2023 Views: 258 Replies: 7
Viewing posts 1 to 7
(1 edit)

Hello! First of all, thank you very much for the plugin, it works great! However, not always, which is why I'm writing. I hope you're still active and can help us.

The game seems to crash whenever actions are forced via the Battle Event Manager with the error message in the title. Most of the time, the action is executed, and shortly thereafter, the error occurs (for example, when another character performs an action after the sequence that normally works). The error also occurs when no dual tech is present or has been executed, so it seems to be completely independent of that. Do you think that you'd be able to fix that? 

Thanks a lot! :)

EDIT: You surely are aware that this is a CTB issue, just wanted to point it out. The error doesn't happen when using the STB. :)
Error message: 

Developer (1 edit) (+1)

Interesting. My main project uses YEP's CTB and I haven't encountered this, though I am probably not using the latest version.

Just looking at what the error is, it's looking at a "null" (in other words, no data) and trying to treat it as a skill/item. So somewhere along the way, it's getting an invalid skill. But I don't have enough info to pin down where from this alone, I'm afraid.

Perhaps show me exactly what you're doing when this bug occurs? It would make it easier to track down.

(1 edit)

Sure thing, I'll try to provide some more insight. I've uploaded a video to showcase what I've been doing in the game. This is one of two events where I could reproduce the error 100% of the time. It also happened here and there. I don't know if it occurs because of a forced skill kind of "messing" with the turn order or if the skill that is used to force the sequence must be valid to use for the "caster" since this was never a requirement to force an action prior to installing your plugin (It doesn't seem to work either way, even if the skill setting up the action sequence would be castable). 

The other instance was also a forced skill, I used the forced skill manually with the actor and the game didn't crash then. So yeah, it's always "force skill -> every action afterward crashes the game".

Thanks a lot for your time and getting back to us! :)

There's not much going on with the troop settings or the Skill. But here are the screens to make sure, as well as the full Action Sequence of the Skill.
We're using version 1.17 of the CTB and the current version of your plugin.




EDIT: Here's also some console logs:


Oh, and merry Christmas by the way. Thanks again for looking into this. :)

Action Sequence:

<After CTB: 1>

<Setup Action>

bgm: stop

tint screen: -255, -255, -255, 0, 1

hide battle hud

zoom: 200%, 1

camera screen: center, 1

move actor 0: point, 600, 360, 1

move enemy 0: point, 50, 360, 1

move actor 1: backward, 1000, 1

move enemy 1: backward, 1000, 1

move enemy 2: backward, 1000, 1

wait for movement

move enemy 0: forward, 200, 120

tint screen: -80, -100, -100, 119, 60

SE: DogAngry, 300, 100, 0

wait for movement

wait: 10

move enemy 0: forward, 400, 120

motion guard: actor 0

wait for movement

SE: Evasion1, 100, 100, 50

motion escape: actor 0

wait for movement

move actor 0: return, 30

jump actor 0: 100%, 30

face actor 0: forward

move enemy 0: return, 75

jump enemy 0: 100%, 75

reset zoom: 30

wait for movement

motion idle: actor 0

wait for movement

motion thrust: user

SE: Vaan All bark and no bite, 100, 100, 50

wait: 100

if $gameVariables.value(138) == 0

BGM: Take the Crown, 100, 100, 0

else if $gameVariables.value(138) == 1

BGM: We wont be defeated, 100, 100, 0

end

move actor 1: return, 60

SE: Lidia_Evade_02, 100, 100, 50

motion victory: actor 0

wait for movement

wait: 80

move enemy 1: return, 60

jump enemy 1: 100%, 75

SE: Dog, 100, 130, 20

wait: 2

move enemy 2: return, 60

jump enemy 2: 100%, 75

move actor 0: return, 60

wait for movement

show battle hud

wait: 80

</Setup Action>

<Whole Action>

</Whole Action>

<Target Action>

</Target Action>

<Finish Action>

perform finish

</Finish Action>

Developer (3 edits)

Those aren't console logs; they're actual code from the plugins. Knowing how you set up the dualtech (is a dualtech involved??) would help too.

UPDATE 1: I don't know what's causing the bug yet, but I do think I could probably bypass the issue even without reproducing it. I'd like to be sure, though, so I'm looking up the Moghunter plugin you're using.

UPDATE 2: I got it to repro. I've been testing with Jay's Journey. Weirdly, it did not repro with Dualtechs 3.0, only 3.2, which is why I hadn't seen it in Jay's Journey (where I forgot to update my own plugin.) So what changed? I'll figure it out. Whatever the case, Moghunter's plugins are irrelevant.

Developer (1 edit)

Well, that was simple. The bypass mentioned above was the solution - I just wanted to be sure by reproducing the issue first so I could tell if it had been fixed. Let me know if you have more trouble.

Sorry, I didn't mean console logs but rather the explicit lines that the log displayed.

I updated the plugin, and the error no longer occurs! Thank you so much for the super fast handling! I'm glad that everything is working smoothly again! It's remarkable how compatible your plugin is!

May I ask what exactly caused the error?

Anyway, thanks a thousand times again! Hope we don't need to reach out again. ;)

Developer (2 edits)

I had refactored some code a while back. It might have been to fix another bug, it might have been something else. I don't remember. The whole thing took place inside an "end-of-action" function. In the old code, if it's at the end of a scripted event, it kicks out of the end-of-action function early, before doing some extra "cancel the dualtech if that's what got used" code (since, if the skill was turn-linked, everyone had to go on standby until the skill was used). With the refactored code, the "cancel the dualtech" still got run even then, but there wasn't actually an active action at that point, due to how something up the chain handles scripted events. And, as stated before, this meant it was trying to use a "null", which resulted in badness.

All I had to do was just throw in a check for the null. (I didn't want to go back to the old code order in case that really was to get rid of a bug.)

I see! Glad you could figure this out so quickly! :)