[Release] Antinoob (auto-kick script by playtime)

I made a basic serverside script to kick players if their playtime does not match the minimum required because I’m tired of those little 2h-playtime-propkilling-kiddies joining my server and spamming it to death while I’m not watching.
The script is no guarantee though, but regarding the global achievement stats setting it to 24h filters 75% of the playerbase.
It gets the playtime from the achievementprogress on addict which is not the time you see in your steam library.
It also prevents regular guests from spawning while dead.

Thought i could come in handy for you so I’m sharing it.

This script goes intolua/autorun/antinoob.lua
I reccomend you to add some kind of menu controlled whitelisting or you got another addon which has a Whitelist with which you can replace the scripts one.



Leave feedback, improvements and bugreports.

You can bypass this by detouring net.Start or achievements.GetCount

Well if scriptenforcer is disabled and you’re faster loading your lua. But i suppose the ppl I want to get rid off don’t even know what lua is.

detouring net.start?

It’s still a horrible way to get rid of minges and the code is horribly approached, here’s where I lost my marbles:

ply:SendLua("net.Start(\"noobcheck_playtime\"); net.WriteString(\""..nwstr.."\"); net.WriteFloat(achievements.GetCount(5)); net.SendToServer()")

local net_start = net_start or net.Start
function net.Start(str)
    if str == "noobcheck_playtime" then

If you detour it you get kicked because it couldn’t check and because you’re not checked you can’t spawn anything during the time you’ve left on the server.

Also I never got time to load my scripts. As soon as I left the loading screen I got kicked.

If someone was wanting to bypass this on like a different account to get past a ban for hacking, they could load before autorun and detour net.Start that way

It would have to be net.WriteFloat but the easiest would just be achievements.GetCount.

You are one of the worst kind of people. People shouldn’t be kicked because of their playtime. Maybe they play in short bursts?

You would simply drive away those who could potentially be really nice players, only because they haven’t got a lot of playtime.

An easy cure for the “little 2h-playtime-propkilling-kiddies” is to step up your administration, to ensure there is at least one admin on at all time.

Or just have an anti-propkill script
My main use in something like this is for kicking alts if they are just ban evading. But there is a better way to do it which I don’t know how to do it so meh :\

^This, fucking this^

If you knew Lua, enough to make this script, you’d think you’d be able to counter prop kill, rofl.

Then they just bypassed my simple script and risked a VAC ban on their other account just to get on my server.

If they think a VAC ban is a good trade for getting on my server to minge and possibly get permad’ anyway…

From what i experience so far my script is doing its job perfectly even though its not 100% bulletproof.

I mean I could ban them for the time remaining they need so they have 1 try. And if the ban runs out before they reached the time goal they will get banned again.


They could be the nicest people on the planet and they would still be if they can join.

Yeah I played around with a script where ppl killed them self with their prop damage which is funny as joke and does surprisingly well in teaching it to them the skinner way.

It’s a tiny bit more difficult than that if you want to avoid buffer errors, as net.End() (among other net functions) will be called. Simple enough patch and unpatch with start and end, but you get the idea.

VAC banned, on gmod? lol

Anti prop kill scripts are also pretty shoddy. There’s no way to determine whether or not death by a prop was intentional or accidental. FPtje has release a very good video on the subject of anti prop kill scripts.

this is true, but if you have an anti-propkill script that takes away velocity and makes the prop not collide with other players when someone is holding it, then that solves most of the problem

All that script does is notify an admin when someone gets prop killed and it’s a completely retarded scripts, most scripts just disabled DMG_CRUSH damage which eliminates the risk of of this.

I’ve seen this and he’s got a point. Would be cool to get some code with some crazy neural net to determine that. If i could make this i wouldn’t have posted this.

But else theres a simple way. Just ask the attacker and the victim if this kill was intentional. And get a propkillkarma. Ofc I dont mean if the attacker says no but the victim yes its done with a stalemate. And i think they got time to klick a button after such an occasion as it shouldnt occur.

He made that video on my server a few years ago back when I had one. I feel so ashamed :frowning:

Just re-reading.

Also I don’t think making addons like this automatically make you a bad person. This means serverowners with password protection are even worse not to mention those with no server…
Could also argue about how bad it is to think of people in kinds.

I get the idea you think making a server where everybody can join should be a server where everybody can play. I don’t share this idea. For me a server is like a houseparty and you as houseowner define the rules like if you got alcohol then there are no kids allowed. And also if they dont match your criteria by not accepting your rules or the style you lead your server they should play elsewhere. I’m just setting the targetgroup of players I’d like to have.
I made a rules popup addon a while back where you had to tick every rule as read and the critics were that they got a shiny disconnect button if they’re annoyed by it (it would only annoy you if you’re just waiting the delay it takes until you can tick them without reading). And im perfectly fine if players leave because they dont like it as there are plenty servers without.
So my rule is I’d like to also have fun myself without supervising everything and I want more experianced players than those I have to teach on how to use the spawnmenu.
Teaching e2 is what i’d rather do and create them with people or see and show what every one got and share tips.
Just saying my server my rules and player are for me guests. And if a guest want to come into my house they have to abide by my rules and fit my criteria.

Even if it’s a server and not a house doesn’t mean for me that less well-behaved people are more welcome.

I’m not admin because I like to supervise players. I like to create custom scripts while ingame not entirely active instead on my desktop in n++ for the server and play with friends and give this targetgroup a chance where more nice people are than I could ever be comfortable with.

30h aren’t much. It’s 1-2 weeks of playing after that time most people got the basics in knowledge and behaviour. Thats the people I want to play with, thats the people I’d invite to my houseparty.
This doesn’t that I hate everybondy else but in my experience new players tend to do bullshit because they can’t build due to lack of knowledge which counts to the conditions to play there. (and I know there are exceptions like people who are playing with their second accound with little playtime because they’re cant play with the other for whatever reason)

You could also use the addon and set the minimum time zu 2-5h. I’m not saying you have to use it with 30h nor you arent allowed to edit it the way you want. If you’d only like the part where dead people can’t spam or you just like the information on how much time they played to get a basic idea of who in terms of experience you’re probably playing with you can just use this.
I released it not only for you to use it also to show that you’re not only able to get the playtime from the steampage if its not private.

@Hafnium: sendLua is the only way I can think of for sending player luas with random predefined strings also I still dont really get whats so bad about it. It not much to send and therfore fast and gets executed quickly. Always getting it before I can even look around ingame.

If the hook PlayerConnect would return the playtime and refuses the connection if I return a string or false. I’d definetly be using this.

I’m also trying to widen my knowledge here with yours but besides hate the only useful thing I’m getting here is how I could bypass my own scripts (and useful is neither sarcastic nor ironic. I’m really thankful about it because I tried myself to think of ways and the only security measure I could think of was to let the client send you a random code to check for a valid netmessage).

net_start = function() end

Aaaaaand your detour is broken!

just do

local net_start = net.Start

[editline]2nd September 2014[/editline]