• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Error] JohtoBlaziken's Bootleg Pokémon FireRed crashes in V19 due to usage of terms like "Interpreter::PBTrainers" and "Interpreter::PBItems" in NPCs

  • 429
    Posts
    4
    Years
    JohtoBlaziken's Bootleg Pokémon FireRed crashes in V19 due to usage of terms like "Interpreter::PBTrainers" and "Interpreter::PBItems" in NPCs

    It seems using code terms like "Interpreter::PBTrainers" and "Interpreter::PBItems" and coding battler NPCs like this:

    pbTrainerBattle(PBTrainers::LEADER_Brock,"BROCK",_I("Insert quote here."))

    Causes the game to crash in Pokemon Essentials V19.1 when trying to run these scripts. Does this work in the current Pokemon Essentials V20.1? How can I get it to work in V19?
     
  • 429
    Posts
    4
    Years
    Does this mean I have to go through every map in Kanto, recoding every Trainer NPC and instance of item-giving to use the new code terms?
     

    StCooler

    Mayst thou thy peace discover.
  • 9,304
    Posts
    4
    Years
    • Seen May 24, 2024
    Does this mean I have to go through every map in Kanto, recoding every Trainer NPC and instance of item-giving to use the new code terms?

    Yes.

    This is why I advise to any fangame-maker to think twice before upgrading their games to the newest version of Essentials: sometimes it's just a waste to time, because you have to rework your whole game to fit the way the new version handles certain things, for no actual gain besides using the new version.
     
  • 429
    Posts
    4
    Years
    I can understand the convenience of adding optional shorter code verbs, but doesn't the developer realize removing old code verbs will break compatibility with in-progress files meant for earlier versions of the engine?
     

    StCooler

    Mayst thou thy peace discover.
  • 9,304
    Posts
    4
    Years
    • Seen May 24, 2024
    I can understand the convenience of adding optional shorter code verbs, but doesn't the developer realize removing old code verbs will break compatibility with in-progress files meant for earlier versions of the engine?

    They do, but they don't care.
    Note that it's not just amateur developing. Professional devs also do release updated versions of their code that is highly incompatible with plugins for older versions.
    It reminds me of a remark by Lucidious, stating that Pokémon Essentials is not made to make a Pokémon game, but to help you try (not the exact words but I don't remember where / when he said that).

    Also, note that Essentials gets a new version every year or so, and game dev takes at the very least three years (I am in my third year of dev). This means that if you start with version X, you will likely release your game while version X+3 is out.

    My advice would be: if you start using Essentials version X, never upgrade your version of Essentials, otherwise you may break everything. When I started my game, Essentials v18 was just released. I have kept working with it all along.
     

    StCooler

    Mayst thou thy peace discover.
  • 9,304
    Posts
    4
    Years
    • Seen May 24, 2024
    Is there any way I could manually add compatibility for the older code verbs into the newer Essentials version?

    Yes, but it's going to be tedious and probably unstable.
    Don't do that. Choose a version of Essentials and stick to it.
     

    FL

    Pokémon Island Creator
  • 2,454
    Posts
    13
    Years
    • Seen yesterday
    Does this mean I have to go through every map in Kanto, recoding every Trainer NPC and instance of item-giving to use the new code terms?
    This script, plus Ctrl+F can help you to find the trainers to update.

    This is why I advise to any fangame-maker to think twice before upgrading their games to the newest version of Essentials: sometimes it's just a waste to time, because you have to rework your whole game to fit the way the new version handles certain things, for no actual gain besides using the new version.

    Nah, there is gain, specially using newer plugins, but sometimes this not worth it. I tell more at my guide's section about updating, a quick type: If there is Gigantamax, gen 9, whatever plugin, you can't use if you don't update. There are even people who remove from internet his plugins for older Essentials.

    Note that it's not just amateur developing. Professional devs also do release updated versions of their code that is highly incompatible with plugins for older versions.
    Some does not. If you browse Unity Asset Store, you will see some Assets that are still compatible with Unity 2018, 2017

    Also, note that Essentials gets a new version every year or so, and game dev takes at the very least three years (I am in my third year of dev).
    This isn't true. Depends on several things. I've seen people making a full game in 2/3 months. I took a year at my first try.

    My advice would be: if you start using Essentials version X, never upgrade your version of Essentials, otherwise you may break everything. When I started my game, Essentials v18 was just released. I have kept working with it all along.
    Just a note: Your advice is different than almost all experienced devs advices, including Essentials developers.
     

    StCooler

    Mayst thou thy peace discover.
  • 9,304
    Posts
    4
    Years
    • Seen May 24, 2024
    Some does not. If you browse Unity Asset Store, you will see some Assets that are still compatible with Unity 2018, 2017

    Yeah I forgot to add "some", my real point is that it happens even in the professional world, of course I know some devs think compatibility (Construct for example).

    This isn't true. Depends on several things. I've seen people making a full game in 2/3 months. I took a year at my first try.

    Alright I guess. I was thinking big games like Insurgence, Reborn or Uranium. I should have said "you should expect to take years to make your game".

    Nah, there is gain, specially using newer plugins, but sometimes this not worth it. I tell more at my guide's section about updating, a quick type: If there is Gigantamax, gen 9, whatever plugin, you can't use if you don't update. There are even people who remove from internet his plugins for older Essentials.
    Just a note: Your advice is different than almost all experienced devs advices, including Essentials developers.

    Maybe I overstated my real advice on upgrading. I posted it on another update thread:

    Too many things have changed from v18 to v19, and I don't even know about v19 to v20. I fear they might even release v21 in a year or so.
    My answer would depend on the current state of your game.
    Do you have many custom scripts made by you? If yes, then I suggest you stay on v18. If not, then next question.
    Do you use many scripts by others? If no, then I suggest you upgrade to v20 directly, it should be easy. If yes, then next question.
    Do the scripts you use exist on v19 or v20? If yes, then upgrade to v20. If no, then don't upgrade.
    You should upgrade if it doesn't cost you too much. Otherwise, don't upgrade. v18 is an excellent version, there are many useful scripts on it, so you don't need to upgrade.

    Just a note: Your advice is different than almost all experienced devs advices, including Essentials developers.
    I go against the flow on that.
    I think that, for someone who cannot code, upgrading is probably too much work, so much work that it may discourage a new dev to continue with their game. So, never upgrade. Ok, maybe not "never", see my quoted post.
     
    Last edited:
  • 23,614
    Posts
    11
    Years
    • She/Her, It/Its
    • Seen today
    I think if I were to create a fan game with the intent of keeping up with newer Essentials versions I'd create some sort of interface source file. That file holds my own functions that encapsulate Essentials functionality. In the game itself I would only use that one function. In the case of an upgrade instead of having to replace stuff in multiple places, I'd only need to change one place: inside the function in said interface.
     

    StCooler

    Mayst thou thy peace discover.
  • 9,304
    Posts
    4
    Years
    • Seen May 24, 2024
    I think if I were to create a fan game with the intent of keeping up with newer Essentials versions I'd create some sort of interface source file. That file holds my own functions that encapsulate Essentials functionality. In the game itself I would only use that one function. In the case of an upgrade instead of having to replace stuff in multiple places, I'd only need to change one place: inside the function in said interface.

    This is good advice, I had never thought about it.
    But if you look at all the threads here, most of them are started by someone new to coding, and most of them don't want to learn how to code because it would take them months. That's what I always keep in mind when helping people here, hence my recommendations ^^"
    Plus I want to point out that a newer version of Essentials means that the devs of the other plugins need to update their own plugins. When v19 was released, all plugins I used were only for v18: Following Pokémons, Z-moves/Dynamax, Speech Bubbles, Intro Screen (+ my ~30 custom scripts); I didn't want to pause my own fangame to wait for their v19 version.
     

    FL

    Pokémon Island Creator
  • 2,454
    Posts
    13
    Years
    • Seen yesterday
    I think if I were to create a fan game with the intent of keeping up with newer Essentials versions I'd create some sort of interface source file. That file holds my own functions that encapsulate Essentials functionality. In the game itself I would only use that one function. In the case of an upgrade instead of having to replace stuff in multiple places, I'd only need to change one place: inside the function in said interface.
    There some code that I just solve redeclaring the old methods, but as interface for calling the new methods. I gonna suggest this for this thread, but the code in question involves some change of IDs:

    Code:
    pbTrainerBattle(PBTrainers::LEADER_Brock,"BROCK",_I("Insert quote here."))
    to
    Code:
    TrainerBattle.start(:LEADER_Brock, "Brock"))

    So you need to redo the ID/constant system, something that isn't so simple.

    Plus I want to point out that a newer version of Essentials means that the devs of the other plugins need to update their own plugins. When v19 was released, all plugins I used were only for v18: Following Pokémons, Z-moves/Dynamax, Speech Bubbles, Intro Screen (+ my ~30 custom scripts); I didn't want to pause my own fangame to wait for their v19 version.
    For this reason (and going into a stable version), I suggest on my guide to wait 1-3 months for updating.
     
  • 53
    Posts
    11
    Years
    I used this resource and updated it to some more of my own fangame which I been updating consistently working on it for 6 months but not satisfied on some small issues but due to rmxp's limited features like the NationalDex restriction I can get it to work fully. Or using flags also added the Dexnav but it is not immersive to have it since it's not lore friendly
     
  • 429
    Posts
    4
    Years
    I just thought of something. Does the new Pokemon Essentials still have that problem where it can't compile the game project into an executable if the game project file is too large?
     
    Back
    Top