Giter Site home page Giter Site logo

beammp_rust_server's Introduction

Hi there ๐Ÿ‘‹

Hey, my name's Luuk and I develop whatever I find interesting. Some interesting (I guess?) things about me:

  • 24 years old
  • ADHD + Autism
  • He/him
  • College dropout lmao

My biggest passion is definitely computer graphics, but I enjoy anything that is both interesting and provides a good challenge. Also, I love using Rust, it's very swag

beammp_rust_server's People

Contributors

lionkor avatar lucky4luuk avatar officiallambdax avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

beammp_rust_server's Issues

Allow one unicycle per player, regardless of vehicle cap

The rules should be:

  • Each player may spawn a unicycle at any point, even when the vehicle cap is reached
  • Unicycles should still fire spawn events etc.
  • Each player may only have ONE unicycle at a time.

Keep in mind that players can replace a unicycle with a car, which needs to be caught and disallowed in the case that the vehicle cap was reached.

Guest auth doesn't work

Seems to cause the following:

 2023-11-20T11:54:02.187Z ERROR beammp_rust_server::server                       > Authentication error occured, kicking player...
 2023-11-20T11:54:02.187Z ERROR beammp_rust_server::server                       > error decoding response body: cannot parse integer from empty string at line 1 column 148

Caused by:
    cannot parse integer from empty string at line 1 column 148

Logging to file

Currently, the logs go to stdout. They should also go to a log file, which should be rotated. We should keep the last 3 log files from the last three runs.

Any other features are up to the implementer.

Terminal console

Implement a terminal console which must support:

  • kick players
  • send chat messages
  • view status (player count, ...)
  • history (re-send old commands)
  • step into a lua state and run lua code
  • entered commands should be visible in logs

Lua API Changes Proposal

Lua API Changes Proposal

Notes on how to read this:

  • If the final argument is ... , it means it should take variadic arguments

Events

  • Remove MP.CreateEventTimer (and MP.CancelEventTimer)
  • Add MP.ScheduleEvent("EventName", TimeInMillis, ...)
  • Change MP.TriggerGlobalEvent to take variadic arguments the same way MP.TriggerLocalEvent does. Currently, it is a bit of a pain to use this function!
  • Ensure MP.TriggerClientEvent can also take no data! In the future, I'd like to see it also take arbitrary events, but I think this is much harder to expect unless the client can automatically decode a certain format we decide upon and give you the right arguments again.
  • Remove MP.Sleep. It sucks.

FS

Currently, the filesystem functions are great, they are nice features to have.
My only complaint is that it is a bit weird sometimes to mix the FS calls and io calls.
Not sure what I want to see changed here, but perhaps expanding it to cover most io usecases would be nice.
That way, it also wouldn't be confusing to deal with paths between the 2. Not sure if that is currently a problem, but I think it's confusing to mix the 2 still.

Other

  • Add MP.Get("Category", "Setting") to get any settings from the server config.
  • Change MP.Set to MP.Set("Category", "Setting", value). This is much more intuitive.
  • Change the behaviour of loading the config, so it doesn't strip unused values, so mods can write/read their own values in the main config.
  • Add a config flag or cli argument to prevent MP.Set overwriting the max players value.

API Additions

  • Add a command framework for the chat. Many plugins use chat commands, but I feel like everyone always ends up reinventing the wheel. A unified system with permissions could lead to some very nice possible additions, like /help but also properly informing the player if a command is unknown.
  • Support banning players natively, with something like MP.BanPlayer(BeamMpId) and MP.UnbanPlayer(BeamMpId).
  • Add an HTTP(S) module, to make it significantly easier for plugins to make GET/POST requests.
  • Add a websockets module.
  • (IN CASE CLIENT CHANGES ARE FINE TOO) Add a few default events that the server can trigger in the client, so we can streamline the process of modifying the client from the server. Perhaps a way to do everything from adding UI to teleporting the car to forcing a specific car?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.