Jump to content

The critter thread


Sclerocephalus

Recommended Posts

Maybe i'm doing something wrong, but I have yet to see any critter spam in my logs in my current play through

No, that means everything is going right and (so far) you have nothing to worry about.

Link to comment
Share on other sites

Maybe i'm doing something wrong, but I have yet to see any critter spam in my logs in my current play through

I'm very happy to hear that! You should be seeing more critters than ever before, and they should be gracefully removed after they pass out of sight.

 

BlackPete is just very good at finding problems. :)

 

 

Yes, that is what I did in that particular instance when those errors were produced. I don't understand why these errors are generated, but it could be very well be a result of timing. It could "possibly" have to do with changing cells, specifically when entering the city from the gate near the orphanage.

I haven't gotten to the Morthal swamp yet.

 

After another 7" snowstorm here and other local problems, I've taken a look at Riften.

 

I think the underlying problem is: Fireflies weren't originally intended to go away. They would be created, and then stay around in the save game until you catch them. The next time you come by, the spawner would only make as many more as you caught. But that causes save bloat, and in many cases you won't pass that way again. USKP 1.3.3 added an OnCellDetach to remove them, matching some other critters. But the rest of the firefly code had/has some assumptions that they aren't going to be deleted....

 

Butterfly/Moth and DragonFly have some similarities, but fewer states than fireflies, and some existing cleanup code. So not as many problems.

 

I made things much better by serializing the cleanup code with OnUpdate. But now the OnUpdate cleanups are running too fast! (I coded them to run with as few interruptions as possible.) There are so many scripted things going on in Riften that the game engine gets behind.

 

Each of those .X .Y .Z .GetAngleZ etc is an interruptible function. Silly, but documented. So the script interrupts, you go inside, the OnUpdate delete sneaks through instead, and then the next line of papyrus fails because the variables are None.

 

So, I need to carefully go through the scripts and force the OnUpdate cleanup to be delayed during those long calculations. Currently it's anywhere from 0.0 to 10.0 seconds. It doesn't hurt for them to take awhile, as long as they clean up eventually.

 

Also, OnCellDetach the state should be set back to "", so that any pending updates for movement will drop into the deletion code right away. EDIT, nope won't work for DragonFlies, which are always in "" state.

 

Finally, OnCellDetach should be taken out of the individual critters and handled in the main critter code.

Link to comment
Share on other sites

 

These errors seem to occur with "fish" in the swamps north of Morthal. They occurred when walking from Morthal to Windstad Manor.

[02/19/2014 - 01:20:47AM] error: Cannot call IsDisabled() on a None object, aborting function call
stack:
    [ (FF002A9E)].critterFish.DisableAndDelete() - "Critter.psc" Line 410
    [ (FF002A9E)].critterFish.CheckViableDistance() - "Critter.psc" Line 1139
    [ (FF002A9E)].critterFish.OnUpdate() - "CritterFish.psc" Line 86
[02/19/2014 - 01:20:47AM] warning: Assigning None to a non-object variable named "::temp34"
stack:
    [ (FF002A9E)].critterFish.DisableAndDelete() - "Critter.psc" Line 410
    [ (FF002A9E)].critterFish.CheckViableDistance() - "Critter.psc" Line 1139
    [ (FF002A9E)].critterFish.OnUpdate() - "CritterFish.psc" Line 86

This is the same problem we've seen before:

if Follower
    Wait(2.414213); give others time to clear leaders and followers
    if Follower && !Follower.isDeleted() && !Follower.isDisabled()
        Critter FollowedBy = Follower as Critter
        if FollowedBy
            FollowedBy.FollowClear()
        endIf
    endIf
endIf

Still there for .IsDeleted and None for .IsDisabled -- both are interruptible functions.

 

I added a Wait, and that fixed some of them. I doubled the Wait, and that fixed a lot of them. But there's too many of them in the swamp.

 

I'll try to combine fixing this with the delayed OnUpdate mentioned above.

Link to comment
Share on other sites

Probably more of the same, but these occurred at night on Solstheim near Kolbjorn Barrow.

[02/23/2014 - 06:31:39PM] error:  (FF002B97): does not have any 3d and so cannot be moved to.
stack:
    [ (FF002B9D)].ObjectReference.MoveToNode() - "<native>" Line ?
    [ (FF002BC0)].Firefly.PlaceDummyMarker() - "Critter.psc" Line 489
    [ (FF002BC0)].Firefly.SplineTranslateToRefAtSpeed() - "Critter.psc" Line 531
    [ (FF002BC0)].Firefly.SplineTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 588
    [ (FF002BC0)].Firefly.GoToNewPlant() - "Firefly.psc" Line 315
    [ (FF002BC0)].Firefly.OnUpdate() - "Firefly.psc" Line 159

And these near Raven Rock (near the south entrance).

[02/23/2014 - 06:37:41PM] error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF002BD6)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF002BD8)].critterMoth.WarpToNewPlant() - "CritterMoth.psc" Line 321
    [ (FF002BD8)].critterMoth.OnStart() - "CritterMoth.psc" Line 68
    [ (FF002BD8)].critterMoth.OnUpdate() - "Critter.psc" Line 321
Link to comment
Share on other sites

Probably more of the same, but these occurred at night on Solstheim near Kolbjorn Barrow.

[02/23/2014 - 06:31:39PM] error:  (FF002B97): does not have any 3d and so cannot be moved to.
stack:
    [ (FF002B9D)].ObjectReference.MoveToNode() - "<native>" Line ?
    [ (FF002BC0)].Firefly.PlaceDummyMarker() - "Critter.psc" Line 489
    [ (FF002BC0)].Firefly.SplineTranslateToRefAtSpeed() - "Critter.psc" Line 531
    [ (FF002BC0)].Firefly.SplineTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 588
    [ (FF002BC0)].Firefly.GoToNewPlant() - "Firefly.psc" Line 315
    [ (FF002BC0)].Firefly.OnUpdate() - "Firefly.psc" Line 159

That code looks like this:

if !(CheckFor3D( dummyMarker ) && CheckFor3D( arTarget ))
	DisableAndDelete()
	return true
endIf

dummyMarker.MoveToNode(arTarget, asTargetNode)

It just checked for the 3D, how the heck did it not have 3D?

My guess is this is happening as you went inside somewhere, and the firefly just happened to be in the middle of its update code. As I mentioned above, Fireflies were coded assuming they never go away -- they had no OnCellDetach -- and it appears to be deliberate by the developers. USKP 1.3.3 added the OnCellDetach, and we've been experiencing hell ever since!

I'm testing my solution, I'll describe it in the next message.

 

And these near Raven Rock (near the south entrance).

[02/23/2014 - 06:37:41PM] error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF002BD6)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF002BD8)].critterMoth.WarpToNewPlant() - "CritterMoth.psc" Line 321
    [ (FF002BD8)].critterMoth.OnStart() - "CritterMoth.psc" Line 68
    [ (FF002BD8)].critterMoth.OnUpdate() - "Critter.psc" Line 321

Sadly, those look like new and annoying problems. How the heck can it have no 3D on Start?

My guess, and this is very tentative, is that the spawner is very close to a cell boundary. Meanwhile, you crossed a cell boundary going the other direction (or went inside immediately after triggering the spawner). The Butterfly/Moth initial placement randomly ends up on the other side of the cell boundary, in a cell that's not yet attached. Another condition not tested. EDIT: yes, the condition is tested. The target plant lost its 3D somehow. Beyond the scope of this thread....

Link to comment
Share on other sites

I was able to confirm that these occurred soon after entering Riften at the entrance near Honorhall. Since, I don't know what kind of "unusual" behavior to look for with the moths, fireflies, etc., the only thing that I noticed was that they were flying around near the orphanage and some were landing on flora (flowers) nearby. Also, I wasn't doing anything out of the ordinary, I was just passing by the orphanage area on my way to Honeyside Manor.

I've figured out the problem with Riften. It has more than one cell. As you walk the wooden pathways, you switch sides of a cell boundary back and forth.

So the critters get a signal that they are detaching, then attaching, then detaching, in rapid succession.

My solution is thusly: the critter calculations all occur OnUpdate(). There is another queue: OnUpdateGameTime(). I've changed OnCellDetach to use the GameTime queue instead.

Likewise, I've added a hidden bCalculating property. Set at the beginning and cleared just before any TranslateTo. If it tries to DisableAndDelete during calculations, it throws it onto the GameTime queue instead.

Currently I have that set to roughly 1/3 hour. If you rapidly go inside and outside, or rapidly cross cell boundaries, but the GateTime hasn't run out, it doesn't delete the critter. It just starts the same critter going again. It's not thrashing critters, and you don't see new critters pop over to new places. It's more like reality -- you go in a door, and look back out again, and the moths are still near the same place as before.

Instead of a big reduction in savegame size, you have an increase in size before the later reduction. Using your Save 136 test file, I see it increase from 13,823K to 13,963K going out the Riften South door, then reduce to 13,773K after an hour wait inside HoneySide.

It seems to have fixed the Riften problem. It probably fixes the top problem in your previous message, but not the bottom problem.

I have all the critters done except birds. It turns out birds didn't use any of the base functions in critter, it's all re-coded. So it will be a fair amount of work.

Link to comment
Share on other sites

Any chance any of this could be ready in a couple of days? The February gremlins struck again with another issue requiring a hotfix.

Link to comment
Share on other sites

Any chance any of this could be ready in a couple of days? The February gremlins struck again with another issue requiring a hotfix.

Ready for testing now. What number? 2.0.2b? I've got things marked as 2.0.3, but it's a simple replacement.

 

[file removed]

Link to comment
Share on other sites

Any chance any of this could be ready in a couple of days? The February gremlins struck again with another issue requiring a hotfix.

 

I can't imagine how frustrating working on this project must be :P

Link to comment
Share on other sites

@DayDreamer: 2.0.3 is fine. It'll be another one of those little tiny update kind of things but as before, enough that I'm not about to rip it all back out either.

 

@DeathbyDestiny: You have no idea sometimes.

Link to comment
Share on other sites

@DayDreamer: 2.0.3 is fine. It'll be another one of those little tiny update kind of things but as before, enough that I'm not about to rip it all back out either.

Oops, had already swapped to 2.0.2b -- here it is as 2.0.3, but edited on the Mac, so hopefully still compiles. Also, a Critter comment fix and a Dragonfly mistake fixed.

 

I'd forgotten about the _MAC files. Here it is in PC instead. It does compile.

 

[file removed]

Link to comment
Share on other sites

Are all of these critter script bugs in the tracker supposed to be fixed by the updated code for 2.0.3?

Link to comment
Share on other sites

Are all of these critter script bugs in the tracker supposed to be fixed by the updated code for 2.0.3?

I'm not sure about the most recent one last week, but these were attempts to fix: 14853, 14820, 14814, 14813

 

But mostly we need BlackPete to confirm....

Link to comment
Share on other sites

Using USKP 2.0.3:

 

West of Rorikstead near Moldering Ruins / Serpent's Bluff Redoubt;

[03/01/2014 - 11:33:12PM] error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF001B79)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF000802)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 287
    [ (FF000802)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/01/2014 - 11:34:21PM] error:  (FF001E45): has no 3d, and so cannot have its motion type changed.
stack:
    [ (FF001E45)].critterMoth.SetMotionType() - "<native>" Line ?
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 750
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001E45)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001E45)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/01/2014 - 11:34:21PM] error:  (FF001E45): cannot find variable named fTakeOff.
stack:
    [ (FF001E45)].critterMoth.SetAnimationVariableFloat() - "<native>" Line ?
    [ (FF001E45)].critterMoth.DoPathStartStuff() - "CritterMoth.psc" Line 337
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 753
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001E45)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001E45)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
Link to comment
Share on other sites

Using USKP 2.0.3:
 
In Falkreath;

[03/02/2014 - 09:27:20PM] error: Unable to call RegisterForSingleUpdateGameTime - no native object bound to the script object, or object is of incorrect type
stack:
    [<NULL form> (FF000E20)].critterdragonfly.RegisterForSingleUpdateGameTime() - "<native>" Line ?
    [<NULL form> (FF000E20)].critterdragonfly.OnCellDetach() - "Critter.psc" Line 260
Link to comment
Share on other sites

Using USKP 2.0.3:

 

Near the waterfall on the road between Whiterun and Riverwood;

[03/02/2014 - 11:25:59PM] error:  (FF001664): cannot find variable named fTakeOff.
stack:
    [ (FF001664)].critterMoth.SetAnimationVariableFloat() - "<native>" Line ?
    [ (FF001664)].critterMoth.DoPathStartStuff() - "CritterMoth.psc" Line 337
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 753
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001664)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001664)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/02/2014 - 11:25:59PM] error: Cannot call SetPosition() on a None object, aborting function call
stack:
    [ (FF001664)].critterMoth.PlaceLandingMarker() - "Critter.psc" Line 497
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 764
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001664)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001664)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/02/2014 - 11:25:59PM] error: Cannot call SetAngle() on a None object, aborting function call
stack:
    [ (FF001664)].critterMoth.PlaceLandingMarker() - "Critter.psc" Line 498
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 764
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001664)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001664)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
Link to comment
Share on other sites

You know, we had those fTakeOff ones fixed once before.... why are they showing up again?

Link to comment
Share on other sites

[03/01/2014 - 11:34:21PM] error:  (FF001E45): has no 3d, and so cannot have its motion type changed.
stack:
    [ (FF001E45)].critterMoth.SetMotionType() - "<native>" Line ?
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 750
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001E45)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001E45)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/01/2014 - 11:34:21PM] error:  (FF001E45): cannot find variable named fTakeOff.
stack:
    [ (FF001E45)].critterMoth.SetAnimationVariableFloat() - "<native>" Line ?
    [ (FF001E45)].critterMoth.DoPathStartStuff() - "CritterMoth.psc" Line 337
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 753
    [ (FF001E45)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001E45)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001E45)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130

You know, we had those fTakeOff ones fixed once before.... why are they showing up again?

You had removed them entirely (made them the wrong name) -- EDIT during beta, and it never escaped into the release. They were put back for Moths only (in USKP 2.0.1). Without it, butterfly/moths don't flap their wings.

 

Look at the report again. It has no 3D. Without 3D, it cannot find its animation. Without animation, it cannot find any animation variables.

 

I'd like to know how it lost 3D? There's a 3D check a few lines earlier at CheckViableDistance() -- so following the code, it was close to the player and had 3D (line 99), and the spawner is still active (line 117), and the plant it's going to has 3D (line 258). Somehow it lost 3D during the slow Papyrus calculations. Did the player go inside?

 

We could add some more repetitive CheckFor3D, so I'll do that. But we can lose 3D at any time -- including the line after we just checked for 3D. This will never entirely go away.

 

IMnsHO, a better use of time is to try to speed up papyrus calculations! I'd already put in Sclerocephalus' bird stuff (from back on page 1). Need similar things for all the other critters.

 

Link to comment
Share on other sites

 

Using USKP 2.0.3:

 

Near the waterfall on the road between Whiterun and Riverwood;

[03/02/2014 - 11:25:59PM] error:  (FF001664): cannot find variable named fTakeOff.
stack:
    [ (FF001664)].critterMoth.SetAnimationVariableFloat() - "<native>" Line ?
    [ (FF001664)].critterMoth.DoPathStartStuff() - "CritterMoth.psc" Line 337
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 753
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001664)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001664)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/02/2014 - 11:25:59PM] error: Cannot call SetPosition() on a None object, aborting function call
stack:
    [ (FF001664)].critterMoth.PlaceLandingMarker() - "Critter.psc" Line 497
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 764
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001664)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001664)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130
[03/02/2014 - 11:25:59PM] error: Cannot call SetAngle() on a None object, aborting function call
stack:
    [ (FF001664)].critterMoth.PlaceLandingMarker() - "Critter.psc" Line 498
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeed() - "Critter.psc" Line 764
    [ (FF001664)].critterMoth.BellShapeTranslateToRefAtSpeedAndGotoState() - "Critter.psc" Line 833
    [ (FF001664)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 291
    [ (FF001664)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130

Is this repeatable for you? I'm not able to replicate. And that's a really common path!

 

Again, this seems to be random timing, in the exact same code as the previous report:

; Make sure we're keyframed so we can be moved around
SetMotionType(Motion_Keyframed, false)

; If applicable, play animation
DoPathStartStuff()

This time, has 3D on line 750, but no animation on line 752.

However, the rest looks like we're deleting during calculations:

if !(CheckFor3D( landingMarker ) && CheckFor3D( arTarget ))
    DisableAndDelete(false)
    return true
endIf

if (asTargetNode != "")
    landingMarker.MoveToNode(arTarget, asTargetNode)
else
    ; Use random offset from ref pivot point
    landingMarker.SetPosition(arTarget.X + RandomFloat(-fPositionVarianceX, fPositionVarianceX), arTarget.Y + RandomFloat(-fPositionVarianceY, fPositionVarianceY), arTarget.Z + RandomFloat(fPositionVarianceZMin, fPositionVarianceZMax))
    landingMarker.SetAngle(arTarget.GetAngleX() + RandomFloat(-fAngleVarianceX, fAngleVarianceX), arTarget.GetAngleY(), arTarget.GetAngleZ() + RandomFloat(-fAngleVarianceZ, fAngleVarianceZ))
endIf

You've got 3D (which also tested for None) landingMarker, but a few lines later cannot set position or angle -- because it's None!

 

In 2.0.3, we shouldn't be deleting during calculations, so somewhere I'm missing a check.

Link to comment
Share on other sites

 

Using USKP 2.0.3:

 

In Falkreath;

[03/02/2014 - 09:27:20PM] error: Unable to call RegisterForSingleUpdateGameTime - no native object bound to the script object, or object is of incorrect type
stack:
    [<NULL form> (FF000E20)].critterdragonfly.RegisterForSingleUpdateGameTime() - "<native>" Line ?
    [<NULL form> (FF000E20)].critterdragonfly.OnCellDetach() - "Critter.psc" Line 260

Is this repeatable? I note the low numbered critter. Could this be an old disabled and partially deleted critter? We really cannot do much after it loses its form!

Link to comment
Share on other sites

Is this repeatable for you? I'm not able to replicate. And that's a really common path!

So far it has only happened once, but I have not tested extensively yet in that area. It seems that the critter errors are pretty few and far between, which is a huge improvement in terms of papyrus log spam.

Link to comment
Share on other sites

So far it has only happened once, but I have not tested extensively yet in that area. It seems that the critter errors are pretty few and far between, which is a huge improvement in terms of papyrus log spam.

Just as an example that other things can happen to me testing in the same area, riding a carriage from Whiterun toward Riverwood:

[03/03/2014 - 06:53:20PM] Error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF000CD4)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF000BD1)].critterMoth.WarpToNewPlant() - "critterMoth.psc" Line 319
    [ (FF000BD1)].critterMoth.OnStart() - "critterMoth.psc" Line 68
    [ (FF000BD1)].critterMoth.OnUpdate() - "Critter.psc" Line 348
[03/03/2014 - 06:55:57PM] [tourcartsystemscript <TourCartWhiterunQuest (0E002001)>]TourRouteChange() Check: passingLocation=16

(Riverwood is location 16.) The Source says:

 && CheckFor3D(newPlant))
...
string landingMarkerName = LandingMarkerPrefix + RandomInt(1, 3)
if (newPlant.HasNode(landingMarkerName))
    WarpToRefNodeAndGotoState(CurrentPlant, landingMarkerName, "AtPlant")
else
    string firstMarkerName = LandingMarkerPrefix + 1
    if (newPlant.HasNode(firstMarkerName))

We've checked for 3D, we had 3D on line 315 newPlant.HasNode(landingMarkerName), but no 3D a few lines later on newPlant.HasNode(firstMarkerName) -- this isn't even moving critters losing 3D, this is the place they are flying toward.

 

We're going to have to live with this.

Link to comment
Share on other sites

I don't know yet if it's repeatable. I had just happened to fast travel down to Falkreath, saved and left the game and found that. I wasn't sure to report it or not, it could be nothing.

Link to comment
Share on other sites

This was near Clearspring Tarn in the Rift;

[03/03/2014 - 03:30:03PM] error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF002A5C)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF001719)].critterMoth.GoToNewPlant() - "CritterMoth.psc" Line 282
    [ (FF001719)].critterMoth.OnUpdate() - "CritterMoth.psc" Line 130

Near Riften -- SE of the stables;

[03/03/2014 - 09:42:31AM] error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF002CAD)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF002CAC)].critterMoth.WarpToNewPlant() - "CritterMoth.psc" Line 314
    [ (FF002CAC)].critterMoth.OnStart() - "CritterMoth.psc" Line 68
    [ (FF002CAC)].critterMoth.OnUpdate() - "Critter.psc" Line 348
[03/04/2014 - 01:42:31AM] error: Cannot check if the reference has a named node because it has no 3D
stack:
    [ (FF002CAD)].ObjectReference.HasNode() - "<native>" Line ?
    [ (FF002CAC)].critterMoth.WarpToNewPlant() - "CritterMoth.psc" Line 319
    [ (FF002CAC)].critterMoth.OnStart() - "CritterMoth.psc" Line 68
    [ (FF002CAC)].critterMoth.OnUpdate() - "Critter.psc" Line 348
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...