Death's Wishlist
-
Portable Recycler
By Raul-Sorin Sorban in Plugins
With Portable Recycler, you and your players will benefit exponentially in time saving for searching for Recyclers around monuments like never before. Access your own portable recycler anywhere you like!
FEATURES
Use /recycler (by default, can modify in the config) to open up your private recycler. Group-based cooldown support in the config. Friendly integration with NoEscape by Calytic with configurable rules of behavior. Chat message custom icon Steam ID. Phrase support. Group-based recycling quality. Group-based recycling rates.
PERMISSIONS
PortableRecycler.use: To allow anyone to open up their recycler.
COMMANDS (CONFIGURABLE)
Following commands are chat and console commands.
recycler: Opens up your own personal portable recycler.
CONFIG
DISCLAIMER
The yellow and green buttons while using the Recycler in the GIF, does not come with the plugin.
That's another plugin called Quick Sort by MONaH.
-
Welcome Panel
Site
In case you having issues with plugin feel free to open support ticket on site here. I will usually respond within 24 hours not including weekends.
Discord
I'm also available at my discord server where I provide support for my customers. You can also find small community here and get answers for your questions. Invite link here.
Documentation
To find out what can be customized within config file please refer to full plugin documentation here. Any questions prior to purchasing forward into DM here or into ticket at my discord.
Default configs available as template with plugin.
Screenshots bellow showcasing configurations created by customers. These are not available with the plugin but I decided to post them here since it's good demonstration of how customizable this plugin is.
BOOBLEJ
Tide
Neighigh
Paul
Leunal17
BOOBLEJ
How to start using plugin? Simply drop WelcomePanelLite.cs file into your plugin folder. After successfully loading plugin you can use default command /info in game. Configuration is handled in config file (oxide/config/WelcomePanelLite.json).
How hard is to get this plugin all set up? It's fairly simple. Plugin comes with default configuration which showcases everything you need to know regarding text, styling and changing images.
How hard it is to customize your own layout?
When it comes to changing color or images it's simple, any inexperienced user can do it however if you want to customize positions of UI or add extra tab buttons, it requires understanding of "ui anchors". Anchors are not that complicated but it takes hour or two to fully understand it. For more info check documentation.
Can I add multiple pages into WelcomePanel?
Yes, you can add unlimited amount of pages.
Can I add images into WelcomePanel?
Yes, you can add image to any panel and you can set background for each tab
What image sizes I should use?
This is different for each panel across different templates. Basically images parented to any panel are stretched to its size. Best approach is to take screenshot of the panel and try to fit image size into that prior to uploading it.
How to add addons?
Each text tab has addon option at bottom, just type in plugin name. List of available addons can be found at the top of the plugin description, listed as "Works with".
-
Canvas
By Raul-Sorin Sorban in Plugins
Canvas provides your server a new way to allow your community to connect or play against eachother in an art pixel war. This is heavily inspired by r/place.
Features
Large canvases that players in your server can draw on Three different types of pixel group-based payments for fresh or overtaking fees Group-based cooldowns for placing pixels Zooming in and out / scrolling capabilities, or coordinate inputs Pixels are registered per players that overtook them Pixel age tracking Exporting to Imgur or PNG in super-size resolutions (API optimal) Next Update
Multi-selection support — for selective pixels exporting + API Custom empty-pixel background colors (dark/light mode or paper) Viewer settings — saved to file Timelapse support — record placed pixels + API Pixel notes — for any purchased pixels, you can leave notes More exporting options Roadmap
Load in the actual 2022-edition r/place datasets into Canvas Add image loader into the Canvas Add private canvases, multiple global canvas pages and showcase lists Integrate export Canvases onto signs (can already do it by exporting the Canvas to Imgur, and using SignArtist to place it on) Pixel notes Live feed of other players' selected pixels
API
byte [] ExportCanvas ( int scale = 25, int yOffset = 1, bool transparent = false, int blur = 0 ); // Exports PNG squared Canvas void UploadCanvasToImgur ( Action<string> onUpload, int scale = 25, int yOffset = 1, bool transparent = false, int blur = 0 ); void SetPixel ( int x, int y, string color, string note, ulong playerId ); // playerId can be 0 to anonymously set it void ClearPixel ( int x, int y ); void ApplyImage ( string url ); // Downloads and applies the pixels of an image - make sure it's the same resolution as the canvas byte [] ExportCanvas ( Canvas.Painting painting, int scale = 25, int yOffset = 1, bool transparent = false, int blur = 0 ); // Exports PNG squared Canvas void UploadCanvasToImgur ( Canvas.Painting painting, Action<string> onUpload, int scale = 25, int yOffset = 1, bool transparent = false, int blur = 0 ); void SetPixel ( Canvas.Painting painting, int x, int y, string color, string note, ulong playerId ); // playerId can be 0 to anonymously set it void ClearPixel ( Canvas.Painting painting, int x, int y ); void ApplyImage ( Canvas.Painting painting, string url ); // Downloads and applies the pixels of an image - make sure it's the same resolution as the canvas Configuration
Permissions
Canvas.use: To be able to call the /canvas and do any activity. Canvas.export: To be able to run the Export UI command and see the button on the Canvas. -
Dungeon Bases
The plugin adds a dungeon event to your server. Dungeons are bases with puzzles, NPC defenders, turrets and more. You can create your own dungeons of varying difficulty
You can build your own bases or modify existing ones:
There are moving NPC guardians in the dungeons:
There are puzzles with protective doors in the dungeons:
In the dungeons there are secret notes with codes in boxes or on NPCs:
Commands:
dungbase_start - force start event
dungbase_stop - force stop event
Hooks:
void DungeonBasesEventStarted() - // called when event starts
void DungeonBasesEventEnded() - // called when event ends
Configuration:
{ "Allow only the event owner (the one who entered the dungeon first) into the dungeon": true, "Allow owner's teammates to enter the dungeon": true, "Message that you cannot enter the dungeon without being the owner of the event or its teammate": "You cannot enter the dungeon without being the owner of the event or its teammate", "Event marker on the map": true, "Event marker name": "Dungeon Base", "Event marker transparency(0-1)": 0.55, "Event marker radius": 0.5, "Event marker color.R(0-1)": 1.0, "Event marker color.G(0-1)": 0.0, "Event marker color.B(0-1)": 0.0, "Display event owner name on marker": true, "Display the time remaining until the end of the event on the marker": true, "Autostart event(disable if you want to trigger the event only manually)": false, "Minimum time to event start(in seconds)": 3600, "Maximum time to event start(in seconds)": 7200, "Minimum event duration(in seconds)": 2000, "Maximum event duration(in seconds)": 3000, "Minimum number of online players to trigger an event": 1, "Event message": "The dungeon bases event has started, find the entrance to the base and get the loot", "End event message": "The dungeon bases event has ended", "Dungeons list": [ "#dung#base1", "#dung#base2", "#dung#base3", "#dung#base4" ], "Entrances list": [ "#dung#entrance1", "#dung#entrance2", "#dung#entrance3", "#dung#entrance4" ], "Random order of choosing a dungeon from the list (if false, will be selected in turn)": false, "Random order of choosing the entrance to the dungeon from the list (if false, will be selected in turn)": false, "Change the time of day when entering the dungeon(from 0 to 23, if -1 - do not change the time)": 0.0, "How long before the end of the event does radiation start to affect players inside the dungeon": 180, "How long after the event ends should the entrance be destroyed": 60, "Close the entrance and exit to the dungeon when the event time is over": true, "Message about closing the entrance and exit": "Time is up, the entrance and exit to the dungeon are closed forever!" } Note: The plugin is guaranteed to work correctly with bases enabled. NPCs will not behave as standard, as they use different algorithms. Only one dungeon can spawn on the map at a time.
-
Skinner
By Whispers88 in Plugins
Skinner! The unrivaled no.1 performance skinning plugin. Skin any item in the game with a unique skinbox giving you live skinning, auto skinning and skin sets.
Live Skinning - Skin items in place without moving them Auto import - Automatically import and use all game approved skins Skin Sets - Create a variety of different skin sets for any item Skin Requests - Allows players to request and Admins to accept new skins in game Auto Skins - Automatically apply selected skins to every item that enters your inventory
Skinner 2.0 offeres unrivaled performance in plugin efficiency. Our standard testing shows runtime results were 60x faster and memory usage was 200x more efficient than the closest peforming plugin.
SkinMenu Commands:
/Skin or /S - Live skin any item in your inventory by selecting a skin you wish to apply /SkinCraft or /Sc - Create multiple skin sets for use in other functions such as skinauto or skinteam /Skinitem or /Si - Skin a deployable item you are looking at ingame. Args - Spectify 1, 2 or 3 to automatically use a skin set. Automatic Commands:
/Skincon or /scon - sets all items in a container you are looking at to your default craft set Args - Optional, spectify 1, 2 or 3 to automatically use a skin set. /Skininv or /sinv - sets all items in your inventory to your default craft set Args - Optional, spectify 1, 2 or 3 to automatically use a skin set. /Skinauto or /Sauto - Automatically apply selected skins to every item that enters your inventory based off your skin sets. Args - Optional, spectify 1, 2 or 3 to automatically use a skin set. /Skinteam or /st - sets all items in your inventory and your teams to your default craft set Args - Optional, spectify 1, 2 or 3 to automatically use a skin set. Toggle - Use /skinteam toggle to opt in or out of the team skin set /SkinBase - Allows you to skin all deployables in your base to your default skincraft skins. Args - Optional, specify item name to filter items being skinned example: /Skinbase sleepingbag to only skin sleeping bags. /SkinAll Command - Skin all the items in all the containers in your base. Args - Optional, specify item by shortname example: /SkinAll rifle.ak to only skin ak47's. Skin Import Commands:
/Skinimport or /sip - Import custom workshop skins Args - WorkshopID example: /Skinimport 2397648701
/Colimport or /cip - Import custom workshop collection using /skinimport collectionID Args - Collection ID example: /Colimport 2921147807
/Skinrequest or /Sr - Request a skin to be added to skinner, requested skins will show in the /Skinrequests UI for approval Args - WorkshopID example: /Skinrequest 2397648701
/Skinrequests or /Srs - Opens the the skinner menu with a box of skins awating approval Button Usage - Select an option and remove the skin to enact the process
Try - Recieve a copy of an item with that skin
Approve - Adds the skin from the menu to the imported skins list
Deny - Removes the skin Note: All chat commands are universal meaning they can be used via the console, rcon(for import commands) and can be customized via the configuration.
Player Permissions:
Skinner.default - enables /skin command Skinner.items - enables /skinitem command Skinner.craft - enables /skincraft command Skinner.skinauto - enables /skinauto command Skinner.skincon - enables /skincon command Skinner.skininv - enables /skininv command Skinner.skinbase - for use of the /skinbase command Skinner.skinteam - Allows the use of the /skinteam command Skinner.skinall - for the use of the /skinall command Skinner.skinrequest - enables /skinrequest Cooldowns Permissions:
Cooldown settins can be adjusted via the plugin config. Applying the cooldown permission example skinner.default30 will enforce cooldowns on those with the permission. If no cooldown permission is applied no cooldowns will be enforced. If multiple cooldown perms are assigned to a single player they fastest cooldown will be used.
"Command based cooldowns ('permission' : 'command' seconds": { "Default30CD": { "skin": 30.0, "skinitem": 30.0, "skincraft": 30.0, "skincon": 30.0, "skininv": 30.0, "skinteam": 30.0, "skinbase": 60.0, "skinall": 60.0 } Admin Permissions:
Skinner.import – enables /Skinimport, /Colimport and /Skinrequests Skinner.bypassauth - bypasses the building auth requirement when using /Skinitem Skinner.permskintry - enables try feature when using /Skinrequests Warning: trying a skin will make a copy of that item. Only give this perm to admins who are allowed to spawn items. Other Permissions:
Skinner.skinautotoggled - applied when a player disables skinauto Skinner.skinteamblock - applied when a player disables team skins
Skinner offers multiple ways of importing skins including via the config and through commands:
Importing via the config:
To import skins via the config insert workshopIDs into the imported skins list as per the code snippet below, once finished reload skinner and the shortname and displayname fields will be automatically populated. You can add extra skins at any stage using this method.
"Imported Skins List": { "861142659": {}, "2617744110": {} },
Optionally entire workshop skin collections can be added to conifg, each item skin is automatically imported to your imported skins list on plugin load.
"Import Skin collections (steam workshop ID)": [496517795,2921147807],
Importing via commands:
Commands can be used to edit the config options for imported skins and collections via RCON, chat commands and the f1 console. Commands include:
/Skinimport WorkshopID /Colimport CollectionID Importing via Skin Requests:
Players can requests skins to be added to the game using the skinrequests feature. By using the command /skinrequest WorkshoID a skin gets automatically uploaded to the skin requests box. Admins with the skinner.import permission can open the requests box with the /skinrequests command.
Skins from the request box can then be "tried" approved or denied.
Each skin requested can be logged to discord using the webhook in the config.
Importing from other plugins:
Skinner now has a tool for windows to import data from skinbox, xskins and skincontroller. Simply select your json data file with imported skins into the tool and copy the new imported skins list into the skinner config.
https://github.com/Whispers88/SkinDataConverter/releases/tag/Main
Note: The "Imported Skins (skinid : 'shortnamestring', skinid2 : 'shortnamestring2'": {}" is now redundant and automatically converted to imported skins list.
{ "Skin Commands (skin items in you inventory": [ "skin", "s", "skinbox", "sb" ], "Skin Items Commands (skin items you have already placed": [ "skinitem", "si", "skindeployed", "sd" ], "Set default items to be skinned": [ "skincraft", "sc" ], "Automatically set all items in you inventory to your default skins": [ "skininv", "sinv" ], "Automatically set all items a container to your default skins": [ "skincon", "scon" ], "Automatically skin all deployables in your base": [ "skinbase", "skinbuilding" ], "Automatically skin all items in your base": [ "skinall", "sa" ], "Automatically skin all items that are moved into you inventory": [ "skinauto", "sauto" ], "Skin your teams inventories with your skin set": [ "skinteam", "st" ], "Request workshop skins via workshop ID": [ "skinrequest", "sr" ], "Approve workshop skin requests": [ "skinrequests", "srs" ], "Set your selected skin set": [ "skinset", "ss" ], "Import Custom Skins": [ "skinimport", "sip" ], "Import Workshop Collection Command": [ "colimport", "cip" ], "Skin Request Notification Discord Webhook": "", "Custom Page Change UI Positon anchor/offset 'min x, min y', 'max x', max y'": [ "0.5 0.0", "0.5 0.0", "198 60", "400 97" ], "Custom Searchbar UI Positon anchor/offset 'min x, min y', 'max x', max y'": [ "0.5 0.0", "0.5 0.0", "410 635", "572 660" ], "Custom Set Selection UI Positon anchor/offset 'min x, min y', 'max x', max y'": [ "0.5 0.0", "0.5 0.0", "250 610", "573 633" ], "Auto import approved skins": true, "Remove player data after inactivity (days)": 14, "Apply names of skins to skinned items": true, "Add Search Bar UI": true, "Use on itemcraft hook (skin items after crafting - not required when using skinauto)": false, "Override spraycan behaviour": false, "Use spraycan effect when holding spraycan and skinning deployables": true, "Blacklisted Skins (skinID)": [], "Blacklisted Itemms (itemID)": [], "Import Skin collections (steam workshop ID)": [], "Command based cooldowns ('permission' : 'command' seconds": { "Default30CD": { "skin": 30.0, "skinitem": 30.0, "skincraft": 30.0, "skincon": 30.0, "skininv": 30.0, "skinteam": 30.0, "skinbase": 60.0, "skinall": 60.0 } }, "Imported Skins List": {} }
//Get all Cached skins public Dictionary<int, List<ulong>> GetAllCachedSkins() { return _cachedSkins; } //Check if skin is a Redirect item public bool IsRedirectID(ulong uID) { return HasMask(uID); } //Convert Redirect ID to item ID public int RedirectIDtoItemID(ulong uID) { return (int)UnsetMask(uID); } //Get a list of skins for a particular item public List<ulong>? GetSkinsItemList(int itemid) { _cachedSkins.TryGetValue(itemid, out List<ulong>? cachedSkins); return cachedSkins; }