Garry's Mod

Garry's Mod

// DR5VE & SEEK //
 This topic has been pinned, so it's probably important
Zet0r  [developer] Jun 14, 2024 @ 5:37am
FAQ & ConVars/Settings
FAQ

Q: Will the car be available in Sandbox?
This is the #1 most asked question, and believe me, I've heard your pleas. It wasn't my intention to make a Sandbox vehicle because I didn't think my amateurish attempt could beat well-established vehicle frameworks like simfphys and LVS. But it seems a lot of you really enjoyed the driving experience, and wish for it to come to Sandbox.

In theory, the gamemode is coded to be very loosely connected to the car entity, which means the car is almost fully standalone already. Just for now, I want the gamemode to be the star of the show, but I've seen how much you ask, so I might a little bit down the road.

Q: Can we change the car model/entity?
Due to my agreement with Renault, for the duration of their MODDER5 campaign, this will not be possible. However I've already been granted permission to allow this when that campaign is over, and the whole gamemode is already coded to not care about *which* car is used...

Q: Can we change the team colors?
Same as the question above.

Q: Why is my car so nose-heavy when in the air?
It's actually not, it is actually yourself tilting it forward. WASD also controls the car in midair, and holding W will make you frontflip. Likewise S will backflip, and A/D will rotate you sideways. If you do not hold any buttons in midair, there is actually an *upright* force that auto-adjusts you to land right-side up.

Q: How do I adjust time limit and other settings?
See ConVars/Settings section below.

Q: How do I make a Translation for the game?
See Translation section below.

Q: What is the point of Ctrl?
When you press Ctrl and do the ramp tilt, any low enough obstacle your wheels collide with will actually let you ramp off of them. Use this to drive up staircases, or over small fences and road barriers. Just make sure your wheels are the only thing that makes contact, then it will launch you forward.

Q: Are there any other "hidden mechanics" that are good to know?
Yes, actually. If you're drifting, activating Boost will actually push your car against the drift and help you regain grip and drive forward much faster. Similarly, when going backwards and then braking, Boosting will accelerate you forward much faster. Oh, and you can also partially blind your opponents with your Headlights by pressing F.

Q: I get stuck on walls a lot. Can you fix?
Unfortunately, this is not fixable. For the wheels to drive smoothly, they are required to be spawned as spherical physics objects instead of the cylindrical shape of wheels. This means that the wheels actually extend sideways out further than the model shows. If you drive into walls, I've done my best to make my code temporarily turn your wheels frictionless so it shouldn't affect you, but this is not always consistent, and if the wheels remain rubber friction, it will completely grind you to a halt. We call this the "wall glue" bug.

The best thing you can do, is avoid driving up against walls. Most good maps and gameplay comes from more open streets than narrow alleyways anyway, so try to stick to those. You *can* however still try, and hope the frictionless mechanic comes in to save you, as it should *most* of the time.

I have a question that wasn't answered here!
Ask in this thread, and I will answer. If enough people repeat the same questions, I may add it to this list.

ConVars/Settings
Most of the game's settings come in the form of ConVars. You are familiar with them, if you've played any gamemode. All ConVars/Settings of this gamemode begin with the prefix drs_, and they can be accessed via the Console (Shift+Esc). Here is a list of all in the game, and what they do:

  • drs_timelimit [seconds] - The time limit of the round.
  • drs_headstart_time [seconds] - How big a headstart Drivers get.
  • drs_postround_time [seconds] - How long after a round ends before a new one begins.
  • drs_boost_time [seconds] - How long players can Boost.
  • drs_boost_recharge_rate [fraction]
    How quickly Boost recharges. A value of 0.5 means you gain 0.5 seconds of boost every second recharging.

  • drs_boost_recharge_delay [seconds]
    How long after Boosting that Boost begins to recharge.

  • drs_ping_cooldown [seconds]
    How long the cooldown is between the Ping ability. Setting this to 0 can be used to disable Ping entirely.

  • drs_ping_close_distance [units]
    The distance at which the Ping mechanic displays rings instead of arrows. Setting this to 0 will make it always arrows. Setting to -1 will make it always rings.

  • drs_underwater_time [seconds]
    How long players can survive underwater before taking drowning damage. Players who die are automatically caught and turned Seekers upon death. Set to 0 to instantly begin taking damage. Set to -1 to give infinite underwater time.

  • drs_unstuck_delay [seconds]
    How long you must hold [R] in order to flip/reset your car. Setting to 0 makes it instant. Setting to -1 disables this mechanic.

  • drs_firstperson [0/1/2]
    Optional First Person mode. 0 = Default Third Person, 1 = First Person, 2 = Allow players to toggle (Using [Alt]).

  • drs_allow_custom_playermodels [0/1]
    Allows players to use their own chosen Player Model from Sandbox. Setting this to 0 forces all players to use random Citizen models (By default, custom models are allowed).

Translation
This gamemode supports full client-side translations based on the player's own game's language setting. This can be chosen in the lower-right corner of Garry's Mod's main menu.

These translations support special translation files outside of the gamemode, meaning you can provide your own translation to your friends, server, community, or even public Workshop, without modifying the game.

Creating a Translation
Create a new .lua file and paste the following in:
return { ["state.waiting"] = "AWAITING PLAYERS", ["state.headstart"] = "HEADSTART", ["state.ongoing"] = "TIME LEFT", ["state.postround"] = "ROUND OVER", ["winteam.drivers"] = "DRIVERS WIN", ["winteam.seekers"] = "SEEKERS WIN", ["winteam.none"] = "ROUND OVER", ["winreason.time"] = "TIME LIMIT RAN OUT", ["winreason.seekersleft"] = "SEEKERS ABANDONED THE MATCH", ["winreason.driverscaught"] = "ALL DRIVERS WERE CAUGHT", ["winreason.driversleft"] = "DRIVERS ABANDONED THE MATCH", ["winreason.none"] = "Round restarted by administrative power", ["hud.headstartrelease"] = "YOU WILL BE RELEASED IN", ["hud.unstuck.hold"] = "Hold %s to Recover", ["hud.unstuck.press"] = "Press %s to Recover", ["hud.respawn"] = "Press %s to Respawn", ["hud.ping"] = "Press %s to Ping nearest opposing player", ["hud.kmh"] = "km/h", ["alert.lastdriver"] = "LAST DRIVER STANDING", ["scoreboard.respawn"] = "Respawn", ["scoreboard.respawn.unavailable"] = "Only available to Seekers during round", ["console.langnotfound"] = "Could not find language file for language '%s'. Kept language '%s.'", ["console.langloaded"] = "Successfully loaded language '%s'.", }
Replace all text on the right-hand side with your translated versions, without changing the text inside the square-brackets. Remember quotation marks and commas.

Name this file "lang_[language code].lua", where [language code] is the language-specific code for the language you are translating. For example, English is "lang_en.lua" and French is "lang_fr.lua".

Installing
When you are done, place this file in lua/driveandseek either in your addon, server, game, or anywhere content is mounted to the lua folder in Garry's Mod.

Now, when switching to this language in-game, it should update all the UI and HUD across the whole game to reflect your updated language. Feel free to upload your translation files to the Workshop if you wish to share. You can link any translation in here, and I will attach them to the main Workshop page.
Last edited by Zet0r; Jun 18, 2024 @ 1:13pm
< >
Showing 1-14 of 14 comments
S0urc0vi4 Jun 14, 2024 @ 9:28am 
Are there more gamemods planned with cars? Well, let's say I would be interested to see the gamemode derby. Well, or gamemode chases from cops for survival, just like in the need for speed most wanted.
Zet0r  [developer] Jun 14, 2024 @ 1:14pm 
Originally posted by xXx-Mr.S0urc0vi4ch-xXx:
Are there more gamemods planned with cars? Well, let's say I would be interested to see the gamemode derby. Well, or gamemode chases from cops for survival, just like in the need for speed most wanted.
No plans to add other sub-modes to this gamemode.
supacool9 Jun 14, 2024 @ 4:29pm 
Does Renault allow you to port the R5 to SFM?
The car seems too interesting to just be 'lost media' after the campaign ends..
Zet0r  [developer] Jun 14, 2024 @ 5:56pm 
Originally posted by supacool9:
Does Renault allow you to port the R5 to SFM?
The car seems too interesting to just be 'lost media' after the campaign ends..
I do not have any experience with SFM, nor time to do that. I have no idea if they allow it or not, I'm sure they would, but that's not something I'm going to do.
S0urc0vi4 Jun 14, 2024 @ 9:37pm 
Originally posted by Zet0r:
Originally posted by xXx-Mr.S0urc0vi4ch-xXx:
Are there more gamemods planned with cars? Well, let's say I would be interested to see the gamemode derby. Well, or gamemode chases from cops for survival, just like in the need for speed most wanted.
No plans to add other sub-modes to this gamemode.
is it possible to make them separate from this gamemode?
Zet0r  [developer] Jun 15, 2024 @ 10:16am 
Originally posted by xXx-Mr.S0urc0vi4ch-xXx:
Originally posted by Zet0r:
No plans to add other sub-modes to this gamemode.
is it possible to make them separate from this gamemode?
Maybe, I haven't really thought that far. It is certainly possible to make an addon that just grabs the GAMEMODE table and overwrites the relevant functions that determines winning or losing. I also have some hooks that run with the gamemode, which can be used to alter some of the behavior (such as whether a player gets caught in a collision).

It will require developer knowledge however, as well as decompiling the addon to inspect how the code works so you know what to overwrite. I am always fine with external modifications, so long as they don't copy any pre-existing code, but only have the code that needs to be modified, and just inject that :) Then there's no stealing in the first place

(So basically, don't copy all my code, make changes to it, then upload it as a second version. Instead, make code that checks if the gamemode is "driveandseek", then gets drive and seek's GAMEMODE table, and then overwrites *only the necessary* functions, leaving those alone that it doesn't need to)
S0urc0vi4 Jun 15, 2024 @ 12:16pm 
Originally posted by Zet0r:
Originally posted by xXx-Mr.S0urc0vi4ch-xXx:
is it possible to make them separate from this gamemode?
Maybe, I haven't really thought that far. It is certainly possible to make an addon that just grabs the GAMEMODE table and overwrites the relevant functions that determines winning or losing. I also have some hooks that run with the gamemode, which can be used to alter some of the behavior (such as whether a player gets caught in a collision).

It will require developer knowledge however, as well as decompiling the addon to inspect how the code works so you know what to overwrite. I am always fine with external modifications, so long as they don't copy any pre-existing code, but only have the code that needs to be modified, and just inject that :) Then there's no stealing in the first place

(So basically, don't copy all my code, make changes to it, then upload it as a second version. Instead, make code that checks if the gamemode is "driveandseek", then gets drive and seek's GAMEMODE table, and then overwrites *only the necessary* functions, leaving those alone that it doesn't need to)
I don't know about those who want to take the game code, but I think maybe you still have ideas that you will make before the players.

I'm sure people are waiting for more gamemodes with cars. I won't rush you or force you, I'll just say: good luck with your development, I'll be waiting for more similar gamemodes :steamthumbsup:
Last edited by S0urc0vi4; Jun 15, 2024 @ 12:19pm
Erick_Maksimets Jun 16, 2024 @ 12:49pm 
I noticed that you don't add community translations to the gamemode, but if you change your mind, you can add Ukrainian. I created it purely for my own comfort, but I don't think players will download it separately through the workshop, it would be much better if all languages were integrated into the gamemode a priori.
return { ["state.waiting"] = "ОЧІКУВАННЯ ГРАВЦІВ", ["state.headstart"] = "ПОЧАТОК", ["state.ongoing"] = "ЗАЛИШИЛОСЯ ЧАСУ", ["state.postround"] = "КІНЕЦЬ РАУНДУ", ["winteam.drivers"] = "ПЕРЕМОГА ВОДІЇВ", ["winteam.seekers"] = "ПЕРЕМОГА ШУКАЧІВ", ["winteam.none"] = "КІНЕЦЬ РАУНДУ", ["winreason.time"] = "ЧАС ВИЙШОВ", ["winreason.seekersleft"] = "ШУКАЧІ ПОКИНУЛИ МАТЧ", ["winreason.driverscaught"] = "ВСІХ ВОДІЇВ ЗЛОВИЛИ", ["winreason.driversleft"] = "ВОДІЇ ПОКИНУЛИ МАТЧ", ["winreason.none"] = "Раунд перезавантажений зусиллями адміністрації", ["hud.headstartrelease"] = "ВИ ВИРУШАЄТЕ ЧЕРЕЗ", ["hud.recover.hold"] = "Утримуйте %s, щоб відновитися", ["hud.recover.press"] = "Натисніть %s, щоб відновитися", ["hud.respawn"] = "Натисніть %s, щоб відродитися", ["hud.ping"] = "Натисніть %s, щоб відстежити найближчого гравця протилежної команди", ["hud.kmh"] = "км/г", ["alert.lastdriver"] = "ОСТАННІЙ ВОДІЙ", ["scoreboard.respawn"] = "Відродження", ["scoreboard.respawn.unavailable"] = "Доступно лише команді шукачів під час раунду", ["console.langnotfound"] = "Не вдалося знайти мовний файл для '%s'. Залишається '%s' мова.", ["console.langloaded"] = "Успішно завантажено '%s' мову.", }

!!! Ukrainian lang code is UK, not UA !!!
Zet0r  [developer] Jun 17, 2024 @ 6:37am 
Originally posted by Erick_Maksimets:
I noticed that you don't add community translations to the gamemode, but if you change your mind, you can add Ukrainian. I created it purely for my own comfort, but I don't think players will download it separately through the workshop, it would be much better if all languages were integrated into the gamemode a priori.
return { ["state.waiting"] = "ОЧІКУВАННЯ ГРАВЦІВ", ["state.headstart"] = "ПОЧАТОК", ["state.ongoing"] = "ЗАЛИШИЛОСЯ ЧАСУ", ["state.postround"] = "КІНЕЦЬ РАУНДУ", ["winteam.drivers"] = "ПЕРЕМОГА ВОДІЇВ", ["winteam.seekers"] = "ПЕРЕМОГА ШУКАЧІВ", ["winteam.none"] = "КІНЕЦЬ РАУНДУ", ["winreason.time"] = "ЧАС ВИЙШОВ", ["winreason.seekersleft"] = "ШУКАЧІ ПОКИНУЛИ МАТЧ", ["winreason.driverscaught"] = "ВСІХ ВОДІЇВ ЗЛОВИЛИ", ["winreason.driversleft"] = "ВОДІЇ ПОКИНУЛИ МАТЧ", ["winreason.none"] = "Раунд перезавантажений зусиллями адміністрації", ["hud.headstartrelease"] = "ВИ ВИРУШАЄТЕ ЧЕРЕЗ", ["hud.recover.hold"] = "Утримуйте %s, щоб відновитися", ["hud.recover.press"] = "Натисніть %s, щоб відновитися", ["hud.respawn"] = "Натисніть %s, щоб відродитися", ["hud.ping"] = "Натисніть %s, щоб відстежити найближчого гравця протилежної команди", ["hud.kmh"] = "км/г", ["alert.lastdriver"] = "ОСТАННІЙ ВОДІЙ", ["scoreboard.respawn"] = "Відродження", ["scoreboard.respawn.unavailable"] = "Доступно лише команді шукачів під час раунду", ["console.langnotfound"] = "Не вдалося знайти мовний файл для '%s'. Залишається '%s' мова.", ["console.langloaded"] = "Успішно завантажено '%s' мову.", }

!!! Ukrainian lang code is UK, not UA !!!
I don't think I will add other languages directly in 🤔 It will basically be something I constantly have to keep updating for then. But I do link all translations uploaded to the workshop in the description, so people can find it.

I do agree, in general it might be smarter just to throw a bunch of translations in. Maybe I'll do it once I get like a good chunk of languages to add at a time.

Also, to be honest, I only intended to make the gamemode english originally. Renault was the one who wanted me to add french (I do not even speak french)
mikesayshi Jul 30, 2024 @ 8:35am 
Once the deal with Renault is over, would you plan on making different car classes that handle differently? i.e. a drag style car that has worse handling but excels in straightaways, a rally type car with better handling and suspension for off-road driving, etc.
Really really fun game, I played it a lot with some friends and had a blast. Only thing that would make it really good would be to be able to chose your team, like having a list where player can enter to start as seeker. I somehow very rarelly get to be a seeker, and some people would rather just play has drivers. But really, awesome gamemode
How can I get this to run on a server? I want to make a public server for this, 100% free, but can't figure out how to make the server run this as a gamemode because its more of an addon file
< >
Showing 1-14 of 14 comments
Per page: 1530 50