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
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
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 😄
Very useful! Thanks, will dig into these :)
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 😄
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

I have to be in the right place
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
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
Hell yes!!! Awesome work!! And you've absolutely earned a break after that! 😄
You know how when you hit your head you see stars?
Bro all I can see is Classes. :Dizzy:
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
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
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: 🚀
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
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 😄
I DID ITTT, I DID THE THING!
Even works on branches
Oh hell yes that's awesome!!!!!
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

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: