Resolved Unbreakable Blocks

jigz

New Member
Hey I'm new here and before I get into my issue I just wanna say Terasology is a beautiful piece of software and I'm excited to see it evolve.

Now my issue: I've run across multiple blocks in multiple worlds that I have personally placed that become unbreakable.

I'm running
Code:
PRE-ALPHA TerasologyStable-57 2015-08-23

Core:0.54.1
CoreSampleGameplay:0.54.1
engine:0.54.1
Fences:0.1.1-SNAPSHOT
Minimap:0.2.1-SNAPSHOT
When I use the console command "debugTarget" I get
Code:
{
  "id": 22402,
  "alwaysRelevant": false,
  "engine:Block": {
    "block": "engine:air",
    "position": [
      188,
      30,
      26
    ]
  }
}
rather than
Code:
{
  "id": 83764,
  "alwaysRelevant": false,
  "engine:Health": {
    "excessSpeedDamageMultiplier": 10.0,
    "destroyEntityOnNoHealth": false,
    "regenRate": 0.75,
    "currentHealth": 3,
    "horizontalDamageSpeedThreshold": 100.0,
    "maxHealth": 3,
    "nextRegenTick": 0,
    "fallingDamageSpeedThreshold": 20.0,
    "waitBeforeRegen": 1.0
  },
  "engine:Block": {
    "block": "Core:Ladder.BACK",
    "position": [
      188,
      28,
      26
    ]
  }
}
for one of the blocks in question. This issue also effects other blocks such as BirchTrunk. The blocks that are unbreakable still function as they should - i.e. the ladder still lets me climb it. When I have the world open as a LAN multiplayer, my laptop (guest) reads the blocks as they should be through debugTarget, but is still unable to break them. I assume this is because the host still reads it as air and not the ladder or wood block that it should.

Edit: My world was created with the Height Map generator just in case that's important.

Is there some way I can use the console to destroy a given block at position (x,y,z)? Or edit the id?

If it's any help, here's my rig's specs:
Code:
OS
    Windows 7 Ultimate 64-bit
CPU
    Intel Core i5 4430 @ 3.00GHz    27 °C
    Haswell 22nm Technology
RAM
    8.00GB Dual-Channel DDR3 @ 798MHz (11-11-11-28)
Motherboard
    Gigabyte Technology Co., Ltd. Z87X-HD3 (SOCKET 0)
Graphics
    GTW KX2153 (1920x1080@60Hz)
    2047MB NVIDIA GeForce GTX 660 (PNY)   
    2047MB NVIDIA GeForce GTX 660 (PNY)   
    ForceWare version: 353.06
    SLI Enabled
 
Last edited:

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Very interesting! Thank you for both the report and the compliment :)

This may well be an undiscovered bug in multiplayer. Can you detail the steps taken to end up with these blocks, their exact types, and so on? Is it easily reproducible or happening mysteriously to random blocks at random times? How did you acquire the blocks - via console on the host or guest, and so on? If the host looks at the spot is there a block there or air, and if a block can the host break it?

I don't see or remember an obvious command to remove or replace a block in a particular location. Seems convenient enough to have if you gain the "Cheat" permissions. Could be useful for building stuff as well.

Pinging @Immortius and @Florian for the possible bug, but extra details would be hugely appreciated! I don't imagine your system should matter, unless you're launching the host and / or client in some odd manner, like running both on the same system with the same data directory?
 

jigz

New Member
It's not just multiplayer - it first happened for me before I had even figured out how to use multiplayer. It seems to be happening randomly, though it hasn't happened with a stone block yet, just different woods and ladders. I acquired the blocks via console and chopping down trees. Both host and guest can see the block and use it but the host's debugTarget says air when the guest's says what it should be. Neither can break the blocks. I'll report back if I find that it happens in worlds with different mods (like one without the minimap cuz I can't seem to get that to work anyway) or if it starts happening with stone/earth blocks as well.

I figured my system didn't matter but I'm just used to posting that whenever I encounter a bug in other games.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Yep extra details are never bad :)

It sounds like a very interesting bug in any case. Is it happening in different worlds or just one? Have you mixed single player and multiplayer with the same saved world? Any chance that errors like running out of memory could've corrupted a save?

Is it specifically ladders, fences, etc, or are natural blocks like chopped down tree trunks placed back in the world also affected?
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
I was able to reproduce, though not sure what triggers it - might happen due to chunk unload/reload. I gather the block is ending up with an entity that thinks it is air even though it isn't, and the entity isn't temporary even though it should be.
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Have coded up a fix that I'll PR shortly, although it only deals with the symptoms by ensuring any block entity that is created will be correctly made temporary or not as necessary.

This appears to be an odd interaction with the persistence system. The block's entity is in the global store, not the chunk store. Which suggests it was generated while the chunk was unloaded - which may explain why it is air. As a result it also can never be removed I think.
 
Top