[SERVER] Protection vs Griefer

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

noliVe
Filter Inserter
Filter Inserter
Posts: 327
Joined: Tue May 24, 2016 7:46 am
Contact:

[SERVER] Protection vs Griefer

Post by noliVe »

============== Collection of IDEAS to get a stable way to protect us vs GRIEFING =========================
Forum Linklist:

viewtopic.php?f=6&t=43310

============
Collected Ideas:

- Build Statistic for your Factory | MOD from darkfrei
- figure out the "catching up" system to filter actions from each player
- creating a replay savegame to search for an action a user did and change this back
- collection of data only for a certain group (Admins/Friends/newcomer/guests) done with version 0.15 @ https://www.factorio.com/blog/post/fff-184
- logging only for critical changes ( mass blueprinting in a short time or flamethrower abuse ,etc..)
- count actions each minute example 5 and more actions create a special savegame (simplar to a security camera)
- create save zones Y x Z titles you cannot build if you are not an admin
- protect items to be deleted or burned by player actions
- [13.04.2017] deconstruction by Player LOG. Could be archive with this idea . viewtopic.php?f=53&t=29937&p=254939#p254926
- [14.04.2017] Grief: Per-player event logging window viewtopic.php?f=33&t=44164&p=255163#p255131

==will be done in 0.15====
- [14.04.2017] Recovering items from banned inventories

This Topic should be usefull to generate a way to be protected vs griefing.
of course you can setup a game with password and thats it! but thats not the point!

so please help collecting IDEAS! dont say "thats not working" "that idea is s**t* or "stop doing it..."
if you find some ideas on other topics dont hesitate to tell us here!
Last edited by noliVe on Fri Apr 14, 2017 8:11 pm, edited 8 times in total.

vtx
Fast Inserter
Fast Inserter
Posts: 150
Joined: Tue Jun 28, 2016 9:48 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by vtx »

The catching up action is more a network catching up than a log of action. By that i mean when a client join he start download the gamestate at that point. Then the server "buffer" all action done on the server for that client. When the download end the server send the "buffer" aka catching up.

Make multiple save on your server you'll be able to undo thing done base on the timelapse you set.

There still a possible way to log every action done on the game you must have replay enable. But I don't think mod have access to that.

noliVe
Filter Inserter
Filter Inserter
Posts: 327
Joined: Tue May 24, 2016 7:46 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by noliVe »

yes still those catching up log is always working so this buffer must be somehow save all the actions done by all players. so why not save this actions everything a user "build" or "removed" and if it catches it why not make it reverse posibility?
so the feature itself is already inside this "catching up" progress. i have no knowlage about this prozess but its worth checking

vtx
Fast Inserter
Fast Inserter
Posts: 150
Joined: Tue Jun 28, 2016 9:48 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by vtx »

Sorry I take the wrong approach let me rectify it.

This game use perfect deterministic lock-step system. Simply said that mean there is no random, if you replay the same map and do the same thing as same time the outcome will be verbatim. ( replay option work like that ). Also you can see that individual action once made are no longer individual.

That being said, let's assume it's possible to UNDO a player action. Let say in the first half of time interval he play normal ( setting drill and furnace ) and during that time you are setting the assembly machine to produce items.

Then in the second half he annoy you and you decide to UNDO all his action.... So the annoyance he do will be remove at the same time all drill and furnace too. What happens with all the plates he produce and you used ? Did you remove them too ?

mrvn
Smart Inserter
Smart Inserter
Posts: 5709
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by mrvn »

And do you even know where your plates came from? Isn't the only way to start the game from scratch and redo everything from the replay log with the bad player removed? Then at some point you have an action where good player tries to pick up some iron plates and there are non on the belt because the bad players furnace was never built. At that point the game simply can't continue with the replay.

Doesn't sound so bad? Same thing would happen with every inserter. Or splitter. Or a belt side feeding into another. So I guess the replay would freeze pretty quickly after the first action the bad player did. Which basically means you can just reload a savegame from the time when the bad player joined.

noliVe
Filter Inserter
Filter Inserter
Posts: 327
Joined: Tue May 24, 2016 7:46 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by noliVe »

im searching for ways to help out a little.. MINECRAFT has this feature done long long ago per EACH block,selected area or a chunk.. still all jobs done by a single person are logged somehow they have to , else how can this "catchup" work?
maybe you get my translation wrong , remember i am the german guy ;P
your computer get informations about other players and even flying robots data to catchup all their doiings what have been done. right? so why not remove their actions with a command back again.

/undo player actions from time x to time y
or
/undo player x 1000 actions

who cares if a griever was friendly at the first part. reloading a savegame would kill all the effort other players have been working on. how can this be fair!?

l

Rseding91
Factorio Staff
Factorio Staff
Posts: 13209
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by Rseding91 »

Minecraft does not have any such feature. Mods created to be used in conjunction with Minecraft have created that feature.

Additionally it works in Minecraft because the inputs and actions of players in it are trivial compared to those of Factorio.
If you want to get ahold of me I'm almost always on Discord.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: [SERVER] Protection vs Griefer

Post by ssilk »

To the undo: i agree with Rseding, that it is too difficult to really undo actions in the sense, that they are removed from the log. I thought a longer time about it and there are definitely actions, which can be undone by releasing a "counter action" and those which are not.

Example for action that can be undone: place some item and before there is a change at the same spot remove it.
Similar undoable actions: Set some values in a filter. Drag a wire. Pick up items from ground.
Non-undoable actions: pick up items from belt. Place furnace while another player places inserters that put items into f. Place belts, item run on it. Remove items and undo remove (already removed items become ghosts).

In that sense, there are some possibilities to implement an undo into Factorio.

And a basic feature, which is needed to implement that, is the the log can be searched very fast for the position of changes. Simply this case: place a pole, wait 30 minutes, undo. In that case the game has to look for a change in the range of that pole. If there was a change, the action cannot be undone (well that can be optimized of course). Again: it's not a real undo, it's a new action.

Why do I explain that so detailed? Cause such a "search for changes in that area at the past" could be an important tool against griefers. If you know where you can look backwards in time when. And then you know also who.

And what I have in mind is a kind of "time machine": a player can choose the area and can go back step by step. He sees all actions in an area like in movie that is played backwards with high speed. When a tree is cut in the log the tree is rebuild, when a player walks through the player walks backwards. Built belts are removed (but not the items on it, cause see above the item flow is not undoable). You see the actions in the area, but it is not a real reconstruction of he past, it's a tool to see how an area progressed in time. And to find the originator of a griefers action.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

vtx
Fast Inserter
Fast Inserter
Posts: 150
Joined: Tue Jun 28, 2016 9:48 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by vtx »

There are 2 major approach about undo, as this game is a simulation and time (tick) is connect with everye action you do.

1- Keep time while UNDO : This will lead in major failure of the game if the UNDO you do imply drill / furnace / belts / assembly machine / train place by that players. Unless the player you'll UNDO play alone in is corner in that case that will not affect you at all otherwise that will have a major issue in the simulation. Plenty of items will disappear from the simulation and the game will have to revert in time to the exact first ticks you'll UNDO and then reprocess the whole simulation with every action made by other players. For a 30 min undo that mean 108 000 ticks.

2- Do not keep time while UNDO : Simply Remove all entity place by that player and rotate back all action he do. That mean all items created by furnace /drill / assembly will stop producing at the exact time you UNDO but will leave every items created untouched. All items on belt will be drop on the ground and you'll have to clean up the mess and fix back every entity he placed that are usefull to you.

Rseding91
Factorio Staff
Factorio Staff
Posts: 13209
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by Rseding91 »

"undo" is never going to happen.
If you want to get ahold of me I'm almost always on Discord.

PunPun
Long Handed Inserter
Long Handed Inserter
Posts: 69
Joined: Sun Mar 27, 2016 7:08 pm
Contact:

Re: [SERVER] Protection vs Griefer

Post by PunPun »

I think a simple continue from replay feature would be enough. You just watch the replay until the point where you want to continue from and then stop the replay and play the game from the state that it is in. If someone starts griefing you can just watch the replay to see when he started it and then continue from before he started it. Should be relatively simple seeing as factorio already has the replay feature. All it needs is to be able to make a new playable save from the middle of it.

mattj256
Fast Inserter
Fast Inserter
Posts: 203
Joined: Sun Mar 27, 2016 7:25 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by mattj256 »

Rseding91 wrote:"undo" is never going to happen.
If a griefer places a deconstruct order, I would love to be able to do a construction order to place ghost images for what used to be there.
If a deconstruct order is caught early it can be canceled, but once entities have been removed it's a pain to reconstruct.

Also I want to be able to see who picked up or damaged an entity, because that's something griefers do.
(The worst case is intentionally picking up a boiler or a water pipe to cut off steam power.)
In this case it's easy enough to repair or replace the entity, but it's frustrating that I don't know who caused the damage.

vtx
Fast Inserter
Fast Inserter
Posts: 150
Joined: Tue Jun 28, 2016 9:48 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by vtx »

You can also simply reduce the delay between saves like 10 min and rotate over 6 files saves. You'll be able to roll back up to 1 hour at 10 min interval.

Engimage
Smart Inserter
Smart Inserter
Posts: 1068
Joined: Wed Jun 29, 2016 10:02 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by Engimage »

If player actions had no consequenses it would make sense to implement undo algorithms.
But in Factorio every player action has major consequences and should be modeled step-by-step for every game tick since it happened. And it makes no sense to revert actions of only one of all the players as it would lead to multiple inconsistencies like player picking up items dropped by a rolled-back player which could not happen.
So one and only way to effectively roll back without super complex implementation is just creating multiple autosaves which would rotate.
I'm not sure if this is already implemented for 0.15 but it was mentioned that you should be able to increase the number of autosaves to a desired value and set autosave interval to acceptable value.

noliVe
Filter Inserter
Filter Inserter
Posts: 327
Joined: Tue May 24, 2016 7:46 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by noliVe »

the problem with autosave is .. even when you save 288 times each 5 minute... ( a lot of pain ) the server will need enough harddisk. doesnt matter! but after 288 savegames it starts from savegame no1 . so a server running 24/7 can only be secured 24 hours! and then please explain me HOW to find the exact time when it starts beeing corupted! loading a savegame 250 times? ;)

so looging on actions like removing or huge changes with destroing are interesting. maybe there can be a small notification "x-changes on time x y z" ....
maybe a small filter on actions like please log only when player is doing more then 5 actions /second
or
do an extra savegame for supsected changes? count all deconstructions in a small time line then decide on extra savegame or build a replay savegame!?

as always , i am german if you can translate my english to something better. please do ;)
i hope you understand my purpose!

noliVe
Filter Inserter
Filter Inserter
Posts: 327
Joined: Tue May 24, 2016 7:46 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by noliVe »

ssilk wrote:......Example for action that can be undone: place some item and before there is a change at the same spot remove it.Similar undoable actions: Set some values in a filter. Drag a wire. Pick up items from ground.
Non-undoable actions: pick up items from belt. Place furnace while another player places inserters that put items into f. Place belts, item run on it. Remove items and undo remove (already removed items become ghosts).in that sense, there are some possibilities to implement an undo into Factorio.
.... be searched very fast for the position of changes.
.....Again: it's not a real undo, it's a new action.
..... Cause such a "search for changes in that area at the past" could be an important tool against griefers. If you know where you can look backwards in time when. And then you know also who.....
.... player can choose the area and can go back step by step. He sees all actions in an area like in movie that is played backwards with high speed. ..... You see the actions in the area, but it is not a real reconstruction of he past, it's a tool to see how an area progressed in time. And to find the originator of a griefers action.
sorry to shorten this heavily....
yes,yes,yes and yes! i can see clearly about your argumentation and your logic is very good and everything true how it is working right now! But it is a fact that building something behind the logic can be possible too.
so let us change the way of thinking about it even more and combine what you know and how it could be working!

Im not a programmer or have knowlage about the game mechanics, i want my favorite game Factorio be the best and beat minecraft even more.

= minecraft antigrief tools = worldedit + worldguard + factions + core protect
with those you can easily get the most things fixed. those are modifications.

- SaveZones , or protected items why this cannot be an option? chunk loging of player actions set an erea X*x titles be logged others not.
Logging doesnt need to be picked up all items... only important things , or let the map owner /admin decide on what is logged and what is not.

vtx
Fast Inserter
Fast Inserter
Posts: 150
Joined: Tue Jun 28, 2016 9:48 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by vtx »

noliVe wrote:the problem with autosave is .. even when you save 288 times each 5 minute... ( a lot of pain ) the server will need enough harddisk. doesnt matter! but after 288 savegames it starts from savegame no1 . so a server running 24/7 can only be secured 24 hours! and then please explain me HOW to find the exact time when it starts beeing corupted! loading a savegame 250 times? ;)

so looging on actions like removing or huge changes with destroing are interesting. maybe there can be a small notification "x-changes on time x y z" ....
maybe a small filter on actions like please log only when player is doing more then 5 actions /second
or
do an extra savegame for supsected changes? count all deconstructions in a small time line then decide on extra savegame or build a replay savegame!?

as always , i am german if you can translate my english to something better. please do ;)
i hope you understand my purpose!
Sure it'll be insane to load 288 savegame to find the first "corrupted" by griefer if you do that you earn my respect. :shock:

I guess you are unfamiliar to found fast and easily that. There are few way my prefered, depend on the sample can be do in less than 10 savegame check. Let's assumme the first corrupted is 161 so we want to find 160.

We divide by 2 the sample and depending on result you move forward or backward.
Sample 288 savegames.

1- 288/2 Check file 144 : All clear = move forward
2- 144/2=72 144+72= check file 216 : corrupted = move backward
Now we allready know the file we seek is between 144 and 216
3- 72/2 = 36 216-36= check file 180 : corrupted = move backward
4- 36/2 = 18 180-18= check file 162 : corrupted = move backward
5- 18/2 = 9 162-9 = check file 153 : all clear = move forward
Now we know the file we seek is between 153 and 162
6- 9/2 = 4 ( round down) 153+4= check file 157 : all clear = move forward
7- 4/2 = 2 157+2 = check file 159 : all clear = move forward
8- 2/2=1 159+1 = check file 160 : all clear = move forward
Now you know 160 is clear and 162 is corrupted. You check file 161 to know if it's corrupted or not and voila. Only 9 step not too bad.

Tool for grief detection belong to mod section. The game have 3 distinct mode ( singleplayer / private multiplayer / public multiplayer). Asking to implement a tool in the core game that only serve for 1/3 of game mode is pointless. There is performance/memory/diskspace cost for that kind of tool. They should be an option that will not affect in any way the 2/3 of game mode, that's why I think it's belong to mod section.

The game have allready great tool as /kick /ban and multi save.

noliVe
Filter Inserter
Filter Inserter
Posts: 327
Joined: Tue May 24, 2016 7:46 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by noliVe »

nice calculation! is it possible even faster? 8 times checking is quiet good

i heard of another way 1/3 way. lets say 300 saves and its 189

300 rest | divided by 3 | look for 100 yes/no => later
200 rest | divided by 3 | look for 166 yes/no => later
133 rest | divided by 3 | look for 210 yes/no => before so its between 166 - 209 (43)
43 rest | divided by 3 | look for 180 yes/no => later
29 rest | divided by 3 | look for 189 yes/no => found it
another test your excample 161 (1) and 287 (2)
more calculations
still good idea
"... Asking to implement a tool in the core game that only serve for 1/3 of game mode is pointless....."
still those 1/3 gameplay makes the most money. yes its one out of 3 but looking behind the numbers its
29000 multiplayers against 4000 single players.. now you can choose which 1/3 you want to support more!

i am not asking for a tool i am asking for ideas to prevent griefing maybe only small additions like adding more Item-IDS or timecode tables.. thats waht we need to discuss. we dont need to argue about ITS NOT POSSIBLE ... and maybe my translation get a little bit wrong, but i count you as a friend im not mad or write with hatred. but we need a solution for all these players out there.. when 0.15 is coming a lot more players are going to play this nice game. or older players come back.

vtx
Fast Inserter
Fast Inserter
Posts: 150
Joined: Tue Jun 28, 2016 9:48 am
Contact:

Re: [SERVER] Protection vs Griefer

Post by vtx »

You mix together the multiplayers game ( private and public ). Still what I said is valid private game should not suffer from public game.

I did not say it's impossible. What I say is you should put your energy on modding community instead.

viewforum.php?f=33

In my opinion any "complex" system for auto-detection and/or action against griefer MUST
1- be an option.
2- build by and for, those who suffer from griefer.

Reason for 1 as I said singleplayer and private server have no reason to use that kind of tool.
Reason for 2 is because no one have the same definition of griefer, more bigger the community working as a team on that more accurate the definition will be, and therefore the tool for it will have a purpose.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: [SERVER] Protection vs Griefer

Post by ssilk »

Same opinion. That are rules/regulations, that can be seen like the laws in reality and should not be part of the world, which is pure (game-)physics. (*)

In other words: If someone posts here a suggestion, which includes lots of values and numbers I go into suspicious-mode, cause it is in most cases a very fixed idea and comes from a special type of playing Factorio. ;)

(*) Yes, I know, that Factorio already includes many rules, but they are very simple and I think I can say that most of them are needed to increase fun.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

Post Reply

Return to “Ideas and Suggestions”