-
Posts
1,079 -
Joined
-
Days Won
7
Content Type
Profiles
Warranty Claims
Downloads
Forums
Store
Services
Downloads Plus Support
DOWNLOADS EXTRA
Everything posted by Khan
-
@ZEODE You have been out of town / away on vacation so I've been waiting for you to come back before trying to reach out to you. & frankly it's been so long that I've forgotten. "But unless people are putting incorrect vanilla names" ?? That field is natively null on vanilla items. If it is supposed to be a vanilla item that field should never be set. Ever. Also for the record umod release is abandoned / not maintained. I only support codefling release. I haven't logged into umod in over a year. If you really wanted to reach out to me about a plugin you could simply do so in discord or here on codefling but umod is not a platform I even look at.
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
Version 1.0.3
38 downloads
Written with the best performance in mind turret modifier brings the ability for players to have different custom sentry, auto turrets & flame turrets each with different permissions as well as a global default one. It supports tc limits, auto auths, custom toggle on/of commands and restock command of turret ammo. You can make as many perms as you wish for different turret variants. Ideal for shop plugins, vending machines and more. With more features in the works / development. Features: * Multiple Ammo Types per turret * Ability to place turrets on any building surface. * Turret Limits * Auto Authorization support for Teams & TC * Turret Customization Support * Individual trap limits * commands to toggle turrets on / off * commands to refill the turrets with ammo on the player * More to come, look at config below for full feature list F1 / Console Commands tm.flame name or steamID perm or global amount spin<optional, Example: tm.flame give khan global 3 | tm.flame give khan global 3 spin tm.turret name or steamID perm or global amount spin<optional, Example: tm.turret give khan global 3 | tm.turret give khan global 3 spin tm.sentry name or steamID perm or global amount spin<optional, Example: tm.sentry give khan global 3 | tm.sentry give khan global 3 spin tm.clear ( removes all server instances of player placed sentry turrets ) Chat Commands /toggle <on> | <off> ( toggles all auto turrets with power on or off ) NOTE: restock command requires the player to have the ammo on them to work. /restock red 500 ( restocks all turrets within that TC area with the specified ammo type & ammount per turret ) /restock <default> | <black> | <blue> | <red> | <sam> Configuration { "Enables use of permission based settings": true, "Toggle Command for Turrets: Toggles on / off (set empty string to disable)": "toggle", "ReStock Command for Turrets: Specify Ammo & ReStock Inventory (set empty string to disable)": "restock", "Give Command Flame Turret": "tm.flame", "Give Command Auto Turret": "tm.turret", "Give Command Sentry": "tm.sentry", "Clear Sentry Command": "tm.clear", "SteamIDs that are excluded from build Limits": [], "Can Be Targeted Settings": { "SteamIDs that are excluded from being targeted": [] }, "Global Auto Turret": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 30.0, "Turret Placement Health, vanilla = 1000": 1000.0, "Aim cone, vanilla = 5": 5.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret", "Player Auto Turret Permissions": { "toptier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 15, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 100.0, "Turret Placement Health, vanilla = 1000": 1500.0, "Aim cone, vanilla = 5": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret" }, "midtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 13, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 70.0, "Turret Placement Health, vanilla = 1000": 1300.0, "Aim cone, vanilla = 5": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret" }, "lowtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 50.0, "Turret Placement Health, vanilla = 1000": 1150.0, "Aim cone, vanilla = 5": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret" } } }, "Global Sentry Turret": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Power Requirement, 0 = no power": 10, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 30.0, "Turret Placement Health, vanilla = 1000": 1000.0, "Aim cone, vanilla = 4": 4.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 0 ], "Player Sentry Turret Permissions": { "toptier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 15, "Power Requirement, 0 = no power": 0, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 100.0, "Turret Placement Health, vanilla = 1000": 1500.0, "Aim cone, vanilla = 4": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 7 ] }, "midtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 13, "Power Requirement, 0 = no power": 3, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 70.0, "Turret Placement Health, vanilla = 1000": 1300.0, "Aim cone, vanilla = 4": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 0, 3, 2, 1 ] }, "lowtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Power Requirement, 0 = no power": 6, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 50.0, "Turret Placement Health, vanilla = 1000": 1150.0, "Aim cone, vanilla = 4": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 0, 3, 2 ] } } }, "Global Flame Turret": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 7.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1000.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret", "Player Flame Turret Permissions": { "toptier": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 15, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 100.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1500.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret" }, "midtier": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 13, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 70.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1300.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret" }, "lowtier": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 50.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1150.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret" } } } }$24.99- 1 comment
-
- #turret
- #turretmodifier
- (and 15 more)
-
Version 1.1.2
360 downloads
Image Manager is a sleek and powerful tool for developers, offering a lightweight alternative to ImageLibrary. Its unique handling and plugin-specific callbacks make it exceptionally easy to use. Console Command: imagemanager.reset // can only be ran from server console/terminal I don't allow use client side. Features: Error Handling: Outputs special debug info for devs when something fails. It's able to self repair when the server sv.files have been deleted but a wipe hasn't occurred or vice versa. Stores images with unique identifiers to ensure reliable retrieval/removal. If unity request fails retries with www instead. Optimized Request Management: Utilizes batch processing to handle image caching requests efficiently. Auto Remove Data that isn't used past x Days: Default = 30, 0 = disabled. Sets batch limits on Images: Default = 30 & Avatars can do 100 at a time per request using steam API key. Keeps Previous Wipe Data thus reducing the need to redo everything each wipe. Groups requests into batches to optimize resource use and reduce overhead. Manages large volumes of connections without sacrificing performance. Handles high volumes of image caching requests during server wipes or mass player reconnections. Processes and caches avatar images quickly with coroutine-based execution. Manages concurrent requests from multiple plugins simultaneously without conflicts or slowdowns. Maintains responsiveness and efficiency in dynamic server environments. Plugin Communication: In addition to its core functionality, the system includes special logic to facilitate communication between plugins. Each plugin calling the image caching system is notified when its batch of requests is ready or finished, allowing it to proceed with its logic without waiting for all requests to complete. This feature enhances the flexibility and usability of the system, ensuring smooth integration with various plugins and workflows. Plugin Communication Example For Images: // Plugin Calls!? Whaaa.. :P This works with all Adding hook calls in this plugin. // Example plugin: GUIShop [PluginReference] private Plugin ImageManager; private List<string> _pluginImages = new List<string>(); private Dictionary<string, string> _guishopImages = new Dictionary<string, string>(); private void OnServerInitialized() { // This will add the images to the filesystem list for the callback if (ImageManager != null && ImageManager.IsLoaded) ImageManager?.Call("AddImages", _pluginImages, FileStorage.Type.jpg, "GUIShop"); } // why do we need this!? OnPluginLoaded for reload situations, or when plugin wasn't loaded yet. private void OnPluginLoaded(Plugin name) { if (ImageManager != null && name.Name == ImageManager.Name & ImageManager.IsLoaded) { Puts("ImageManager has been detected and GUIShop Images are now being Processed"); // This will add the images to the filesystem list for the callback ImageManager?.Call("AddImages", _pluginImages, FileStorage.Type.jpg, "GUIShop"); } } // this would be your custom call-back ( Why use this!? Because it can actually be faster so you can continue your code logic quicker ) void ImageManagerGUIShop(Dictionary<string, string> images) { _guishopImages = images; // this returns the sent URL as the KEY with the image as the value. } // now down in your GUI / UI you can do this ( same for avatars except the key is ulong ) public void Pic(ref CuiElementContainer container, string parent, string name, string anchorMin, string anchorMax, string url) { CuiRawImageComponent rawImage = new CuiRawImageComponent(); rawImage.Png = _guishopImages[url]; container.Add(new CuiElement { Parent = parent, Name = name, Components = { rawImage, new CuiRectTransformComponent { AnchorMin = anchorMin, AnchorMax = anchorMax } } }); } Plugin Communication Example for Avatars / Image Combo: private HashSet<string> _storeImages = new HashSet<string>(); private Dictionary<string, string> _storedImages = new Dictionary<string, string>(); private Dictionary<string, string> _storedAvatars = new Dictionary<string, string>(); private void OnServerInitialized() { ImageManager?.Call("AddImages", _storeImages.ToList(), FileStorage.Type.jpg, "GUIShop"); } private void OnPluginLoaded(Plugin name) { if (ImageManager != null && name.Name == ImageManager.Name) { Puts("ImageManager has been detected and Images are now being Processed"); ImageManager?.Call("AddImages", _storeImages.ToList(), FileStorage.Type.jpg, "GUIShop"); // plugin name "GUIShop" } } // your special made hook to listen for on your image request. private void ImageManagerRustID(Dictionary<string, string> received) { // you can filter which ones you want when you get the list back. example. foreach (var image in received) { if (_storeImages.Contains(image.Key)) { _storedImages[image.Key] = image.Value; _storeImages.Remove(image.Key); if (_storeImages.Count == 0) break; } } } // called when new avatars get cached so you can update as needed. void ImageManagerPlayerConnected(Dictionary<string, string> avatars) => _storedAvatars = avatars; // use for your gui example CuiRawImageComponent rawImage = new CuiRawImageComponent(); rawImage.Png = _storedAvatars[id]; //or call each time if you prefer.. (string)ImageManager?.Call("GetAvatar", id); // or image rawImage.Png = _storedImages[key] container.Add(new CuiElement { Parent = parent, Name = name, Components = { rawImage, new CuiRectTransformComponent { AnchorMin = anchorMin, AnchorMax = anchorMax } } }); API Hooks: // Avatars // Called when the plugin has initially loaded / compiled & finished/ready for use. void ImageManagerLoadedAvatars(Dictionary<string, string> avatars) // Triggered when new players connect with no stored pic yet. ( Is only called once finished storing in the event of multiple or mass player connections their Queued ) void ImageManagerPlayerConnected(Dictionary<string, string> avatars) // Triggered by 3rd party plugins doing stuff + PlayerConnected. void ImageManagerAdded(Dictionary<string, string> avatars) // called when avatars have been removed & returns the new full avatar list available. void ImageManagerRemoved(Dictionary<string, string> avatars) // Images // Called when the plugin has initially loaded / compiled & finished/ready for use. void ImageManagerLoadedImages(Dictionary<string, string> images) // Triggered by 3rd party plugins doing stuff. void ImageManagerAdded(Dictionary<string, string> images) // called when avatars have been removed & returns the new full avatar list available. void ImageManagerRemoved(Dictionary<string, string> images) API Calls: These are API CALLS which means you call them.. ImageManager?.Call("AddImages", _pluginImages, FileStorage.Type.jpg, "GUIShop"); // Example // new hook use this to specify individual image storage types. AddImages(Dictionary<string, FileStorage.Type> images, string plugin) // hook changed. AddImages(List<string> images, FileStorage.Type format, string plugin) // hook changed. Use this to specify 1 storage type for all images to save as. AddImage(string image, FileStorage.Type format, string plugin) GetImage(string image) // returns string GetImages(List<string> images) // returns Dictionary<string, string> RemoveImage(string image) RemoveImages(List<string> images) AddAvatar(ulong player, string url, string plugin) // url is optional if you want to provide custom image for player. AddAvatar(string player, string url, string plugin) // url is optional if you want to provide custom image for player. AddAvatars(Dictionary<string, string> players, string plugin) // url is optional if you want to provide custom image for player. GetAvatar(string player) // returns string GetAvatars(List<string> players) // returns Dictionary<string, string> RemoveAvatar(string player) RemoveAvatars(List<string> players) TODO: Add MYSQL Support to have 1 database available instead of each server instance. Add Discord support for Error Responses.Free -
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
The reason comments get hidden is usually because I want you to make support tickets and respond to them instead of creating a bunch of spam on the discussion thread. Everyone has completely different stack bugs it would seem, so a fix for one owner is not the same for another. I like to keep this area open for stuff like suggestions, features or general discussion. I don't like to see comments with just error codes posted, doesn't help anything without any context and I don't want people thinking its okie to use older versions because they'll never get their servers fixed in the long run. I'm sorry if doing so made that confusing.
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
@Watcher If you could msg me on discord @ khan8615 Or like respond to your support tickets then we can get the stack issues sorted out. You made support tickets and never responded to them, no matter how many times I did ( I responded 4 times on your last post ). But you have to speak to me or like nothing is gonna get fixed for you. Also, its not up to us to have 3rd party plugin support, majority of the issues are coming from codefling failing to review new plugins for improper code handling of stuff such as 'item creation' and ( 'item giving' not respecting the server stack sizes. ) They get paid to do that I don't yet I am constantly having to hunt down these plugins fix / report the issue to owners/devs. All because they don't stack for you. I do my best to reach out to problem plugin devs to let them know how to fix there works and work with them. But I have no control over if they do the fixes in their works or not. So in the end I am not to blame for anything, I've been doing my best to try and help you watcher but you don't even respond to your own support tickets so you make it impossible.
- 201 comments
-
- 1
-
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
@Bears My latest update has resolved any issues with furnaces & oil refineries not working with my Industrial Conveyor Patch. If you have any problems now it will be from a 3rd party plugin, pls let me know if it works alright for you now in 2.5.2 Pls verify your stack sizes set for resource items aren't set at 8 as well. Also I added a config toggle to disable the Industrial Conveyor Patch so if you do have a problem with it please disabled it inside the config save the config and reload the plugin & it will remove the Industrial Conveyor Patchs.
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
@Watcher I wasn't aware of a plugin called that. I just checked and sadly the code inside that isn't handled right either which means it requires an update to support stack modifier correctly. It looks like he tried but forgot a few things.. I'll post a patch on the plugin discussion board for it shortly I guess..
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
The issue appears to be 3rd party plugin related with backpacks from umod. 3rd party plugin support is not a requirement for developers on codefling, although i do try my best. You can follow the investigation of this issue here > https://codefling.com/files/support/13350-error-in-console/ I cannot do much when people do not respond to their own support thread tickets when i try to ask questions to trouble-shoot / diagnose the cause. So if i cannot re-create the bug/error it cannot be debugged majority of the time with 3rd party compatibility issues. Basically if yall want the error fixed with backpacks yall need to respond to your own support threads otherwise 3rd party support will be a pipe dream.
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 17 comments
-
- #console
- #spam cleaner
- (and 9 more)
-
- 201 comments
-
- 2
-
-
- #stacks
- #rust stacks
- (and 22 more)
-
Alright listen peeps. The reason you are even getting those issues is because their is things wrong with your config files. This is also the reason why things aren't stacking for you or being edited properly in the UI editor, etc. This next update 2.4.2 should auto-fix them now As well as still output the problems found/fixed in console. If it finds anything it will output all of what it fixes in console. So pay attention. However another easier fix would have been to unload the plugin live on the server delete config and then load it and it would have self regenerated with the same stacks already set on the server except with a valid config this time. But of course nobody does this. So here I am wasting hours of coding to auto check for and patch your config files. So all this extra code is for you guys.
- 201 comments
-
- 1
-
-
- #stacks
- #rust stacks
- (and 22 more)
-
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
@Snaplatack Aye, that feature has been looked into a few times and the problem is, that it would rely a lot on a specific oxide hook that a lot of 3rd party plugins either use or harmony-patch into the method before the hook is called. Which means the rate of 3rd party plugin conflicts would most likely sky-rocket and I don't want to really deal with the blow-back of that, I have a hard enough time keeping 3rd party plugin support as it is. But yes it is possible to do a feature update but honestly if I do it at all. It would have to be as a stack-modifier add-on and it would be a paid plugin + it would most likely have unknown 3rd party plugin conflicts. Other possible issues/problems with this request are: Overall Performance concerns and Possible High-Hook time warnings.
- 201 comments
-
- #stacks
- #rust stacks
- (and 22 more)
-
That is because the UI system for the cctv station is not coded the same as anything else in the game rust. Facepunch used a whole other system for it and it is not possible to properly fix the UI scaling problem. https://umod.org/community/auto-cctv-stations/40222-page-buttons-placement-bug Here is a 1 year old report on the issue. The best I could do is either code out every different monitor type and then make the players select which resolution they have, even if i did that their is no guaranty it would be in the right place since i only have a shitty 1080p 24in monitor and even then that wouldn't really work for wide-screen monitors because it would be so stretched and since i do not own a wide screen monitor i cannot even code support for it.
- 12 comments
-
- 1
-
-
The oxide permission system that would handle such a feature addition is simply too heavy to use and sometimes accessing the permission handler is null. Which to this day has still not yet been resolved. The permission handler system is so heavy that I actually code my own work arounds for it in simpler plugins. If i was to add a permission based stack system it would prove to be really heavy. + How would i handle automation item movements? Example: after 6 boxes daisy changed up to the output of a conveyor become full and start moving to box 7/8, etc already cause performance problems. I would have to add additional oxide hooks to even do perms & then sort out all kinds of other problems, its simply not worth it because in the end I fear the performance would be so horrendous that I'd have to pull the whole update. I hate to say this but honestly people need to stop trying to 'vip'-monetize every tiny thing. When it comes to core gameplay such as something so minor as stack sizes.. You shouldn't be limiting it anyways.
- 201 comments
-
- 3
-
-
-
- #stacks
- #rust stacks
- (and 22 more)