Giter Club home page Giter Club logo

rocketmodfix's Introduction

RocketModFix

RocketModFix

The RocketModFix is a fork of RocketMod for Unturned maintained by the Unturned plugin devs, this fork don't have plans for any major changes to the RocketMod, only fixes and new features that doesn't break any backward compatibility with API.

Compatibility

You can still use old plugins without any changes/recompilation/updates.

Our plan and what we're done

  • Create Discord Server Community.
  • UnityEngine NuGet Package redist.
  • Unturned NuGet Package redist.
  • Update MSBuild to the Microsoft.NET.Sdk, because current MSBuild in RocketMod is outdated and its hard to support and understand what's going on inside.
  • RocketMod NuGet Package containing all required libraries for RockeMod API usage.
  • CI/CD and nightly builds with RocketMod .dlls.
  • Automatic Release on Tag creation (with RocketMod Module).
  • Rocket.Unturned.Module Artifacts on PR.
  • Rocket.Unturned NuGet Package.
  • Reset changelog.
  • For versioning use SemVer.
  • Installation guides inside of the Rocket Unturned Module.
  • Keep backward compatibility.
    • Test with RocketMod plugins that uses old RocketMod libraries, and make sure current changes doesn't break anything.
    • Test with most used Modules:
      • AviRockets.
      • uScript.
      • OpenMod.
  • RocketMod Fixes:
    • Fix UnturnedPlayer.SteamProfile, current implementation cause so many lags (fixed, but still requires fixes).
    • Fix UnturnedPlayerComponent is not being added and removed automatically.
    • Assembly Resolve fixes (don't spam with not found library or make a option to disable it, load all libraries at rocketmod start instead of searching for them only on OnAssemblyResolve)
    • Commands fixes:
      • Fix /vanish.
      • Fix /god. (oxygen isn't fixed)
      • Fix /p (not readable at all).
    • Perfomance.
  • New Features:
    • Commands:
      • /position /pos (current position of the player).
      • /tpwp (improved version of /tp wp).
  • Gather a Team with a direct access to the repo edit without admins help. (We still gather a team)
  • RocketModFix Video Installation Guide (could be uploaded on YouTube).

After plan is finished -> Add new plans, keep coding, and don't forget to approve PR or issues.

Installation

  1. Stop the server (if running).
  2. Install latest RocketModFix Module here.
  3. Open Dropdown button Assets (if its not open).
  4. Click on Rocket.Unturned.Module.zip to download.
  5. Keep Readme.txt instruction file inside of the installed Rocket.Unturned.Module.zip archive.

Discord

Feel free to join our Discord Server.

We're used by

If you also use RocketModFix, contact us, we will add a link to you!

How to Contribute

We're thrilled to have you here! Feel free to create pull requests (PRs) and open issues - your contributions are valuable to us!

Why We Use Issues

Before you dive into making changes, consider creating an issue or discussions on our discord server first. Here's why:

  • Avoid Duplicate Work: Someone might already be working on a similar update. Checking issues prevents duplication of effort.
  • Collaborative Problem Solving: Other contributors might have valuable insights or alternative solutions. Discussing changes beforehand can lead to better implementations.
  • Save Your Time: Avoid working on updates that might not align with the project's direction. Consult with others to ensure your efforts are fruitful.

NuGet Packages

Redist

RocketModFix.Unturned.Redist

RocketModFix.UnityEngine.Redist

RocketModFix

RocketModFix.Rocket.API

RocketModFix.Rocket.Core

RocketModFix.Rocket.Unturned

Resources

fr34kyn01535 has listed all of the original plugins in a post to the /r/RocketMod subreddit: List of plugins from the old repository

Following closure of the original forum the recommended sites for developer discussion are the /r/UnturnedLDM subreddit, SDG Forum, or the Steam Discussions.

The RocketMod organization on GitHub hosts several related archived projects: RocketMod (Abandoned)

History

On the 20th of December 2019 Sven Mawby "fr34kyn01535" and Enes Sadık Özbek "Trojaner" officially ceased maintenance of Rocket. They kindly released the source code under the MIT license. Read their full farewell statement here.

Following their resignation SDG forked the repository to continue maintenance in sync with the game.

On the 2nd of June 2020 fr34kyn01535 requested the fork be rebranded to help distance himself from the project.

Credits

OpenMod for nuget packages ready-to-go actions and workflows.

rocketmodfix's People

Contributors

0x59r11 avatar educatalan02 avatar gazzifx avatar jdance-media avatar mkspeed0 avatar mrrousek avatar nazmiyigitefe avatar sdgnelson avatar sunnamed434 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rocketmodfix's Issues

/compass should be phased out.

  1. The new cartography volume makes it so any direction could be North, and there is an in-game compass.
  2. The uses for this command are non-existent.
  3. I have never seen a server purposefully enable this command for their players.

Zombies see vanished players

I have a ready fix for that, but it will require to make some patches using harmony which we don't have as a library in RocketMod yet

Add /getip

add a command that displays the ip and tells you the location (country and city)

Update command /rocket

Now /rocket outputs:

Rocket v0.0.0.0 for Unturned v3.23.12.3
https://rocketmod.net - 2017

Instead, add more info about the fork, change https://rocketmod.net to the GitHub repo, and maybe add a Discord invite URL

Add automatic saving

Add automatic saving of plugin configuration

Before:

Plugin.Instance.Configuration.Instance.Test.Add(test);
Plugin.Instance.Configuration.Save();

After:
Plugin.Instance.Configuration.Instance.Test.Add(test);

I have demonstrated how the new save should look like, that is, without the extra code.

Exception when vehicle not found in /v <id>

I used this command: /v 800

Logs:

An error occured while executing v [800]: System.NullReferenceException: Object reference not set to an instance of an object
  at Rocket.Unturned.Commands.CommandV.Execute (Rocket.API.IRocketPlayer caller, System.String[] command) [0x000f6] in <78fb97ccc8a0476980e278aa933951ac>:0
  at Rocket.Core.Commands.RocketCommandManager+RegisteredRocketCommand.Execute (Rocket.API.IRocketPlayer caller, System.String[] command) [0x00000] in <09b6a6e399e5417eb969381ca3201ce1>:0
  at Rocket.Core.Commands.RocketCommandManager.Execute (Rocket.API.IRocketPlayer player, System.String command) [0x00176] in <09b6a6e399e5417eb969381ca3201ce1>:0

Assembly Resolve Improvements

  • Don't spam with not found library or make an option to disable it
  • load all libraries at rocketmod start instead of searching for them only on OnAssemblyResolve (if its not a breaking change then ok)

/tpwp command

Teleport to a waypoint (marker) on map, the only current way /teleport wp, but sometimes player with such nickname could exist and it will lead to tp to player, not the marker

/p add 123 vip no message feedback

When you use /p add 123 vip you don't get any feedback or add a player into permissions, I think it is more problem due to the player not existing

At least say that player is offline or doesn't exist

RocketModFix Bootstrapper

Very similar to OpenMod bootstrapper, it simply installs the latest RocketModFix version from GitHub releases, in simply words loader for RocketModFix module

Add new AdminTools commands

Add new AdminTools command. List of commands: /jump, /maxskills, /kickall, /clearinv, /checkowner, /exec, /execall

remove the offline admin or add offline admin

make it possible to remove the admin when he is offline.

now command /unadmin is looking for a player on the network to remove him from the admin.

we need to come up with a way and implement it

Fix /god

Even if the player in god player can die.

Rewrite whole god system seems a good idea to me

UnturnedPlayer.DetailedCharacterName

Can be useful for testing and debugging to see the DisplayName and SteamId, perhaps DetailedCharacterName does not fit very well, but happy to hear ideas from others

The same as in openmod (UserBase.FullActorName)

return $"{DisplayName} ({SteamId})";

Fix /vanish

Most of the cheats are just checking 0, 0, 0 points (Vector3) if the player is there it means it is a Admin.

Zombies can attack vanished players, sometimes players can see vanished players.

I think absolutely rewriting this, is a good idea

A lot of commands in Commands.config.xml cause server lags for any command

Report from RocketMod user (not mine). I can provide a problematic plugin, just let me know.

For some reason when many commands are registered (250+) (commands of the plugin are registered via rocketmod automatically, not manually), then just execute some random like /11 (which doesn't even exist) this causes the server to lag for a few seconds, however, when a plugin with many commands is removed from the Plugin directory (as I understand unloaded) the problem disappears

Add command /tpall

Teleport all players (everyone) to self or target player, or just to a Vector3 point

Two small questions about plugins

Thanks so much more for the work you do!

  1. Please tell me, is it possible to build this functionality into the kernel, or somehow fix it from the kernel side?
    ImperialPlugins/UnturnedProfiler#1

  2. It is also not clear whether it makes sense to limit the server FPS for better performance through the FPSCap plugin. Generally there is a line <MaxFrames>60</MaxFrames> in serverfiles/Servers/Prod_Test/Rocket/Rocket.config.xml, maybe this is enough.
    cartman-2000/FPSCap#3

Update /home and /tp and etc

make the command teleport out of the car and while the car is being lifted up

I mean this:
player.Stance == EPlayerStance.DRIVING
||
player.Stance == EPlayerStance.SITTING

Fix command /p

The command shows permissions that are not readable at all

Add command /position

The command that shows the current position of the player: /position

Aliases: /pos

Invalid Permissions file cause exception

Simple put try catches to let user know what's going on there

Logs:

An error occured while executing p [reload]: System.NullReferenceException: Object reference not set to an instance of an object
  at Rocket.Core.Permissions.RocketPermissionsManager.HasPermission (Rocket.API.IRocketPlayer player, System.Collections.Generic.List`1[T] permissions) [0x00000] in <2b8ee4b602174810b7294320f1aecbc4>:0 
  at Rocket.API.IRocketPermissionsProviderExtensions.HasPermission (Rocket.API.IRocketPermissionsProvider rocketPermissionProvider, Rocket.API.IRocketPlayer player, System.String permission) [0x0000e] in <dc29ebecb51045f78222d0d1b7c35be1>:0 
  at Rocket.API.IRocketPlayerExtension.HasPermission (Rocket.API.IRocketPlayer player, System.String permission) [0x00000] in <2b8ee4b602174810b7294320f1aecbc4>:0 
  at Rocket.Unturned.Commands.CommandP.Execute (Rocket.API.IRocketPlayer caller, System.String[] command) [0x0001a] in <6eb2810103134c78ad34dadb335a4f18>:0 
  at Rocket.Core.Commands.RocketCommandManager+RegisteredRocketCommand.Execute (Rocket.API.IRocketPlayer caller, System.String[] command) [0x00000] in <2b8ee4b602174810b7294320f1aecbc4>:0 
  at Rocket.Core.Commands.RocketCommandManager.Execute (Rocket.API.IRocketPlayer player, System.String command) [0x00176] in <2b8ee4b602174810b7294320f1aecbc4>:0

/rocket reload anyname cause exception

rocket reload asdasad
An error occured while executing rocket [reload, asdasad]: System.NullReferenceException: Object reference not set to an instance of an object
  at Rocket.Unturned.Commands.CommandRocket+<>c__DisplayClass12_0.<Execute>b__8 (Rocket.API.IRocketPlugin pl) [0x00006] in <eb82f0053e4e4aae868d3efcf3881fd0>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <d61464951b0243f18092630834a7bf18>:0
  at System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Boolean& found) [0x00045] in <d61464951b0243f18092630834a7bf18>:0
  at System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x00000] in <d61464951b0243f18092630834a7bf18>:0
  at Rocket.Unturned.Commands.CommandRocket.Execute (Rocket.API.IRocketPlayer caller, System.String[] command) [0x002c6] in <eb82f0053e4e4aae868d3efcf3881fd0>:0
  at Rocket.Core.Commands.RocketCommandManager+RegisteredRocketCommand.Execute (Rocket.API.IRocketPlayer caller, System.String[] command) [0x00000] in <2b8ee4b602174810b7294320f1aecbc4>:0
  at Rocket.Core.Commands.RocketCommandManager.Execute (Rocket.API.IRocketPlayer player, System.String command) [0x00176] in <2b8ee4b602174810b7294320f1aecbc4>:0

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.