Jump to content

senterpat

Premium Member
  • Posts

    677
  • Joined

  • Last visited

Posts posted by senterpat

  1. Is it a collection alias? Formlist? Some sort of wizardry? I'm trying to allow crew assignments to my player home, but the only way to add a location to the outpost list is with a manually place beacon. Or so it seems, I would love for someone to corret me.

  2. I have been at this for hours, and I'm beginning to think it's impossible. 

    I just want to use the diamond icons on UC and above resources on some misc objects to indicate rarity. I can get the icon on it by attaching an IRES component to it, but it then sorts the Misc Object into resources in the inventory in game.

    There are food items that have IRES components, but they are not sorted into the resources section. I tried to base it off that, but every time I get it out of resources, it loses the icon as well.

    If anyone has any guidance or even ideas I would love to hear them.

  3. 😕 I have been trying to get this to work for the past couple of days, convinced I just don't know how to use quest aliases, so I was trying to figure out what combination of tags I needed to get it to work, but after adding a debug message to GetTargetAliasFunction(), I'm not sure it's a quest alias issue as the message doesn't pop up before the error message, although I know next to nothing about creating custom events and functions, so it could just be that I'm a fool 😛 

    I've double and triple-checked all the instructions you placed are followed correctly, I can send you the mod with folder structure if you think that's where the issue may lie

  4. Awesome I'll test this as soon as I get a chance, your the man 😄

     

    Also thanks for the step by step instructions, you made my life much easier 😄

     

    edit: Got it working like a charm, took me a minute because I didn't realize Starfield and SKSE had been updated last week.

    One question tho, without registering the script, how can I tell the script which alias to fill?

     

  5. 19 minutes ago, aurreth said:

    I saw a mod maybe a week ago (?) that starts a brand new game as NG+ level one.  Maybe not so much a mod as several bat files and instructions on how to use them.  That might help you.

    Sounds like that mod just starts a alternate unity quest, rather then reducing the players current level.

  6. That sounds good, I don't understand all of it, but I can probably work it out if the event can be triggered 😄

     

    As for the player level issues, the level change would (optionally) happen at the beginning of a NG+, letting the player start a Unity playthrough at level 1. I'm not sure as I can't test it, but I think most things get reset when going through unity, so the leveled lists and such shouldn't be an issue, if I reset the level before the player actually enters unity.

  7. SFSE dependency is not an issue for me at all. Most of my mods end up requiring them anyways, and all mods require them right now 😛 If you could make such an event that would be neato bandito and make my life easier for sure.

    I didn't have too much time to mess with it yesterday. But I'm off work today and have some time to test around with it.

     

    AttachPapyrusScript does work in Starfield, I had to use it for another mod already using bat commands.

     

    edit:

    This is unrelated, but you may know better than most. Is there any way to reset the players level to 1? If possible it seems it would require script extension, as all my research and attempts seem to point to it being impossible.

  8. No it's going to have set the reference to almost any deco item when they place it, and set them into the reference. 

    I set the alias type to "Find Matching Reference from Event" with FromEvent to craft item, and the EventData to CreatedObject, it seemed to me that this would be what I needed, but it doesn't seem to be working. Is that how you get it from the story manager? Or will I need to send the story event manually? It doesn't really seem like I can register for story events from looking at other scripts.

     

    I could just attach the script to each decoration item, but that would require patches for modded decor, so ideally getting the reference dynamically would be best.

     

    I'll continue to mess with it, going to dig into xEdit and see if I can figure out how story manager event nodes work.

  9. Thank you for your response 😄 This is my first real foray into using quest aliases so I'm mostly working using trial and error 

     

    I do plan on cleaning it up, this was just a quick script to see if I could get it to trigger, which I'm still having trouble doing, but that is possibly because I'm assigning the Alias wrong. Right now its set up as:

    Name:ActiveObject
    
    Flags: Optional
    
    Unknown 00 00 00 00

    I copied that from OutpostTutorial quest, as that deals with placing objects so I thought it might work 😕 I tried adding several version of alias types, as well as "Force into Alias when Filled" but none would get the second debug message to fire.

     


  10. Heyo, not super familiar with quest aliases and such, but what I want to do is simple I think, I just want to assign a placed workshop item to a reference alias so I can do stuff with it after being placed, the first section fires fine, but it doesn't seem to be firing when placing the item (using a vanilla asset to test). Eventually I want it set up to use the decoration category keyword rather than I specific reference, but wanted to make sure I could trigger it, but can't even get that done 😛 

     

    Scriptname TestScript extends Quest conditional
    
    ReferenceAlias Property ActiveObject Auto const
    Actor Property PlayerRef Auto const
    Activator Property Tester Auto const
    
    Event OnQuestStarted()
    Self.RegisterForRemoteEvent(Tester as ScriptObject, "OnWorkshopObjectPlaced")
    debug.messagebox("init")
    EndEvent
    
    Event ReferenceAlias.OnWorkshopObjectPlaced(ReferenceAlias akSource, ObjectReference akReference)
    	ActiveObject.ForceRefTo(akReference)
    debug.messagebox("placed")
    	
    EndEvent
    	

     

  11. I've tried to find tutorials and such for blender modeling with starfield, googling it is impossible, as there are a million tutuorials for how to make a starfield in blender. My own attempts at this based off of memory from my FNV modelling days with blender have been a complete failure. If anyone can point me to a good tutorial for importing/exporting a model to blender I would appreciate it.

    Alternativly, if anyone just wants to cut off the middle (verically) of the male/female upperbody starborn model, that would be alot easier for me. I just want to mash it up with some other stuff, but the chest piece and boostpack are unwanted. Pretty much just want the arms and the shoulder area.

    If you're really bored, the same treatment for delgados outfit, with the scarf removed as well would be super sweet and be a useful resource.

  12. So, trying to make a relatively simply script, but having a few issues.

    1. The player will copy the aliases appearance, but only if I call game.getplayer(), trying to use the property makes nothing happen, but I was under the impression the latter is faster, and they return the same data.

    2 . The TempActor is not copying the players appearance, regardless of how I reference the player (property or game.getplayer()) The TempActor is just a blank slate essentially. Assigned in the quest as and object, pointing to the Actor data under NPC. Do I need to assign him as a reference alias as well?

    I'm sure the issue lies in how I'm calling the TempActor, but if I can't use a reference or actorbase, and am at a bit of a loss.

    Any advice is appreciated, or an alternate method to save the players appearance would be welcome.

    Actor Property PlayerREF Auto Const mandatory
    
    Actor Property TempActor Auto Const mandatory
    
    Function Fragment_Phase_01_End()
    
    TempActor.CopyAppearance(game.getplayer())
    
    game.getplayer().CopyAppearance(PrimaryActorAlias.GetActorReference())
    EndFunction

     

  13. Thanks so much! I already tried the OMOD method, sadly when I attach the keyword using that the armors model disappears. I tried doing the reverse and having it start with the keyword and having the OMOD remove it, but that didn't work at all. I never even got to the scripting process when I switched to this method, as I could never get the OMOD on without the armor disappearing, but using a different keyword worked fine.

    It's likely due to it being hardcoded, I can manipulate other keywords the same way in testing, but the Armor keyword I was removing let's you hide your space suit whenever the mask would be hidden, but doing so made the inventory really act up, so I wanted to add it back in the menus. Using Add/RemoveKeyword was working, but the triggers were unreliably firing.

    I'll keep messing with it but I'm not holding my breath.

  14. So I'm trying to work on something, but for some reason the data menu close only seems to trigger when I close the menu with the "hold to exit" option.

    Opening the datamenu with tab allows the debug message to show, but if I close the menu it only fires the debug message once another menu, or the data menu has opened. Upon opening the data menu a second time, I first see the debug message for closing, and then the open debug message is right underneath.

     

    The end goal of what I'm doing is to add a keyword when the menu is open to an armor item, and remove it when it closes. Is there a better way to accomplish this?

    Below is my current script, trying to get the framework in place:

    Keyword Property KeywordToRemove Auto Const
    
    Event OnInit()
      Self.RegisterForMenuOpenCloseEvent("DataMenu")
      Self.RegisterForMenuOpenCloseEvent("InventoryMenu")
    EndEvent
    
    Event OnMenuOpenCloseEvent(String asMenuName, Bool abOpening)
    	If asMenuName == "DataMenu" && abOpening == True
    		If Game.GetPlayer().WornHasKeyword(KeywordToRemove)
    			debug.messagebox("haskeyword data open")
    			Self.RegisterForMenuOpenCloseEvent("DataMenu") 
    			Self.unRegisterForMenuOpenCloseEvent("InventoryMenu")
    		endif
    	elseIf asMenuName == "DataMenu" && abOpening == False
    			debug.messagebox(" haskeyword data close")
    			Self.RegisterForMenuOpenCloseEvent("DataMenu") 
    			Self.RegisterForMenuOpenCloseEvent("InventoryMenu") 
    		
    	elseIf asMenuName == "InventoryMenu" && abOpening == True
    		If Game.GetPlayer().WornHasKeyword(KeywordToRemove)
    			debug.messagebox("haskeyword inventory open")
    			Self.RegisterForMenuOpenCloseEvent("DataMenu") 
    			Self.unRegisterForMenuOpenCloseEvent("InventoryMenu")
    		endif
    	elseIf asMenuName == "InventoryMenu" && abOpening == False
    			debug.messagebox("haskeyword inventory close")
    			Self.RegisterForMenuOpenCloseEvent("DataMenu") 
    			Self.RegisterForMenuOpenCloseEvent("InventoryMenu")
    	endif						
    
    EndEvent

     

  15. Hello, is anyone else missing a normal texture for their female swimsuit? BAE doesn't show it in any of the archives, and my swimsuit on the female body looks like it has the male normal on it. Does anyone else have this issue? Looking at pictures on google it looks like everyones swimsuits are showing up fine.

     

     

    links to a post with a picture:

    Mixed up normal map? : Starfield (reddit.com)

  16.  

    Ok, what fixed this for me was a suggestion by user @mwo1480.

     

     

    if u made the custom ini and copied the lines from nexus/or this mods main page it put in some things u cant see or remove

    it should mostlikely fix it

     

    Thanks for this, my game kept deleting my custom ini on launch for some reason. That downloaded ini stayed for some reason tho. Kudos to you

  17. Yeah editing vanilla landscapes can be a bit hard if they are painted with grass, when I add to exterior cells I usually raise the ground up a bit where I'm building, the ground moves but the painted grass stays I believe. I don't know the scale of your project, but that's the only way I've been able to prevent grass clipping.

     

    I could be wrong, it's been well over a year since I messed with landscapes and could be misremembering.

     

    Another alternative is to apply the matching landscape texture to some cave balcony statics or something similar and place that over the grass and build on that.

  18. Is there a way to detect if a projectile has hit something? I don't need to get the reference of whatever it hit I just need to know if the projectile is gone so I can do something with a second projectile.

     

    I've been trying to use getposx and y, if you use getpos in the console it returns 0 after its gone, but the script doesnt seem to be registering it.

  19. Awesome. That helped out a lot. For some reason the script won't use moveto on the projectile with AI disabled (tho I can move it to the player via console while disabled). Easily circumvented by enabling AI before moving the NPC and then disabling again. I had to also add an Int to check for if the orb was active. Firing an additional spell would make the triggerbox ignore the original, causing the NPC activator to not be deleted. I tried using OnTriggerLeave, but the trigger box was proving to be a pain to get to the proper size to register the projectile without starting the effect too long after the spell was fired. So unless there is a way to tell the script to keep running on both projectiles I'll have to deal with it. Thank you so much for your help dylbill. The final script in case anyone wants to do anything similar:

    Projectile Property MyProjectile Auto
    ActorBase Property ActorMarkerHeading Auto
    Spell Property IceBoltSpell Auto
    Float Property fTRotation = 20.0 Auto
    Explosion Property ExplosionRef Auto
    
    Int  OrbActive
    Int IceboltCount
    Actor ActorMarkerHeadingRef
    ObjectReference FrozenOrb
    Actor Player
    
    
    Event OnTriggerEnter(ObjectReference akActionRef)
    	if OrbActive != 1
    		Form Base = akActionRef.GetBaseObject() 
    		If Base as Projectile 
    			If Base == MyProjectile 
    				FrozenOrb = akActionRef
    				Player = Game.GetPlayer()
    				ActorMarkerHeadingRef = FrozenOrb.PlaceActorAtme(ActorMarkerHeading)
    				ActorMarkerHeadingRef.EnableAi(False) ;disable actor 
    				IceboltCount = 0
    				RegisterForSingleUpdate(0.05)
    				OrbActive = 1
    			Endif 
    		Endif 
    	Endif
    EndEvent
    
    Event OnUpdate()
        if IceboltCount < 27
            ActorMarkerHeadingRef.EnableAi(True)
            ActorMarkerHeadingRef.Moveto(FrozenOrb, abMatchRotation = False)
    		ActorMarkerHeadingRef.EnableAi(False)
            ActorMarkerHeadingRef.SetAngle(ActorMarkerHeadingRef.GetAngleX(), ActorMarkerHeadingRef.GetAngleY(), (ActorMarkerHeadingRef.GetAngleZ() + fTRotation))
            IceBoltSpell.RemoteCast(ActorMarkerHeadingRef, Player)
            IceboltCount += 1 ;add 1 to IceboltCount
            RegisterForSingleUpdate(0.05)
        else
            FrozenOrb.placeatme(ExplosionRef)
            FrozenOrb.Disable()
            ActorMarkerHeadingRef.Disable() 
            ActorMarkerHeadingRef.Delete()
    		OrbActive = 0
        endif
    EndEvent
    

    I also had to set the casting NPC to .1 in order to get the spell to fire from the orb rather then above it.

     

    Friendly NPCs such as riverwood citizens also report the crime, but do not start combat with the player(not red on compass) but do try and attack the ActorMarkingHeadingRef. I may be able to get around this by making the ice spike magic effect painless while attaching a script that forces targets hit into combat with the player.

  20. Much appreciated for cleaning up the script, I'm no professional scripter. But after adding it in and setting it back up its functioning much better, the ice spikes are firing with the orb now, not at an even pace, but that's likely script latency and I can live with.. But its still not registering the rotation. I can't for the life of me work this out.

     

    Is there possibly a setting on the XMarkerHeadingRef I'm missing? Its just a XMarkerHeading mesh, with default settings. I used it to create the trigger box that gets teleported to the player using an ability spell. Or something on the triggerbox?

  21. So I'm using this script to try and basically recreate the frozen orb spell from Diablo II, but have reached a point where I am completely befuddled. I have an explosion that is placed as the orb moves, and that is triggering just fine, but the projectiles I tell to shoot from the same spot I placed the explosion at, for some reason are firing from the player, and not registering the rotation I'm trying to input. Hopefully someone can help me with this. So the script is as follows:

    scriptName patDestructFrozenOrbTriggerBoxScript extends ObjectReference
    ;this is the script to attach to the triggerbox i spawn
    
    Projectile Property MyProjectile Auto
    Activator Property XMarkerHeading Auto
    Spell Property IceBoltSpell Auto
    Float Property fTRotation = 20.0 Auto
    Explosion Property ExplosionRef Auto
    
    Float PosX 
    Float PosY  
    Float PosZ 
    Float AngX 
    Float AngY 
    Float AngZ
    Int IceboltCount
    ObjectReference XMarkerHeadingRef
    ObjectReference FrozenOrb
    Actor Player
    
    Event OnTriggerEnter(ObjectReference akActionRef)
        Form Base = akActionRef.GetBaseObject() 
    	FrozenOrb = akActionRef
        If Base as Projectile 
            If Base == MyProjectile 
    			Player = Game.GetPlayer()
    			XMarkerHeadingRef = FrozenOrb.PlaceAtMe(XMarkerHeading)
    			StartChain()
            Endif 
        Endif 
    EndEvent
    
    Function StartChain()
      RegisterForSingleUpdate(0.1) 
    EndFunction
     
    Event OnUpdate()
    	Bool bKeepUpdating = True
    		if IceboltCount < 27
    			AngX = XMarkerHeadingRef.GetAngleX()
    			AngY = XMarkerHeadingRef.GetAngleY()
    			AngZ = XMarkerHeadingRef.GetAngleZ()
    			AngZ = (AngZ + fTRotation)
    			XMarkerHeadingRef.placeatme(ExplosionRef)
    			XMarkerHeadingRef.Moveto(FrozenOrb, abMatchRotation = False)
    			XMarkerHeadingRef.SetAngle(AngX, AngY, AngZ)
    			IceBoltSpell.RemoteCast(XMarkerHeadingRef, Player)
    			IceboltCount = (IceboltCount + 1)
    			RegisterForSingleUpdate(0.1)
    		else
    			FrozenOrb.placeatme(ExplosionRef)
    			FrozenOrb.Disable()
    			IceboltCount = (IceboltCount + 0)
    		endif
    		
    					
    EndEvent
    
    

    Originally I tried using remotecast on the projectile reference, but that ended up firing from the player as well, and had the added effect of the projectile altering course. But the explosions trigger at the location of the orb, so am I maybe using remotecast indirectly?

     

    edit: so I tried using cast instead of remote cast, which seems to be working a bit better, it is now firing the projectiles from around where the orb is. but the script is firing a bunch of projectiles in one direction, then a bunch in another direction, and doesnt seem to be able to keep up with the projectile (200 speed).

    Is there an issue with my Update Block that would cause it to rapid fire like that? I tried to set it up to fire one, wait a moment, and then rotate and fire another.

×
×
  • Create New...