alt:V vs FiveM

Let it be known that this is in response to those who have asked me about the biggest differences between alt:V and FiveM and why they should choose alt:V over FiveM. This is going to cover a few different topics and will be more geared towards developers and development teams who are looking into their options.

If you want to hear about my opinion of alt:V vs RageMP you can check that out here: https://stuyk.com/alt-v-vs-rage-mp-which-is-better/

The Biggest Differences

Slots

  • FiveM requires you to pay for higher slot count on servers.
  • alt:V can theoretically hold over 4,000 players in a server and you don't have to pay for a single slot. Completely free.

Technical Support

  • FiveM requires you to pay for technical support in their Discord.
  • alt:V nourishes its developers and is built around teaching new developers and old developers how to use the API and answer general information related to GTA:V scripting. Most of the community has industry professionals working the helms.

Voice Services

  • FiveM usually relies on a mix of open source or paid voice services that use external programs such as Teamspeak, Mumble, etc.
  • alt:V built their own voice chat that can handle up to 500 players out of the box. It includes things such as proximity voice chat, 3D sound effects, and interior muffling. All for free.

NPCs

  • FiveM has NPCs that are synchronized based on client ownership.
  • alt:V has realized that NPCs will limit the amount of players able to play in a single server. They removed them so you don't get access to NPCs on alt:V. However, third-party projects do exist to bring NPCs to alt:V but they are not very mature if not abandoned. (Basically we don't care about NPCs).

User Interfaces / NUI / CEF / WebView / etc.

  • FiveM lets you write interfaces with html, js, css, etc.
  • alt:V lets you also write interfaces with html, js, css, etc.

Synchronization Engine

  • FiveM is heavily reliant on natives for synchronization. Which means it uses the built in native functionality that comes with GTA:Online. This is why you can pit a car in FiveM without actually hitting it. It's poorly implemented and is similar to what you would see from SAMP before they applied their lag shooting fix.
  • alt:V is heavily reverse engineered to the point where they built their own synchronization engine. The synchronization you get at 5 players is the same synchronization that you get at 600 players. Everything is 1:1 and this can't be more obvious than a clip from a small game mode that was written where you collide with vehicles to steal a flag. You can even see that these players are mere centimeters away from each other and colliding with the flag.

Resource Availability

  • FiveM is the most popular modification for GTA:V it will obviously have a ton of resources available for you easily copy and paste.
  • alt:V while the code base is quite mature it means that you will be writing more code in order to create your server. However, plenty of open source examples exist for core functionality though framework's like Athena for alt:V. We also have a hub for easily browsing open source repositories.

Patch Day

  • FiveM will cache older versions of GTA:V so you can continue playing on the older version. Updates can sometimes takes months to get the newest content from GTA:V.
  • alt:V will need to be updated by the team but usually within 72 hours you will have access to the latest GTA:V content. We had the tuner update available within 48 hours.

Vehicle Mods / MLOs / Clothing / etc.

  • FiveM obviously supports all of that and client-side mods including ways for clients to inject mod menus and cheats into their client(s). You can simply download menus from GTA5-Mods and run wild with them. Remember the lua injector that was released with FiveM's binaries?
  • alt:V  believes that mods should be defined by the server for an experience created by the server creator. Which means we don't allow any client-side modifications on alt:V except for a few visual mods like NVE. This prevents a majority of hacks, cheating, etc. solely because it makes it less accessible for script kiddies.

Development Stack for FiveM

FiveM has various languages available such as Lua (Biggest / Most Used), JavaScript, and C#. Getting started with FiveM will pretty much stem down to diving deep into documentation and figuring out how to setup your server infrastructure. You'll be doing a lot of manual things like downloading server binaries, setting up folder structures, etc.

This is more apparent when you're using a programming language like Lua since there doesn't seem to be any development standardization in place to help new developers understand where to place files and write code. Let alone that the most popular language that is used by FiveM doesn't even have a lot of support for things like auto-completion in modern IDEs such as VSCode.

There is also a major preference for SQL based Databases over at FiveM. Where these databases are still standard issue in today's professional environments there isn't a lot of options to choose from when you are using a language like Lua.

This makes it a bit more difficult for a new programmer to get into FiveM since you either use Lua or find your own way. Not to mention that Lua while it is an easily embedded language it is definitely not a popular language used by professionals in the industry.

All of your examples and coding examples will likely be from other more talented developers in the FiveM community. Why do you think developers are always so salty when you steal their code?

The Problem with Learning Lua

With that being said I think it's wise that if you are coming in as a new developer into the industry of Software Development, Game Development, or anything else you are not going to want to use an obscure language such as Lua to pad your resume with experience.

Not a lot of companies out there are hiring just based on your Lua experience.

Development Stack for alt:V

alt:V has two languages available on server-side and one language available on client-side. JavaScript and C# for server-side and JavaScript for client-side. Getting started on the alt:V platform can go in one or two direction(s) depending on who you listen to.

You can either dig through the documentation and download server binaries and set everything up yourself OR you can simply download or clone one of the dozens of boilerplates available for alt:V on Github. You can find a majority of these boilerplates on alt:V's resource hub.

Want to know how fast setting up an alt:V server is? Let me show you that you can start an entire fresh alt:V server for TypeScript (JavaScript) within 40 seconds with the tooling available for alt:V.

Okay but what about refreshing code and individual resources? alt:V does support that but we've also got some really incredible boilerplates that make restarting your server incredibly fast.

Due to alt:V not being heavily reliant on Lua we get access to the wonderful world of NPM for JavaScript and NUGET for C# packages. Which means you can use any database package, any WebSocket package, and messaging protocol that you want. You've got literally millions of options to choose from to help you build your server-side infrastructure.

Not only will you have access to the most robust infrastructure in modern day development today. You also will be learning a language that is used by industry professionals to build your server. Which means writing code for complicated server logic is merely a google search away.

Not only are you learning with industry professionals you are also using the same exact tools as these industry professionals.

Why choose alt:V over FiveM?

The synchronization of alt:V alone is far superior to FiveM and even RageMP. It is something that you will not realize until you experience it yourself. Everything inside of alt:V is pretty much already synchronized so you don't have to worry about synchronizing things like Animations, Vehicle Status, etc.

Here's a list of what alt:V has Synchronized

  • Player/Ped Clothing
  • Player/Ped Appearance
  • Player/Ped Animations
  • Player/Ped Tasks
  • Player/Ped Driving Tasks
  • Players on Ladders
  • Players Shooting
  • Players Fist Fighting
  • Players Rolling
  • Players Crouching (Have to change stance.)
  • Players Crawling (Have to change stance.)
  • Vehicle Damage
  • Vehicle Mods
  • Vehicle Colors
  • Vehicle Movement
  • Vehicle Crashing
  • Objects from Tasks
  • Swimming
  • Diving
  • Waves (Weather Dependent)
  • Wind Turbines
  • Street Lights
  • Moving Stunt Props
  • Anything that uses Network Time

Why would I pay extra for FiveM's slots get worse synchronization, pay for technical support, and on top of all that waste my time learning a language that isn't even used by industry professionals? Not sure; but I hope this brief post gives you some insight into why you should start learning with https://altv.mp/

Last, but not Least

The developer of their own project doesn't even believe in their own project and even they believe that alt:V is the better choice.

See Ya Later

Stuyk

Stuyk