/altv-rust

Server-side alt:V API for Rust (WIP)

Primary LanguageRust


Server-side alt:V API for Rust

crates.io

altv::events::on_player_connect(|event| {
    let name = event.player.name()?;
    altv::log!("player with name: {name} connected!");
    Ok(())
});

New server-side Rust module for alt:V platform (WIP)

Big thanks to the creator of the first Rust module, as their work helped me understand how to start my own module

Docs

API documentation can be found here

How to use

Before start writing your server-side in Rust you need to install LLVM

If you are on Windows, don't forget to set LIBCLANG_PATH as an environment variable

If you have similar error: src/alt_bridge.h:5:10: fatal error: 'memory' file not found when installing or building altv_internal_sdk, try this

Video format of this tutorial if you are more into video tutorials

  1. Create new cargo package with cargo new altv-resource --lib

  2. Configure cargo to compile your crate as cdylib in your Cargo.toml

[lib]
crate-type = ['cdylib']
  1. After that you can install altv crate with: cargo add altv

  2. Next step will be to add main function to your resource (src/lib.rs)

use altv::prelude::*; // Entity, WorldObject traits

#[altv::main] // This is required
fn main() -> impl altv::IntoVoidResult {
    altv::log!("~gl~hello world");
}
  1. Now you can build your resource with cargo build

  2. In target/debug/ you should see the .dll or .so you just compiled (if you don't see it, make sure you set lib.crate-type to ["cdylib"], see step 2)

  3. Create new alt:V resource, in resources directory of your server

  4. Copy compiled .dll or .so to resource directory

  5. Create resource.toml with this content:

type = 'rs'
main = 'example.dll' # your compiled .dll or .so
  1. Don't forget to add resource to server.toml

  2. Now you can download rust-module .dll or .so from latest release or with cargo-altvup

  3. Copy it to modules directory of your server

  4. Add rust-module to server.toml like that:

modules = ['rust-module']
  1. Now if you have done everything correctly, you should see green "hello world" message in server console