Fougerite

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

FPSplayers had to move the server off of failing hardware. Effective now, the server's new address is:

net.connect 192.200.111.163:28025
net.connect rust.clandestina.la:28025
[​IMG]
has a forum devoted to it now. Please click on over there and sign up to continue these discussions.

Thank you for your support!

forum.pluton-team.org
Dear users of Pluton and Fougerite.

As some of you might noticed the big banner on the right side, It's because our team got a new Sponsor. Streamlines owner, Nathan was very generous, and let us to have test servers on experimental. Our team will have access to these servers, while even you guys are able to join and review the mod, or check Streamline's quality, which is awesome in my opinion.

I would like to thank one more time for Streamline's work, and the attention they put on us, and will be putting us.

Please be sure to leave opinion about the server below. It's located in Germany.

Ip: 148.251.87.116:49015
=======================================
||
|| How to Download and run your server.
||
================================================
Now u can download rust experimental server, just follow theese steps:

==>>For WINDOWS only: you may just download THIS (press СКАЧАТЬ button)
==>>unpack it to any folder you want and run "Update and Run Experimental Server.bat"
==>>This script will download\update your server and start it
==>>Now it has bat script to start Legacy server (cos now steamcmd downloads experimental and legacy server)

==>>For LINUX only: you may just download THIS (press СКАЧАТЬ button)
==>>unpack it to any folder you want and run "Run.sh"
==>>This script will download\update your server and start it


Manual download:


1) Download SteamCMD
2) Run steamcmd.exe \ steamcmd.sh

3) Type
4) Open <directory>

5) Create Start.bat file and insert this:
Code (Text):
@echo off
Start /high RustDedicated.exe -batchmode +server.hostname "Server name Here" +server.port 28015 +server.identity "myserver" +server.seed 123567 -logFile "output.log"
6) Save Start.bat and run it.

============================
||
|| How to update your server
||
============================

You need to do it only if you are not using my auto-update script =)
To update your server - just repeat steps 2 and 3. <directory> - should be a directory where your server is.

============================
||
|| How to connect to your server
||
============================...
Hooks
Code (C#):

On_Chat(Chat msg)
On_ClientAuth(AuthEvent ae)
On_Command(Command c)
On_CorpseDropped(CorpseInitEvent cie)
On_CorpseAttacked(CorpseHurtEvent che)
On_BuildingComplete(BuildingPart bp)
On_BuildingUpdate(BuildingEvent be)
On_BuildingPartAttacked(BuildingHurtEvent bhe)
On_BuildingPartDestroyed(BuildingHurtEvent bhe)
On_FrameDeployed(BuildingPart bp)
On_NPCAttacked(NPCHurtEvent nhe)
On_NPCKilled(NPCDeathEvent nde)
On_LootingEntity(EntityLootEvent ele)
On_LootingPlayer(PlayerLootEvent ple)
On_LootingItem(ItemLootEvent ile)
On_PlayerConnected(Player p)
On_PlayerDisconnected(Player p)
On_PlayerGathering(GatherEvent ge)
On_PlayerAttacked(PlayerHurtEvent phe)
On_PlayerDied(PlayerDeathEvent pde)
On_PlayerTakeDamage(PlayerTakeDmgEvent ptd)
On_PlayerTakeRadiation(PlayerTakeRadsEvent ptr)
On_ServerShutdown()
On_PluginInit()
 
Classes
Code (C#):

Pluton.BuildingPart(BuildingBlock bb)
    .FindSocket(string name):Construction.Socket
    .buildingBlock:BuildingBlock
    .Health:float
    .IsFrame:bool
    .ItemIDBase:int
    .Location:Vector3
    .OwnerID:ulong
    .OwnerName:string
    .X .Y .Z :float

Pluton.Chat(Pluton.Player player, ConsoleSystem.Arg args)
    ._arg:ConsoleSystem.Arg
    .BroadcastName:string
    .FinalText:string
    .OriginalText:string
    .ReplyWith:string
    .User:Pluton.Player

Pluton.Command(Pluton.Player player, string[] args)
    .GetQuotedStringArr(string[] sArr):string[]
    .args:string[]
    .cmd:string
    .ReplyWith:string
    .quotedArgs:string[]
    .User:Pluton.Player

Pluton.Entity(BaseEntity entity)
    .baseEntity:BaseEntity
    .Location:Vector3
    .Name:string
    .X .Y .Z :float

Pluton.Inv(PlayerInventory inv)
    .Add(Pluton.InvItem item):bool...
The next release of Fougerite will contain Jint 2.2, a significant upgrade from Jint 0.9. I have merged the Jint2 branch I had been working on. It's ready for everyone else to start testing.

Most plugins will work without any changes under the new Jint.
Plugins that use classes in namespace outside of System will have to use a new global method.

var Rust = importNamespace("Rust");
Rust.Notice.Inventory(Player, txt)
var UnityEngine = importNamespace("UnityEngine");
var distance = UnityEngine.Vector3.Distance(vec1, vec2);

Passing returns from C# to out variables doesn't work in Jint 2. The only Fougerite method affected is Util.TryFindType. I added a new method Util.TryFindReturnType which returns the Type directly, instead of passing to an out variable.

There are some Javascript errors which do not cause an exception, but fail silently. Sometimes automatic casting of a C# object to string in a Javascript statement will silently fail. The script will stop as if an exception occurred, but there is no error. So far, every one of these issues I have found was solved by adding .ToString() to the C# object in a string context.

All arrays, whether Javascript or C#, have a lower case .length property. This affects the args parameter passed to On_Command. Strings have lower case .toString() for Javascript strings, and .ToString() for C# strings. Most of the time, you do not need to invoke either form. Use something as a string, it is cast to string as expected, with few exceptions as already noted.
Intro
The original aim of Magma was to convert Rust++ to Javascript, but our main goal was to make C# plugins available to the general public. They offer a much more efficient and effective way to implement new features and allow you to use every single Game API in a natural way.

For GSPs: Unfortunately, there is no proper sandboxing yet, which means that C# code can access and do pretty much anything. Even though this might seem to be a problem, but Oxide and Magma never actually restricted plugins from using file I/O or networking, they simply made it a bit harder. This means that either you already implemented all the required security measures, or your servers were never actually secure.

Of course, having all these C# plugins doesn't make JS plugins completely obsolete. We are currently working on a new implementation of Magma's JavaScript engine using V8, which will offer even more power, stability, and performan
ce.

Plugins
Fougerite is almost fully compatible with Magma plugins. In fact, magma plugins run faster than before.
However, there is one exception. You have to change all references to "Magma" namespace in your plugins to "Fougerite".
For more information visit Fougerite Download Section, at the resources or at the Downloads section.

Documentation
The Documentation for Fougerite is pretty much the same as Magma's, but we added some new methods. It will be uploaded soon.

Credits
EquiFox & xEnt. - For their original work of Magma
Riketta - Project Founder, Main Developer, Fixed countless bugs
alexknvl - Developer
DreTaX - Developer, Tester
Kergecirmos - Web Designer
Azarus - Developer, working on V8 implementation
mikec -Developer, working on Jint 2.2 implementation
balu - Developer, Jint 2.2 & Jurassic
Ramm - Web Developer, Tester
Core - Tester