• Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Resource icon

Resource Advanced HM Items 1.0.0

FeelsMoyoMan

Rookie
Member
Joined
Jul 26, 2021
Posts
8
FeelsMoyoMan submitted a new resource:

Advanced HM Items - Allows you to use Items for HM Moves.

This resource lets you define items that can be used instead of HM moves.

Since the original script from Marin is no longer usable in V19.1 and later, I sat down and reworked the whole script to work again.
While doing so, I updated the script to be able to be loaded via the "new" Plugin Manager and added some features.

Currently supported HM items:
  • Rock Smash
  • Cut
  • Strength...

Read more about this resource...
 

Sploopo

get real
Member
Joined
Feb 15, 2021
Posts
23
3000.jpg

(Jokes aside, great to have a script like this back so we can continue deleting HMs from existence.)
 

lichen

i make sprites , i think
Member
Joined
Sep 9, 2020
Posts
104
One small tidbit - the honey code IIRC is identical to the Sweet Scent field move, so I don't think adding that one would be necessary since it's already an item.
 

FeelsMoyoMan

Rookie
Member
Joined
Jul 26, 2021
Posts
8
Hey! Nice! Another Item?... What about Defog? No reason at all since there isn't defog in-game... BUUUUT... Why not?
Since there is no Defog in the game you probably have to manipulate the overworld weather. I haven't looked into how weather works yet, but in theory, this should be doable. Something like a "Rainremover" or "Weatherremover" would then also be a possibility.
 

ChromusSama

Novice
Member
Joined
Nov 2, 2020
Posts
10
Very good and helpful script, I'm glad you took time to update it.

Now, about suggestions :
- As mentionned by lichenprincess, Honey already acts as an alternative to Sweet Scent, but you still have to buy some to NPC, so I think it would still be relevent to create a "Sweet Scent Item" that uses the same kind of script as Honey (basically just 3 lines calling pbSweetScent)

- The same situation occurs with Dig, that can be replaced by Escape Ropes. But once again, since you have to buy Escape Ropes, creating a "Dig Item" would still be relevent

- About Defog, I personnaly think that the fog is way less annoying in Essentials than it is in DPPt, but as you mentionned, an item that removes every weather effects could actually be a very good idea.

- An idea I got about Dive and Waterfall was to create an evolutive item based on the already existing Surf Item. What I mean by that is, as soon as you get either the Dive or the Waterfall Item, the Surf Item is removed from your inventory and replaced with the one you've just got. This also implies that the Dive and Waterfall Items should include code that still allows to just normally surf on water.

- And lastly, I think Rock Climb also deserves its own HM Item, especially for anyone creating a fangame based on Sinnoh or in the HGSS version of Johto/Kanto
 

FeelsMoyoMan

Rookie
Member
Joined
Jul 26, 2021
Posts
8
Very good and helpful script, I'm glad you took time to update it.

Now, about suggestions :
- As mentionned by lichenprincess, Honey already acts as an alternative to Sweet Scent, but you still have to buy some to NPC, so I think it would still be relevent to create a "Sweet Scent Item" that uses the same kind of script as Honey (basically just 3 lines calling pbSweetScent)

- The same situation occurs with Dig, that can be replaced by Escape Ropes. But once again, since you have to buy Escape Ropes, creating a "Dig Item" would still be relevent

- About Defog, I personnaly think that the fog is way less annoying in Essentials than it is in DPPt, but as you mentionned, an item that removes every weather effects could actually be a very good idea.

- An idea I got about Dive and Waterfall was to create an evolutive item based on the already existing Surf Item. What I mean by that is, as soon as you get either the Dive or the Waterfall Item, the Surf Item is removed from your inventory and replaced with the one you've just got. This also implies that the Dive and Waterfall Items should include code that still allows to just normally surf on water.

- And lastly, I think Rock Climb also deserves its own HM Item, especially for anyone creating a fangame based on Sinnoh or in the HGSS version of Johto/Kanto
I really like the idea to combine surf, waterfall, and dive.
Rock Climb could be tricky since it isn't in PE and you have to add it yourself. So the Item would only work with my implementation of Rock Climb. But on the other hand, if you have the item you can't use the field move anyways.
 

Leondrea

Trainer
Member
Joined
Jul 26, 2020
Posts
95
Wow, I'm impressed and amazed by the work you did there!
Really great work! Now everyone that uses v.19.1 has the possibility to remove the HMs!
There are so many possibilities of features that could be added in to your future list, that I can't think of right now.
I think everything mentioned there is pretty complete for now.
Oh, and headbutt was never a HM, it was just a TM that was used on trees on Gen 2.
But you did a great work!
 

Keyacom

20100 = Magic number
Member
Joined
May 28, 2021
Posts
11
Oh, and headbutt was never a HM, it was just a TM that was used on trees on Gen 2.
In HGSS, Headbutt was also used on Headbutt trees. All trees could be headbutted, but only specific ones could yield Pokémon. In this game, it was a Move Tutor move. A guy in the Ilex Forest could teach Headbutt to one of your Pokémon FOR FREE. (That's maybe why one Professor Oak's Challenge guide states "Abuse the Headbutt move tutor as much as possible!".)
 

Keyacom

20100 = Magic number
Member
Joined
May 28, 2021
Posts
11
- As mentionned by lichenprincess, Honey already acts as an alternative to Sweet Scent, but you still have to buy some to NPC, so I think it would still be relevent to create a "Sweet Scent Item" that uses the same kind of script as Honey (basically just 3 lines calling pbSweetScent)

- The same situation occurs with Dig, that can be replaced by Escape Ropes. But once again, since you have to buy Escape Ropes, creating a "Dig Item" would still be relevent
In SwSh, Sonia gives you an Escape Rope. It's the only one that's obtainable, but can be used infinitely many times. The "Honey" item now has no purpose other than to be sold.
 

Leondrea

Trainer
Member
Joined
Jul 26, 2020
Posts
95
In HGSS, Headbutt was also used on Headbutt trees. All trees could be headbutted, but only specific ones could yield Pokémon. In this game, it was a Move Tutor move. A guy in the Ilex Forest could teach Headbutt to one of your Pokémon FOR FREE. (That's maybe why one Professor Oak's Challenge guide states "Abuse the Headbutt move tutor as much as possible!".)
Yes, I meant the Headbutt trees. Headbutt was never an HM Move it was just a field move that could be used when talking to an NPC in Ilex Forest he'll teach the move Headbutt to one of a Pokémon in the party for free. Headbut is rather similar to the berry tree function in Sword/Shield but without receiving berries, just fighting Pokémon, and not always. It's also a little similar to the honey tree and it would be cool if someone could implement a feature, where Honey would be some key item that could be used infinite amount of times. But calling the Key Item Honey would be kinda lame, how about the move Sweet Scent?

Sweet Scent had the same functionality too, I remember! But implementing a Key Item, that would act like Sweet Scent but would be called like for example, Sweet Aroma or Sweet Parfain and would be used infinitely many times would be a next step ahead of GF.

Edit: Oh, I wrote that Headbutt was a TM? I forgot that it was just a move that could be learned from an NPC, sorry!
 

Aussaye

Rookie
Member
Joined
Sep 7, 2021
Posts
7
For some reason I can't seem to get surf to work. I can do it in debug but not outside of debug while having the item. Any thoughts?
 

Aussaye

Rookie
Member
Joined
Sep 7, 2021
Posts
7
FIXED - For some reason I needed to make it so surfs use-in-debug is true and that fixed it
 

Pokemon Wild

Rookie
Member
Joined
Dec 28, 2021
Posts
0
Hi, I love this however im having a compatibly issue with Following Pokemon EX. When using both your plugins, following pokemon EX does not detect me as surfing to remove my Pokemon , so the Pokemon always follow me even onto water (Im aware of certain valid types and an exception list but this overrides everything and allows all Pokemon to follow you onto water)

is it possible Following Pokemon EX now does not detect surfing as we do it in another way via this script?
 

El_Papoy

Rookie
Member
Joined
Feb 16, 2022
Posts
1
Hello! very good little plugin. I have a small question though.
Would you happen to know how i can still have the animations show. (like a pokemon appearing on screen for cut/strength/surf, and the pokemon that comes and picks you up for fly)
 

DarrylBD99

A YouTuber that really REALLY loves making games
Member
Joined
May 20, 2020
Posts
60
Directly from the comments in the Config Script
:active -> defines if this item should be used, if set to false you do not have to add an item to the PBS file

Clearly that isn't the case:
Exception: RuntimeError
Message: Unknown ID SURFITEM.

Backtrace:
001_GameData.rb:32:in `get'
008_PokemonBag.rb:91:in `pbQuantity'
008_PokemonBag.rb:97:in `pbHasItem?'
[Advanced HM Items] Item Handler.rb:31:in `pbCanUseItem'
[Following Pokemon EX] Field Moves.rb:13:in `pbSurf'
004_Overworld_FieldMoves.rb:766:in `block (2 levels) in load_scripts_from_folder'
005_Event_Handlers.rb:53:in `block in trigger'
005_Event_Handlers.rb:48:in `each'
005_Event_Handlers.rb:48:in `trigger'
002_Scene_Map.rb:209:in `update'
 

TheDarkRattata

Novice
Member
Joined
Apr 24, 2017
Posts
21
Loving this! If I were to want to add a custom HM to it, would I just need to edit the handler script with the stuff for my HM? Or is it more complicated than that?
 

cc_trash

Rookie
Member
Joined
Apr 24, 2022
Posts
1
Hi! I'd just like to say that, although I am not OP, I have used this script and managed to do a "Teleport" item.
For anyone who wants to use it just go to "Config.rb" file and add a new entry for a TELEPOR_CONFIG
Code:
}
TELEPORT_CONFIG = {
    :internal_name      => :TELEPORTITEM,
    :active             => true,
    :needed_badge       => 0,
    :needed_switches    => [],
    :use_in_debug       => false
}

Then go to "ItemHandler.rb" and add a new entry for an "Item_Teleport" and then add the code for the item after
Code:
Item_RockSmash = AdvancedHMItems::ROCKSMASH_CONFIG
Item_Cut = AdvancedHMItems::CUT_CONFIG
Item_Strength = AdvancedHMItems::STRENGTH_CONFIG
Item_Surf = AdvancedHMItems::SURF_CONFIG
Item_Fly = AdvancedHMItems::FLY_CONFIG
Item_Headbutt = AdvancedHMItems::HEADBUTT_CONFIG
Item_Flash = AdvancedHMItems::FLASH_CONFIG
#This is where you add the Teleport Item
Item_Teleport = AdvancedHMItems::TELEPORT_CONFIG
Code:
#===========================================
# Teleport                       
#===========================================

if Item_Teleport[:active]

  HiddenMoveHandlers::CanUseMove.delete(:TELEPORT)
  HiddenMoveHandlers::UseMove.delete(:TELEPORT)
 
  def canUseMoveTeleport?
       if !GameData::MapMetadata.exists?($game_map.map_id) ||
          !GameData::MapMetadata.get($game_map.map_id).outdoor_map
         pbMessage(_INTL("Can't use that here."))
         return false
       end
       healing = $PokemonGlobal.healingSpot
       healing = GameData::Metadata.get.home if !healing   # Home
       if !healing
         pbMessage(_INTL("Can't use that here."))
         return false
       end
       if $game_player.pbHasDependentEvents?
         pbMessage(_INTL("{1} can't be used when you have someone with you.", GameData::Item.get(Item_Teleport[:internal_name]).name))
         return false
       end
       return true
     end

def confirmUseMoveTeleport
   healing = $PokemonGlobal.healingSpot
   healing = GameData::Metadata.get.home if !healing   # Home
   return false if !healing
   mapname = pbGetMapNameFromId(healing[0])
   return pbConfirmMessage(_INTL("Want to warp to the last used healing spot in {1}?",mapname))
end

def useMoveTeleport
   healing = $PokemonGlobal.healingSpot
   healing = GameData::Metadata.get.home if !healing   # Home
   return false if !healing
   if !pbHiddenMoveAnimation(nil)
     pbMessage(_INTL("{1} used {2}!, $Trainer.name, GameData::Item.get(Item_Teleport[:internal_name]).name))     
   end
   pbFadeOutIn {
     $game_temp.player_new_map_id    = healing[0]
     $game_temp.player_new_x         = healing[1]
     $game_temp.player_new_y         = healing[2]
     $game_temp.player_new_direction = 2
     pbCancelVehicles
     $scene.transfer_player
     $game_map.autoplay
     $game_map.refresh
   }
   pbEraseEscapePoint
   return true
end
 
  ItemHandlers::UseFromBag.add(Item_Teleport[:internal_name], proc do |item|
   next canUseMoveTeleport? ? 2 : 0
end)

ItemHandlers::UseInField.add(Item_Teleport[:internal_name], proc do |item|
   useMoveTeleport if confirmUseMoveTeleport
end)

end

If you haven't altered the plugin yourself I will leave a link to a version of the Plugin with the Teleport code:
 

Semolous

Novice
Member
Joined
Jun 5, 2022
Posts
31
How do I use fly as an item? Whenever I try to use it, I'm told it 'can't be used here' The same is also true for using flash as an item
 
Last edited:
Back
Top