What would you change if you could?

We’ve been doing a lot of talking about Garry’s Mod 2 internally. Mainly about mistakes that were made in Garry’s Mod. What we would change.

So we’ve come up with a few things we hate. The hook system is kind of wrong & invites addons to break each other - it might be better to run each addon in their own Lua instance. I hate Lua syntax, Garry’s Mod uses a changed Lua syntax. I would like to go further and change that even more. Addons should be sandboxed by default and ask for advanced permissions - like phone apps do - to access hard drive, camera, mic etc. Workshop downloading should also have ingame browsing and spawning - like the old cloudbox system. Have to include modules - instead of automatically loading 30 lua files for each addon which it probably won’t use.

What would you change? What would you get rid of? What would you make easier?

It’s not a change / removal - but I would like mysql access ( I guess you could say? ) implemented into gmod and not a thirdparty module such as tmysql or mysqloo.

A event system similar to CraftBukkit’s, where you can have priorities and modify the outcome of an event while still letting other event handlers run.

Concerning syntax, I quite dislike the C operators (Mainly || and &&), but this can be quite a controversial topic. I suggest we stick to regular Lua syntax with perhaps the exception of != as I find ~ harder to reach. If we keep the different syntax, a different file extension would be nice. As of right now, there’s no way for me to distinguish Lua from GLua in my text editor and I end up with conflicting plugins.

Edit:

About addons running in their own sanboxed instance, make sure not to remove the ability for addons to communicate with each other. If anything, this should be encouraged in a nice way to allow for better structures. (Possibly dependencies?, built-in package repository?)

Edit:

Better HTML support. Awesomium in its current state isn’t that good. Something that is well supported, updated and recent. Making UI’s with proper HTML 5/CSS3 would be quite nice.

Will Garrys mod 2 be on source 2?

There shouldn’t be any syntax changes to Lua. Either use vanilla Lua/LuaJIT or a different language entirely.

An engine that isn’t over 10 years old and can handle more than 8k entities, doesn’t get unstable over time, allows bigger maps, does proper multi-threading (really important), more flexible in general. After that we can focus on the little things.

I would be careful regarding sandboxing each addon individually in terms of hooks and what not. You probably wouldn’t be able to have one addon be a base for other addons anymore (See: TDM Cars base, SCars base, etc.).

would be awesome if voice was touchable by Lua and treated like sound.PlayURL

This is not an AMA.

GMod 2 is sure as hell won’t be running on Source 1.

An AC.

For those of you that rated my post dumb I’ll be laughing when cac can’t detect that basement dwellers c++ cheats.

Compatible with as many games as possible, if possible with Source 1 games. Look at how many people wish that GMod would be compatible with L4D2, Portal 2 or CSGO’s maps.

If it’s possible, I would definitely move GMod to a newer version of source engine.
I am sure it would bring way more options and possibilities as well as increase it’s capabilities.

Native support for an addon configuration panel. Currently, each addon needs to make their own configuration window, each with their own twist, and it gets tedious after a while, having to remember how to open each seperate configuration window. With native support, it could all be found in one place, with a similar style, and would help players who are unfamiliar with the addon in question.

I think this came up as a community suggestion.
It would be nice to be seen originally on gmod.

I was thinking about this and I don’t think Garrysmod 2 would really be able to do well without being on Source 2 simply because on engines like UE4 and what not you don’t have the massive assortment of props like in Source (Because Valve allows Garry to have gmod mount content from other source games).

More steam api bindings for Lua ( permission system will stop people from being malicious with it ).

Workshop item categories, instead of everything being merged together with a different tag.

Move away from packing addons into gmas, Valve added metadata support for workshop items in the UGC api, and also packing stuff breaks their delta updates support.

Lobby and MatchMaking system for certain gamemodes, each gamemode installed on the system can register for matchmaking support, which will show the dedicated button on the menu, along with being able to invite your friends over to the lobby.

This was more of a Source issue, but file conflicts. You could have 5 versions of the same map or model with the same name at once floating around, causing a lot of “differing map” issues or having the incorrect model/texture. Also, servers and addons could override default models and textures without client permission. Along with the permissions system that you mentioned for addons, a permission or file conflict resolve for servers downloading their own version of files would be great. I think bringing that mount menu showed in the GM13 beta over to Source 2 would also be very cool.

Also, thank god no more Awesomium

I would like to see all content + Lua loaded from a URL you host yourself (kind of like fast download, except a system which actually works) whereby you can modify/add/remove content and the server will auto-sync existing and new clients to the latest versions; including reloading models/materials if needed.

The existing ‘reload’ system is insufficient as it doesn’t even work properly in dynamically loaded file situations unless reloading from init/cl_init and thus will reload all code; not just deltas, and only works on Lua; not all content.

More than that, I would like to see all of the BS restrictive limitations removed from GMod as a whole. The 2048 modelprecache limit, the 2048 Lua file limit, etc. Allowing players to bypass server downloads with cl_downloadfilter. I understand your point that clients shouldn’t have to download 50GB if the server says so, fortunately clients have this magic thing called a cancel button they can use if the process is taking too long. So since they can cancel the entire process and not join, it’s better than having 13 year olds spamming chat about missing content because they don’t know how to work a zip file or allow a server to download files to them. Arbitrary limitations need to go – This is 2015, not 2004. If the source engine can’t handle something then let us actual developers figure it out by experimentation.

Another change is obvious: remove the workshop limitations (100 MB client, 64 MB server) or simply replace it with a cloud-loaded/toybox kind of system like before where WE the server operators can host our own content (again, like fastDL) without limitations. It shouldn’t be up to ‘Team Garry’ or players what a server includes as content on their server if the game designer deems it necessary to have all that content. As of now Fast download is completely broken making large maps that include their content impossible to automatically get to clients due to workshop limitations. (BZ2 is completely broken and downloading literally the exact same map the server is running without BZ2 produces CRC mismatch errors).

Another thing that needs to change is the server browser. Sorting games by most popular keeps the same 4 shitty games popular (sandbox, darkrp, ttt, prop hunt) and original content undiscovered. The way the servers come in also makes it nearly impossible to click into the category you want as they are constantly changing.

I could go on and on for ages but the most important feature of all would be to have more competent programmers actually working on this instead of abandoning it and having 4 updates a year (important exploits have taken months to years to even get patched). Robotboy is immature in his support replies and his contributions to the github are largely taken from others or his own code is flawed and has to be reverted constantly.

Anyway of making the GMod servers on multi-core?

This is the part that most likely won’t be making into GMod 2.

First of all, Valve hates GMod being able to mount other games.

Secondly, what games can we possibly mount since we are moving to a different engine, that potentially doesn’t even have any games on it yet?

I know that being able to play Half-Life 2 in GMod is like the best part about it for me.

I am sure there will be people who are willing to port the maps and models and what not from GMod 1/Source 1 to GMod 2, just like people are converting csgo models and maps to GMod.