-
Posts
440 -
Joined
-
Last visited
-
Days Won
6
Content Type
Profiles
Warranty Claims
Downloads
Forums
Store
Services
Downloads Plus Support
DOWNLOADS EXTRA
Reels
Everything posted by crash
-
Your host blocks plugins from downloading files, so the installer can’t fetch the extension. Open the Scrap Worm zip, copy Oxide.Ext.CrashExtensions.dll into RustDedicated_Data/Managed (on Carbon: carbon/extensions) with your host’s file manager, then restart the server. If the host doesn’t let you upload DLLs at all, ask their support to put that file there for you
-
Not with forge.giveitem itself yet: it sets track levels only, no gems. there are two ways to do it today: Give the item, then the gems. Levels from forge.giveitem open sockets like forged ones do (at total +3, +6 and +9, and the prismatic socket at +15), so a +25 item comes with its sockets open. Give the Radiant gems with forge.give <player> gem.<kind>.3, for example gem.vampire.3, and the player puts them in from the SOCKETS tab. Make it a legendary, if you want the item to arrive with its gems already in. In the config under “Legendaries”, define an item with: its base shortname and skin; its track levels (up to 50, above your caps too); its gems, each with its grade (3 = Radiant). Then forge.give <player> legendary <id> hands it out ready-made, with no chat announcement. by default a legendary can’t be forged further and its gems can’t be removed. “Can be forged further” and “Gems can be removed” turn that off. set its drop chances to 0 if you only want to give it by command
-
- 4 comments
-
- #scrapworm
- #worm
- (and 18 more)
-
- 4 comments
-
- #scrapworm
- #worm
- (and 18 more)
-
Hey! Forge 1.2.0 is out with all three: Levels above the max: forge.giveitem <player> rifle.lr300 damage=25 gives an item already forged, above your config caps, with stats scaling the same way. forge.setlevel goes up to 50 too. Rocket launcher magazine: take rocket.launcher off the blacklist and it can forge MAGAZINE (whole rockets per level, set in the config) and DURABILITY. The MGL works too. Drops: BetterNpc, NpcSpawn and KpucTaJl’s event NPCs were wiping Forge’s drops when they refilled loot. That’s fixed. Give each NPC its own drop chances under “NPCs by prefab or display name”, using its preset name. Thanks again for the ideas!
-
Version 1.0.0
4 downloads
[ ✓ ] Works on any host. The zip includes a small installer plugin: run crashext.install once and restart. [ ✓ ] Plant Spawn Controller lets you decide how much grows on your map. Hemp, corn, pumpkins, potatoes, wheat, every berry colour, mushrooms, flowers, the stone, metal, sulfur, wood and HQM pickups, and the wood piles, dead logs and driftwood: each group gets its own density and its own respawn speed, so you can have twice the berries and half the logs with two drags. It doesn't replace Rust's spawning. It tunes the vanilla populations and lets vanilla do the spawning, so plants keep appearing where they always do, and unloading the plugin puts every vanilla value back. Nothing is written to your server.cfg. Everything happens in one admin window: pick a preset, drag a slider, weight hemp against corn, scale it all with your player count, give wipe day a boost, refill a group right now or trim the extras, and ping the nearest plants on your map. Works on Oxide and Carbon Needs CrashExtensions (included) 6 groups, 28 vanilla populations Presets, player curve, wipe boost Jump to: Features · Screenshots · Trailer · Commands · Permissions · Install · Configuration · Test server · FAQ Features Six groups. Crops (hemp, corn, pumpkin, potato, wheat), Berries (five colours, normal and jungle), Mushrooms, Flowers (sunflower, rose, orchid), Pickups (stone, metal, sulfur, wood, HQM) and Stumps & logs (wood piles, dead logs, driftwood). Density per group. From 0x to 5x of vanilla. 0 empties a group, 3x triples it. Respawn speed per group. From 0.25x to 10x, so picked plants come back slower or faster. Weights inside a group. Give hemp more of the Crops share, or make yellow berries rare. The group total stays where the density puts it. Hard cap. A max alive per group, so a high density never runs away on a big map. Player curve. 2 to 5 points on players online: more plants when the server is empty, fewer when it's full, or the other way round. Each group opts in. Wipe boost. An extra multiplier for the first hours after a wipe, on the groups you pick. Presets. Vanilla, Farming, Survival, Cooking, Barren, 2X and Low pop, one click each. Great with cooking plugins that need lots of berries and mushrooms. Refill now. Fills a group up to its new target in small steps, and pauses when the server FPS drops. Trim. Removes the extras over the target, never within 60 m of a player and never inside building privilege. It asks for a second click before it runs. Live counts. Alive and target per group and per population, the mix of each kind, and how many entities you are adding over vanilla. Map markers. /plants show crops pings the nearest plants of a group on your map for 30 seconds. Clean restore. Unload or reload and every vanilla value is back. A group you switch off goes back to vanilla too. Plays nice. Built to run next to Ore Spawn Controller and the other Spawn Controllers, and it warns you if another spawn plugin is loaded. Light on the server. One small update every 30 seconds, refill and trim spread over frames, and the admin pictures only go to admins. Screenshots Every screen below is Plant Spawn Controller running in Rust. OVERVIEW: every group, the entity budget and the presets GROUPS: density, respawn and a weight per crop Berries at x2 with the live mix of every colour CURVE: drag the points, pick the groups, set the wipe boost SETTINGS: updates, markers, refill and trim, safety Type an exact value Trim asks for a second click /plants show crops: the nearest crops on your map Trailer The Plant Spawn Controller trailer (click to play, 55 seconds) Commands Chat: /plants - open the admin window. /plants show <group> - ping the nearest plants of a group on your map (groups: crops, berries, mushrooms, flowers, pickups, logs). /plants hide - clear the markers. /plants help - list the commands. Console (server console, RCON or an admin in F1): psc.preset <id> - apply a preset: vanilla, farming, survival, cooking, barren, 2x, lowpop. psc.set <group> <density|respawn|cap|curve|enabled|boost> <value> - change one value of a group, like psc.set berries density 2. psc.set <group> weight <kind> <value> - change one weight, like psc.set crops weight hemp 1.5. psc.refill [group|all] - fill toward the target now. psc.trim [group|all] - remove the extras over the target. psc.report - alive, target and vanilla numbers for every group and population. Permissions plantspawncontroller.admin - the window, every button in it and the console commands. plantspawncontroller.show - /plants show and /plants hide without the rest (admins have them already). oxide.grant user YOUR_STEAM_ID plantspawncontroller.admin oxide.grant user YOUR_STEAM_ID plantspawncontroller.show Install Install the extension, once per server. Stop the server, copy Oxide.Ext.CrashExtensions.dll into RustDedicated_Data/Managed (Carbon: carbon/extensions) and start it again. The console prints Loaded extension CrashExtensions with its version. An older copy of the DLL is simply overwritten: it's one shared file for all our plugins. Install the plugin. Copy PlantSpawnController.cs into oxide/plugins (Carbon: carbon/plugins). It compiles on its own and creates its config. Grant the permission above and type /plants. Host doesn't allow DLL uploads? Put CrashExtInstaller.cs from the zip in your plugins folder and run crashext.install once in the server console: it downloads the extension from GitHub, checks it and puts it in place. Restart once and you're done. Configuration Everything lives in oxide/config/PlantSpawnController.json, and the window sets all of it in game. Changes apply and save the moment you make them. Config sections (click to expand) Test server Available on our test server. Type /plants in chat to open the window and play with the sliders, presets and map markers. The test server puts its settings back on its own from time to time. client.connect 91.229.114.54:28015 FAQ Q: Does it replace Rust's plant spawning? A: No. Vanilla still does all the spawning, in the same places. The plugin only changes how many of each population vanilla aims for and how fast it brings them back. Q: What happens when I unload it? A: Every vanilla value goes back the moment it unloads. Plants that already exist stay until they're picked, and vanilla keeps the map at its normal numbers from there. Q: I raised a group. Why isn't the map full yet? A: Vanilla fills toward the new target over time. Press REFILL NOW to get there right away, in small steps that pause when the server FPS drops. Q: I lowered a group. Do the extras disappear? A: Not by themselves. Press TRIM EXTRA twice (the second click confirms) and it removes the extras far from players and outside bases. Q: Does it touch ore nodes? A: No. The Pickups group is the small stone, metal and sulfur pickups on the ground, not ore nodes. Ore nodes belong to Ore Spawn Controller. Q: Why does the stone pickup count read 0 during Halloween? A: That's vanilla: during Halloween the stone pickup population spawns stone, metal, sulfur, wood and bone evenly, so the plain stone row can read low. Your density and weights still apply. Q: Can I run it with other spawn plugins? A: It's made to run next to the other Spawn Controllers. If SpawnControl, ServerPopulation or PopulationControl is loaded it warns you in the console, because two plugins changing the same populations will fight. Q: Does it work on Carbon? A: Yes. The extension goes into carbon/extensions instead of RustDedicated_Data/Managed, and the plugin into carbon/plugins. Q: How do I translate it? A: English is built in. Edit oxide/lang/en/PlantSpawnController.json, or copy it into another language folder and translate its values: each player reads their own game language. Q: My config file broke. Will it get overwritten? A: Never. A config that isn't valid JSON is copied aside, left untouched, and the plugin waits for you to fix it and reload. Q: Does it contact any outside service? A: Only to download its pictures (about 50 small images) once from the Venux CDN, cdn.crashplugins.space, and only admins receive them. Nothing about your server or your players is sent. You don't need ImageLibrary. Q: Can other plugins read it? A: Yes: GetMultiplier(group), GetAlive(group) and the hook OnPlantSpawnControllerApplied(string group, float multiplier). The Spawn Controller family Plant Spawn Controller is the first of a family that tunes Rust's world populations the same way, each with the same window: Ore Spawn Controller - your own ore grid: spacing per ore, odds per biome, population scaling. Out now. Tree Spawn Controller - forests, palms, cactus and bushes per biome. Coming soon. Loot Spawn Controller - roadside barrels, junkpiles, shore crates and dive sites. Coming soon. Animal Spawn Controller - predators, game, livestock and critters, with a safe wipe start. Coming soon. Vehicle Spawn Controller - minicopters, boats, cars, horses and trains, with late air. Coming soon. They share one engine, take turns so they never refill at the same time, and you can run any mix of them. Want all of them? The Spawn Controller Bundle (all five plus Ore Spawn Controller) is on venuxplugins.com. Questions, ideas or bug reports? Use the Support tab of this file or join our Discord.$9.99 -
Hey, thanks for testing Item Insurance, good to know it keeps the upgrades! Levels above the config max: Yes, I’ll add this. Admins will be able to give an item a level above the track cap, like +25 on a +15 server, and the stats scale the same way. So with +10% damage per level, a +25 LR-300 gets +250% damage. There will also be a console command that creates the item already forged, so shops and kits can hand it out. Two limits stay for balance: durability tops out at no condition lost, and protection at 90% less damage taken. Rocket launcher magazine: Launchers are blacklisted by default because rockets do their damage through the explosion, and the explosion doesn’t know which launcher fired it. So a damage level would do nothing on them. Bigger magazines do work, though. In the next update launchers will be able to take the Magazine and Durability tracks, with extra rockets per Magazine level set in the config. Item drops: Most of this is already in Forge. In the config you can set drop chances for every material: per loot container, by prefab name for NPC kills in general per NPC, by prefab or display name. BetterNpc and NpcSpawn NPCs use their preset name as the display name, so you can give each type its own chances. For events there’s also forge.reward <steamid> <table> [rolls] , which any plugin that runs console commands can call, and an API for other plugins. There is one issue I found while checking this: BetterNpc and KpucTaJl’s events clear and refill corpse and crate loot right after they spawn, and that can wipe the Forge drops that were just added. That fix goes in the same update. I’ll look at Relics separately. Thanks for the ideas, I’ll post here when the update is out.
-
Version 1.0.0
17 downloads
[ ✓ ] Works on any host. The zip includes a small installer plugin: run crashext.install once and restart. [ ✓ ] Scrap Worm puts a giant worm made of scrap metal under your map. It hunts inside its own territories, listens for gathering, gunshots and explosions, and breaks out of the ground right under the loudest one. While it is above ground it bites, drags, whips and crushes, and that is the only time you can hurt it. Its armor takes reduced damage and four glowing cores along its sides take a lot more. Every core you burst strips its segment's armor, which falls behind it as a trail of scrap. Kill it and it collapses into burning heli or Bradley crates and a hackable crate, the top damage dealers get paid, and its plates are left behind for harvesting. It runs on its own: territories on the map, a hunt on a timer, a boss health bar, chat and Discord announcements. Nothing to install on the client: the worm is built from parts every Rust client already has. Works on Oxide and Carbon Needs CrashExtensions (included) Automatic event on map territories Top damage rewards Jump to: Features · Screenshots · Trailer · How a hunt goes · Commands · Permissions · Install · Configuration · Test server · FAQ Features For players A real boss fight. A worm over 20 metres long breaches out of the ground in a big arc and dives back in. Every breach is different: a low skim, a normal arc or a high leap, at its own pace and heading. It hunts you. Gathering, gunshots and explosions in its territory are noise, and the next breach comes up under the loudest one. Firing a rocket somewhere else can pull it where your team wants it. You see it coming. The ground rumbles, dust kicks up and a ring of dirt marks where it will erupt. Stand in the ring and you take the slam. It fights back. It bites the nearest player in reach and drags them into its mouth, whips anyone near its tail, and runs over whoever is in its way. Weak points. The whole body takes reduced damage. Four glowing cores take a lot more, and each one you burst knocks off a chunk of health and strips that segment's armor plates. Every weapon works. Bullets, rockets and launcher grenades hit the body, and thrown C4 and grenades stick to it and ride along until they go off. Boss health bar. Name, EXPOSED or BURROWING, the four cores and its health, above the hotbar for everyone near the fight. Loot worth the fight. Burning heli or Bradley crates and a hackable crate where it falls, plus scrap plates you can harvest for metal fragments, charcoal and high quality metal. For server owners Set and forget. Three territories are placed on your map by itself (open, dry ground away from monuments, the same spots for the whole wipe), shown as circles on the map, and hunts start on a timer with a minimum player count. Your own territories. Add spots by coordinates with their own name and radius. Scales with the crowd. Health grows with the players around when it spawns, up to a cap you set. Rewards. Economics money and ServerRewards points for the top damage dealers, up to 10 places. PvE friendly. An optional loot lock gives the crates to the top damage dealer's team for as long as you want, and it survives a reload. Bases are safe by default. Building damage is off. Turned on, it only hits inside the territory of the running hunt and goes through normal damage, so raid protection still applies. Players who place a Tool Cupboard in a territory get a warning popup. Announcements. Chat lines for start, kill and leave, to everyone or only nearby, and an optional Discord webhook. Works with your loot plugins. The crates are the native ones, so BetterLoot and AlphaLoot fill them, and you can pick an AlphaLoot profile. Every number in the config. Size, speed, arc, health, damage taken, every attack, crates, rewards, timers and territories, each with a safe range. Four languages. English, Spanish, Brazilian Portuguese and Russian built in. For developers Hooks. OnScrapWormStart, OnScrapWormKilled, and two you can veto: OnScrapWormCrush (protect a block) and OnScrapWormRunOver (spare a player). See the FAQ. Screenshots Every screen below is Scrap Worm running in Rust. It breaches out of the ground in a long arc, with the boss bar above the hotbar It erupts under the loudest noise The glowing cores are its weak points Kill it and it bursts into scrap plates Burning crates and scrap debris where it fell Trailer The Scrap Worm trailer (click to play, 44 seconds) How a hunt goes It starts. A hunt picks one of the territories, everybody gets a chat line with the grid, and the circle on the map turns red. It listens. Gathering, gunshots and explosions inside the territory are noise. The next breach comes up under the loudest one, after a rumble and a ring of dirt. It surfaces. For a few seconds it is out of the ground: it bites and drags, whips its tail and crushes what it runs into. Underground it cannot be hurt. You hit it. The body takes 30% of a hit by default, a core takes double. Each burst core strips its segment's armor, and a stripped segment takes much more. It dies. At zero health, or with all four cores burst, it collapses. Burning crates land where it fell (outside a base if it fell inside one), its plates become harvestable debris, chat names the top damage dealer and the rewards are paid. Or it leaves. If nobody is around for 5 minutes, or the 25 minute hunt runs out, it burrows away. The next hunt is scheduled by itself, 90 minutes later by default. Commands Chat, for admins or a player with scrapworm.admin: /scrapworm start - start a hunt now in a random territory. /scrapworm spawn - put a worm underground 15 m in front of you, then breach or loop. /scrapworm breach - make it breach once. /scrapworm loop - keep it breaching. /scrapworm stop stops after the current breach. /scrapworm status - its health and cores. /scrapworm territories - list the territories. /scrapworm remove - remove the worm now. Admin From the server console, RCON or a player with scrapworm.admin: scrapworm.start - start a hunt now. scrapworm.territories - list the territories with their position and radius. Permissions scrapworm.admin - the commands above. Server admins can always use them. Players need no permission to fight the worm. oxide.grant user YOUR_STEAM_ID scrapworm.admin Install Install the extension, once per server. Stop the server, copy Oxide.Ext.CrashExtensions.dll into RustDedicated_Data/Managed (Carbon: carbon/extensions) and start it again. The console prints Loaded extension CrashExtensions with its version. An older copy of the DLL is simply overwritten: it is one shared file for all our plugins. Install the plugin. Copy ScrapWorm.cs into oxide/plugins (Carbon: carbon/plugins). It compiles on its own and creates its config. That's it. The first hunt starts 20 minutes after the server is up. To see it now, stand on open, flat ground and type /scrapworm start. Host does not allow DLL uploads? The zip includes CrashExtInstaller.cs. Upload it like a plugin and run crashext.install once in the server console: it downloads the extension from GitHub, checks it and installs it. Configuration Everything lives in oxide/config/ScrapWorm.json. Every value has a safe range: a value out of range keeps the plugin unloaded, leaves your file untouched and tells you in the console what to fix. The full list with every default and range is in the Documentation tab and the README. Config sections (click to expand) Test server Available on the new Meowcraft test server. The worm wakes up 5 minutes after the server starts and then every 20 minutes while someone is online. Its two territories, H7 and J2, show on the map: go there, make noise, and it comes for you. client.connect 91.229.114.54:28015 FAQ Q: Do players need a client mod? A: No. The worm is built from scrap helicopter parts every Rust client already has, so it works on any map with no downloads. Q: Will it wreck my players' bases? A: Only if you turn it on. Building damage is off by default. Turned on, it only hits inside the territory of the running hunt and goes through normal damage, so raid protection plugins still apply. Q: Can it hurt players in safe zones? A: No. Players in a safe zone, sleeping, in noclip or spectating are never targets. Q: Do I need Economics or ServerRewards? A: No. They are optional rewards. Without them the worm still drops its crates. Q: Is it good for PvE? A: Yes. Turn on the loot lock and the crates belong to the top damage dealer's team for the time you set. With TruePVE the worm still hurts players and players can harvest its debris. Q: It dies too fast or too slow. What do I change? A: WormHealth, HealthPerExtraPlayer, BodyDamage and CoreDamage. Any attack can be weakened or turned off by setting its damage to 0. Q: Does it work on Carbon? A: Yes. The extension goes into carbon/extensions instead of RustDedicated_Data/Managed, and the plugin into carbon/plugins. Q: How do I translate it? A: English, Spanish, Brazilian Portuguese and Russian are built in. Edit oxide/lang/en/ScrapWorm.json, or copy it into another language folder and translate its values: each player reads their own game language. Q: Does it contact any outside service? A: It downloads three small health bar pictures once from the Venux CDN, rust-cui.crashplugins.space, which your server then keeps. Nothing about your server or your players is sent. The Discord webhook is the only other request, and only if you fill it in. Q: Can other plugins react to the worm? A: Yes. Scrap Worm calls void OnScrapWormStart(Vector3 position, string territory) when a hunt starts and void OnScrapWormKilled(Vector3 position, ulong topDamager) when it dies. Return anything but null from object OnScrapWormCrush(DecayEntity entity) to protect a building block, or from object OnScrapWormRunOver(BasePlayer player) to spare a player from its attacks. Questions, ideas or bug reports? Use the Support tab of this file or join our Discord.$29.99- 4 comments
-
- #scrapworm
- #worm
- (and 18 more)
-
Hey, thanks a lot, glad you’re enjoying it! Quick answers on each: Custom Item Manager: Forge’s stones and materials are set in the config by a base shortname plus a skin ID, and CIM items are used by their shortname. So in theory you could point a material at a CIM item, but I haven’t tested that combo myself and don’t want to promise it works yet. I’ll give it a proper try and get back to you. Item Insurance: Forge saves the upgrade info on the item itself. Whether an insured item comes back with its upgrades depends on how Item Insurance restores items, and I haven’t checked that. I’ll take a look, and if the upgrades get wiped I’ll see what can be done on my end. Item Perks: No official integration right now. It’s on my list to look at. Both plugins store their own stuff on items, so I’d want to make sure they don’t step on each other before saying anything for sure. I’ll update you here once I’ve tested these. Thanks for the ideas!
-
Version 1.3.0
15 downloads
[ ! ] The zip contains a DLL extension that goes into RustDedicated_Data/Managed. Some hosts do not allow uploading DLLs - check with your host first. [ ! ] NpcDialogue gives your NPCs the game's own conversation screen. Rust only draws that screen for the talks it ships with, so a custom NPC normally gets a chat message or a generic panel. NpcDialogue rebuilds it one to one, measured from the game's own UI files: the black letterbox bars, the name tag on the panel's top edge, the red X, the lines that type themselves out, the numbered answers and the blue-framed mission panel with its objectives, time limit, reward slots and COMPLETED button. Stand where an NPC should be, type /npcd add trader, and a talking NPC appears there. Inside a monument it is saved relative to it, so it comes back at every copy of that monument on every map and survives wipes. Its answers check things (a permission, a group, an item, money) and do things (charge or pay scrap, Economics or ServerRewards, give or take items, grant permissions), written as short lines in the config: pay 50, give largemedkit 1. Every check runs before anything happens, payments come first, and an answer that cannot finish undoes everything it did and hands back the very items it took. Developers get an API to register conversations, missions, conditions and actions at runtime, spawn NPCs and follow every conversation through hooks. Our other plugins use it too: the Case Battles key dealer and the Relics black market broker talk through it. Works on Oxide and Carbon No other plugin needed Needs CrashExtensions (included in the zip) 8 languages built in Jump to: Features · How an answer works · Screenshots · Commands · Permissions · Works with · Install · Configuration · Test server · FAQ · API Features For players The vanilla screen. Letterbox bars, name tag, red X, typed lines and numbered answers, with the colours, sizes and fonts of the game's own conversation. Missions that look like missions. The blue panel shows up to 4 objectives, a time limit, up to 6 reward items with their amounts and a COMPLETED button. Your language. English, German, Spanish, French, Italian, Portuguese, Russian and Ukrainian, with the game's own words for TIME, REWARDS and COMPLETED. It gets out of the way. The screen closes by itself when you walk away from the NPC, die, go down or disconnect, and a fast double click never pays twice. For server owners Talking NPCs where you stand. /npcd add <conversation> places one facing where you look. Inside a monument it is saved relative to it, so it stands at every copy of that monument, on every map, and survives wipes. Answers without code. Conditions hide a row (permission, group, item with skin, money, and ! in front to negate any of them). Actions do the work: pay, reward, give, take, grant and revoke. Safe by design. Every check runs first, payments run before anything else, and an answer that cannot finish undoes everything it did (the same items come back, wear and attachments included) and shows its "fail" speech. Your currency. Scrap by default, any other item, Economics or ServerRewards. Vanilla NPCs too. The real texts of the Boat Vendor, Stable Master, Airwolf Vendor, Fisherman and CZ-721 scientist come ready, and you can give any vanilla NPC a new conversation. One-shot rewards. Mark a claim with a permission so a gift can only be taken once. A broken config is never overwritten. The plugin saves a copy as NpcDialogue.json.broken and runs the defaults until you fix the file. Server commands on any answer, with {steamid} for the player, and sounds for refused and completed answers. For developers An API. Register conversations, missions, conditions and actions at runtime, spawn and remove NPCs, and open a screen you drive yourself. See the API. Hooks for every step. Start, pick and end of every conversation, plus a ready hook to register in. Clean unloads. Everything a plugin registers or spawns is dropped when it unloads. How an answer works The row shows or hides. An answer with Conditions shows only when every one of them passes. A condition that fails to run hides the row too. Checks first. When a player picks it, every action is checked before anything runs. Payments first. The debits are summed and taken first, then Economics or ServerRewards rewards, then other plugins' actions, then item gives, item rewards and permission changes. Inside each group the actions run in the order you wrote them. A failure undoes it all. If a step cannot finish, payments come back, rewards are taken back and the very items taken return to their slots; the refused sound plays and the answer's "fail" speech shows. A give or item reward bigger than 30 stacks never runs (the player sees only the "fail" speech): split it. If Economics or ServerRewards refuses a refund, it is kept in oxide/data/NpcDialogue_owed.json and paid the next time the player picks an answer or connects, also after a wipe. Then the conversation moves on to the next speech, or ends. After a purchase the next pick waits half a second, so a fast double click never buys twice. Then its server commands run. They cannot fail the answer: if a command does nothing (a plugin not loaded, a wrong id), what the actions took is not given back, so test a command once from the console first. The shipped trader conversation shows all of it: a large medkit for 50 scrap, 1000 wood for 40 scrap and a one-shot gift. This is its first answer as it sits in the config: "Text": "Sell me a large medkit. [PAY 50 SCRAP]", "Next speech id (empty = end conversation)": "sold", "Actions (all checked first, then run in order)": [ "pay 50", "give largemedkit 1" ], "Next speech id when an action cannot run (empty = stay)": "poor" Screenshots Every screen below is NpcDialogue running in Rust. A placed trader: answers that sell, buy and give The mission panel: objectives, time and rewards COMPLETED closes the mission Mission offers with their own icons Long speeches wrap and type out line by line In the player's language Commands /npcd add <conversation> [id] - place a talking NPC where you stand, facing where you look /npcd remove [id] - remove the NPC with that id, or the one next to you /npcd list - list the placed NPCs and the ones other plugins placed /npcd tp <id> - teleport to an NPC /npcd respawn - place every NPC again, reading the NPC list from the config file /npctalk [id] [speech] - preview a conversation: answers move between speeches but run no actions or commands All of them need admin or the npcdialogue.admin permission. Permissions npcdialogue.admin - /npcd and /npctalk. Staff only (admins can always) npcdialogue.gift - lets a player see the shipped trader's one-shot gift row npcdialogue.gift.claimed - written by the gift itself once it is taken. Do not grant it A permission that starts with npcdialogue. and is used in a conversation is registered for you. A typical setup: oxide.grant group admin npcdialogue.admin oxide.grant group vip npcdialogue.gift Works with Case Battles: the key dealer sells keys through NpcDialogue, and NpcDialogue comes free in the Case Battles zip Relics: the black market broker talks through NpcDialogue, and NpcDialogue comes free in the Relics zip Economics / ServerRewards: optional currency for payments, rewards and money conditions, scrap by default Any plugin with console commands: an answer can run server commands with {steamid}, so it can sell or give anything another plugin hands out Install Install the extension, once per server. Stop the server, copy Oxide.Ext.CrashExtensions.dll into RustDedicated_Data/Managed (Carbon: carbon/extensions) and start it again. The console prints Loaded extension CrashExtensions with its version. An older copy of the DLL is simply overwritten: it is one shared file for all our plugins. Install the plugin. Copy NpcDialogue.cs into oxide/plugins (Carbon: carbon/plugins). It compiles on its own and creates oxide/config/NpcDialogue.json. Try it. Grant npcdialogue.admin to your staff, stand somewhere in game, type /npcd add trader and talk to the NPC that appears. Then write your own conversations, missions and NPCs in the config and run oxide.reload NpcDialogue. Plugin does not compile? The extension is missing or too old: check the folder and restart again. On a hosting panel, upload the DLL with the file manager or SFTP, and keep a copy in case the panel resets that folder on an update. Configuration Everything lives in oxide/config/NpcDialogue.json. Config sections (click to expand) Conditions and actions Conditions: permission <perm>, group <group>, item <shortname> [amount] [skin], money <amount>. Put ! in front to negate one, for example !permission vip Actions: pay <amount>, reward <amount>, give <shortname> [amount] [skin], take <shortname> [amount] [skin], grant <perm>, revoke <perm> Without a skin, item and take count only plain items, so a skinned or renamed item is never taken by mistake One-shot rewards: mark the claim instead of revoking. Use the condition !permission npcdialogue.gift.claimed and the action grant npcdialogue.gift.claimed. A revoke cannot take a permission a group gives, so the plugin refuses it then Test server Available on the new Meowcraft test server. Find the Relics black market broker there and talk to him: his whole conversation runs through NpcDialogue. FAQ Q: I run NpcDialogue. What changes when I update? A: Replace NpcDialogue.cs and, if you update the extension too, restart once. Your config, your conversations, missions and placed NPCs load as they are. Q: Is it identical to the game's own screen? A: The layout, colours, fonts and the typing animation are measured from the game's files. A server cannot do three things: hide the vitals and hotbar while you talk, answer to the number keys and close on ESC. The red X closes the screen and the answers are clicked. Q: What happens to the vanilla NPCs? A: Nothing, until you ask. The default conversations hold the real texts of the Boat Vendor, Stable Master, Airwolf Vendor, Fisherman and CZ-721 scientist, and their purchase answers are text only until you give them actions or server commands. An override replaces that NPC's whole vanilla conversation, including what its answers did (buying boats, opening its shop, handing out missions), on every NPC that carries it. The console says what an override drops the first time it runs. Q: Do I need an economy plugin? A: No. Money is scrap unless you pick another item, Economics or ServerRewards in the Currency section. Q: Can another plugin use it? A: Yes, that is what the API is for. Register conversations, missions, conditions and actions when OnNpcDialogueReady fires, spawn NPCs, or open a screen you drive yourself. The Case Battles key dealer and the Relics black market broker do exactly that. Q: What if an NPC gets removed by another plugin? A: A placed NPC is put back by itself, checked every minute. If a spot keeps losing its NPC right after it spawns, the plugin stops that spot with one warning until you run /npcd respawn or reload it. Q: Does it contact any outside service? A: No. It makes no web requests and sends nothing about your server or your players. Q: Can I translate it? A: Eight languages are built in, and each player sees the language of their own game. Your own conversations and missions show exactly as you write them. Q: Does it work on Carbon? A: Yes. The extension goes into carbon/extensions instead of RustDedicated_Data/Managed, and everything else is the same. API / Hooks // Hooks void OnNpcDialogueReady() object CanNpcDialogueStart(BasePlayer player, string conversationId, BaseEntity npc) void OnNpcDialogueStarted(BasePlayer player, string conversationId, BaseEntity npc) object CanNpcDialoguePick(BasePlayer player, string conversationId, string speechId, int index) void OnNpcDialoguePicked(BasePlayer player, string conversationId, string speechId, int index) void OnNpcDialogueEnded(BasePlayer player, string conversationId) // API: NpcDialogue?.Call("Method", ...) bool API_StartConversation(BasePlayer player, string conversationId, BaseEntity npc = null, string speechId = null) bool API_ShowDialogue(BasePlayer player, string npcName, string text, List<string> responses, Action<BasePlayer, int> onResponse, Dictionary<string, object> mission = null, BaseEntity npc = null) void API_CloseDialogue(BasePlayer player) bool API_RegisterConversation(Plugin owner, string id, object data) bool API_RegisterMission(Plugin owner, string id, object data) bool API_RegisterCondition(Plugin owner, string name, Func<BasePlayer, string[], bool> check) bool API_RegisterAction(Plugin owner, string name, Func<BasePlayer, string[], bool> check, Action<BasePlayer, string[]> run, Action<BasePlayer, string[]> undo = null) NPCTalking API_SpawnNpc(Plugin owner, string id, Vector3 position, float yaw, string conversationId, string name = null, string prefab = null, Action<BasePlayer> onTalk = null) bool API_RemoveNpc(Plugin owner, string id) bool API_IsTalking(BasePlayer player) bool API_IsReady() Conversations and missions take a dictionary, an anonymous object, a JObject or JSON text with short keys: name, start, speeches; each speech id, text, mission, claim, responses; each response text, next, conditions, actions, failNext, commands, permission, missionIcon. An action fails by throwing from run; give it an undo that reverses run, and it is called when a later action of the same answer fails. An action without undo can only be the last plugin action of an answer: an answer that puts one before another plugin action does not run. onResponse gets the picked index, -1 when the player leaves, dies, falls asleep, is wounded or walks away (also when another plugin's dialogue replaces yours) and -2 for COMPLETED; call API_ShowDialogue again from the callback to continue. CanNpcDialogueStart runs while the dialogue is opening, so a handler cannot open one from inside it: open yours from NextTick. Register in OnNpcDialogueReady: everything a plugin registered is cleared when NpcDialogue or that plugin unloads. Questions, ideas or bug reports? Use the Support tab of this file or join our Discord.$4.99-
- #npcdialogue
- #npc dialogue
- (and 18 more)
-
Changed Status from Pending to Feature Request Changed Fixed In from Not set to Next Version
-
Hey! Thanks for the detailed reports, they helped a lot. All three are fixed for the next update (2.1.2): Upgrader targets: you were right, and I was wrong to call it intended: clicking a target row never reached the plugin properly, so the rows did nothing. That's fixed, and the list now shows every target and they're all clickable. If you pick a target from another upgrade group than the items you offered, the items that don't fit leave the offer by themselves. Upgrader getting stuck after an upgrade: found it. The target you upgraded into stayed picked and locked your storage to its upgrade group, even after closing the menu, so if none of your items shared that group nothing could be clicked until a reload. The target doesn't lock the storage anymore: picking an item from another group just clears the target. HUD rows: there's a new option in General: Show HUD rows above the health bar (free cases, Case Rain). Set it to false and reload the plugin to hide them.
- 5 comments
-
- 1
-
-
- #case battles
- #cases
- (and 17 more)
-
Hello! Sure, I will look into adding this feature today.
-
Changed Status from Work in Progress to Fixed Changed Fixed In from Not set to 3.1.0
-
Fixed in 3.1.0, out now. When the same item is split between your inventory and the backpack, the backpack half now merges into the inventory stack, so you get the slot back. It goes into the inventory on purpose, so you can still craft, build and reload with it. It happens when you pick something up with a full backpack (the item then takes the freed slot instead of showing FULL) and every time the backpack sorts. It is on by default; you can turn it off with "Merge split stacks between the inventory and the backpack" in the config. Thanks for the report!
-
Changed Status from Work in Progress to Fixed Changed Fixed In from Not set to 3.1.0
-
Good news: this is in 3.1.0, out now. There is a new "Bonus slots" list in the config: each entry is a permission and how many slots it adds. Every bonus a player has goes on top of their tier (Default or any VIP), on both backpacks, up to the 60-slot cap. It ships with autobackpacks.bonus.discord at +4, so you only need to grant that permission to the group your Discord link plugin uses: oxide.grant group discord autobackpacks.bonus.discord Players also see their bonus on their own tier card in the Capacity Tiers tab. Thanks for the idea!
-
Changed Status from Pending to Work in Progress
-
Changed Status from Pending to Work in Progress
-
Good catch. New pickups already top off stacks that are in the backpack, so if your inventory is full and you pick up scrap, it goes onto the scrap stack in the backpack instead of needing a new slot. What it doesn’t do yet is merge two stacks that are already split, one in your inventory and one in the backpack. Those stay separate, and that’s why the backpack shows as full. For now, drag one stack onto the other and they’ll combine. I’m adding automatic merging of partial stacks between your inventory and the backpack to the list for the next update.
-
Hey! Right now tiers don’t add up: each player gets the slots of the highest tier they have, so there’s no “+4 on top of whatever tier I’m in” option yet. You can get close with combined tiers. Make a “Discord” tier with the default slots + 4 (for example 32 large / 16 small), plus a “VIP + Discord” tier with VIP + 4 and a higher priority. Then have your Discord link plugin add players to an Oxide group that grants the Discord permission. The catch is that the plugin allows 8 tiers, so if you have lots of VIP tiers you can’t double all of them. I like the idea though, so I’m noting a proper “bonus slots” permission that stacks on top of any tier for a future update.
-
Version 1.2.0
52 downloads
[ ! ] The zip contains a DLL extension that goes into RustDedicated_Data/Managed. Some hosts do not allow uploading DLLs - check with your host before buying. [ ! ] Forge lets your players make their weapons, armour and tools stronger, one level at a time. They pick an item, pick what to improve (damage, magazine size, durability or protection), put a stone in and see their exact chance before they click. A win levels the item up and renames it, like "Assault Rifle +7". A fail burns the stone, and from +5 it can cost a level, unless a ward was in the slot. The levels live on the item itself, so a forged rifle keeps its bonus when it is traded, looted, dropped, stored or carried through a restart. At +3, +6 and +9 the item opens gem sockets, and at +15 a prismatic socket that takes cursed gems. Thirteen gems in three grades and three cursed gems add headshot damage, lifesteal, thorns, a second wind and more, and seven resonances reward the right gems sitting together in one item. Stones, catalysts, wards and gems drop from crates, barrels and scientists, refine into better tiers and fuse into better grades. New in 1.1.0: tools join the forge with a YIELD track and gathering gems, worn gear builds equipment sets, five legendary items drop with fixed stats, crates and NPCs can drop pre-forged loot, SALVAGE breaks a forged item back into stones and gems, reward tables pay out from Raidable Bases or any event, and any item can be the forge cost. New in 1.2.0: admins can hand out items above the level caps with forge.giveitem, rocket launchers and the MGL can forge a bigger magazine, and drops from BetterNpc, NpcSpawn and event NPCs no longer get wiped. New players get a welcome card and a guided tour of the real window, and admins get a first-run setup with three presets that set the whole balance in one click. Works on Oxide and Carbon Needs CrashExtensions (included) 5 tracks, 4 stone tiers, 24 gems, 4 sets, 5 legendaries Casual, Standard and Hardcore presets Jump to: Features · Screenshots · Trailer · How a forge works · Commands · Permissions · Install · Configuration · Test server · FAQ Features For players One forge window. Your weapons and gear on the left, the item with its condition and sockets in the middle, the tracks, the materials and the success chance on the right. One button forges. Four tracks. DAMAGE (+4% per level, up to +10), MAGAZINE (+10% rounds per level, up to +5), DURABILITY (-8% wear per level, up to +5) and PROTECTION for gear (-2% attack damage taken per level, up to +10). Odds you can read. The chance is shown before you click, added up from the stone, the catalyst, forge heat and any VIP bonus, and the IF IT FAILS panel says exactly what a fail would cost. Four stone tiers. Rough, Refined, Flawless and Mythic. A better stone reaches higher (+4, +6, +8, +10) and has better odds at every level. Catalysts and wards. A catalyst adds +5, +10 or +15 points of chance. A ward keeps your level when a forge fails, and it is only used up when it actually saved something. Forge heat. Every failed forge makes that item's next try easier, up to a cap, so a bad run never feels like a dead loss. A win resets it. Stats that travel. Levels, heat and gems are stored on the item. Trade it, loot it, drop it or die with it: the bonus goes with it. Gem sockets. Sockets open at +3, +6 and +9, and a prismatic socket at +15. Thirteen gems in three grades, plus three cursed gems with a big upside and a real drawback. Resonances. The right pair of gems in one item unlocks a bonus: a headshot that gives the round back, animal kills that heal you, no gear wear from player hits, and four more. Gems you can see. When a gem triggers, everyone nearby sees it: a headshot bursts in sparks, lifesteal draws blood, a thorn clangs the shield and cuts the attacker, a saved round ejects a shell, Second Wind injects and sparkles, Bloodhound howls. Each effect is a list of prefabs in the config, with one switch for all of them. Tools. Hatchets, pickaxes, the chainsaw, jackhammer, sickle and the server's other gathering tools take a YIELD track (+4% gathered per level, up to +10) and tool gems: PROSPECTOR, LUMBERJACK, SKINNER and SMELTER, with the MOTHERLODE and TIMBERLINE resonances. More gear gems. FORAGER, GREEN THUMB, ARTISAN and MEDIC, plus the FIELD MEDIC resonance. Equipment sets. VANGUARD, WARDEN, RANGER and NOMAD give bonuses at 2, 4 and 6 worn pieces. The GEAR screen and the chip over the belt show your progress, and a toast pops when a tier unlocks. Legendaries. Five named items with fixed stats and gems drop from crates and NPCs, with a gold look, a found toast and a chat line. They can't be forged further, salvaged or recycled away. Pre-forged loot. Crates and NPCs can drop an item that already has levels, sometimes with a gem. Salvage. Break a forged item under REFINE for a share of the stones its paid levels took, its gems and optional currency. Refine and fuse. Three stones make one of the next tier, three gems make one of the next grade, with the chance shown before you roll. Codex and history. Every material and gem with its odds and where it drops on your server, and your last 50 forges with your success rate and best item. Easy to learn. A welcome card on the first open, a guided tour that lights up each part of the real window, a sockets tour and a help page with your server's own numbers. Outside the window. A chip over the belt with the levels of the forged item you hold, result toasts, and a warning card before you recycle a forged item, with a KEEP IT button. For server owners First-run setup. The first time an admin opens Forge, three presets (Casual, Standard, Hardcore) set the odds, failure rules, drop rates, costs and heat in one click, with the three compared side by side, plus a page of on and off switches. Your risk, your rules. Failure bands by target level decide what a fail costs: nothing but the materials, a level, double heat or, on hardcore servers, the item itself behind a second click. Drops you control. A chance per material for every loot container (elite, military and locked crates and barrels by default; add any container by its prefab name) and for scientist kills. Gems drop mostly Chipped, rarely Radiant. Any currency. The forge cost in scrap, any item you pick (shortname and skin), Economics, ServerRewards or free. Reward tables. forge.reward <steamid> <table> [rolls] pays a drop table from Raidable Bases, events, quests or anything that runs a console command. A player on the death screen gets it on respawn, even across a restart. NPC drops by name. Add any NPC to the drop sources by prefab or display name. Recycling that cannot be farmed. A recycled forged item gives back a share of the stones its levels needed, always less than what went in, and a warning card shows the player what they would lose first. VIP bonus. Extra chance per permission, off until you add one. Admin view. Look up any online or sleeping player, see every forged item and its levels, change a level, reset an item or a player, and give materials. Every action is logged. Console and Tebex. forge.give hands out stones, catalysts, wards, extractors and gems from the server console, RCON or a Tebex package. Everything in the config. Every track, stone, catalyst, gem value, drop chance, cost, resonance, interface switch and sound, and every text in the lang file. Safe with other plugins. A name another plugin gave an item is left alone, an item whose data belongs to another plugin is never touched, and a broken config file is never overwritten. For developers OnForgeCompleted hook. Called after every forge with the player, the item uid, the track, its new level and the result (Success, Failed, Warded or Broken). See the FAQ. OnForgeLegendaryFound hook. Called the first time a player picks up a legendary that dropped. API. API_GiveReward, API_GiveMaterial, API_CreateLegendary, API_CreateForged, API_CreateLeveled, API_SetLevel and API_GetLevel. Screenshots Every screen below is Forge running in Rust. The forge: item, tracks, materials and the success chance A successful forge A failed forge: what was lost and the heat it built Sockets: gems, grades and resonances Refine: three stones into the next tier Tool forge: YIELD and tool gems Tool sockets: PROSPECTOR, SMELTER and MOTHERLODE Equipment sets and their tier bonuses A set bonus building on the GEAR screen The legendaries and where they drop A legendary rifle with its fixed stats Salvage: what a forged item gives back Stone codex: odds by level and where it drops Gem codex: every gem and its value by grade Resonances: the gems that work together History: every forge, refine and gem change How it works, with your server's numbers The guided tour lights up the real window The welcome card on the first open First-run setup: pick a preset Admin view: a player's forged items The chip over the belt shows the levels of the forged item you hold Trailer The Forge trailer (click to play, 55 seconds) How a forge works Pick an item and a track. Firearms take DAMAGE, MAGAZINE and DURABILITY (a gun that holds one round, like the Eoka, skips MAGAZINE); bows and melee weapons DAMAGE and DURABILITY; armour and clothing PROTECTION and DURABILITY. Each forge raises one track by one level, and the item's name shows the total ("Assault Rifle +7"). Add a stone. Its tier caps the level: Rough up to +4, Refined +6, Flawless +8, Mythic +10. A catalyst and a ward are optional. Read the chance. Default Mythic odds run from 100% at +1 down to 15% at +10, and heat adds +3 per failed try on that item, up to +15. Forge. By default the cost is 50 scrap plus 50 per target level. A win levels the track up at once. If it fails. Up to +4 only the materials burn. From +5 the track drops a level, and from +8 the heat gain doubles. A ward cancels the loss. On a Hardcore server an item can also break from +9, after a second click, and its attachments and ammo come back. Sockets. At +3, +6 and +9 the item opens a socket, and at +15 the prismatic one. A firearm can reach +20 in total, a bow, melee weapon or piece of gear +15. Commands /forge - open the forge. The name is configurable. /forgeadmin - the admin view, or the first-run setup until it is finished. /forge hud move - drag the held-item chip over the belt to a new place. /forge hud done saves the place, /forge hud reset puts it back. Admin From the server console, RCON, Tebex or a player with forge.admin (the player has to be online): forge.give <player> <material> [amount] - give stones, catalysts, wards, extractors or gems (for example forge.give <steamid> stone.mythic 3, or gem.vampire.2 for a Cut Vampire gem). forge.give <player> legendary <id> - give a legendary (emberfang, widowmaker, anvil, deepcore, gravewarden or your own ids), with no announcement. forge.reward <player> <table> [rolls] - roll a reward table 1 to 20 times (raidable_easy, raidable_medium, raidable_hard, event or your own). forge.setlevel <player> <item uid> <track> <level> - set one track of an item (damage, magazine, durability, protection or yield) from 0 to 50, above its cap too. forge.giveitem <player> <shortname> <track>=<level> [...] [skin=<id>] - give an item already forged, above the caps too (for example forge.giveitem <steamid> rifle.lr300 damage=25 magazine=10). Made for shops and kits. forge.reset <player> [item uid] - clear the levels, heat and gems of a player's forged items, or of one item. forge.inspect <player> - list a player's forged items with their uid. forge.panel - open the admin view from the F1 console. Permissions forge.use - open the forge and forge items. forge.sockets - the SOCKETS tab: insert and extract gems. forge.refine - the REFINE tab: refine stones and fuse gems. forge.admin - the setup, the admin view and the console commands. Admins need forge.use too. A permission you add to the VIP bonus (for example forge.vip) - extra chance on every forge. A permission that starts with forge. is registered for you. A typical setup: oxide.grant user YOUR_STEAM_ID forge.admin oxide.grant group default forge.use oxide.grant group default forge.sockets oxide.grant group default forge.refine Install Install the extension, once per server. Stop the server, copy Oxide.Ext.CrashExtensions.dll into RustDedicated_Data/Managed (Carbon: carbon/extensions) and start it again. The console prints Loaded extension CrashExtensions with its version. An older copy of the DLL is simply overwritten: it is one shared file for all our plugins. Install the plugin. Copy Forge.cs into oxide/plugins (Carbon: carbon/plugins). It compiles on its own and creates its config. Grant the permissions above, give yourself forge.use and forge.admin, and type /forge. The first-run setup opens: pick a preset, pick your options, press FINISH SETUP. Plugin does not compile? The extension is missing or too old: check the folder and restart again. On a hosting panel, upload the DLL with the file manager or SFTP, and keep a copy in case the panel resets that folder on an update. Configuration Everything lives in oxide/config/Forge.json, and the first-run setup sets the main parts in game. Player history is stored in oxide/data/Forge; the forge levels themselves are stored on the items. Config sections (click to expand) Test server Available on our test server. Try Forge before you buy: join and type /forge in chat. client.connect 91.229.114.54:28015 FAQ Q: Do I need Economics or ServerRewards? A: No. The forge costs scrap by default. Economics and ServerRewards are optional, and the cost can also be turned off. Q: Do the levels stay on the item? A: Yes. Levels, heat and gems are stored on the item itself, so they follow it through trades, loot, boxes, deaths and restarts, and a skin change at the repair bench keeps them (a skin that would turn it into a different item is refused). Q: Is it pay-to-win? A: Only if you make it so. The VIP chance bonus is empty by default, and players get stones from loot, scientists, refining and recycling. Q: Can I make it harder or easier? A: Pick Casual, Standard or Hardcore in the first-run setup, then fine-tune any number in the config. Hand-edited odds, drops and costs are kept unless you ask the setup to put the preset's numbers back. Q: Can I give stones from my store? A: Yes. Run forge.give <steamid> <material> <amount> as the Tebex command while the player is online. Q: What happens when a forged item is recycled? A: The recycler gives back a share of the stones its levels needed (35% by default, rounded down), and its gems shatter. Before that, a warning card shows the player what they would lose and offers to move the item back. Q: How do I pay Forge rewards from Raidable Bases? A: Add forge.reward {steamid} raidable_hard (or easy/medium) to the commands Raidable Bases runs when a raid is completed, using its own placeholder for the player's Steam ID. Q: Does MEDIC stack with other healing plugins? A: Yes, but its extra heal only counts what still fits: if another plugin heals you to full first, MEDIC has nothing left to add. Q: Does it work on Carbon? A: Yes. The extension goes into carbon/extensions instead of RustDedicated_Data/Managed, and the plugin into carbon/plugins. Q: How do I translate it? A: English is built in. Edit oxide/lang/en/Forge.json, or copy it into another language folder and translate its values: each player reads their own game language. Q: Does it contact any outside service? A: Only to download its pictures (about 120 small images: icons, buttons and the stone and gem art) once from the Venux CDN, cdn.crashplugins.space, which your server then keeps. Nothing about your server or your players is sent. You do not need ImageLibrary. If you set a material skin id of your own, Forge sends that id (and nothing else) once at load to the public Steam API, api.steampowered.com, to check it is a Workshop item. Q: How do other plugins react to a forge? A: Forge calls void OnForgeCompleted(BasePlayer player, ulong itemUid, string track, int level, string result) after every forge. track is damage, magazine, durability or protection, level is the track's new level and result is Success, Failed, Warded or Broken. Questions, ideas or bug reports? Use the Support tab of this file or join our Discord.$24.99 -
- 5 comments
-
- #case battles
- #cases
- (and 17 more)
