LoG2 bug list

Ask for help about creating mods and scripts for Grimrock 2 or share your tips, scripts, tools and assets with other modders here. Warning: forum contains spoilers!
User avatar
zimberzimber
Posts: 432
Joined: Fri Feb 08, 2013 8:06 pm

Re: LoG2 bug list

Post by zimberzimber »

I though you could change the setposition with this object? I don't get it. So anything with minimalSaveState can not be repositioned?
You can, but it won't save its new position if you load a save file.
My asset pack [v1.10]
Features a bit of everything! :D
User avatar
AndakRainor
Posts: 674
Joined: Thu Nov 20, 2014 5:18 pm

Re: LoG2 bug list

Post by AndakRainor »

Zimber, there is a confusion here :)
the x, y, elevation position of minimalSaveState objects on the map coordinates are saved and loaded, so you can change and persist them, but not their "world" position (x,y,z), with the corresponding functions for a more precise positioning.
minmay
Posts: 2780
Joined: Mon Sep 23, 2013 2:24 am

Re: LoG2 bug list

Post by minmay »

Mysterious wrote:I read mins list and think how did AH not pick this up? Why does it take an outsider to see the probs?
Most of these bugs are either obscure, difficult to fix, or only consequential for custom dungeons.
Of the ones that players are likely to actually notice in Isle of Nex:
- Making particles visible underwater would mean either a significant change to the rendering pipeline or doing an additional render pass (not appealing!).
- Lighting both sides of double-sided materials correctly is easier but would still come with a performance cost - it was probably omitted intentionally as an optimization.
- Music cutting off samples when it loops is noticeable with boss fight music, and probably not too difficult to fix, but some bugs are always going to slip through.
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
User avatar
Huff
Posts: 18
Joined: Fri Jun 22, 2012 9:47 pm

Re: LoG2 bug list

Post by Huff »

Got a few I would like to add:

-Charging monsters will skip past open trapdoors unless their elevation reaches the trigger for the level underneath as they're falling. Otherwise, they appear to 'snap' back onto the level.
I wrote a script to make the charging monster stop completely when isFalling() returns true. The drawback is that decreases in tile elevation while charging will cause a dead stop in the charge, so this is more effective for flat areas like dungeons. Hopefully there's a better solution.

Code: Select all

class = "MonsterCharge",
name = "charge",
onAnimationEvent = function(self, event)
	local x = self.go.x
	local y = self.go.y
	local facing = self.go.facing
	local level = self.go.level
	local elevation = self.go.elevation
	-- Bug fix when charging past open pitdoors
	local falling = self.go.monster:isFalling()
	if falling == true then
		if facing == 0 then
			y = y + 1
		elseif facing == 1 then
			x = x - 1
		elseif facing == 2 then
			y = y - 1
		elseif facing == 3 then
			x = x + 1
		end
		self.go:setPosition(x, y, facing, elevation, level)
	end
end,
This one is more exploit than bug I would say.
-Bombs do not distinguish between a character throw and an inventory throw for detonation. Because throwing items from inventory doesn't have a cooldown, this can be done in rapid succession to do insane amounts of damage in short periods of time. Using an autohotkey script, I was able to turn bombs into a rapid fire death cannon. It seems you can do this in LoG1 as well.
User avatar
Zo Kath Ra
Posts: 937
Joined: Sat Apr 21, 2012 9:57 am
Location: Germany

Re: LoG2 bug list

Post by Zo Kath Ra »

I'm writing a script that tracks the party's world position, and performs an action when the party moves into a different cube (= 3d tile).
And I found a strange bug:

1) Create a dungeon that goes from elevation -7 to +7
2) Place ladders from elevation -7 to +6
3) Place a timer with an interval of 0
4) Connect the timer to a script that checks if party.party:isClimbing() has changed from true to false, i.e. the party has just stopped climbing
5) When the party has just stopped climbing, print its world position y and elevation:

Code: Select all

print("worldPositionY", party:getWorldPositionY(), "elevation", party.elevation)
Expected output:
world position y = 3 * elevation

Actual output:
For all elevations except 0, the actual output equals the expected output.
But for elevation 0, the actual output is
worldPositionY -3.6738191276416e-017 elevation 0
I.e. a negative number with a very small absolute value, but not exactly 0.
Screenshot https://imgur.com/inGEj8f

This happens with all ladder types in vanilla LoG2:
- ladder
- ladder_metal
- ladder_metal_4m
Post Reply