-
Notifications
You must be signed in to change notification settings - Fork 81
Address exploit of container dump module #1550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
RedRafe
wants to merge
5
commits into
Refactorio:develop
Choose a base branch
from
RedRafe:coal-dump-update
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+145
−69
Open
Changes from 2 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
4f18947
Address exploit of container dump module
RedRafe 5e92acf
Update market chest exchange values
RedRafe 4cebffc
Replace kill mechanic with stun mechanic
RedRafe a717dae
Separate vehicle penalty logic in configs
RedRafe e85d7be
Change default config
RedRafe File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if the dying part should be configurable. This seems more like a diggy danger ore issue than a regular danger ore issue. Part of me feels that killing the player is quite harsh, but the only alternative I can think of is spilling the items instead. Though I suppose it's odd for players to accidentally destroy containers, outside of using explosives to kill biters and the container getting caught in the crossfire.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Experience of the last X months is: in regular DO almost no-one ever kills a container (mainly because ppl know it would spawn "useless" coal to mine, and also because there's no real need to get rid of stuff to make room). So feature is pretty much irrelevant.
For Diggy, the infinite resource loop is a more relevant concern. We had in DO the powered-warehouses, and they would start spilling content on ground when left unpowered. That made everyone angry at the mechanic cuz it punished the whole party rather than the single griefer/offender.
IMO, neither killing nor spawning ore on a 1x1 or NxN area is an harsh punishment, as respawning is a matter of 10s and mining out the ore tiles is more an annoyance than a real issue.
It only acts as a "warning" after 1st attempt, since it wastes a bit of player time and cannot be automated, players wont do it again ever after.
I dont think this feature is triggered enough to cause any issues among regular players. Maybe griefers would be the only ones experiencing a few deaths from time to time, but it's still unusual to get kills in DO or to see players blow up chest at all. A game can easily finish with 0 deaths total (no trains, peaceful,...).
If so, we can still revert the change again and turn it down a notch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As in the feature works in it's current form and doesn't need changing for DO?
For large maps it can be more than a 10s inconvenience as it's also the time to get back to your corpse. Plus it would interrupt what you are doing if you are in the middle of building something while clearing chests. Maybe I am over reacting about killing the player. But it sets the tone for the map, particularly for new players. I could imagine a new player to DO would naturally try to destroy containers to take advantage of the DO game mechanics. Staying alive makes it easier to see/notice the spawned ore. I'd be more accepting of killing players in diggy as that is inherently a more dangerous map (DO normally has bitters to peaceful).
Though thinking about this again, there are some other solutions we could explore.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For once, I find myself in disagreement with the concerns raised.
I'll try to explain the issue so a better solution can be found:
Fo regular DO, this feature in any of it's implementations has little to no impact as no chests are ever killed in a DO run. Neither to make space, nor to exchange resources to coal, nor by accident.
For DiggyDO, Diggy used a separate DO logic, but for the sake of reusing and maintaining, it was switched to use DO's files & implementation around when both scenarios got heavily refractored at the end of 1.1 and 2.0 porting.
The issue with Diggy is that long lasting maps generate absurd resource imbalance and players started to blow up chests of whatever was overflowing to keep the base running. To address this mechanic, 3 features were added back in few versions ago:
The combination of those 3 was meant to incentivize players into using all resources as best as possible; and then if really needed, trade excess at bad ratios instead of voiding it in chests (instead of storing 420M ores in bot network).
Players later realized that without mining prod, diggy needed a lot of expansion and manual work to feed the factory. So the exploit to kill chest of cables, mine coal, exchange for copper &brevraft in cable loop was found to generate infinite stream of resources.
For latest Diggy version, exchange rates have been raised from 2:1 to 5:1 to offset the prod3s chain already - however - since constantly expanding manually was deemed too tedious for large SPM goals - mining prod has been introduced back. Now no value of exchange rate can offset the productivity gained from all the steps involved. So I nerfed the infinite loop by basically debouncing the loop by killing poster when it destroys a chest.
Lore-wise, I personally found it very fitting with the danger of ores theme, and penalty was not received as too harsh neither in discussion with players nor in tests with public server.
However, if a better solution can be found, I'm open to it. I haven't quite found a fix to address all these issues so far
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either way I think we will just have to agree to disagree. This doesn't feel like the right way to solve the problem to me. But I'm open to trying it and seeing what players say.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both - DO doesnt need container dump as antigrief/anticheat system as players already behave for that matter, but I find it very fitting to the lore/design of the map so I wouldn't necessarily remove it even if it's almost unused.
Given that it is not a relevant feature, changes to it (like harsh penalty of character death) would not have relevant impact as feature is not triggered enough for players to notice.
Even tho we might be in disagreement I dont want to push changes that are not shared. I dont need this to go through as is just for the sake of it.
A new Diggy run has already restarted and it is testing these changes + some some other little tweaks, so I'm in no rush :)
If we think death is too harsh a penalty, we can maybe just stun the player. Looking at base protos, there's landmines, discharge defense and (with SA) tesla turrets that have this "stun mechanic":
(A sticker is some kind of entity - enemy green spits are "sticker" that get attached to player and fade with time just to give context).
Maybe I can fiddle around with that and see if I can attach stun stickers around target actors (will have to check how it works with vehicles but spit do attach to tanks/cars so it should be possible). This would be sufficient I believe as debouncing mechanism to prevent players from running over a row of chests and convert it to coal for endless mining.
Bonus: if it's not enough to stop it, then I can additionally kill just the vehicle and maybe also spawn some enemies as well as coal so the feature is less predictable from player side
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is correct. I added the module originally because we did have a problem with this.
I appreciate that 😊
I would prefer stunning the player over killing them, so if you can make that work, that works for me.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure! And I think nowadays the combination of regulars knowing there's a penalty to killing chests of ore and them understanding game economy a Lil better has lead to no chests being blown up anymore.
DO is very chill so the only "precious" resource is time. Extracting resources takes time an nobody wants to mine twice a tile because someone blew a chest. Even if not triggered anymore, I think if the feature was disabled ppl would start blowing up chest again