Resolved [LINUX] Prismatic Lacewing inventory/item bug(s)

Zicxy

Terrarian
Steam or GOG
GOG
Single Player/Multiplayer
Single
Operating System
Linux Other
Terraria Version
1.4.1
Controls Used
Keyboard/Mouse
Specific OS: Debian 10

This bug report describes multiple issues of which I am convinced they have the same origin, hence I will name them all.

Descriptions:
Some parts of the inventory stop rendering when the Prismatic Lacewing is supposed to show.
The item slot where the Prismatic Lacewing is supposed to appear is empty, any slot past that is no longer rendered.
This applies to the duping menu as well as when the item is in the player's inventory. (See image below)
Terraria-bug-20201014-1.png

As is seen on the screenshot, the icon is not there, no slots are rendered after this empty slot in the duplication menu, the tabs on the duplication menu are also gone, as well as the player's coin and ammunition slots.
Putting the item in inventory or trash has similar effects, the location of the item affects which slots stop rendering.
Scrolling beyond the Prismatic Lacewing item in the duplication menu (where it would no longer be on screen), everything returns to normal.

When the item is used (Prismatic Lacewing is released) the game instantly crashes with the following error log:
Code:
System.NullReferenceException: Object reference not set to an instance of an object
  at Terraria.Utils.Frame (Microsoft.Xna.Framework.Graphics.Texture2D tex, System.Int32 horizontalFrames, System.Int32 verticalFrames, System.Int32 frameX, System.Int32 frameY, System.Int32 sizeOffsetX, System.Int32 sizeOffsetY) [0x00000] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DrawItem_GetBasics (Terraria.Item item, System.Int32 slot, Microsoft.Xna.Framework.Graphics.Texture2D& texture, Microsoft.Xna.Framework.Rectangle& frame) [0x0018e] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DrawItem (Terraria.Item item, System.Int32 whoami) [0x00021] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DrawItems () [0x00004] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DoDraw (Microsoft.Xna.Framework.GameTime gameTime) [0x0162a] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x0001c] in <8a6292991f0f4281af87f7457c258353>:0
  at Microsoft.Xna.Framework.Game.Tick () [0x00222] in <504db6022364424d8a08e59b03e5441c>:0
  at Microsoft.Xna.Framework.Game.RunLoop () [0x0003c] in <504db6022364424d8a08e59b03e5441c>:0
  at Microsoft.Xna.Framework.Game.Run () [0x00032] in <504db6022364424d8a08e59b03e5441c>:0
  at Terraria.Program.LaunchGame (System.String[] args, System.Boolean monoArgs) [0x000b2] in <8a6292991f0f4281af87f7457c258353>:0

A Prismatic Lacewing that naturally spawned in the world renders fine, until the player catches it with a bug net, at which the game crashes with the following error log:
Code:
Microsoft.Xna.Framework.Content.ContentLoadException: Decompression of XnaAsset failed.
  at Microsoft.Xna.Framework.Content.ContentManager.GetContentReaderFromXnb (System.String originalAssetName, System.IO.Stream& stream, System.IO.BinaryReader xnbReader, System.Char platform, System.Action`1[T] recordDisposableObject) [0x0014a] in <504db6022364424d8a08e59b03e5441c>:0
  at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T] (System.String assetName, System.Action`1[T] recordDisposableObject) [0x001a2] in <504db6022364424d8a08e59b03e5441c>:0
  at ReLogic.Content.Readers.XnbReader+InternalContentManager.Load[T] () [0x00000] in <9933f737144e439f8b53d97f8a3010b9>:0
  at ReLogic.Content.Readers.XnbReader.FromStream[T] (System.IO.Stream stream) [0x00012] in <9933f737144e439f8b53d97f8a3010b9>:0
  at ReLogic.Content.AssetReaderCollection.Read[T] (System.IO.Stream stream, System.String extension) [0x0001c] in <9933f737144e439f8b53d97f8a3010b9>:0
  at ReLogic.Content.AssetLoader.TryLoad[T] (System.String assetName, ReLogic.Content.Sources.IContentSource source, T& resultAsset) [0x0002d] in <9933f737144e439f8b53d97f8a3010b9>:0
  at ReLogic.Content.AssetRepository.TryLoadingAsset[T] (ReLogic.Content.Asset`1[T] asset, ReLogic.Content.AssetRequestMode mode) [0x0005e] in <9933f737144e439f8b53d97f8a3010b9>:0
  at ReLogic.Content.AssetRepository.LoadAsset[T] (ReLogic.Content.Asset`1[T] asset, ReLogic.Content.AssetRequestMode mode) [0x00045] in <9933f737144e439f8b53d97f8a3010b9>:0
  at ReLogic.Content.AssetRepository.Request[T] (System.String assetName, ReLogic.Content.AssetRequestMode mode) [0x0005e] in <9933f737144e439f8b53d97f8a3010b9>:0
  at Terraria.Main.LoadItem (System.Int32 i) [0x0001f] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DrawItem (Terraria.Item item, System.Int32 whoami) [0x00011] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DrawItems () [0x00004] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.DoDraw (Microsoft.Xna.Framework.GameTime gameTime) [0x0162a] in <8a6292991f0f4281af87f7457c258353>:0
  at Terraria.Main.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x0001c] in <8a6292991f0f4281af87f7457c258353>:0
  at Microsoft.Xna.Framework.Game.Tick () [0x00222] in <504db6022364424d8a08e59b03e5441c>:0
  at Microsoft.Xna.Framework.Game.RunLoop () [0x0003c] in <504db6022364424d8a08e59b03e5441c>:0
  at Microsoft.Xna.Framework.Game.Run () [0x00032] in <504db6022364424d8a08e59b03e5441c>:0
  at Terraria.Program.LaunchGame (System.String[] args, System.Boolean monoArgs) [0x000b2] in <8a6292991f0f4281af87f7457c258353>:0

Running the game from a console does return a few things (mostly RGB LED hardware related), but I will include it here anyway:
Code:
~/GOG Games/Terraria$ ./start.sh
Running Terraria
Error Logging Enabled.
EXT_swap_control_tear unsupported. Fall back to standard VSync.
FNA3D Driver: OpenGL
OpenGL Renderer: Radeon RX 570 Series (POLARIS10, DRM 3.27.0, 4.19.0-10-amd64, LLVM 7.0.1)
OpenGL Driver: 4.5 (Compatibility Profile) Mesa 18.3.6
OpenGL Vendor: X.Org
MojoShader Profile: glsl120
EXT_swap_control_tear unsupported. Fall back to standard VSync.
EXT_swap_control_tear unsupported. Fall back to standard VSync.
Resolution changed to: 800x600.
EXT_swap_control_tear unsupported. Fall back to standard VSync.
Resolution changed to: 1920x1020.
Razer Chroma not supported: System.DllNotFoundException: RzChromaSDK.dll assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) ReLogic.Peripherals.RGB.Razer.NativeMethods.Init()
  at ReLogic.Peripherals.RGB.Razer.RazerDeviceGroup.Initialize () [0x0000a] in <9933f737144e439f8b53d97f8a3010b9>:0
Corsair RGB not supported: System.DllNotFoundException: CUESDK_2015.dll assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) ReLogic.Peripherals.RGB.Corsair.NativeMethods.CorsairPerformProtocolHandshake()
  at ReLogic.Peripherals.RGB.Corsair.CorsairDeviceGroup.Initialize () [0x00014] in <9933f737144e439f8b53d97f8a3010b9>:0
Logitech RGB not supported: System.DllNotFoundException: LogitechLedEnginesWrapper  assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) ReLogic.Peripherals.RGB.Logitech.NativeMethods.LogiLedInit()
  at ReLogic.Peripherals.RGB.Logitech.LogitechDeviceGroup.Initialize () [0x0000a] in <9933f737144e439f8b53d97f8a3010b9>:0
EXT_swap_control_tear unsupported. Fall back to standard VSync.
WaveMaskData texture recreated. 98x151
WaveMaskData texture recreated. 98x151
WaveMaskData texture recreated. 98x151
There are no further messages while the game runs, or when it crashes.
I figured those last three messages may have something to do with this issue.

I hope this is useful information.

Thanks in advance for looking into this.
 
Now, my first concern was that this was a Linux-specific issue regarding the Prismatic Lacewing's glowing effects, but I'm being told that is unlikely.

Its most likely that your file for the Prismatic Lacewing is invalid or faulty in some way, so the best solution would be to try verifying your game's integrity. I don't know how to do that on GOG, unfortunately, only Steam, so it might require a fresh install? But in essence, its probably an invalid file for the Lacewing texture.
 
I was meanwhile wondering if it had anything to do with files, so while you replied, I did the following (to no effect);
- Uninstall the game with the provided uninstall script
- Reinstall the game with the previously downloaded install script from GOG
- The problem still existed

Then secondly I did this;
- Uninstalled the game with the provided uninstall script
- Removed all game data folders (the folder in ~/.local was not touched)
- Downloaded the installer again from GOG.com
- Reinstalled the game
- The problem still exists

It still occurs with the Prismatic Lacewing, not with any other item.
Could this be a problem with my set of character/world?
I doubt its a problem with the GOG installer, but at the same time I doubt that it's my harddrive even more.

Edit: this problem did not exist with version 1.4.0.5
 
Well, its unlikely its an issue with your particular character/world, but if you feel like testing with a different one, it couldn't hurt.

However, this is very unusual. I've seen NO other reports of this bug thus far, so it strikes me as unlikely to be a global issue (though you ARE on Linux/GOG, which is an extremely small minority of players).

I'll have to ask if there could be any other explanation, but when I asked before, they seemed fairly certain it was an invalid file.
 
Well, I'm at a loss then...
It worked fine in 1.4.0.5, and I even installed the game in a separate folder in an attempt to rule out bad sector issues with the harddrive.
Tried different character and different world, the problem persist, and also only with the prismatic lacewing.
I read in the patch notes that something was changed with XNA.
I wouldn't know how or why that would only affect the prismatic lacewing, but maybe it does?
I might check with GOG if they know of any issues at distribution.
 
@Zicxy okay, so I know this was NOT the same bug you are having, but I'm being told to have you try the fix discussed in the following threads (also Linux users)


The first user was using Steam, but the second thread had a user with GOG, so he had to figure out a GOG-specific fix for this.

So if you could try:

1. Right click Terraria
2. Press 'Manage Installation > Configure'
3. Enable Custom executables / arguments
4. Duplicate file 1's (Terraria.exe's) launch option
5. Add `/glprofile:es3` to the arguments of your new 'File 4' customziable launch
6. Set that to the 'Default executable'
7. Press 'OK'
8. Launch Terraria and attempt to check the issue

You can check out those other threads as well for more info, if it helps.
 
It did not change anything unfortunately, and I did call the executable directly with that argument from my console.
I also noticed that the first error log I posted initially gets generated every time I scroll down to the prismatic lacewing in the duplication menu, not just when the game crashes.
It saves map and chardata just fine with the item in inventory or in a chest, and I can still interact with the item after reloading the world or game.
Something is wrong with the item sprite, and the transition between item->world entity and the other way around. Its almost as if there is an item name or ID mismatch, though that would not explain why the tooltip just works fine.
Again, Prismatic Lacewings show up just fine when they spawn in the hallow biome, it goes wrong the moment the game attempts to convert it to an item (by catching it).

Edit: Cleaned the ~/.local/share/Terraria folder as well (after making a backup), then copied my journey mode charfile back, launched the game, made a new world, problem is still there.
The output to the console confirms it got the glprofile option, does not seem to matter.
At this point the only thing I can try is either run the windows version in WINE, or copy the resource files of the windows version to the linux version and see if that fixes anything.
 
Last edited:
Hello. Just created this account to report the exact same bug Zicky has. I'm also running GOG+Linux (Manjaro 20.1.1). In my case, my character has a Prismatic Lacewing in the Inventory from the last time I played 1.4.0.5 and it causes it to be unplayable:

screen31.jpg

I cannot take the Prismatic Lacewing off the inventory, since when I click on it the game crashes with the following error log:

Code:
System.NullReferenceException: Object reference not set to an instance of an object
  at Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_27_HeldItem (Terraria.DataStructures.PlayerDrawSet& drawinfo) [0x000cb] in <8a6292991f0f4281af87f7457c258353>:0 
  at Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayer (Terraria.Graphics.Camera camera, Terraria.Player drawPlayer, Microsoft.Xna.Framework.Vector2 position, System.Single rotation, Microsoft.Xna.Framework.Vector2 rotationOrigin, System.Single shadow, System.Single scale) [0x001c1] in <8a6292991f0f4281af87f7457c258353>:0 
  at Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayerFull (Terraria.Graphics.Camera camera, Terraria.Player drawPlayer) [0x008f4] in <8a6292991f0f4281af87f7457c258353>:0 
  at Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayers (Terraria.Graphics.Camera camera, System.Collections.Generic.IEnumerable`1[T] players) [0x00010] in <8a6292991f0f4281af87f7457c258353>:0 
  at Terraria.Main.DrawPlayers_AfterProjectiles () [0x00039] in <8a6292991f0f4281af87f7457c258353>:0 
  at Terraria.Main.DoDraw (Microsoft.Xna.Framework.GameTime gameTime) [0x01533] in <8a6292991f0f4281af87f7457c258353>:0 
  at Terraria.Main.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x0001c] in <8a6292991f0f4281af87f7457c258353>:0 
  at Microsoft.Xna.Framework.Game.Tick () [0x00222] in <504db6022364424d8a08e59b03e5441c>:0 
  at Microsoft.Xna.Framework.Game.RunLoop () [0x0003c] in <504db6022364424d8a08e59b03e5441c>:0 
  at Microsoft.Xna.Framework.Game.Run () [0x00032] in <504db6022364424d8a08e59b03e5441c>:0 
  at Terraria.Program.LaunchGame (System.String[] args, System.Boolean monoArgs) [0x000b2] in <8a6292991f0f4281af87f7457c258353>:0

But for a single frame after I click on the Prismatic Lacewing, and before the crash, all the missing parts of the interface comeback. I've reinstalled twice, and I already tried running the game with the /glprofile:es3 parameter and sadly didn't work (in fact the screenshot above is using that parameter).
 
Okay, that changes things.

A second report is indicating a secondary issue, so this bears further investigation. Thanks for the info Kerd333.
 
Today, GOG updated the linux release to 1.4.1.1. (It took them a few days)
I tested again, the same very issue persists.
I was hoping that maybe it was an error with packaging the binary files into the installer, and that they fixed that for 1.4.1.1, but it seems not.
At the moment I have no idea where to look, but if there is anything I can do to help the devs figure out what's happening then I'm ready to help.
I'm willing to get into technical details, anything I don't know yet I can look up and learn, so don't worry about asking 'difficult' questions if it can help.
 
Hello, another fellow terrarian here, using linux (peppermint os, based on ubuntu) and GOG version.
I had the same issue, seems to be a GUI problem, since I had it on the safe of my character, every item slot after the one containing the Prismatic Lacewing.
I had to use a inventory editor to remove the item and solve the error
I don't know how to show the log though.
 

Attachments

  • Windowshot_2020-10-17_22:57:31.png
    Windowshot_2020-10-17_22:57:31.png
    897.7 KB · Views: 821
Thanks for the info. I've relayed all of the information, but we've found no leads yet until our lead programmer can look at the item and see what might be causing issues.
 
Hello anyone who has this lacewing issue - we are currently looking into it but are failing to replicate the problem (that is, the lacewing appears fine on our end)
Can you please:
  1. Open up your Terraria installation directory
  2. Navigate to Terraria/Content/Images
  3. Back up your Item_4961.xnb (this is the Lacewing sprite)
  4. Duplicate another item sprite file such as Item_4960.xnb , and rename it to Item_4961.xnb
  5. Launch Terraria & check if the issue persists? (that is - is the item showing at all, despite being the wrong one?)
  6. If you have successfully managed to see the renamed item, can you please send your Item_4961.xnb backup to [email protected] ?
 
Terraria sometimes prints extra errors if ran from the terminal - it may be worth trying that and seeing if anything relevant comes up.
You can launch Terraria in the terminal by opening steam as usual then in the terminal running ~/.local/share/Steam/steamapps/common/Terraria

Let us know if you get anything that looks like it could be related!
 
The proposed test by Yoraiz0r seems to fix the issue. I have done the following;
- Replace Item_4961.xnb with a copy of Item_4960.xnb, this fixes the inventory issue (did not attempt to release it into the world)
- Replace Item_4961.xnb with a copy of the same file from my Terraria 1.4.0.5 install, which also fixes the issue including using the correct sprite. Releasing the lacewing into the world also works flawlessly.

Additional notes:
- My install of Terraria 1.4.0.5 has always worked just fine, hence I found it a good candidate to try it. Not sure why I didn't think of this earlier.
- Terraria 1.4.1.1 does not seem to complain about missing sprites when running with the file from version 1.4.0.5. Either the game does not report this issue, or, as I am suspecting, that particular file did not change since 1.4.0.5. (Except ofcourse, it appearantly did somehow change with the linux/GOG release)

I will send my backup copy of Item_4961.xnb to the supplied email adress.
Hopefully that will shed some light on the issue. If it is a corrupted file, my best guess would be an error happening at GOG.
 
Hello again, thanks to @Zicxy 's contribution and some extra digging, we believe we have managed to fix the file's issue.
1.4.1.2 is still being worked on for other fixes, but in the meantime, if you are encountering this issue, please follow the following steps:
  1. Download the attached Item_4961 Fix.zip & unpack the included Item_4961.xnb
  2. Open your Terraria installation directory
  3. Navigate to Terraria/Content/Images/Item_4961.xnb and replace it with the downloaded unpacked file
  4. Launch Terraria and confirm that you no longer get the issue
If you encounter further issues with the Lacewing, please let us know!
 

Attachments

  • Item_4961 Fix.zip
    578 bytes · Views: 90
Good to know that its working for you, @crazymoose77756.
However, I can confirm that the fix provided by @Yoraiz0r is essentially the same, without the need for multiple installs or replacing item sprites with the wrong file just to get the game to stay running.
That said, I recommend using the "official" fix over mine for anyone running into this issue.
If you use the official fix and still run into problems, the devs may have to do less digging to isolate the issue.

Have fun playing though!
 
Back
Top Bottom