Pryaxis / TShock

☕️⚡️TShock provides Terraria servers with server-side characters, anti-cheat, and community management tools.
GNU General Public License v3.0
2.41k stars 377 forks source link

Configuration file preset/example or simple option to disable all features #636

Closed CyberShadow closed 10 years ago

CyberShadow commented 10 years ago

TShock's default configuration file seems to be geared towards hosting public Terraria servers. However, this configuration is ill-suited for small, private servers (for playing with a few trusted friends). For such cases, TShock is still useful due to its Mono compatibility - however, one must spend a considerable amount of time studying the TShock configuration and permissions and adjust them appropriately to disable all the unnecessary features enabled by default.

Examples:

Running into these issues was frustrating, as it meant that each time we would need to stop playing and investigate the cause of the problem. Since the only thing we needed from TShock was Mono compatibility so it could run on a dedicated Linux server, it would be great to have a configuration preset with all options disabled (making it behave closely to the standard TerrariaServer.exe), so that users who only need a few options could enable them selectively, rather than hunting down every unnecessary option enabled by default and finding a way to disable it.

Olink commented 10 years ago

You do realize you dont need tshock to run in mono, right? You just need the exe. IF you do not want tshocks features, then dont use it. The config is defaults and will stay that way.

CyberShadow commented 10 years ago

No, I do not realize that. Where is the functionality you are describing documented?

k0rd commented 10 years ago

It isn't really documented. TShock itself is a plugin for the TerrariaServer API (the .exe that comes with TShock). It is fully mono capable and can run by itself simply by removing the TShock dll (and other database dlls, etc) from the ServerPlugins directory.

CyberShadow commented 10 years ago

Ah, thanks a lot! I didn't know that, and I'm not sure if I could've found that out on my own. I did search the web for "Terraria Server API", but practically all hits were TShock-related. Well, feel free to consider this issue as a request to improve the documentation :)

k0rd commented 10 years ago

We know - and although that "feature" will likely remain undocumented, we are still in pre-release mode for the configuration options and permissions. We recently made some big changes in the TShock system and are still working out what is staying, going, or being added.

Olink commented 10 years ago

https://github.com/NyxStudios/TShock/blob/general-devel/README.md

CyberShadow commented 10 years ago

Zack, is that link for me? If so, I have already seen it - not sure if you've noticed, but I submitted two small pull requests to TShock already. I don't see how it's relevant, as it doesn't answer any of my questions - it mentions, and provides a link to the Terraria Server API project, however that project's README makes no indication for what it is and how it can be used, and certainly doesn't hint that it can be used independently. I don't see how it would be possible to find the answers to my questions based on that document alone. Could you elaborate how that link is relevant to the discussion?

Olink commented 10 years ago

Its relevant that this project is built on that project, and that any competent person would realize that the server exe is what needs to be mono compatible. I dont see how you think a dll loaded at run time would make an executable mono compatible.

CyberShadow commented 10 years ago

Zack, I'm sorry to say this, but I think you're not seeing the problem here. What may be obvious to you is not obvious to outsiders (look up the term "curse of knowledge"). To someone unfamiliar with how TShock is structured, it is certainly not obvious that:

  1. TShock is only a DLL - after all, its distribution contains a TerrariaServer executable
  2. The Terraria Server API project can be used independently
  3. The Terraria Server API project is what TerrariaServer.exe is

I am going to let the implication of my incompetence slide, however, as a fellow open-source enthusiast and project maintainer, I would advise not alienating your users and potential contributors. Maintaining a healthy community is as important in running an open-source project as writing code ;)

Olink commented 10 years ago

Thats fine if you refuse to accept that we link to the source code for the exe, TShock sits in a plugin folder, and you think the runtime plugin affects the compiled code for the exe running.

CyberShadow commented 10 years ago

We're not going to make any progress if you keep ignoring my arguments - I've already said that there is no clear link between the distributed executable and the Terraria Server API project. Since proving your superiority seems more important to you than understanding the documentation problems of your project, or maintaining a constructive dialogue, I can see no benefit out of continuing this conversation. I was considering contributing some of my time to improve this project's documentation, but clearly you seem to think that everything is in order as is. I'm out.

Olink commented 10 years ago

Hey, if you wanna leave, thats up to you. Don't try to wuss out by saying I was proving my superiority over you. All I said is that you refuse to either look for the link, we didn't put underlines, boldface, italics everywhere that said that the exe runs on its own, but assume that if you run a terraria server, you understand that there is an exe. And that there are plugins. Based on your initial statement I assumed you understood computers. I was wrong. I should apologize for assuming that. I shouldn't assume people know what they are talking about when they make issues.

Either way, sayonara.

k0rd commented 10 years ago

For what it's worth, this issue kind of got derailed. Example configuration files are something that are commonly distributed with software. I don't see the harm in considering bundling a few "example" configs with our releases. It's just not something that is a priority right now while we are in pre-release mode for Terraria 1.2..

To your points @CyberShadow , I will agree that it is not plainly spelled out anywhere that you can run the Terraria server API by itself. We also do not have instructions on how to boot your computer, install an operating system, install mono or .net framework, or any number of other related tasks. We have to draw the line somewhere, and we chose to do so at TShock documentation. The terraria server API is known throughout the community to be fully capable to run by itself, and this fact might be obscured from new users as we are somewhat of a tight-knit bunch. Having said that, seeing someone who wants to run the API without TShock is somewhat of a rarity, only us mono folks really have a need to do this.

As Olink said, whether or not you stick around is entirely up to you. You are welcome to hang out with us and discuss issues, and I hope that you don't take anything that is said around here personally. Olink actually takes a lot of time out of his day to address every user who raises a concern individually, something that I can't say about too many developers. We try to maintain open lines of communication with all of the people who use our software. In turn, there is a lot of chaff that we have to cut to find real, meaningful issues - and it is important to separate this chaff so we don't divert from the project's goals. You are correct when you say that it isn't apparent to a new user that the distributed API and TShock are, in fact, two seperate things.. but pointing that out doesn't really enrich our core user base, and really only affects an edge-case scenario (someone who would want to run terraria server on linux, but without the features that TShock brings to the game). Such a thing is something that we don't even imagine, and would easily be answered on the forums or in our IRC if anyone brought up such a scenario.

At the end of the day, you are certainly welcome here.. and I think that your choice of forum for this discussion is one of the main reasons that we assumed you had a working knowledge of the TShock software. We generally prefer that software bugs are posted to the github issues section, and that other assorted things are worked out in other places.