Split Plugin Loader
$10.00
Sold by: TsundrellaLoad Rust plugins from a multi-file code base effortlessly with Split Plugin Loader.
- Description
- Reviews (0)
- Version History
- Discussions (0)
- Setup
- Setup
- Product Enquiry
Description
Description
Split Plugin Loader
Introducing the Split Plugin Loader for Rust! This innovative tool revolutionizes the way plugins are managed and loaded by amalgamating multiple files for a single plugin and seamlessly compiling them into one cohesive unit. If you have been dealing with a single massive plugin file and ever wished for a more streamlined, organized approach, the Split Plugin Loader is your answer. Whether you’re working with Oxide or Carbon, the Split Plugin Loader seamlessly integrates, ensuring a more streamlined and enhanced plugin experience.
Key Features:
Runtime Compilation: The Split Plugin Loader dynamically compiles your plugin files as you write them, ensuring real-time efficiency and flexibility.
Streamlined File Management: With the freedom to name and organize your files as you see fit, the Split Plugin Loader ensures that everything culminates under the primary folder name, simplifying your project management.
Broad Compatibility: Whether you’re on Oxide or Carbon, the Split Plugin Loader has got you covered. Experience seamless integration with both platforms without a hitch.
Cross Build: Add directives [CARBON] or [OXIDE] to methods or top level variables and it will only build for your current name space. For usings you do //[CARBON] or //[OXIDE].
Obfuscation Support(Coming Soon): Keep your code shielded. Planned obfuscation support aims to provide enhanced security, protecting your plugins against unauthorized access and tampering.
Automatic Code Formatting (Coming Soon): Guarantee code consistency across the board. Our upcoming automatic code formatting tool ensures your plugins maintain a clean and standardized code structure.
How to Use:
1. Install: Place the extension inside your carbon/extensions folder.
2. Setup: Create a new folder inside the splitplugins directory. Name this folder with your desired plugin name.
3. Plugin File Creation: Create your separate plugin files within this folder. Here’s a simple guide using an example:
//splitplugins/MyHelloWorldPlugin/serverinit.cs:
//[OXIDE]
using Oxide.Core;
//[CARBON]
using Carbon.Core;
namespace Oxide.Plugins
{
public partial class MyHelloWorldPlugin
{
private void OnServerInitialized()
{
TestLog();
}
#region hello
void Loaded()
{
Puts("Loaded2");
}
#endregion
[OXIDE]
void OxideMethod(){
}
[CARBON]
void CarbonMethod(){
}
}
}
//splitplugins/MyHelloWorldPlugin/declare.cs:
using Oxide.Plugins;
namespace Oxide.Plugins
{
[Info(“MyHelloWorldPlugin”, “Tsunderella”, “1.0.0”)]
[Description(“This is an example”)]
public partial class MyHelloWorldPlugin : CarbonPlugin
{
void Loaded()
{
Puts(“Loaded”);
}
}
}
//splitplugins/MyHelloWorldPlugin/functions/testlog.cs:
using Oxide.Plugins;
using System.Text;
namespace Oxide.Plugins
{
public partial class MyHelloWorldPlugin
{
private void TestLog()
{
Puts(“hello world”);
}
}
}
4. Output: Once the Split Plugin Loader processes these files at runtime, they are compiled into:
//plugins/MyHelloWorldPlugin.cs
using Oxide.Plugins;
using Oxide.Core;
using System.Text;
namespace Oxide.Plugins
{
[Info(“MyHelloWorldPlugin”, “Tsunderella”, “1.0.0”)]
[Description(“This is an example”)]
public class MyHelloWorldPlugin : RustPlugin
{
private void OnServerInitialized()
{
TestLog();
}
#region hello
void Loaded()
{
Puts(“Loaded2”);
Puts(“Loaded”);
}
#endregion
void OxideMethod(){
}
private void TestLog()
{
Puts(“hello world”);
}
}
}
Obfuscator:
using Oxide.Plugins;
namespace Oxide.Plugins
{
[FormatCode] //This will enable formatting(not implemented fully)
[EnableBasicObfuscation] //This enables basic obfuscation
[Info(“MyHelloWorldPlugin”, “Tsunderella”, “1.0.0”)]
[Description(“This is an example”)]
public class MyHelloWorldPlugin : RustPlugin
{
[DoNotObfuscate] //Don’t obfuscate this variable
public string shouldNotObfuscate = “hello”;
private string shouldObfuscate = “world”;
[DoNotObfuscateMethod] //Do not obfuscate the method name
private void OnServerInitialized()
{
TestLog();
}
[DoNotObfuscateMethod] //Do not obfuscate the method name
void Loaded()
{
Puts(“test2”);
var hello = “world”;
var world = “hello”;
Puts(“HelloWorld312”);
}
private void TestLog()
{
Puts(“and even here2”);
}
[DoNotObfuscate]//Don’t obfuscate anything in this method(unless it’s calling a method that’s been obfuscated
void TestMethod2()
{
string testing = “hello”;
}
void TestMethod(string test)
{
shouldObfuscate = test;
TestLog();
}
}
}
Output(This is just basic obfuscation for now):
using Oxide.Plugins;using System.Text;namespace Oxide.Plugins{[Info("MyHelloWorldPlugin", "Tsunderella", "1.0.0")][Description("This is an example")]public partial class MyHelloWorldPlugin : RustPlugin{public string shouldNotObfuscate = "hello";private string v_0055f67d = "world";private void OnServerInitialized(){m_a172963e();}void Loaded(){Puts("test2");var hello = "world";var world = "hello";Puts("HelloWorld312");}private void m_a172963e(){Puts("and even here2");}void TestMethod2(){string testing = "hello";}void m_c73515cb(string test){v_0055f67d = test;m_a172963e();}}}
Special Beta Discount:
For a limited time, as we navigate the beta phase, avail of a 50% discount on the Split Plugin Loader. Offer valid for one week only! As with all beta versions, users may encounter bugs or glitches. Your patience and feedback during this phase are invaluable, helping shape a more polished final product.
Your feedback shapes the future. For any queries, challenges, or suggestions, our dedicated support team is eager to assist. Embrace the next level of Rust development with the Split Plugin Loader!
A Personal Note: Behind every piece of code there is a story. As someone who is heavily dyslexic, I found navigating through large code bases daunting. If you want to have this as a requirement or just to compile a large plugin and distribute the end result is up to you. I saw on the forums people where asking how to split plugins into multiple files and I personally think it’s obnoxious splitting up a plugin into multiple plugins(except when it does more than one function) then you even have to wait for dependencies to load and what not.
Reviews (0)
Only logged in customers who have purchased this product may leave a review.
Version History
- Fixed Carbon not including extension handler
- Added // Require: Support
- Added // Reference: Support
- Fixed Overload method support
- Fixed Endregion not appearing.
- Added Support for method, top level variables, and usings to have directives of [OXIDE] and [CARBON]. ( I will not add umod specific directives unless requested)
- Added uMod.Plugins namespace support.
- Added #region and #endregion support
- Updated Refactored code to be more modular
- Updated Prepped for a future build to be able to use a command to cross build a plugin for a platform(Not implemented)
- Added Oxide version has microsoft.codeanalysis shaded into it for compatibility. (They are under MIT license and distribution is allowed)
- Added Readme with install instructions 😃
- Updated Optimizations
- Added Basic obfuscation support
- Added Oxide Support
- Updated Modified code base to be modular for oxide and carbon
- Fixed Fixed a bug that 1.0.1 added that broke hot loading plugins
- Added Added dynamic plugin directory support
Discussions (0)
Discussions
There are no discussions yet.
Leave a reply
Setup
Plugin FAQ – How do I use this .zip/.7z file I just purchased on my server?
• First, you want to unzip the file. You can do so by just double-clicking it to open, then drag the contents to the desired location (you may need to install an external unzipping software if you don’t already have one such as 7zip or winrar)
• Next you will find either a structure of folders or just the .cs file itself (it’s the actual plugin file itself).
• After that just install the .cs (plugin file) into your …/oxide/plugins/ folder where you will install plugins you ever need to.
Additionally, here’s a great video that easily covers adding a plugin to your server if you need! https://youtu.be/yWC_p97FhQA
• Installation is not included with any products on the site, however, if needed we may assist if you reach out to our support.
Currently all products on Lone.Design will be contained within a zipped file which is the .7z or .zip that you see. I believe windows 10 and up can unzip on its own without 3rd party tools, but in that case, if you’re unfamiliar with zipped files here are 2 programs I recommend to easily unzip zipped files.
Video On How to Zip and Unzip: https://youtu.be/Ep-L3PjBPCk (TechInsider Youtube Channel)
Zipping/Unzipping Tools
Winrar https://www.rarlab.com (I used to use for years, but works great!)
7zip https://www.7-zip.org/a/7z2107-x64.exe (the one I use currently)
Setup
How do I set up these Tools/Utilities I just purchased for my server?
• All tools/utilities are to include installations steps in the description or within the product download themselves, however, if you need assistance whilst setting them up please reach out to us on Discord. Please follow the installation steps found in the description or attached within your downloaded file.
• Installation is not included with any products on the site, however, if needed we may assist if you reach out to our support.
Currently all products on Lone.Design will be contained within a zipped file which is the .7z or .zip that you see. I believe windows 10 and up can unzip on its own without 3rd party tools, but in that case, if you’re unfamiliar with zipped files here are 2 programs I recommend to easily unzip zipped files.
Video On How to Zip and Unzip: https://youtu.be/Ep-L3PjBPCk (TechInsider Youtube Channel)
Zipping/Unzipping Tools
Winrar https://www.rarlab.com (I used to use for years, but works great!)
7zip https://www.7-zip.org/a/7z2107-x64.exe (the one I use currently)
Reviews
There are no reviews yet.