• 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.

Script: Tutor.net v1.2.1 [Essentials v20.1]

142
Posts
10
Years
  • Ever felt like you didn't like how the games handle move tutors? Especially when your game is big and players don't even remember in what corner of the world was that Drain Punch tutor and even if they do, they have to backtrack?
    Or the fact that unlike modern TMs, you gotta pay for tutor moves every single time?
    Fear not, for the Move Tutor Guild decided to get out of the 90s and embrace the age of the internet, with their new PokeGear app, the Tutor.net!

    Description:
    With the Tutor.net you can take any move, assign a cost and a currency for that cost to it, and save all that in an app to be always accessible for the player.
    The guide will be quite long so I will separate it to chapters with an easy Ctrl+F below:
    Chapters:
    0: Using Tutor.net
    1: Adding a move to Tutor.net
    2: Event-specific tutor lists
    3: Changing a registered move's cost/currency
    5: New Features as of v1.1: Teaching moves directly to the new visible interactable party.
    6: New Features as of v1.2: TM to Tutor conversion.
    7: Installation
    8: Compatibility
    9: Changelog

    Chapter 0: Using Tutor.net
    The Tutor.net app is set to be accessible from the PokeGear. It will list every move that has been added to Tutor.net through the above method.
    16561

    16560


    The tutor moves are stored in this array:
    $Trainer.tutorlist
    Which means that if for some reason you want to clear a save files's list of registered moves, all you have to do is:
    $Trainer.tutorlist = []


    Chapter 1: Adding a move to Tutor.net

    To add a move to Tutor.net you will need the method:
    pbTutorNetAdd(move, cost=0, currency="$")
    The currency's default value is "$" which is a string, but if you assign an item id on it, it will be the item id instead.
    Examples:
    16559

    Yes, you see right, ANY ITEM can be used as currency for any move. You can be traditional with shards or money,
    or you can have that one Ruin Maniac want Relics to teach you his moves! And you will send him that relic through the internet! Technology has truly reached far...


    Chapter 2: Event-specific tutor lists

    For the sake of optional flavor, I've made another method through which you can make tutor events open a separate Tutor.net screen listing only the specific moves that they teach.
    Those moves must have already been previously added in Tutor.net with a specific cost and currency.
    The method is:
    pbTutorNetTutor(movelist)
    where movelist is an array of the moves of your choice.
    Example:
    16562

    16565

    You will notice that Knock Off is not in this list. I intentionally put Knock Off in the event to show you that if a move has not been previously added to the Tutor.net with the pbTutorNetAdd method, it will simply not show in this individual tutor's list.
    I'll repeat that this event tutor specific list method is fully optional and only exists for potential flavor, because why would a tutor not offer to teach their own moves personally if interacted with?

    By the way here's an all-in-one "lazy guide" that I made that combines the above:
    16584



    Chapter 3: Changing a registered move's cost/currency

    First of all I made a method for SILENTLY changing a registered move's cost/currency.
    Code:
    pbTutorNetChangeMoveCost(move,cost=0,currency="$")

    Example:
    16576


    Code:
    pbTutorNetChangeMoveCost(:STOMPINGTANTRUM,3000)
    16577


    Code:
    pbTutorNetChangeMoveCost(:STOMPINGTANTRUM,1,:RELICSTATUE)
    16578


    Hint: You can use the above method to temporarily change a registered move's cost for a limited availability event, lets say someone in a sinking ship offers to teach you Water Pulse for free for... reasons. (That's a useful application for pbTutorNetTutor).
    At the end of the event you can use the same method to restore the move's price to how it previously was.

    Now with that out of the way:
    If a player who has already registered a move in the Tutor.net finds another event that registers again the same move to Tutor.net under a different cost these scenarios exist:

    Sample A: We already have Stomping Tantrum registered in our Tutor.net as follows:
    16573


    Scenario 1: The cost of the newly registered version is 0 unlike the current version, therefore the move is free.
    16566

    16575


    Scenario 2: The cost of the newly registered version is different than the current version, and none is free.
    16567

    16568

    16569

    16570


    Yes:
    16571

    16574


    No:
    16572

    16573


    Sample B: The cost of the currently registered version is 0, therefore that move was already free.
    16575

    -Nothing happens

    Chapter 4: The Settings
    16580


    1.
    PERMANENT_TUTOR_MOVE_UNLOCK = true/false
    Choose whether you want tutored moves to be permanently unlocked instead of repeatedly purchased.
    I personally encourage the permanent unlock setting.
    Example of a move that gets purchased through the app after teaching it to a Pokemon, and then becomes free:
    16579


    2.
    USE_TUTOR_MOVE_ALIASES = false/true
    ITEM ABBREVIATION: Here you can assign abbreviated names to specific items to take less space in the Tutor.net list
    Here you assign aliases of your choice. Below are some Examples (which you can edit if you want):
    Code:
    TUTOR_MOVE_ALIASES = [
       [:REDSHARD,"Red"],
       [:BLUESHARD,"Blue"],
       [:GREENSHARD,"Green"],
       [:YELLOWSHARD,"Yellow"],
       [:ORANGESHARD,"Orange"],
       [:PURPLESHARD,"Purple"],
       #THIS IS THE MAIN EXAMPLE AND KEEPS THE ARRAY FROM BREAKING.
       #DO NOT EDIT THIS ONE. ADD YOUR ALIASES ABOVE
       [:ITEMWITHVERYBIGNAME,"Beeg"]
    ]

    Example of how Tutor.net looks like with abbreviated names:
    16581


    3.

    BIGGER_FRAME_STYLE = false/true
    STYLE SELECTOR
    Choose if you prefer the Tutor.net Screen with the bigger frame.
    Bigger frame style has less space for text so you might need to add item aliases.

    Example: Bigger frame style without aliases can result in this:
    16582


    Aliases help alleviate this issue:
    16583


    Chapter 5: New features as of v1.1:
    Teaching moves directly to the new visible interactable party.
    *******************************************************************************************************
    The UI has been changed (improved?) slightly (images below).
    *******************************************************************************************************
    After getting inspired by v20.1 - Bag Screen with interactable Party , Tutor.net now has the player's party displayed on the side, and moves can be directly taught within the app, without needing to move to the party screen.
    Additionally indicators make it so it is immediately visible which party members are compatible, or already know the move the cursor currently points to.
    18016

    *******************************************************************************************************
    Pressing SHIFT allows you to only show the moves a certain pokemon is compatible with.
    18017

    *******************************************************************************************************
    Pressing ACTION (default: Z) displays information of the move the cursor currently points to.
    18018

    *******************************************************************************************************
    Visiting Tutor.net for the first time will inform the player of these new functions.
    18019

    *******************************************************************************************************
    Two party backgrounds to choose from: black and blue. Both come in default and big frame versions. Controllable via the new BLUE_PARTY_BACKGROUND setting.

    Chapter 6: New features as of v1.2:
    The TM to Tutor conversion optional feature.
    Essentials handles both TM moves and Tutor moves the same way, in regards to pokemon compatibility.
    This made me realise when I had to deal with teaching moves to my pokemon it was more comfortable doing it via Tutor.net, especially with the latest QoL added to it, instead of going through the TM pocket and having to remember which TM number is what move because they are sorted by number and every generation keeps changing them so I lose track of them.

    So I took the next step and moved TM moves to Tutor.net so that all my tutorable moves are in one place where I can easily find what I want since they are sorted alphabetically.

    This also means the bag has 1 less pocket to swap between, which sounds good to me at least. Or you can repurose the TM pocket into a pocket for something else, like for example evolution items.

    This is an OPTIONAL feature that is controlled from the new TM_TO_TUTOR setting.
    This also means if this isn't to your liking you can skip this update.
    18117


    default: false just to be safe

    The process is automatic and you do not need to change anything in your game.
    Example: this is your normal npc and your nomal item ball each giving you a TM item that is not edited in any way.
    18119


    As you can see the text is a little diffent than for example TM26: Poison Tail.
    This is another setting for this feature that allows to change the naming scheme for obtaining TMs to whatever your preference is.
    There are two settings for it, one that enables it and one where you put the item title of your choice.
    1684836491087.png


    BACKWARDS COMPATIBILITY:
    If you add this while you or your players have existing save files where they have obtained TMs already, fear not.
    I have made the
    tmtutor_convert
    tmtutor_clear
    methods.
    tmtutor_convert adds all existing TMs in the TM pocket to Tutor.net
    tmtutor_clear clears the TM pocket.
    I decided to have these actions be tied to different methods because people might just want to add the TM moves to Tutor.net while keeping the TM system, that is possible too.

    Chapter 7: Installation
    Simply extract the contents of the zip into your game's main directory.
    There are 2 Folders.
    -The Plugin\Tutor.net folder series which contains the Plugin scripts and will be merged with your Plugin folder.
    -The Graphics\Plugins\Tutor.net folder series which contains the 2 UI styles for tutornet and will be merged with your Graphics folder.

    Chapter 8: Compatibility
    No known incompatibilities as of date.

    Chapter 9: Changelog
    1.2:
    - Added the TM to Tutor optional feature.
    1.1:
    - The UI has been changed (improved?) slightly
    - The party is shown in the app with move compatibility indicators and can be taught moves directly without jumping to the party screen.
    - Pressing SHIFT allows you to only show the moves a certain pokemon is compatible with.
    - Pressing ACTION (default: Z) displays information of the move the cursor currently points to.
    - Two party backgrounds to choose from: black and blue. Controllable via the new BLUE_PARTY_BACKGROUND setting.


     
    Last edited:
    142
    Posts
    10
    Years
  • Updated the OP with Tutor.net's last 2 updates. You can refer to the OP for more details about them.
    1.1:
    - The UI has been changed (improved?) slightly
    - The party is shown in the app with move compatibility indicators and can be taught moves directly without jumping to the party screen.
    - Pressing SHIFT allows you to only show the moves a certain pokemon is compatible with.
    - Pressing ACTION (default: Z) displays information of the move the cursor currently points to.
    - Two party backgrounds to choose from: black and blue. Controllable via the new BLUE_PARTY_BACKGROUND setting.
    1.2:
    - Added the TM to Tutor optional feature.
     
    4
    Posts
    177
    Days
    • Seen yesterday
    Hey! This is a dope plug-in concept.

    I'm trying to update this script to v21.1:
    - replaced $Trainer -> $player (including "class Trainer" -> "class Player"
    - removed all instances of Kernel

    I can run pbTutorNetAdd(:HEATWAVE) to successfully add Tutor.net to the PokeGear and Heat Wave to Tutor.net

    However, after I attempt to open Tutor.net in the Pokegear, the game throws an Argument Error on line 144 of Tutor.net.rb, saying "Given 1, expected 0"
    - Line 144 is: super(viewport)
    - the initialize() includes a viewport=nil
    - other instances of super(viewport) exist within default Essentials v21.1

    Any advice on how to adapt to v21.1?
     
    Back
    Top