-
Posts
36 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Warranty Claims
Downloads
Forums
Store
Support
DOWNLOADS EXTRA
Services
Everything posted by Gd.Kenni
-
- 21 comments
-
- 21 comments
-
- 1
-
-
- 21 comments
-
The plugin is not designed to recreate the Rust techtree; you can assign chat commands, console commands and economic rewards, but this requires the reward to be unlocked on the plugin's techtree. If you want a special feature, I can try to integrate it but I need to know exactly what behavior to ask for. Does this answer your question?
- 21 comments
-
Version 1.3.18
36 downloads
This plugin lets you create a customizable techtree. It's not designed to replace the default Rust techtree, but it does allow you to recreate it to 98%, unlocks plans and can be used to distribute rewards or unlock features in other plugins. If you use Oxide, Carbon Aliases if required ! Else ignore this. Feature TechTree customizable TechTree by Workbenchlevel Multiple rewards (ChatCommand / ConsoleCommand / Economics) Item custom support Unlock blueprints Reward if tree is all unlocked Adaptable size with scrolling No command to open Press the Use key R on the Workbench to open the Tech Tree Permissions techtree.use techtree.unlock.free techtree.unlock.instant Information Default data files are created on plugin load Helper Grid files are created on plugin load General Settings { "Settings": { "Wipe Player Data at Wipe": true, "Time For Unlock Node": 1.0, "Selected Theme": "Default", "Use Permissions ?": false, "Use Economics ?": false, "Unlock Blueprint If Item ?": true, "Grid Settings": { "height": 21, "width": 31 }, "Level Of Zoom": 1.5, "Use UI Editor (BETA version) ?": false } } Techtree Data ID: ID of the node. Parent: Parent node required to unlock this node. Image URL or Item: Image used, via URL or in-game item (ID/Skin). Type: Type of Image (URL or Item). Value: Url (string) if URL or ItemID and SkinID if Item. Grid Position: Node position on the grid (x, y). Ingame Name: In-game name for this node. Short Description: Short description of the node. Additionnal Description: List of descriptions. Price: Cost to unlock this node. Curency: Resource needed to pay the price (ID/Skin). Rewards: List of rewards obtained after unlocking. Type: Type of reward (ChatCommand, ConsoleCommand or Economics). Value: Value or command associated with the reward (string). "TechTree": [ { "ID": "A2", "Parent": "A1", "Image URL or Item": { "Type": "Url", "Value": "https://imgur.com/SRGgaKX.png" }, "Grid Position": { "x": 1.0, "y": 8.0 }, "Player Info": { "Ingame Name": "Name A2", "Short Description": "A short description", "Additionnal Description": [ "<color=#32CD32><b>First info</b></color>", "<color=#FFD700>additionnal info</color>", "Warning: <color=#DC143C>a other additionnal info</color>" ] }, "Price": 300, "Curency": { "Item ID": -804769727, "Skin ID": 2816495176 }, "Rewards": [ { "Type": "ChatCommand", "Value": "say Congratulations on unlocking A2!" }, { "Type": "ConsoleCommand", "Value": "c.grant user playerID perm.use" }, { "Type": "Economics", "Value": "6500" } ] }, ], "Extra": { "Reward On All Node Unlocked": [ { "Type": "ChatCommand", "Value": "say Congratulations, you all unlocked!" }, { "Type": "Economics", "Value": "20000" } ] } Image configuration exemple With URL : "Image URL or Item": { "Type": "Url", "Value": "https://imgur.com/SRGgaKX.png" }, With ITEM : "Image URL or Item": { "Type": "Item", "Value": { "Item ID": -1966748496, "Skin ID": 0 } }, Lang { ["CLOSE"] = "CLOSE", ["EDITMODE"] = "EDIT MODE", ["SAVE"] = "SAVE", ["ADD"] = "Add", ["REMOVE"] = "Remove", ["MODIFY"] = "Modify", ["CANCEL"] = "Cancel", ["CONFIRM"] = "Confirm", ["SELECT"] = "Select", ["NONE"] = "None", ["NOTAVAILABLE"] = "Not yet available", ["PLAYERMODE"] = "PLAYER MODE", ["UNLOCKED"] = "UNLOCKED", ["UNLOCK"] = "UNLOCK", ["CANT AFFORD"] = "CAN'T AFFORD", ["OPEN"] = "[R] OPEN", ["Workbench_1"] = "LEVEL 1", ["Workbench_2"] = "LEVEL 2", ["Workbench_3"] = "LEVEL 3", ["Engineering"] = "ENGINEERING", ["NO PERM"] = "You don't have permission." } Api (bool) IsNodeUnlocked(BasePlayer player, Workbench workbench, string nodeID) // Return if node is unlocked (Dictionary<string, bool>) GetUnlockState(BasePlayer player, Workbench workbench) // Return unlock dictionary (nodeID/bool) for player in Workbench (void) SetUnlockState(BasePlayer player, Workbench workbench, string nodeID, bool unlocked) // Set the unlocked/locked state (true/false) for a Workbench node (void) ResetUnlockState(BasePlayer player, Workbench workbench) // Resets all unlocks state on a Workbench. Hook private void OnNodeUnlocked(BasePlayer player, Workbench workbench, string nodeID) { Puts($"Node {nodeID} as been unlocked on workbench {workbench.Workbenchlevel} by {player.UserIDString}"); } Api and Hook exemple using Oxide.Core.Plugins; using System; using System.Collections.Generic; using UnityEngine; namespace Carbon.Plugins { [Info("TechTreeApi", "Gd.kenni", "1.0.0")] public class TechTreeApi : CarbonPlugin { [PluginReference] Plugin TechTree; private void OnNodeUnlocked(BasePlayer player, Workbench workbench, string nodeID) { Puts($"Node {nodeID} as been unlocked on workbench {workbench.Workbenchlevel} by {player.UserIDString}"); } [ConsoleCommand("IsNodeUnlocked")] private void IsNodeUnlockedCmd(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); try { var prefab = GameManager.server.FindPrefab("assets/prefabs/deployable/tier 1 workbench/workbench1.deployed.prefab"); var bench = prefab.ToBaseEntity() as Workbench; var statu = TechTree?.Call<bool>("IsNodeUnlocked", player, bench, "Longsleeve T-Shirt"); Puts($"{statu}"); } catch (Exception ex) { PrintError($"Error on command: {ex.Message}"); } } [ConsoleCommand("GetPlayerUnlockState")] private void GetPlayerUnlockStateCmd(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); var prefab = GameManager.server.FindPrefab("assets/prefabs/deployable/tier 1 workbench/workbench1.deployed.prefab"); var bench = prefab.ToBaseEntity() as Workbench; var playerStatus = TechTree?.Call<Dictionary<string, bool>>("GetPlayerUnlockState", player, bench); foreach (var kv in playerStatus) Puts($"{kv.Key} {kv.Value}"); } [ConsoleCommand("SetNodeUnlockState")] private void SetNodeUnlockStateCmd(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); var prefab = GameManager.server.FindPrefab("assets/prefabs/deployable/tier 1 workbench/workbench1.deployed.prefab"); var bench = prefab.ToBaseEntity() as Workbench; TechTree?.Call("SetNodeUnlockState", player, bench, "Tank Top", true); } [ConsoleCommand("ResetUnlockState")] private void ResetUnlockStateCmd(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); var prefab = GameManager.server.FindPrefab("assets/prefabs/deployable/tier 1 workbench/workbench1.deployed.prefab"); var bench = prefab.ToBaseEntity() as Workbench; TechTree?.Call("ResetUnlockState", player, bench); } } }$14.99- 21 comments
-
- 3
-
-
-
-
Version 1.2.0
9 downloads
Penitentiary is a beautiful custom Rust monument inspired by the Prison Simulator video game. Prefab: ~ 4200 1 red door with fuse 2 green doors 1 desk with credit card 1 Chinook drop point __________ This monument is thought Vanilla pvp but can very well be used for Pve or Rp after some minor modifications. Electricity operational, which can be controlled. 36 cell. Some parts of the monument are radioactive. No NPCs. Changes can be made if requested. __________$7.50-
- 1
-
-
- #custom prefab
- #custom monument
-
(and 2 more)
Tagged with:
-
- 252 comments
-
- 1
-