Hypertube - junctions and branches

Been head scratching for like 6hrs. I need a hand So to clarify its my first time modding this game. My knowledge on C++ is shaky at best, but I understand the fundementals. I want to hook into the hypertube junction and branch code/functions to basically say when a player presses A or D on their keyboard while in a hypertube and are coming upto a junction, depending on the key pressed, they will either go down the left channel, or the right channel respectively. As for branches, just the left channel while pressing A. Does this require hooking? Can I just write a custom function? what do I need to make this work. Is this even possible? Im at the stage of dev where I wanna bang my head against a wall xD
25 Replies
Ambi
AmbiOP•3mo ago
Welp I hit a brick wall. I can't find the function, classname. whichever that dictates changing direction in a junction. least not from runtime by listing UFunctions from UObjects I have 0 knowledge about reverse engineering Its probably a forceinline function Maybe I can write something that modifies the receiver, if I can find that
Muppet Burrito
Muppet Burrito•3mo ago
If you look up Build_HyperTubeJunction in UE, that's the buildable for one of the junctions, it's got the connection point components visible in the BP, those components are called "FG_Pipe Connection Component Hyper" and from the buildable BP you can open up those connection components into VS to see the C++ which might have the info you're looking for there I don't have experience working with the hypertube junctions so can't advise beyond that, but I have spend a fair bit of time delving into the game files to try and see how everything works so if that's not the component you need lmk and I'll see if I can help you keep digging in the game files to find what you need 😄
Ambi
AmbiOP•3mo ago
Very useful! Thanks, will dig into these :)
Muppet Burrito
Muppet Burrito•3mo ago
Super glad I could help, if there's anything else you can't find that you need please sing out and I'll do my best to help you find that, too 😄
Ambi
AmbiOP•3mo ago
Omg its been staring me in the face for 10hrs Not to discredit you Muppet, thanks again for directing me.... but its a movement thing. And where does movement happen In the FGCharacterMovementComponent I typed in Junction. and first thing I see? Junction connection
Ambi
AmbiOP•3mo ago
No description
Ambi
AmbiOP•3mo ago
I have to be in the right place
Muppet Burrito
Muppet Burrito•3mo ago
Hey, I'm just glad you found it! :hypers: And yeah, it's usually just a matter of being in the right place searching for the right term lol
Ambi
AmbiOP•3mo ago
Think I've hit a wall again. Alot of the functions I need to hook in FGCharacterMovementComponent are private so I can't overwrite them. And FGCharacterMovementComponent is final so I can't subclass it. A little bit at a loss on my next move here Im getting somewhere.. I've coded PhysPipe from the ground up and its sorta working.. I have accidentally made a hypertube teleporter however, but hey progress Small update. Ive recreated the entire hypertube physics logic again. Including PhysPipe() FindClosestPipeHyper() UpdatePipeMovementDataFromResult() so now the whole system runs off of my functions, only hooking StartPhysicsNew() which calls PhysPipe() in normal game. Now.. Theoretically I can modify this code to do what I want it to do... after I take a break xD
Muppet Burrito
Muppet Burrito•3mo ago
Hell yes!!! Awesome work!! And you've absolutely earned a break after that! 😄
Ambi
AmbiOP•3mo ago
You know how when you hit your head you see stars? Bro all I can see is Classes. :Dizzy:
Muppet Burrito
Muppet Burrito•3mo ago
Oh I relate to that a lot, I've had many a night dreaming of materials/nanite/lumen settings making a couple of my mods
Ambi
AmbiOP•3mo ago
Imma say this C++ is freedom. But omg I've never been more in pain when it says something is wrong, and it might as well be in another language. Got me like
Muppet Burrito
Muppet Burrito•3mo ago
That's been my one problem with it, though Imma have to get used to it bc I have custom holograms and CDOs I'm attempting to write for my next updates... and it just telling me something is wrong but not what in a way I can understand is sending me lol I'm going to have to make my own thread for it soon if beating my head against the problem alone doesn't solve things hahaa But, I pick up a lot helping others with what I can, and reading your awesome solutions to problems, even just you venting in here and then solving things has helped me a lot with what I'm tackling so thank you! And awesome work once again!!! :hypers: :launch: 🚀
Ambi
AmbiOP•3mo ago
Of course, and thanks haha. I've learned so much in the past like 20hrs or so coding than I ever did before. So if you do get stuck I might even be able to help. Just ask
Muppet Burrito
Muppet Burrito•3mo ago
Thank you so much! I will probably take you up on that in the next day or so! You've done incredible work in such a short amount of time and should be incredibly chuffed 😄
Ambi
AmbiOP•3mo ago
I DID ITTT, I DID THE THING!
Ambi
AmbiOP•3mo ago
Ambi
AmbiOP•3mo ago
Even works on branches
Muppet Burrito
Muppet Burrito•3mo ago
Oh hell yes that's awesome!!!!!
Ambi
AmbiOP•3mo ago
Alright, honestly I think Im done. I've added it so it updates the text box to show what my mod does and I optimized the ticking function I've written to be more performant, only runs every 5 frames instead of everyframe. because it really doesn't need to run every single frame. V1.1.0 and.. unless I can think of something else to add, another feature. Im done till this mod breaks and I have to fix it lol
No description
Muppet Burrito
Muppet Burrito•3mo ago
You've done awesome work with it and should be incredibly proud of how much you've learned and achieved here in such a short time! :hypers:

Did you find this page helpful?