Fougerite

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

Hey guys

Sorry for my inactivity in the past days. I will be looking at the issues, and I will also analyze the lagg at connection at night. No worries, I'm still here.
I was downloading a fresh version of the latest rust legacy server files, where i noticed that the bundles became HUGE.

Instead of 1 GB, It is 4 GB.

Everything extracted, txts out there, even maps or something?

It looks really weird.

I noticed something in the build logs:

Code (Text):
LICENSE SYSTEM [2016512 19:49:20] Next license update check is after 2015-06-19T12:59:17

Built from '5.3/release' branch; Version is '5.3.4f1 (fdbb5133b820) revision 16628561'; Using compiler version '160040219'
OS: 'Windows 8  (6.2.0) 64bit' Language: 'en' Physical Memory: 65429 MB
BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 1
Initialize mono
Mono path[0] = 'D:/Program Files/Unity/5.3.4/Editor/Data/Managed'
Mono path[1] = 'D:/Program Files/Unity/5.3.4/Editor/Data/Mono/lib/mono/2.0'
Mono path[2] = 'D:/Program Files/Unity/5.3.4/Editor/Data/UnityScript'
Mono config path = 'D:/Program Files/Unity/5.3.4/Editor/Data/Mono/etc'
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=0.0.0.0:56296

BATCHMODE ARGUMENTS:

-projectPath
D:\Agents\002\xml-data\build-dir\RUST-BS-BS
-batchmode
-quit
-logFile
D:\Agents\002\xml-data\build-dir\RUST-BS-BS\build\Common\Bundles/build_logs/BuildAssetBundles.BuildForServer.txt
-executeMethod
BuildAssetBundles.BuildForServer
-buildTo
D:\Agents\002\xml-data\build-dir\RUST-BS-BS\build\Common\Bundles
Successfully changed project path to: D:\Agents\002\xml-data\build-dir\RUST-BS-BS
D:/Agents/002/xml-data/build-dir/RUST-BS-BS
Loading GUID <-> Path mappings...0.000095 seconds
Loading Asset Database...0.110123 seconds
Audio: FMOD Profiler initialized on port 54901
AssetDatabase consistency checks...0.099551 seconds
Initialize engine version: 5.3.4f1 (fdbb5133b820)
GfxDevice: creating device client; threaded=0
Direct3D:
    Version:  Direct3D 11.0 [level 11.0]
    Renderer: Microsoft Basic Render Driver (ID=0x8c)
    Vendor:   Microsoft
    VRAM:     256 MB
Begin MonoManager ReloadAssembly...
Dear users of Fougerite,

I finished all my three final exams, I think they all went well *knock knock*

It seems like both History and Literature/Grammar went well, and Maths should be above 70% *knock knock*

I will be looking at the problems today, I have a total month to prepare for the vocabulary part, so there shoudln't be a problem now :)

All I hope is that I will get into the uni :D

Cheers
Last update for this and next week comes up today soon.

Added the itempickup hook.
Considering adding itemdrop
Gonna look into onclientconsole
Dear users of Fougerite,

Next week I will be probably be inactive most of the time. The reason of this that I'm having really important exams on May 1st, 2nd, and 3rd. I need to pass these exams with a good result to get into the University. (Send me those positive energy haha, I really need to pass)

Life has been pushing me back a little bit. (Government)

I took an Advanced I.T exam a year ago, I made the programming part 45/45, World Doc 22/30, Excel 6/15, SQL 6/30

On the Oral Exam, I also pulled the hardest crap, and I still don't know how did I do 17/30

Obviously I was like I'm able to re-do It 3 times, since I still have one year. But nope, the government got us a nice new law, which doesn't allow you to re-do the Advanced Exam until you got your graduation papers (Which happens at the last grade, which I'm in now....)

So basically I got screwed, I have an "okay" exam, and a so-so enough points average (47+50 points because It's an advanced exam)

You can imagine what happened to somebody who got really bad results at that year....

So because of that I took an Advanced English Graduation after 5 months so I can actually get +50 points from that (Even If I don't get the English exam points)

I got It pretty nice It was 66%, so I had (66+50), and I was glad I made myself +50 points, and giving myself a higher chance to get into the UNI.

Well nope, new law again, I can't get the 50, because the I.T Engineering course doesn't have the English subject as a requirement (Only I.T, Maths, Physics)

So yeah, I was stuck at 47+50, the upcoming math points, the little average of the future literature/history points, and the average of my current grades.

The Advanced English Exam gave me a medium level of (B2) language exam, which gives 28 points.
So It's actually the above and +28

I tried two times to get a C1 language exam, but failed. (It would give me 40 points instead of 28)
IELTS exam required me only 1% to get It... Only 1... Another exam that I did...
I have been looking into this a very long time, and as always the log ends with UnityEngine.Object.FindObject...

@tarynkelley have been looking into It too.

Seems like anything that is on timer, or on a thread causes the server to have a nice crash popup. (Player.Disconnect calls UnityEngine.Object.FindObject)

This has been resolved in a higher UnityEngine version, @Snake even found the changelog of It before.

Some of the plugins use a timer to handle checks later, and even disconnect players.

I have been thinking on several stuffs, how could I actually make It safer, but I can't come up with anything useful. I have been thinking on raising a hook, but I have been wondering if the hook would be running under a thread too.

http://stackoverflow.com/questions/17123061/calling-methods-in-main-thread-from-other-threads

The guy who gave the answer also shows the usage of the delegates, which we use for calling our hooks.

I will see if that would work or not
Important Break Time Runs In
I got this, and the next week as a full break time.

I will spend this time to research RustBuster, and push out a Beta finally. This is possible, since not much remains of It as I mentioned It before. It should be finished in these days.

I also but my concentration of the unknown disconnect crash, that has been running out for months. I don't exactly know what causes It, but It might be happening when the server tries to send a player data, but the player has already disconnected.
I had some hard exams this week, and my final exams are coming up in May. I need to write a really good maths final exam to go to a university.

So about progress. I'm not sure how much will I be able to do, but I'm going to develop RustBuster further this weekend. As far as I remember I got the communication right last time, but the messages were not decrypted or something.

So yeah gonna do some progess again.
I feel like facepunch writing posts about progress....

Anyways, finally I had the time, and I got the communication between the client and the server using the SecureBlackboxAPI. Thank god I finally found that since I mentioned this is the third time I was re-writing this crap out of nothing. (The SSL part) Now I just need to finalize the communication between the client-server, and ensure they are sending and reading the messages in the good way. I also have to make sure that If someone would block the communication I would immediately make the client exit. I also have to do a handler at the server side to be able to handle multiple connections at the same time, which shouldn't be too complicated I guess.

After these things are done, I will give @Snake the hand to make sure the It is secured mostly in the client side.

From that point I guess I could do a test with my guys, then do a show off test with you guys, and then some minimal modifications at the server side and I guess we are done.
Since you guys asked me about RustBuster, currently I rewrote the SSL part 2 times now, since as I mentioned before the Microsoft SSL API failed to work on Mono, and Mentalis API only works on .NET 1.0.....

I rewrote the SSL part, and successfully switched the client side to SecureBlackBox's API which supports .NET 3.5 and even has a mono version compiled.

I also rewrote the self-signed certificate generator, since It didn't correctly generate a valid one for the server side. Seems to be good now.

Now only the server side remains, if It works and I can send message vica versa, It should be no time to finalize this.