[1.6.7] Timeline splitting bugs & abuses

Where bugs go to lie down and rest

Moderator: Moderator

Post Reply
Message
Author
minmay
Wyrmic
Posts: 286
Joined: Fri Sep 07, 2012 1:34 am
Contact:

[1.6.7] Timeline splitting bugs & abuses

#1 Post by minmay »

There are three talents in ToME4 1.6.7 that "split the timeline": Cease to Exist, Revisionist History, and See the Threads.

Essentially, making savescumming into an official gameplay mechanic... made it possible to get a lot of the game-breaking advantages of savescumming, but without actually doing any cheating. This is pretty bad.

See the Threads attempts to mitigate these problems by only being usable once per zone level. However, this attempt fails, for several reasons:
1. The restriction does not apply to the See the Threads that you get from the Threads of Fate fixedart - giving every non-antimagic character access to unlimited time travel abuses.
2. There are ways for the player to create an unlimited number of new zone levels. The easiest is Temporal Reprieve, which is also available on a fixedart (Temporal Augmentation Robe), but there are also Fearscape, Dreamscape, and worldmap ambushes.
3. There are just *so many* zone levels in the normal game in the first place! Over a hundred! That's already enough to get amazing Wheel of Fate and Wyrm Bile rolls, and rather tediously at that...

Now, I'd like to pre-empt the protests of "but nobody will actually abuse this!"
Here's a game where I used Revisionist History to get 5 additional category points and 1 additional prodigy point from fonts of knowledge.
Here's another one where I used timeline splitting to get 2 additional prodigy points.

I think the only complete and practical solution is to just get rid of timeline-splitting talents. Yes, they're a cool demonstration of the flexibility of T-engine, but from a player perspective, they're cumbersome to use as intended and extremely easy to use as unintended. And both Chronomancer classes would still be extremely strong without them.

If not that, then at least get rid of Revisionist History and See the Threads - unlike Cease to Exist they don't offer a cool offensive option, they just negate the risk of whatever you're about to do. Ideas to somewhat mitigate (but not solve) the problems with Cease to Exist:
- If you fail to kill the target before Cease to Exist expires, Cease to Exist cannot be used again on that level.
- Only allow Cease to Exist to target rare+ rank enemies.

And if you do keep any chronoworlds talents, all of the following need to negate chronoworlds:
- Receiving the Brotherhood of Alchemists quest (this is when the recipes for the potions are determined; you can use timeline splitting talents to restart it until you have easy Foundations ingredients)
- Disturbing a grave, using a font of knowledge, touching a tentacle tree or demon statue (alternatively, pre-compute the results of these when the level is first created, like glowing chests do)
- Using the font of sacrifice
- Imbuing a gem or amulet with a jeweller
- Rerolling Wheel of Fate
- Stealing a talent with Morrigor
- Drinking Wyrm Bile
- Probably a lot more stuff that I've forgotten!

...but understand that this still leaves countless possible chronoworlds abuses in the game.



The other half of the problem is that timeline splitting is unstable. Using these talents often crashes my game with a segmentation fault, both when splitting the timeline (saving) and when rewinding time (loading). This may just be some general serialization bug that's simply more visible with timeline splitting talents because if I have these talents, I'm using them much more often than I am saving the game normally.
Another bug is that the game also seems to keep responding to input for a brief moment after starting to rewind time. You can see this by holding down the hotkey for Revisionist History (or pressing it rapidly) and looking at the console output - it will get spammed with error messages as you use Unfold History multiple times in succession:

Code: Select all

[LOG]	Player casts #{bold}##PURPLE#Unfold History.#{normal}##LAST#
[useTalent] TALENT FAILED:	T_REVISIONIST_HISTORY_BACK	for	player	58644	true
[LOG]	Player casts #{bold}##PURPLE#Unfold History.#{normal}##LAST#
##Use Talent Lua Error##	T_REVISIONIST_HISTORY_BACK	Actor:	58644	player
Lua Error: /engine/interface/ActorTalents.lua:329: /engine/interface/ActorTalents.lua:302: /engine/interface/ActorTalents.lua:164: /data/talents/uber/mag.lua:305: attempt to index a nil value
stack traceback:
	/data/talents/uber/mag.lua:305: in function </data/talents/uber/mag.lua:303>
	[C]: in function 'xpcall'
	/engine/interface/ActorTalents.lua:162: in function </engine/interface/ActorTalents.lua:151>
	At [C]:-1 
	At [C]:-1 error
	At /engine/interface/ActorTalents.lua:329 useTalent
	At /engine/interface/PlayerHotkeys.lua:170 
	At /engine/interface/PlayerHotkeys.lua:162 activateHotkey
	At /mod/class/Game.lua:2479 f
	At /mod/class/Game.lua:2000 fct
	At /engine/interface/PlayerHotkeys.lua:317 
	At /engine/KeyBind.lua:231 
[USERCHAT] channel achievement	kefyon	tome	Wibbly Wobbly Timey Wimey Stuff (Nightmare (Roguelike) difficulty)	false	true
[LOG]	Player casts #{bold}##PURPLE#Unfold History.#{normal}##LAST#
##Use Talent Lua Error##	T_REVISIONIST_HISTORY_BACK	Actor:	58644	player
Lua Error: /engine/interface/ActorTalents.lua:329: /engine/interface/ActorTalents.lua:302: /engine/interface/ActorTalents.lua:164: /data/talents/uber/mag.lua:305: attempt to index a nil value
stack traceback:
	/data/talents/uber/mag.lua:305: in function </data/talents/uber/mag.lua:303>
	[C]: in function 'xpcall'
	/engine/interface/ActorTalents.lua:162: in function </engine/interface/ActorTalents.lua:151>
	At [C]:-1 
	At [C]:-1 error
	At /engine/interface/ActorTalents.lua:329 useTalent
	At /engine/interface/PlayerHotkeys.lua:170 
	At /engine/interface/PlayerHotkeys.lua:162 activateHotkey
	At /mod/class/Game.lua:2479 f
	At /mod/class/Game.lua:2000 fct
	At /engine/interface/PlayerHotkeys.lua:317 
	At /engine/KeyBind.lua:231 
[LOG]	#LIGHT_BLUE#You go back in time to rewrite history!
I am sorry I can't specifically find what causes these bugs.

Post Reply