Fougerite

Fougerite is a fork of Magma Server Mod for Rust, featuring unparalleled performance and better overall design.

While RustBuster has It's own version to check, should It change the version of rust?
This means that only those people can join who are clearly using the updated rust.

I was also thinking that if the original steam files were changed steam might update rust itself again. Ew
Rustbuster is able to detect modified assemblies, while RustBuster cannot be modified itself too.

Detections are going forward, hacks are detected on injections.

Me and Snake got inactive for a time but now we are trying to finish this in a couple of days.

The program only lacks the communication between the server and client, version check, and some other hack check possibilities.

People will be able to add servers by a help of an ini file to the server browser. Sponsored servers will always be at the official page tab and others.

https://www.dropbox.com/s/rs61zne5mueyo2o/2015-12-20_02-03-04.MP4?dl=0

No worries guys, we will be getting this done soon.
I will be debugging today the misterious unity crash log, we will see how It goes.

Got instantly busy due to a private project that I got for Pluton team. Can't say much, It's secret for now ;)
@Snake and I have been working on a client side anti cheat, which will be able to fuck up injected/premade assembly hacks externally.

Our first aim is to make sure that RustBuster is safe to use, and encrypted. We might be willing to provide Developing API on It, and It will be able to unbind/log hack button keys.

Of course we will have to make sure that nobody can ever play out the client, neither the server.

We are currently working on the encryption part. Once we got It ready, there is a huge chance that server owners might need to pay for It (Don't get us wrong, writing stuff like this is time taking as hell)

It will support Experimental/Legacy and ONLY Pluton/Fougerite.

We will be denying the usage of Oxide since our code is not even going to support It at all, and no. We won't be adding support for It. The code most likely going to be private, we don't want people to find easy ways to bypass things in It.
I will be updating Riketta's Client side and see what can I do with It.

The latest source is at him with a different system, we will see how we got with It.

The release will be closed source, and It will not be compatible with Oxide.
Just a heads up. I closed a bunch of issues, and finished the new command parsing. It works really well. Many other bugs have been fixed. But I am really proud of the command parser. You no longer need to put names of players and items in quotes, but you can if you want to. Type all in lower case, or caps lock ON. Makes no difference, it is case-insensitive. You can even mis-spell item names and player names, and if you got most of it right, it will still locate the correct player or item. If you can't remember whether a blueprint is "BP" or "Blueprint" just type either one, the parser knows what goes with what. As you can see in the examples below, you need to spell a player's name about 60% right to make sure it matches. Or put it in quotes. You can also just eliminate spaces from a player's name instead of quoting. Works just as well.

Code (Text):

/give blueprntz 556 ammo 556 )))00)
quantity = 556
testStr = ammo )))00), bestName = Рачок))))00)
itemName = 556 Ammo Blueprint

/give hanky christmas poo  556 ammo bp
quantity = 1
testStr = hanky christmas poo, bestName = Hanky The Christmas Poo
itemName = 556 Ammo Blueprint

/give hanky christmas poo  556 ammo bp 556
quantity = 556
testStr = hanky christmas poo, bestName = Hanky The Christmas Poo
itemName = 556 Ammo Blueprint

/give empty shutgun casing raven moon
quantity = 1
testStr = casing raven moon, bestName = Aria Ravenmoon
itemName = Empty 556 Casing

/give empty shutgun shell raven moon
quantity = 1
testStr = shell raven moon, bestName = Aria Ravenmoon
itemName = Empty Shotgun Shell

/give mt shutgun shell raven moon
quantity = 1
testStr = shell raven moon, bestName = Aria Ravenmoon
itemName = Empty Shotgun Shell

/give mt shutgun shell ria raven moon
quantity = 1
testStr = ria raven moon, bestName = Aria Ravenmoon
itemName = Empty Shotgun Shell

/give 556 ammo bp 556 ria raven moon
quantity = 556
testStr = ria raven moon, bestName = Aria Ravenmoon
itemName = 556 Ammo Blueprint

/give hankypoo  "556...
TL;DR: Javascript cannot handle 64bit integers - SteamID as a number - without losing precision in as many as 3 of the least significant digits. Therefore, when presenting a SteamID to Javascript - Player.SteamID & GameID, Entity.OwnerID & CreatorID, and so on - it will always need to be a string, not an int or a float. I am adding a new property .UID to Player and Entity which will return the Uint64 value directly, without conversion to string. Python handles 64 bit integers differently and has a maxint value equal to Int64.MaxValue, and so a SteamID64 won't lose precision.

You might remember me scratching my head about this: Fougerite MC

I was completely wrong. Not even close. The correct answer is that Javascript uses IEEE-754 double-precision floating point format for all numbers, integers and floats. Even though this format is 64 bits wide, the maximum value for a integer in Javascript is 2^52 - 1, because only the bits for the signficand (mantissa or coefficient in scientific notation) of the IEEE number are used for integers in Javascript. The format can represent a number as large as 1.79 x 10^308, but that's using all the fields, significand, base, exponent. And 1 bit is used for the sign.

When I saw SteamID coming back from a call inside a Javascript plugin with the wrong value, it was because I was accessing the value from a C# property where it was an unsigned long integer. The IEEE format causes the value of the significand of the number to lose precision in the least significant digits instead of overflowing. It might round up or down, 1-3 digits depending on the value. The PlayerLog sample plugin for Jint2 that's included with Fougerite demonstrates this. gid is the Player.GameID (a string) and nuid is PlayerClient.netUser.user.Userid.toString() (a long integer converted to string in Javascript, from which Player.SteamID is set).

Code (Javascript):
...
I've chosen to transfer ownership of my fork of the original Fougerite Github repository to the Pluton-Team Github organization. The original repository will not receive any more pushes from me. I don't know the whereabouts or intentions of the owner of the Github org for Fougerite, so I don't think it's in the best interest of the project or community to continue using it as the main or "official" repository. If the owner of the org appear again and delegates some ownership to the active project participants, or becomes active again himself, that can change. The fork relationship still exists, so a pull request can bring the original repository up to date with a few clicks.

The active repository is now at http://github.com/Notulp/Fougerite
The branch I am pushing to is master-mcmc and FougeriteBot announces commits to the #pluton channel on freenode IRC.

A new Fougerite release with Rust++ bugs fixed - and many others - is finally about to appear.