Jump to content

Short Range Teleport without Loading Screen?


Darktrooper117

Recommended Posts

I'm wanting to create a mod that gives the player a Blink ability to instantly change positions in the middle of combat, though only within a range of about ten meters. From what I've seen and heard, Fallout 4 always reloads the world when the player's position is changed, which would make the Blink useless for dynamic combat. Is there any way to get around this?

 

EDIT: Nevermind, I think I figured it out!

Edited by Darktrooper117
Link to comment
Share on other sites

  • 3 months later...
  • 3 weeks later...

I'll make a bit of necro in this topic;

With ObjectReference.MoveTo(Ref) function you can evade the Loading Screen but you also have to add into fallout4.ini under [General] "fMinPlayerMoveToDistForLoadScreen= 800" which defines the minimum distance to call for a loadscreen, you can change that 800 for whatever you want.

 

The only thing i'm searching for now is how to add a new Ini setting via script or a new plugin to not bothering the installation.

Link to comment
Share on other sites

Apparently someone was paying attention to this thread, released today: http://www.nexusmods.com/fallout4/mods/19065/?

 

 

Or maybe he just realized by himself, is just reading the CK wiki. But it's ok o publish it here because google finds it easily so if someone is looking for this specific topic for his mod he have not to surf an uncountable amount of s*** as i had to :laugh:

 

 

PS: those grenades have a really cool visual effect, the fade with the institute realay explosion works great :happy:

 

 

EDIT: by the way i tested a bit more translate to ref, and as expected it has a problem when trying to teleport to irregular surfaces. Well it's ok but the main problem is that if you teleport from a high point to a lower one you die from fall damage. It's easily avoidable with a perk that makes falling damage to 0 and you can add it to the player once he uses the script so for example, script attached to the ref that will be placed once the explosion of the whatever you made:

Event OnInit()
    Game.GetPlayer().AddPerk(nofallingdamage)
    Game.GetPlayer().TranslateToRef(self, 1000000.0)
    Utility.Wait(0.5)
    Game.GetPlayer().RemovePerk(nofallingdamage)
    Self.Disable()
EndEvent

Main problem, is that in some ocasions the perk could be added as permanent (if something happens in that 0.5 seconds of time, like save&crash) but it's a minor bug because if he uses the teleport again the perk will be removed.

 

 

EDIT2: psoible way to solve the surface issue is forcing to happen the same idle that is being played in the bug in this case the jump one:

Game.GetPlayer().ApplyHavokImpulse(0.1,0.1,0,3)
Game.GetPlayer().playidle(jumpInPlace)

Then the full script can go like this way:

Perk Property NoFallingDamage Auto Const ;to avoid being damaged by falling damage
EffectShader Property TeleportInFXS Auto const ;the fade effect
EffectShader Property TeleportOutFXS Auto const ;the other fade effect
Explosion Property TeleportFXExplosion Auto const ;removed the explosion effect of the explosion just because i liked it to be handled by the script so i can contol better the effects
Sound Property UIPipBoyRadioTeleportInterference Auto Const ; this is something that i found in a Mag Effect in one of the main quests, just decorative
Idle Property jumpInPlace Auto Const ;the idle that will be played

Event OnInit()
	If Game.IsPlayerRadioOn()
		UIPipBoyRadioTeleportInterference.Play(Game.GetPlayer());it just plays an interference that is nice for ambientation this is irrelevant
	EndIf
	Game.GetPlayer().AddPerk(NoFallingDamage)
	TeleportOutFXS.play(Game.GetPlayer(), 0.1)
	Utility.Wait(0.1)
	Game.GetPlayer().TranslateToRef(self, 25000.0) ;if you use more speed in the function it can be bugged more frequently
    	TeleportInFXS.play(Game.GetPlayer(), 0.5)
	self.placeatme(TeleportFXExplosion)
	Game.GetPlayer().ApplyHavokImpulse(0.1,0.1,0,3) ;with this we force to remove the current idle with a force
	Game.GetPlayer().playidle(jumpInPlace); Then if its possible the jump animation will be played so it can be cancelable with another jump
	Utility.Wait(0.6)
	Game.GetPlayer().RemovePerk(kata_NoFallingDamage); we remove the perk so if the jarget teleports into a high place but to a wall he will die from falling damage anyway
        Self.Disable()
        Self.Delete()
EndEvent
Edited by KataPUMB
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...