drgn reports: healing tree now replaces bloc ... #4264

Closed
opened 2023-04-25 13:39:32 +00:00 by yourland-report · 16 comments

drgn reports a bug:

healing tree now replaces blocks in protected area... you know, we block parts of trunk from spawning when growing... now trunks spawn and replace those blocks, one chest here turned into trunk but it has inventory now... ex-chest, now trunk with inventory is here on my coords

Player position:

{
	x = 2006.1920166016,
	y = -2752.4990234375,
	z = 1505.7980957031
}

Player look:

{
	x = 0.1956715285778,
	y = -0.78897684812546,
	z = -0.58243298530579
}

Player information:

{
	major = 5,
	state = "Active",
	ip_version = 6,
	min_rtt = 0.037999998778105,
	avg_rtt = 0.057000000029802,
	max_rtt = 1.0180000066757,
	max_jitter = 0.92299997806549,
	avg_jitter = 0.0080000013113022,
	connection_uptime = 5300,
	formspec_version = 6,
	patch = 0,
	version_string = "5.7.0",
	min_jitter = 0,
	protocol_version = 41,
	lang_code = "",
	minor = 7,
	serialization_version = 29
}

Player meta:

{
	fields = {
		["petz:werewolf_vignette_id"] = "19",
		["stamina:exhaustion"] = "83",
		["petz:werewolf"] = "0",
		crafted = "3561",
		yl_commons_player_created = "1647712139",
		yl_commons_player_joined = "1682424687",
		["3d_armor_inventory"] = "return {\"3d_armor:helmet_nether 1 4520\", \"3d_armor:chestplate_nether 1 9040\", \"3d_armor:leggings_nether 1 9040\", \"nether_mobs:dragon_boots 1 4520\", \"shields:shield_nether 1 9040\", \"\"}",
		jointime = "1647712139",
		bitten = "0",
		placed_nodes = "268178",
		died = "655",
		["ocean_build.last_warning"] = "1.66915e+09",
		played_time = "6247706",
		["ocean_build.ocean_built"] = "2",
		arenalib_infobox_arenaID = "0",
		["petz:old_override_table"] = "return {[\"gravity\"] = 1, [\"sneak_glitch\"] = false, [\"sneak\"] = true, [\"speed\"] = 2, [\"new_move\"] = true, [\"jump\"] = 1.5}",
		repellant = "0",
		yl_church = "return {[\"last_death_portal\"] = 1682280011, [\"last_heal\"] = 1673898592, [\"last_death\"] = {[\"x\"] = 2007, [\"y\"] = 29767, [\"z\"] = 1423}}",
		yl_commons_thankyou = "323",
		inflicted_damage = "8801306",
		hud_state = "on",
		["unified_inventory:bags"] = "return {\"water_life:croc_bag\", \"water_life:croc_bag\", \"water_life:croc_bag\", \"water_life:croc_bag\"}",
		["petz:werewolf_clan_idx"] = "4",
		["stamina:poisoned"] = "no",
		xp = "653505",
		["signslib:pos"] = "(1962,-2756,1522)",
		["stamina:level"] = "11",
		punch_count = "408897",
		["petz:lycanthropy"] = "1",
		partychat = "main",
		digged_nodes = "740695"
	}
}

Log identifier


[MOD] yl_report log identifier = YhpBE95VPmoDFbRj43YDtvbNa5eWdBZ6

Profiler save:

profile-20230425T133931.json_prettyEE

Status:

# Server: version: 5.6.1-yl | game: Minetest Game | uptime: 1h 40min 15s | max lag: 0.532s | clients (24/52): AliasAlreadyTaken, Aliza, Bailiff, Chache, daydream, drgn, Flippster, kailesh, MicaelStarfire, MilOOOOO, MineWorlds, Murmel, Parrish, popefox20, Prismatim, Ravise, Robo, Service, shanish3, Skunk, Sysmatic, Vegeta, Yoda23, Zack2000

Teleport command:

/teleport xyz 2006 -2752 1506

Compass command:

/give_compass Construction YhpBE95VPmoDFbRj43YDtvbNa5eWdBZ6 D2691E 2006 -2752 1506
drgn reports a bug: > healing tree now replaces blocks in protected area... you know, we block parts of trunk from spawning when growing... now trunks spawn and replace those blocks, one chest here turned into trunk but it has inventory now... ex-chest, now trunk with inventory is here on my coords Player position: ``` { x = 2006.1920166016, y = -2752.4990234375, z = 1505.7980957031 } ``` Player look: ``` { x = 0.1956715285778, y = -0.78897684812546, z = -0.58243298530579 } ``` Player information: ``` { major = 5, state = "Active", ip_version = 6, min_rtt = 0.037999998778105, avg_rtt = 0.057000000029802, max_rtt = 1.0180000066757, max_jitter = 0.92299997806549, avg_jitter = 0.0080000013113022, connection_uptime = 5300, formspec_version = 6, patch = 0, version_string = "5.7.0", min_jitter = 0, protocol_version = 41, lang_code = "", minor = 7, serialization_version = 29 } ``` Player meta: ``` { fields = { ["petz:werewolf_vignette_id"] = "19", ["stamina:exhaustion"] = "83", ["petz:werewolf"] = "0", crafted = "3561", yl_commons_player_created = "1647712139", yl_commons_player_joined = "1682424687", ["3d_armor_inventory"] = "return {\"3d_armor:helmet_nether 1 4520\", \"3d_armor:chestplate_nether 1 9040\", \"3d_armor:leggings_nether 1 9040\", \"nether_mobs:dragon_boots 1 4520\", \"shields:shield_nether 1 9040\", \"\"}", jointime = "1647712139", bitten = "0", placed_nodes = "268178", died = "655", ["ocean_build.last_warning"] = "1.66915e+09", played_time = "6247706", ["ocean_build.ocean_built"] = "2", arenalib_infobox_arenaID = "0", ["petz:old_override_table"] = "return {[\"gravity\"] = 1, [\"sneak_glitch\"] = false, [\"sneak\"] = true, [\"speed\"] = 2, [\"new_move\"] = true, [\"jump\"] = 1.5}", repellant = "0", yl_church = "return {[\"last_death_portal\"] = 1682280011, [\"last_heal\"] = 1673898592, [\"last_death\"] = {[\"x\"] = 2007, [\"y\"] = 29767, [\"z\"] = 1423}}", yl_commons_thankyou = "323", inflicted_damage = "8801306", hud_state = "on", ["unified_inventory:bags"] = "return {\"water_life:croc_bag\", \"water_life:croc_bag\", \"water_life:croc_bag\", \"water_life:croc_bag\"}", ["petz:werewolf_clan_idx"] = "4", ["stamina:poisoned"] = "no", xp = "653505", ["signslib:pos"] = "(1962,-2756,1522)", ["stamina:level"] = "11", punch_count = "408897", ["petz:lycanthropy"] = "1", partychat = "main", digged_nodes = "740695" } } ``` Log identifier ``` [MOD] yl_report log identifier = YhpBE95VPmoDFbRj43YDtvbNa5eWdBZ6 ``` Profiler save: ``` profile-20230425T133931.json_prettyEE ``` Status: ``` # Server: version: 5.6.1-yl | game: Minetest Game | uptime: 1h 40min 15s | max lag: 0.532s | clients (24/52): AliasAlreadyTaken, Aliza, Bailiff, Chache, daydream, drgn, Flippster, kailesh, MicaelStarfire, MilOOOOO, MineWorlds, Murmel, Parrish, popefox20, Prismatim, Ravise, Robo, Service, shanish3, Skunk, Sysmatic, Vegeta, Yoda23, Zack2000 ``` Teleport command: ``` /teleport xyz 2006 -2752 1506 ``` Compass command: ``` /give_compass Construction YhpBE95VPmoDFbRj43YDtvbNa5eWdBZ6 D2691E 2006 -2752 1506 ```
AliasAlreadyTaken was assigned by yourland-report 2023-04-25 13:39:32 +00:00

Other trees seem to do the same.
I really don't want to test them all, cuz I don't want to have whole village of Walstrand destroyed!

Other trees seem to do the same. I really don't want to test them all, cuz I don't want to have whole village of Walstrand destroyed!
AliasAlreadyTaken added the
1. kind/bug
1. kind/griefing
labels 2023-04-25 14:13:05 +00:00
AliasAlreadyTaken added the
2. prio/critical
label 2023-04-25 14:18:04 +00:00
AliasAlreadyTaken added this to the 1.1.119 milestone 2023-04-25 14:18:09 +00:00
Member

this is apparently due to this commit: 5a411e8b4c

documentation: https://github.com/minetest/minetest/blob/master/doc/lua_api.md#schematic-specifier

i'm unsure what the solution to this is - possibly we leave it as it is (people's tree farms are already destroyed), possibly we ask Tenplus1 to make it a setting instead. or possibly instead, we ask the engine folks to change force_place to not over-write chests somehow.

more ideally, we need better ways of creating trees.

part of an issue i started writing for ethereal, which i'm not going to post just yet:

after [this commit](https://notabug.org/TenPlus1/ethereal/commit/5a411e8b4c6429906d75050ff05f95739d13e7a2), tree trunks will now overwrite any node in their way. this has resulted in player's automated tree harvesting machines being destroyed, as well as chests and building structures. it can even be used maliciously to destroy other player's protected builds. 
this is apparently due to this commit: https://notabug.org/TenPlus1/ethereal/commit/5a411e8b4c6429906d75050ff05f95739d13e7a2 documentation: https://github.com/minetest/minetest/blob/master/doc/lua_api.md#schematic-specifier i'm unsure what the solution to this is - possibly we leave it as it is (people's tree farms are already destroyed), possibly we ask Tenplus1 to make it a setting instead. or possibly instead, we ask the engine folks to change force_place to not over-write chests somehow. more ideally, we need better ways of creating trees. part of an issue i started writing for ethereal, which i'm not going to post just yet: ``` after [this commit](https://notabug.org/TenPlus1/ethereal/commit/5a411e8b4c6429906d75050ff05f95739d13e7a2), tree trunks will now overwrite any node in their way. this has resulted in player's automated tree harvesting machines being destroyed, as well as chests and building structures. it can even be used maliciously to destroy other player's protected builds. ```
flux added this to the flux's TODO list project 2023-04-27 18:29:46 +00:00

Let's ask TenPLus1 to make it a setting. I very much doubt anyone is happy to have chests written over.

Let's ask TenPLus1 to make it a setting. I very much doubt anyone is happy to have chests written over.

Or use force_place when called from mapgen and not use it when growing from sapling. Might fix both issues without sise effects.

Or use force_place when called from mapgen and not use it when growing from sapling. Might fix both issues without sise effects.
Member

Or use force_place when called from mapgen and not use it when growing from sapling. Might fix both issues without sise effects.

the apparent intention of adding that parameter to moretrees tree placement, was to keep leaves from interfering w/ the placement of trunks, which created "floating" trees. that's not just a problem during mapgen.

> Or use force_place when called from mapgen and not use it when growing from sapling. Might fix both issues without sise effects. the apparent intention of adding that parameter to moretrees tree placement, was to keep leaves from interfering w/ the placement of trunks, which created "floating" trees. that's not just a problem during mapgen.

more ideally, we need better ways of creating trees.

There already is a better way to create trees: The L-system. It has a lot of configurability. The core of it uses a regular language (regular as in regular expression) to instruct a "pen" to "draw" a tree.

From what I can tell, this system completely avoids the issues that come with the schematic-placing approach used in Ethereal. Moretrees uses the L-system for tree generation, and does not have any issues of the sort seen in this bug (as far as I can tell).

Ultimately, this is probably what the long-term solution for ethereal trees should be.

> more ideally, we need better ways of creating trees. There already is a better way to create trees: [The L-system](https://minetest.gitlab.io/minetest/l-system-trees/). It has a **lot** of configurability. The core of it uses a regular language (regular as in regular expression) to instruct a "pen" to "draw" a tree. From what I can tell, this system completely avoids the issues that come with the schematic-placing approach used in Ethereal. Moretrees uses the L-system for tree generation, and does not have any issues of the sort seen in this bug (as far as I can tell). Ultimately, this is probably what the long-term solution for ethereal trees should be.
Member

Moretrees has the issue of having very huge trees and not even beeing able to produce them at mapgen time. Moretrees places ongen saplings that later grow into trees.

I don't know a solution to this problem apart from removing the force_place flag from the schematics again - or by having diffrent tree versions for mapgen and later growth.

Moretrees has the issue of having very huge trees and not even beeing able to produce them at mapgen time. Moretrees places ongen saplings that later grow into trees. I don't know a solution to this problem apart from removing the force_place flag from the schematics again - or by having diffrent tree versions for mapgen and later growth.

I think tree size is not a universal problem with moretrees (e.g. poplars are normal). Instead, it's just that their L-system models for most of the trees are too large, leading to huge trees.

I'm not sure about the mapgen issue. But I imagine that L-system trees could be force-grown at mapgen time by calling whatever function is used to initiate sapling growth rather than placing saplings.

I think tree size is not a universal problem with moretrees (e.g. poplars are normal). Instead, it's just that their L-system models for most of the trees are too large, leading to huge trees. I'm not sure about the mapgen issue. But I imagine that L-system trees could be force-grown at mapgen time by calling whatever function is used to initiate sapling growth rather than placing saplings.
AliasAlreadyTaken removed this from the 1.1.119 milestone 2023-05-07 20:28:14 +00:00

Temporary fix: d014245be1

Temporary fix: https://gitea.your-land.de/your-land/ethereal/commit/d014245be12cff5f64848ef48ea7f33e3f924a87
AliasAlreadyTaken added the
4. step/ready to QA test
label 2023-05-08 06:43:45 +00:00
AliasAlreadyTaken added this to the 1.1.119 milestone 2023-05-08 06:43:47 +00:00
Member

The L-system

minetest's l-system implementation is incredibly restrictive. and hard to work with. i challenge you to implement something close to ethereal's redwood, date palm, or giant mushroom with them. the schematic system is also very restrictive, but the constraints are different.

upstream issue: https://notabug.org/TenPlus1/ethereal/issues/72

> The L-system minetest's l-system implementation is incredibly restrictive. and hard to work with. i challenge you to implement something close to ethereal's redwood, date palm, or giant mushroom with them. the schematic system is also very restrictive, but the constraints are different. upstream issue: https://notabug.org/TenPlus1/ethereal/issues/72
flux added the
3. source/mod upstream
label 2023-05-08 17:00:17 +00:00

Ideally, the healing tree trunks should be able to replace only some specified kinds of nodes (grass, leaves, flowers, air, water), but not any other (certainly not other trunks, chests, stone or any other objects).

Leaves could have even shorter list (just air or flowers?)

But that may be a nontrivial change.

Ideally, the healing tree trunks should be able to replace only some specified kinds of nodes (grass, leaves, flowers, air, water), but not any other (certainly not other trunks, chests, stone or any other objects). Leaves could have even shorter list (just air or flowers?) But that may be a nontrivial change.

QA

The temporary fix is in place and trees don't replace other blocks anymore. That's an OK for 1.1.119, but the temporary fix is in yl_stable ethereal, it must come from upstream instead, else we need to fix from yl_commons instead

QA The temporary fix is in place and trees don't replace other blocks anymore. That's an OK for 1.1.119, but the temporary fix is in yl_stable ethereal, it must come from upstream instead, else we need to fix from yl_commons instead
AliasAlreadyTaken added the
ugh/QA OK
label 2023-05-09 09:13:46 +00:00
Member

i think my upstream issue will probably be implemented, hopefully we can get rid of the temporary fix then

i think my upstream issue will *probably* be implemented, hopefully we can get rid of the temporary fix then
Member

upstream seems to have removed the force_place attributes, so this should go back to old behavior.

machines that have been destroyed will mostly have already been destroyed. i don't require any refunds, but other players possibly might have valuable stuff that they lost.

upstream seems to have removed the `force_place` attributes, so this should go back to old behavior. machines that have been destroyed will mostly have already been destroyed. i don't require any refunds, but other players possibly might have valuable stuff that they lost.

I reset yl_stable to parity with upstream

machines that have been destroyed will mostly have already been destroyed. i don't require any refunds, but other players possibly might have valuable stuff that they lost.

Good point

I reset yl_stable to parity with upstream > machines that have been destroyed will mostly have already been destroyed. i don't require any refunds, but other players possibly might have valuable stuff that they lost. Good point
flux added
5. result/fixed
and removed
4. step/ready to QA test
labels 2023-05-18 19:40:46 +00:00
flux removed this from the flux's TODO list project 2023-05-18 19:40:51 +00:00
AliasAlreadyTaken was unassigned by flux 2023-05-18 19:40:53 +00:00
Member

this is live

this is live
flux closed this issue 2023-05-18 19:41:25 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#4264
No description provided.