ac-minetest / basic_machines

Simple automation mod for minetest
17 stars 22 forks source link

Battery cheat #24

Closed berengma closed 5 years ago

berengma commented 6 years ago

Not a real issue but more or less a cheat to unlimited diamond and mese. this makes the game unbalanced and too easy because diamond and mese become worthless.

You can build with the mover stacks, 32768# in size. Move them in the battery 3stacks of that diamond block and 1 stack of mese. In a battery in y>1500 it will smelt 190 diamond dust in one circle or 1024 in 30 seconds.

Maybe you should make it impossible to build such large stacks with mover or define a max upgrade # in the battery.

ac-minetest commented 6 years ago

Yes this needs balancing, but how? If you just limit max stack to 99 greedy people will still want lot of diamonds so - they make 400 furnaces (really happened on server). This will just burden the server more ( 99 furnaces instead of 3). What we would need is some other production requirements, some ideas:

  1. limit power production rate for generators. Again its not enough to just limit generator upgrade to say 100, cause what happens is player makes 1000 generators (i have seen that happen on server). Instead maybe each time generator produces power increase a counter for that player (so every 19 secs, also check & reset counter to 0 afterwards). If counter is larger than say 5? 10? those extra generators simply wont work and would produce error.

  2. new 'constructor like' block that would basically be 'chemical factory'. Grinder would produce unrefined 'ore_dust_0' and this would need to be combined with certain chemicals to get ore_dust_33 (furnaces are already based on https://en.wikipedia.org/wiki/Pyrometallurgy, just need to expand). You would get those chemicals from plants which you would put in chemical factory for processing. Now farming in minetest is dead boring and easy - i added 'weeds','fertilizer' and requirement for manual work on farms (for example in my skyblock mod addons).

  3. artificially limit max battery furnace speedup (after level 99 not any faster)

  4. limit stack size in mover to 25? 50? 99? ( after all transport machinery can not handle very large packets)

ac-minetest commented 6 years ago

Also in technic you can build a quarry. so greedy players leave huge holes behind them which are not usable by other players and may look nasty near spawn (machines production is on the other hand "eco"- friendly).

You might want to check my other mod alchemy - which also needs tweaking. There you break down materials to get essence ( this costs energy) and then synthesize other materials ( cost depends on type of material ofc). This mod needs careful tweaking too.

bosapara commented 6 years ago

Hello:) Last update is awesome, ive checked. But it still can be used for cheat. Players can make a lot of accounts. So one of ideas - make the generator working only when the player is online (like clockgen). Agree that should be added some limit for quantity of batteries and upgrades, limit for stack size / (for mover). Distributor can be laggy too, about 50 distributors with 16*50 signals make a lot of lags, havent any ideas but its a problem too.

PS Limit for generators can prevent creating a lot of batteries / furnaces, cuz in this case we have limit for fuel.

berengma commented 6 years ago

Yes this needs balancing, but how? If you just limit max stack to 99 greedy people will still want lot of diamonds so - they make 400 furnaces (really happened on server). This will just burden the server more ( 99 furnaces instead of 3). What we would need is some other production requirements, some ideas:

I think stack should be limited to local server maxstack size. usually 99, or like on my servers 1024. Stacksizes like 32k is far too much. Yes someone could build 99 furnaces, but that uses space and is an obvious, easy to see violation to admin. Easier than admin has to check upgrades and stacksizes For a first idea about stacksize please see my github: berengma/basic_machines

  1. limit power production rate for generators. Again its not enough to just limit generator upgrade to say 100, cause what happens is player makes 1000 generators (i have seen that happen on server). Instead maybe each time generator produces power increase a counter for that player (so every 19 secs, also check & reset counter to 0 afterwards). If counter is larger than say 5? 10? those extra generators simply wont work and would produce error.

it is not, but also here stacks like 32K should be avoided. That is what you did in your last commit, right ? 5 is maybe a bit too less. Many players already complained about it :)

1. new 'constructor like' block that would basically be 'chemical factory'. Grinder would produce unrefined
   'ore_dust_0' and this would need to be combined with certain chemicals to get ore_dust_33 (furnaces are already based on https://en.wikipedia.org/wiki/Pyrometallurgy, just need to expand). You would get those chemicals from plants which you would put in chemical factory for processing. Now farming in minetest is dead boring and easy - i added 'weeds','fertilizer' and requirement for manual work on farms (for example in my skyblock mod addons).

makes things too complicated and does not solve the main problem of beeing stacks too large

2. artificially limit max battery furnace speedup (after level 99 not any faster)

yes that is a good idea

3. limit stack size in mover to 25? 50? 99? ( after all transport machinery can not handle very large packets)

I set i global variable in init.lua basic_machines.maxstacksize which is usually 99. If a larger stack is entered in move filter it will be reduced to that size automatically

berengma commented 6 years ago

Also in technic you can build a quarry. so greedy players leave huge holes behind them which are not usable by other players and may look nasty near spawn (machines production is on the other hand "eco"- friendly).

You might want to check my other mod alchemy - which also needs tweaking. There you break down materials to get essence ( this costs energy) and then synthesize other materials ( cost depends on type of material ofc). This mod needs careful tweaking too.

Thanks I will keep that in mind, but I am too busy right now :) basic_machines is my top topic at the moment :)

berengma commented 6 years ago

Hello:) Last update is awesome, ive checked. But it still can be used for cheat. Players can make a lot of accounts.

I do not think that is a big problem. I usually warn and ban all multi account user on my servers.

So one of ideas - make the generator working only when the player is online (like clockgen). Agree that should be added some limit for quantity of batteries and upgrades, limit for stack size / (for mover). Distributor can be laggy too, about 50 distributors with 16*50 signals make a lot of lags, havent any ideas but its a problem too.

That is totally right. One of my players invented a setup of distrubutors to trigger every second instead of every 5 second.

PS Limit for generators can prevent creating a lot of batteries / furnaces, cuz in this case we have limit for fuel.

maybe generator can also be checked when placing them. So in a diameter of 100 nodes there cannot be more than 2 generators. (for example)

JurajVajda commented 6 years ago

this is a big problem on my server, 8k stacks of diamond blocks and mese, not preventing stacked items to max_stack items as in the node definition is bad practice, items should be limited to stack max items as defined in the node definition. Another bugs like items get auto repaired when moved from inventory to inventory or infinite saplings ruins survival servers. Also there are some more serious issues like player can type infinite numbers in e.g. mover fields, guess what follows next....crash...and after that every time you rightclick the affected node....guess again...booom another crash, or just try to type text (string) in field where the number suppose to be.. i have fixed a lot of bugs for this mod already but its never ending, reverse seed placing for default MTGame is not working out of the box from this mod and fix for this is still in PR section over a year i can go on an on... i mean it a nice mod but without maintenance and important bugfixes you just get your server/map ruined

berengma commented 6 years ago

I cannot reproduce the crashes Juraj described above. Also placing seeds works for me, after I updated the farming tables myself it also does so for latest farming_redo. The infinate sapling issue I do not know.

The stack problem I fixed. Please see my fork for it. Each stack is checked for its stack_max definition now.

Another thing I changed is that generators and clockgens are limited in number depending on size of aktive mapblocks. (aktually fork get the setting from minetest.conf)

What is an issue is the described auto repair when moving items from inv to inv. It can't be too hard to check for meta data before moving stuff. I did not find the right part of code in mover yet. Maybe rnd would be so kind to invest a bit of his valuable time in this ? :)

open Source has its pro and cons :) The cons are often lack of maintenance and bugfixes the pros are: it is free and so is the code. If unpatient for next bugfix -> fix it by your own :)

berengma commented 5 years ago

Auto repair is fixed now in my fork. Less than 5 lines of code in mover.lua

bosapara commented 5 years ago

berengma, great. is it not easy way? an example if item =="default:pick_diamond" then prefer = "" end

berengma commented 5 years ago

bosapara, it is maybe not that easy. Just see my commit if you want to know how I did it.

bosapara commented 5 years ago

berengma, your variant is better, will use it. Thanx u.

bosapara commented 5 years ago

berengma, if you check inventory mod with tool from furnace to chest - it still repair

berengma commented 5 years ago

fixed

ac-minetest commented 5 years ago

factory production now requires extensive farming, so no more 'quick' cheats for mass production