Closed Hazbelll closed 5 years ago
+1 this is a serious problem on my server as well
Definitely a problem.
From testing, these ConVars will prevent their respective content from being rendered clientside, however this does not prevent the client from downloading the content, so the issue still persists. Even pac_enabled 0
doesn't prevent it. The only workaround is to run the ConCommand pac_restart
every time outfits are re-fetched.
The choice of hosting by users for their PAC content is irrelevant to this issue. The screenshot is there to merely demonstrate how much web content users are using and how server operators have little to no control over it. Error prints to console is the only clue we have to go on.
Edit: Those people who posted above are not from my Server. They are from another Server I know of, and they too have to face this issue on theirs. I know many other Server Owners who do too, likewise all the clients who don't have the bandwidth.
Again, the amount of errors in Console is not relevant to the issue. They are just a visual indication to exactly how much web content others are getting others to download. Note the DarkRP Name change log there too.
Removing PAC isn't an option we want to entertain here.
Telling the playerbase not to use that much content isn't going to do anything, and since there are no logs as mentioned there's basically no easy way to enforce it if we tried.
The player base, the users, are the cause of this issue, yes. How often does directly trying to change the user's behavior by warnings/education/coercion actually work? When compared to putting in actual checks and safeguards to prevent them from continuing that behavior? But this is getting off topic. This is an issue for us, and I'm sure it's an issue for others.
Warning: Nitpicking rant and counterarguments at OP.
"A lot of people these days are putting far too much Web Content (WebAudio, ogg, obj, custom textures etc.)" There's this thing called the obj and texture cache for a reason.
"This wouldn't be an issue if everyone had fast Internet, however we sadly do not live in such a world." I agree with this point, However another alternative is just having people look into how to actually optimize their files. And as far as object files go, most obj files with a certain number of polygons, or around 2MB, will not stream.
"Due to people's misuse of PAC in such a fashion" Actually, if you ask me, this is using it to it's best point, the whole point is creativity. Sorry if using custom content to create what someone had in mind is "Misusing PAC"
"Their ping can skyrocket up to 999+ ping, meaning they are unable to play on a server whatsoever." I really can't combat this one, but I have never personally seen this, or anyone really, suffer their connection because of PAC. This may just be me though.
"PAC will accuse the Server itself for being the cause of "lag"" Pardon my language but: Fucking what? You do know the server itself does not download these files. PAC is like, 90 something percent clientside.
"This can potentially scare off players as they feel the server they're playing on is too laggy for them to enjoy." Never seen this happen. And I have again never seen anyone's internet suffer from PACs downloads.
"As of right now, there is no way to limit the amount of web content one can have in their PAC" There's no limits on anything. The whole point of the addon is for people to be creative and make whatever they want with however much of it as they want.
"There isn't even a log for Administrators or Server Operators to identify what belongs to who so they can deal with the offending players." This is true.
If I misunderstood anything you meant by this, please let me know
Hazbelll runs a completely different server than I do. We are friends and we're both having the same problems. he asked me to come here and post to show it's not just him. I also help run another completely different community from both his and mine, and they also have the same problems.
@LUModder It _is_ the cause of lag for clients who have _slow internet_. They are being _forced_ to download _all_ web content from where the URLs point to. This can quickly saturate their bandwidth.
It's nothing to do with the Server. I would love to implement a fix myself. Could you please point me in the right direction? I have the hook I need to have a function hook onto, but how would one get the amount of WebAudios/oggs/objs/custom textures etc. someone has in their PAC? This is a fault on my behalf, and I do apologise for my ignorance.
@Vuthakral Not sure what you're referring to with this cache. If you mean such content gets cached clientside so they don't have to keep re-downloading it, this is true, but until the client has downloaded the content, their bandwidth will be saturated if there is no headroom.
Let me sum it up this way: No matter how much anyone says this is a "problem", the chances of someone actually doing something about it at this day and age, is next to none, like less than 3%. Gladly you can try to do something about it for your servers, but it doesnt look like it's a very wanted feature outside of these specific servers. You all came here to complain how it is affecting your servers, where as my server, metaconstruct, Cygnus, Xenora, Flexbox (AKA The Lounge), and many other servers I have played on do not have this issue, and all of these servers are filled with people who make PACs beyond belief when it comes to complexity, creativity, and sheer "power" behind them. None of the people on any of these servers have had a problem like this over the course of years these servers have been going and using PAC. Seeing as these kinds of servers are the core closest to PAC itself (Mostly just Metaconstruct, though), there is a minimal chance anything will actually happen until the problem is spread throughout every server using it. Until then, let's call it an "Isolated incident which only happens under specific conditions", which just happen to be your servers. I'm not saying it wont happen, I am saying it is EXTREMELY unlikely. You are more than welcome to make your own fix the problem in the event nobody comes around, and they likely will not. (This may seem a bit rude, I do not intend that, I'm just saying from watching how these things happen from experience, this issue is sitting at a very low chance of actually getting any positive attention from the developers, minding you it was nearly a month and a half wait when the animation editor broke entirely. Or during the legacy scale update we had to wait a fair long time before it was actually given a proper fix, and then was reverted for whatever reason in a gmod update so we had to wait for that as well.)
"and all of these servers are filled with people who make PACs beyond belief when it comes to complexity, creativity, and sheer "power" behind them."
edit: ctrl+entered, sorry
We have people that do that too. Those sorts of well-thought out PACs with a lot of effort put into them are not the issue here. It's a few public PACs that are literally just music libraries that get pushed to everyone on the server, and copy/pasted by dozens of players who barely know how to use PAC.
It's not a problem with PAC itself, but that many users fail to grasp the concept of more web content in 1 PAC = the more data others need to download.
The more data others need to download = the more bandwidth needed to cater for the data's download.
If any of those clients have slow/poor Internet = Their bandwidth gets saturated by the data needing to be downloaded.
The real issue is the users themselves. They do not consider such factors and assume it's a non-issue, when in reality, it is. Unfortunately, constantly educating all users about this is much easier said than done, especially when we have no solid way to identify who has a PAC containing like, 500 WebAudios and the like.
Do you fast Internet? If so, you will never notice any issues regarding saturated bandwidth from web downloads via PAC. If you do though, you will notice this as a serious issue when your ping skyrockets up and lingers there for a long while as you slowly download everything there is to get.
Remember, this is only isolated to the web retrieval aspect of PAC and those who use it sensibly cause no harm. I know PAC can be used to do such amazing things and it's incredible for it. Sensible use of the web content aspect of it only contributes further to this. As @Razgriz-III said, we have users that do this too, but those without experience resort to public PACs that are just walking music libraries that everyone has to download.
I would like to remind you again that @NightlyH and @Razgriz-III run an entirely separate community from mine. This isn't an issue isolated to my Server, this is an issue isolated to servers that have lots of players on, all using PAC, some who have PACs that contain say, over 30 WebAudios, oggs etc. and have other players on who do not have the bandwidth to cater for this.
In no way do I want PAC to be restricted or watered down, but again, not everyone can happily enjoy playing on servers where the creativity of other's may be to make DJ PACs where they can cycle between 500 songs. If you _were_ to limit PAC in such sense, say, by serverside ConVars, their default could be so the limit is nothing: unlimited.
This was just a random idea I threw out. I did not specifically state that this was the solution. Heck, just having it log who has what in their PACs would be enough, then administration can take any necessary actions on a per-server basis, or update the clientside ConVars to prevent downloading of their respective content if disabled. By "Control" I mean "we need some form of management tool we can use to help us and the other users who find themselves unable to have an enjoyful experience due to bad ping via saturated bandwidth".
I posted this as an issue for those out there who do not have the world's No. 1 Internet connection, which even today in 2015, many do not. I should know, I am too, in this boat most of the time (when at home).
pac_ban people who abuse pac. Would be good to have some verbosity about how much data a certain player is using on their pac though.
Again, without logs to identify who has what in their PACs, this is nothing more than a wild stab in the dark. This issue regarding web content is primarily audio-based and we cannot see audio, nor may it necessarily be playing in their PAC when you're around them.
Again, someone might have a DJ-like PAC. This PAC could have dozens or hundreds of songs, all not playing, but one at a time. They might even stick to only playing a select 2 - 4 songs.
Hello, I've pretty much made an account just to comment on this, as it looks to be a rather sided discussion. I develop for another server (Entirely seperate from Hazbell's and the others.), and everything they say is valid. I've personally had issues where my ping jumps up to nigh-unplayable levels because of someone with 30 .obj, .mp3, etc are in their PAC. Putting in a convar may not be wanted by those "core" servers, but there's always the ability to just have it default to 0/infinite so that other servers are not affected if they do not know the convar(Like Hazbelll just suggested.). Just because you haven't seen an issue or experienced it yourself, doesn't mean it doesn't exist. That's a very ignorant way to view the world. I've also personally seen "copy/paste" PACs that are uploaded to several different places, rending the cache useless because the users are reuploading it to their own places. It's a bad habit of people to take things and upload it somewhere else, claiming it's theirs. @thegrb93 Like Hazbelll has stated, there's not always a way to KNOW who's doing it, and they also don't even realize they're doing anything wrong. A convar would eliminate any need to take that kind of drastic action against a user who doesn't even know it's affecting other users negatively.
Yeah I updated my comment too late.
Can't believe you guys could cause so much drama over PAC. I've developed for several servers, and ultimately this is just one of the many reasons why PAC is nothing more than a great idea poorly executed. There is little to no security involved, and while you can disable some features clientside, there's next to nothing the server admin can do apart from pac ban people actively.
PAC needs a complex permissions system, perhaps integrated with ULX to allow restricting and limiting various aspects of a loaded pac outfit.
I have 120kbps when at home.
I can play a YouTube video at 360p. No higher. Any higher, It will constantly buffer as it plays.
Now if I try to watch a 360p YouTube video when in Garry's Mod, on mine or any other Servers, my ping on that server will shoot right up to the 700 - 999 range, until the video has finished downloading.
A practical example of this would be the addon "PlayX". I have this disabled clientside in Garry's Mod because of exactly this. I only enable it when I want to watch a video on it. That addon also has a range on it, so when you're outside of it, no more video, likewise, no more downloading of said video.
Same principle with PAC here, except it's having my client download _many many_ audio files. In this instance however, I have no control over that, except one very radical move: Point all offending servers that host such content in my hosts file to loopback. That is not practical though as if I do legitimately wish to get anything from said blocked hosts, I can't. Informing other users who have slow internet to do the same is bad practice too.
Remember, not _everyone_ knows the technical aspect of computing. A lot of users do come on with just one intention: to play and have fun.
I don't believe this is drama, so much as a discussion being shot down for silly reasons by a developer and a server owner. But I do agree with the "great idea poorly executed" in some sense, there's many ways it could be optimized and improved, but I don't expect these kind of things out of a developer working on it for free. I do completely agree with the permissions.
Feel free to submit a pull request addressing this issue and it will likely be merged
Point me in the right direction on what I should be working with and I'll take a look.
What outcome do you want from this? Stop clients who disable such content clientside from downloading them? Allow Server Operators to set a limit on how much of one thing they can have in a single PAC before "wear" gets denied for it? Add logging to console of who has what in their PAC? All of the above?
Personally, I believe logging of when someone wears a PAC and a count on how much they have of each thing would suffice.
First (stop unnecessary downloads) is most desirable, second (set maximum http objects limit) would be a nice bonus, third (logging) is so easy I would include it no matter what. Might put it behind a "debug logging" cvar or something though
@Hazbelll Sent you a steam friend request. I'd like to help.
Any issue is a need regardless of priority. What issue are you talking about?
This is especially a decently sized issue when multiple servers care coming here with the same problem. Sure there are bigger other more "important" problems per-say but obviously this is something to look into.
Bigger issues in PAC you say? You mean like this: https://github.com/CapsAdmin/pac3/issues/200
Which was never looked into. I even answered your questions and gave you the possible offending PAC.
@suchipi Definitely should add logging. I don't know about anyone else here, but I'd be more than happy with just that. Again, my suggestions were _just suggestions_. I threw some out at random, your move was to pick one or more of them you thought would be a good solution, or even your own.
Please don't perceive me to be the bad guy here. I came here about this because me, other server owners and the users themselves are tired of the lack of control we have over the few who are trigger-happy on their web content.
Ok so. Here's my opinion on this entire situation.
@Hazbelll I know that you own a Pony server, as well as go to the PonyLiving server every now and again. I know that you suffer with lag in both areas. But guess what, it's not Pac3's fault, it's PPMs (Pony Player Model) fault. That addon is insane when tied with Pac3.
I myself have a bad computer (mostly a laptop) and I can say with complete confidence that my laptop can handle a pony server with no pac3, since all I gotta worry about is the rendering of those ponies. Before I continue though, let me address how annoying PPM really is. When your FPS hits a certain level, PPM auto clears all pony skins. Once FPS hits a suitable level, it boots back up, flooding your computer with render lag. What sucks, is that the process repeats itself. FPS goes up, PPM's rendering shuts down, FPS goes down, PPM goes up, rinse and repeat. This sometimes happens even when alone. It's annoying. Now back to the topic at hand. When pac3 is tied in with PPM, you get major lag from PPM.. which is basically constant if your FPS goes up and down constantly and if you got a bad computer. Pac3 is then added ontop, with it's own lag cause of the needed rendering of custom items. However.. pac3 is only bad when a heavy ass pac is loaded up for the first time. After that the pac has completely stabilized and you don't need to deal with lag.
Alone, both of these mods are fine. Metaconstruct is a fine example of pac3 as said before. There's no real problems on that server, even with a regretfully bad computer. Any pony servers with just PPM behind it has no lag issues itself either. I've been to PPM only servers and those work just fantastically, even when heavily saturated with mods.
Now to address a solution, Hazbelll. Remove pac3 from your Pony server, there's no real need to have Pac on there, I mean honestly. I have been on pony servers with pac and do you have any idea how weird it is on there xD There's people with like.. sexual objects on ponies. There's a reason why your kind is always being attacked dammit. Another solution is to lessen down the sheer amount of addons you have in a server, same goes to PonyLiving. And a third and final possible solution, get better servers. Sometimes servers cant handle the sheer amount of space mods bring.
That is all.
OH. I forgot one more thing since I'm god damn retarded.
Mods.
Too many mods can do a server bad. If you wish to operate a decent server with pac, use logical mods. Logical mods being like.. Playx, Wiremod, some Misc Roleplaying mods.. anything that would make complete sense to have Pac3 in your server. Totally depends on the whole topic of the server too, doesnt matter. Use minimal mods and you'll be good.
I can easily backup my lil post by also saying that having too many mods installed in Gmod could also = you crashing the moment you open your spawn menu. It's basically the same. Why flood someone with thousands of mods that they may not use. Only to make them crash later on if they got too many mods or addons.
Also.. for your information @Hazbelll, there is bigger issues with Pac3. Mainly in features and the like. We all need some features fixed and some added. I mean come on.. those are more important than fixing a problem that only you have. Come on now. xD
He's talking about pac http spamming his network, not render lag.
@thegrb93 Ok so. Here's the greatest solution of all time.
Take the ignore_pac command from MetaConstruct.. and jam it into Pac3. That single Meta command is the most useful command ever coded in that server. Dont like how laggy someone's pac is.. or dislike how sexually awkward it is? Type ignore_pac hoho_kakacoo and bam. You're good. Lag free. ignore_pac will also clear your cache of that pac's files, so you dont need to deal with it queued up.
Another good solution is to make this client sided. Kinda like pac3's settings for render distance.. only with http request limiters. Could be made to be set at low at default, like render distance being set to 1000 at default.
There you go. Done deal. Zippity do dah mother fucker.
@Fred-FredBurger I'm not talking about framerate "lag", I am talking about Internet bandwidth getting saturated, causing Internet lag.
I cannot remove PAC from my server, as my users want PAC. As a Server Owner, I cater for my userbase. PAC is an incredible thing too, but it does have its flaws. Hey, nothing is perfect, but it's nice to have the support of the developers when any bugs/issues/suggestions come about.
I am not going to go into details of what people do regarding NSFW and PAC on Servers. That's their business, not mine.
I don't know where the talk on the number of mods affecting a Server came from. Again, this is not an issue regarding servers, but the amount of web content clients can have other clients download, without any control for those clients, the server operators or administration to handle.
@Fred-FredBurger That'd be lovely if that would be implemented, but again does not solve it if you do not know who's PAC is the cause. Metaconstruct seems to be ahead, or at least has features that the main repository of PAC does not have.
@Moonakins That's cause yall using Workshop Pac3. Get the Github version of it. Workshop version doesnt get updated constantly... not as rapidly as the github version.
Yall hoes are behind the times yo. xD
Of course it doesn't, that's not what workshop is for. But it's one of the main ways servers use PAC, so it should be kept up regularly.
The workshop version should at least have major changes pushed immediately such as this proposed change.
Much like how @FPtje keeps DarkRP on Workshop updated regularly to keep up with the master branch of DarkRP on GitHub, unless it's undergoing some radical changes, which is very sensible (such as the current DarkRP 2.6.2 Beta).
This comment section gave me cancer.
@Vuthakral Way to keep this a constructive discussion. If you don't have anything to add to this, you might as well say nothing.
In all honesty, I really dont feel like having to suffer just because of a few peeps with super bad computers. So with that said, if Caps does consider this to be a thing. All I ask is that this is only an optional feature, not a permanent one. We will still sorta suffer when we walk into servers with those limits up and running, but at least we can go to our favorite servers to toy with our pacs in. That's all I ask.
Both sides win if that happens. No one has to suffer. The only bad thing is if the servers we love to go to has that limit implemented. Ho boy that will be an issue then. But still, we have larger issues at hand, mainly feature issues. Oh.. and the annoying risk of getting your pacs stolen by people using C++ or Lua. Gotta combat those as well. So yea, Caps or whoever is working on this addon still has to iron those out first before going into any server/client sided issues that mostly involve http links or something like that.
To anyone still lurking here I just want to post this saying: This is an issue thread, if you're not here to discuss the issue, then don't post. ( @Moonakins My last comment was a joke, trying to lighten the mood.... ) You have the issue too? Well good for you. It's already been posted and is up for discussion on how to be fixed. That's a guideline to follow everywhere in the "Issues" sections, not just this one.
That would be fine, if the issue was actually resolved on Github, which it isn't. Servers would choose at their own discretion what to set the restriction to, if a user doesn't like that (Such as you), they can just go to a different server. Also, the issue is internet, not bad computers. Which is a lot more widespread than people with 'insufficient' hardware. @Vuthakral It's a bad joke.
The performance of your computer doesn't influence the amount of bandwidth you have to cater for downloading/uploading, which again, is what this is all about.
Again, for perhaps the 50th time now, my suggestions were just suggestions. One of a few I stated in the original post off the top of my head. I don't like the idea of limitations either, but neither do users like having 999 ping because of all the content they're being forced to download via PAC. A balance is needed.
Again, again, again though; I personally would just be happy with logging. Users aren't restricted, server operators/administration can combat those who go overboard with their web content and practically order PAC to DDoS other clients. Everyone wins.
Oh I understand you completely really. I know I went a bit offtopic, but I wanted to kinda address those too just cause I felt it was best to do that.
Beyond that, this is all just discussion. We're all civilized humans here. No need start some flame war in space with lasers. We just gotta wait till we get to the point of having the technology similar to that in starwars to do that shit. xD
@Hazbelll Agreed. Just implementing a logging system would help a ton, and not piss off anyone at the same time. Beneficial for all parties here. The idea here was a suggestion to help the problem of bandwidth usage when PAC is using a downloaded file from a webhost (Dropbox, for example.) Anyways that's besides the point here. The point is that I think a logging system would be near perfect to solve this, as it would allow you to see who is streaming what and/or how many files within a single pac when they wear it.
@Vuthakral Actually wait, I dont think that would be the best idea... I really don't feel safe knowing that server staff can see the very contents of my pac via links from webhosts. I would rather have it where the Log will show the site in question, and how many files are streaming from there as well as the sheer amount of kbs being dumped out from that site. Reason why I say this is cause.. what if there's an admin who wants a part of someones pac.. they can just reach on in and snatch that part if they felt like it.
Have it display the filename and host site only then, not the direct URL. I can see your concern there too, I'd rather not have people stealing my models I make for PAC.
@Fred-FredBurger No flaming is going on here My suggestion on having more refined control to PAC in this sense just got an awkward reception from the developers. I apologise if anything was taken as offensive. I've tried to remain as neutral as possible in all of this.
Agreed. As I stated earlier, this is along the lines of what I wanted in the sense of logging too. If you look at my screenshot in the Original Post though, then you'll also know that your stuff ain't safe if it goes belly up.
@Vuthakral Finally, you agree with me. Thank you.
@Hazbelll Yea I noticed that myself. I had no reason to really mention that since I know that the only way those errors will appear is if a person's pac is in range of your render distance. I mean sure, it's still bad, but not as bad has having every pac being displayed at once in logs.
The biggest reason why this thread is a drama is because of @LUModder He first blamed the clients who suffer from other clients' PAC Web item spam, saying they should disable it clientside Then he blamed puush, because that is a bad host. After that he blamed the op for not removing PAC altogether! And then he blamed the op again for not telling his clients to behave Implicitly with that he blames the offending clients because the limit of Web content is stated in an unspoken rule that they should know about.
Lastly he blamed your entire community because this doesn't happen on some of the communities he knows.
Of course that causes drama. That is the minimum amount of incompetence you need to turn a PAC version of sbox_maxprops into this much of an argument.
I'm just glad @Noiwex isn't on because it would've turned 200x worse. Its irritating that people are being forced to read and learn pac's code in order to fix it since the devs don't have any intention of doing so.
OP wants to limit the bandwidth pac can use. How does that make you feel @Noiwex ?
This Image should give you a good overview as to why we need such Control:
A lot of people these days are putting far too much Web Content (WebAudio, ogg, obj, custom textures etc.) in their PACs, mostly by treating PAC as a music library and having all other clients download their content. This wouldn't be an issue if everyone had fast Internet, however we sadly do not live in such a world.
Due to people's misuse of PAC in such a fashion, those with slow Internet are unable to enjoy themselves as their bandwidth gets saturated with Web Content downloads from PAC. Their ping can skyrocket up to 999+ ping, meaning they are unable to play on a server whatsoever.
This is a vicious circle too as those who do experience horrific pings on a server due to PAC will _accuse the Server itself for being the cause of "lag"_ when in actual fact it's not the server's fault at all but _the forced downloads of other player's PACs_. This can potentially _scare off players as they feel the server they're playing on is too laggy for them to enjoy_.
As of right now, there is no way to limit the amount of web content one can have in their PAC and "wear" on a server, whether it be through the overall download size of all content combined, or a limit on how many WebAudio, ogg, obj, custom textures etc. one can have and "wear" in a single PAC. There isn't even a log for Administrators or Server Operators to identify what belongs to who so they can deal with the offending players.
I and many others would be extremely grateful if you would consider implementing some form of control for Server Operators or Administration regarding such issues with PAC.