Fougerite Official

Fougerite Official 1.9.1

No permission to download
  • Mostly fixes. I modified Teleportation method a bit
  • Added some error logging
  • Player.Character
  • Player.FallDamage
  • Player.IsAlive fix
Full Changes:
https://github.com/Notulp/Fougerite/commit/3699c5746be2e32ad1748ad5ed2c6c1d28213c97
  • Fixed GodMode in Rust++
  • Including clean de-obfustaced ulink.dll
  • Including a readme.txt about It
  • Added ini.ContainsValue(string valuename)
  • Some fixes in the engines
  • Plugin.CreateList() - Creating C# lists
  • I patched the uLink.dll and deobfuscated with the best program. I have to say that my server seems to be stable, It's the same thing. Hopefully this will stop the rust flood. I sometimes detect that the server is not flooding but you can't connect. Well in that status, the server is still saveable, and you can restart It. I don't think I'm able to do more for the shitty rust flood errors
  • GlitchFix got updated, new config options.
  • Left a debug msg in
  • Fixed HurtEvent issues in Fougerite and Rust++
  • You should update immediately.
New Research Hook:
Be sure to repatch the assembly with the patcher. (I also included a prepatched assembly)
Class
JavaScript:
// Jint2 and Magma
function On_Research(ResearchEvent)
{
    if (ResearchEvent.Player.Name != "god")
    {
        ResearchEvent.Cancel();
        ResearchEvent.Player.Message("Hah! You're not god!");
        ResearchEvent.Player.Message("You can't get: " + ResearchEvent.ItemName);
    }
}
Python:
def On_Research(self, ResearchEvent):
    if ResearchEvent.Player.Name != "god":
        ResearchEvent.Cancel()
        ResearchEvent.Player.Message("Hah! You're not god!")
        ResearchEvent.Player.Message("You can't get: " + ResearchEvent.ItemName)
Code:
function On_Research(ResearchEvent):
    if (ResearchEvent.Player.Name ~= "god") then
        ResearchEvent.Cancel()
        ResearchEvent.Player.Message("Hah! You're not god!")
        ResearchEvent.Player.Message("You can't get: " .. ResearchEvent.ItemName)
    end
end
Data Class Additions:
Added Data.ToUlong(string)
Added Data.Tolong(string)​
Util Class Addition:
Util.BlueprintOfItem(ItemDataBlock item) - Returns you BlueprintDatablock​
GlitchFix:
GlitchFix is now modified and It is even faster now. (Using LINQ)​
MoonSharp:
Lua Engine was modified a bit to handle stuffs automatically​
Others:
Py, Jint, Magma was also modified.
Added: fougerite.save console command which saves the server and also saves Rust++ If It's enabled
Added: fougerite.rustpp console command which should reload Rust++​

  • Minor modification for all engines
Lots of additions I have to say, so here we go:

MoonSharp Engine (LUA 5.2) was added.
This means you can develope with LUA now, but the plugins only support Fougerite hooks atm. I'm planning to add some sort of Oxide plugin compatibility.​
Patcher was modified.
You should repatch I did some major patching to stabilize the server​
Engine Updates.
Jint,Magma, IronPython is now having an auto command registration feature, which means It will only call the hooks which contains the command that you typed. This register is working 100%, unless the plugin uses custom commands. (Taking the command names out of an INI or a DataStore) Fougerite detects that, and will call all the hooks for that command like It did before. This can be solved by doing:
Code:
Plugin.CommandList.Add(commandname)
at plugin init.

Magma, Jint, MoonSharp received the advanced timer feature which is based on IronPython's.
For Magma and Jint I had to create a variable for that.
Here is the class
To reach this in Magma or Jint:
JavaScript:
function On_PlayerConnected()
{
    var ConnectionData = Plugin.CreateDict();
    ConnectionData["Player"] = Player;
    // Launch a void after 10 seconds
    Plugin.AdvancedTimers.CreateParallelTimer("Connect", 10000, ConnectionData).Start();
}

function ConnectCallback(timer)
{
    timer.Kill();
    var data = timer.Args;
    var player = data["Player"]
    player.Message("I called a timer for you 10 seconds ago!");
}
For Lua:
Code:
function On_PlayerConnected(Player)
    local ConnectionData = Plugin.CreateDict()
    ConnectionData["Player"] = Player
    -- Launch a void after 10 seconds
    Plugin:CreateParallelTimer("Connect", 10000, ConnectionData).Start()
end

function ConnectCallback(timer)
    timer:Kill()
    local data = timer.Args
    local player = data["Player"]
    player:Message("I called a timer for you 10 seconds ago!")
end
Server Class modifications:
I added two lists.
One of them is able to disable calling specific commands for the player. (CommandCancelList)
The 2. one is a list which you can add commands to, and this will also force Fougerite to call all the hooks for the specific command. (ForceCallForCommands)
Class is here
  • Player Property is now available in the InventoryAdd/Remove event
  • Autoban for radiation hackers
  • ClientMove hook for C# users
  • Modified patcher, please re-patch