Grow Rust is a Growtopia Private Server made in Rust

Overview

Grow Rust

Grow Rust is a Growtopia Private Server made in Rust.

Building

$ git clone https://github.com/zKevz/GrowRust
$ cd GrowRust
$ cargo build

Or cargo build --release for release mode and code optimization

After you've built it, create a directory named data in the same directory as your executable in. After that, put items.dat which can be found in the Growtopia local folder/cache in that data directory. Then simply just run the executable and it should work!

Features

  • Player Database
  • World Database
  • Account creation, login
  • World entering
  • Breaking and placing blocks
  • Respawn
  • Chat and commands (only /test and /give)
  • Clothes
  • Multiplayer of course
  • Clean code
  • Fast and safe of course!

Why Rust?

Because im interested in rust these days, but been struggling in what project what i should do. And then the idea came from the very first Growtopia Private Server in rust made by Alexander ( Growtopia.rs ). So im thinking of making a brand new server in rust with even more features than Alexander's has, which is why there is this project!

Small Documentation

Calling a variant function:

use utils::variant_function::VariantFunction::*; // in the top of the file!

player.send_varfn(OnConsoleMessage("Hello!"));

However, you can explicitly calls the VariantFunction enum by

use utils::variant_function::VariantFunction; // in the top of the file!

player.send_varfn(VariantFunction::OnConsoleMessage("Hello!"));

And then for variant calls with netid and delay arguments:

use utils::variant_function::VariantFunction::*; // in the top of the file!

let net_id = -1;
let delay = 6969;
player.send_varfn_v(OnConsoleMessage("Hello!"), net_id, delay);

To create another implementation variant function, you can add it in VariantFunction enum and then put the field with the arguments provided, and then create the serialization implementation in serialize function. You can see many examples there, it should be easy enough.

Contributing

Feel free to contribute in the development of the server! If you have found any bugs, feel free to fix or contact me. Any help would be appreciated.

Credits

Abood (Definitely a cool guy)

Mempler

Alexander#9673

free#1234

enet-sys

enet-rs (Some implementation were taken from here)

You might also like...
Send files over TCP. Quick and simple. Made in Rust.

SFT Multithreaded utility to send files over TCP. The sender writes a header containing the filename, and then the contents of the file, buffered, to

A really basic Cloudflare worker made in rust
A really basic Cloudflare worker made in rust

Rust WebAssembly Worker. A really basic Cloudflare worker made in rust.

An implementation of the classic arcade game Whac-A-Hole inside Discord, made in 12 hours, with no experience in Rust.

Whac-A-Hole A blazingly fast implementation of the classic arcade game What-A-Hole inside Discord, made in 12 hours, with no experience in Rust ( 🚀 ?

A halloween-themed game made in Rust 🦀

Robo Halloween 🤖 🎃 🧟 Top 3 pumpkin smashers 🎉 🦾 🥇 poteresting - 80 🎃 🥈 ArinaSolovjova - 69 🎃 🥉 poteresting - 61 🎃 Get your name on this boa

Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo workspace

ra-multiplex   Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo wor

A telnet chat server written in Rust, running on Lunatic.
A telnet chat server written in Rust, running on Lunatic.

Lunatic.chat A telnet chat server written in Rust, running on Lunatic. If you just would like to try it out, join the hosted version with: # US server

server security proxy write by Rust

server-security-proxy server security proxy write by Rust how to use config toml file

Simple project to test grpc between ruby (client) and rust (server)

grpc-example Simple project to test grpc between ruby (client) and rust (server). Usage To simplify a lot this project uses docker and docker compose

A high performence Socks5 proxy server with bind/reverse support implementation by Rust.

rsocx A high performence Socks5 proxy server with bind/reverse support implementation by Rust Features Async-std No unsafe code Single executable Linu

Comments
  • Can you provide us with a more detailed setup guide?

    Can you provide us with a more detailed setup guide?

    I have now succesfully built the server binary, but I cannot connect to the server. I have set my windows hosts file to the correct settings and I have created a growtopia folder into my webserver's root directory and created a server_data.php file. I have also placed my items.dat file in the correct directory.

    opened by Lebedev21 2
  • Getting an error while building

    Getting an error while building "error: failed to run custom build command for `enet-sys v0.2.3`"

    I have never in my life before used Rust so I have no idea what this shit means:

    error: failed to run custom build command for `enet-sys v0.2.3`
    
    Caused by:
      process didn't exit successfully: `C:\Users\my username\Desktop\GrowRust-main\target\release\build\enet-sys-0457ccb2d082d581\build-script-build` (exit code: 101)
      --- stderr
      thread 'main' panicked at 'Unable to find libclang: "couldn't find any of ['clang.dll', 'libclang.dll'], set the LIBCLANG_PATH environment variable to a path where one of these files can be found (skipped: [])"', C:\Users\my username\.cargo\registry\src\github.com-1ecc6299db9ec823\bindgen-0.35.0\src/lib.rs:1556:31
      note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
      
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    
    opened by Lebedev21 1
  • how do you connect?

    how do you connect?

    i installed and started it on my android device, it said server is running but i couldnt connect. I used my ip address to connect but i failed. it says getting server address then says timed out

    opened by YKmusics 0
Owner
💀
null
Acts as an IRC server and a nostr client. Connect with your IRC client using your nostr private key as the password.

nostr-irc Acts as an IRC server and a nostr client. Connect with your IRC client using your nostr private key as the password. Experimental code, use

null 11 Dec 26, 2022
A private network system that uses WireGuard under the hood.

innernet A private network system that uses WireGuard under the hood. See the announcement blog post for a longer-winded explanation. innernet is simi

Tonari, Inc 4.1k Dec 29, 2022
First iteration of gluing our modules together into a PoA private network

First iteration of gluing our modules together into a PoA private network

null 7 Oct 29, 2022
Multithreaded Web Server Made with Rust

Multithreaded Web Server Made with Rust The server listens for TCP connections at address 127.0.0.1:7878. Several pages can be accessed: 127.0.0.1:787

null 2 May 28, 2022
DNS Server written in Rust for fun, see https://dev.to/xfbs/writing-a-dns-server-in-rust-1gpn

DNS Fun Ever wondered how you can write a DNS server in Rust? No? Well, too bad, I'm telling you anyways. But don't worry, this is going to be a fun o

Patrick Elsen 26 Jan 13, 2023
Dav-server-rs - Rust WebDAV server library. A fork of the webdav-handler crate.

dav-server-rs A fork of the webdav-handler-rs project. Generic async HTTP/Webdav handler Webdav (RFC4918) is defined as HTTP (GET/HEAD/PUT/DELETE) plu

messense 30 Dec 29, 2022
axum-server is a hyper server implementation designed to be used with axum framework.

axum-server axum-server is a hyper server implementation designed to be used with axum framework. Features Conveniently bind to any number of addresse

null 79 Jan 4, 2023
Jex Compiler Server - Server that runs Jex code

Server that compiles and runs Jex code.

furetur 3 Nov 18, 2021
A simple web server(and library) to display server stats over HTTP and Websockets/SSE or stream it to other systems.

x-server-stats A simple web server(and library) to display server stats over HTTP and Websockets/SSE or stream it to other systems. x-server(in x-serv

Pratyaksh 11 Oct 17, 2022
QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server.

quicssh-rs ?? quicssh-rs is a QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server. quicss

Jun Ouyang 18 May 5, 2023