Counter Deployable Has Incorrect Rotation on Walls

ilineus

Customer
Hi, sorry to bother you again :-)
I added all the items to the config that can normally be placed in normal bases, and there seems to be a problem with only one item:
Item: electric.counter
Item ID: -216999575

This item is placed on the wall with the wrong rotation. Would it be possible for you to correct the rotation? We use this item in combination with other mods, so it's important that it's placed correctly. :-)

I've attached two screenshots so you can see how it should look.

Thank you so much <3
 

Attachments

  • Screenshot 2026-01-19 161919.jpg
    Screenshot 2026-01-19 161919.jpg
    315.1 KB · Views: 7
  • Screenshot 2026-01-19 161901.jpg
    Screenshot 2026-01-19 161901.jpg
    396.9 KB · Views: 7
Just making sure, was the item added as a prefab in the config? The lists expect prefab names, not item short names
Hi, wow, you're fast! :-D

Oh, right, sorry, I should have added that information. Correct, I added them with the path names/prefab name. I saw this detail in another support post here.

Here is my list:
Code:
 "Deployables Allowed On Walls (partial match)": [
    "blocker",
    "button",
    "coffin",
    "coffin.storage",
    "connectedspeaker.deployed",
    "counter",
    "cctv_deployed",
    "doorbell",
    "dropbox",
    "electric.andswitch",
    "electric.blocker",
    "electric.button",
    "electric.bulbstringlights.deployed",
    "electric.digitalclock",
    "electric.fairylights",
    "electric.fluorescentlight",
    "electric.hbhfsensor",
    "electrical.heater",
    "electric.igniter",
    "electric.laserdetector",
    "electric.memorycell",
    "electric.random.switch",
    "electric.seismicsensor",
    "electric.simplelight",
    "electric.sirenlight",
    "electric.sprinkler",
    "electric.spotlight",
    "electric.switch",
    "teslacoil.deployed",
    "electric.timer",
    "electric.wallcabinet",
    "electric.xorswitch",
    "electrical.branch",
    "electrical.combiner",
    "electrical.memorycell",
    "flasherlight",
    "fluid",
    "fluid.combiner",
    "fluid.splitter",
    "fluid.switch",
    "frontiermirror.large",
    "frontiermirror.medium",
    "frontiermirror.small",
    "frontiermirror.standing",
    "goldframe.large",
    "goldframe.medium",
    "goldframe.small",
    "goldframe.standing",
    "goldmirror.landscape",
    "goldmirror.large",
    "goldmirror.medium",
    "goldmirror.small",
    "goldmirror.standing",
    "gunrack",
    "gunrack.horizontal",
    "gunrack.single.1.horizontal",
    "gunrack.single.2.horizontal",
    "gunrack.single.3.horizontal",
    "gunrack.horizontal",
    "gunrack_tall.horizontal",
    "gunrack_wide.horizontal",
    "half.bamboo.shelves",
    "hbhf",
    "huntingtrophysmall.deployed",
    "huntingtrophylarge.deployed",
    "fishtrophy.deployed",
    "industrial.wall",
    "industrial",
    "ladder.wooden.wall",
    "laserlight",
    "laser",
    "lightstring",
    "lightupframe",
    "lightupframe.large",
    "lightupframe.medium",
    "lightupframe.small",
    "lightupframe.standing",
    "lightupmirror.large",
    "lightupmirror.medium",
    "lightupmirror.small",
    "lightupmirror.standing",
    "sign.neon.125x125",
    "sign.neon.125x215",
    "sign.neon.xl",
    "sign.neon.125x215.animated",
    "sign.neon.xl.animated",
    "splitter",
    "neonsigntr.deployed",
    "picture",
    "photoframe.large",
    "photoframe.portrait",
    "photoframe.landscape",
    "rug",
    "rug.bear",
    "scrapframe.large",
    "scrapframe.small",
    "scrapframe.medium",
    "scrapframe.standing",
    "sign.hanging",
    "sign.hanging.banner.large",
    "sign.hanging.ornate",
    "sign.neon.xl.animated",
    "sign.pictureframe",
    "sign.pictureframe.landscape",
    "sign.pole.banner.large",
    "sign.wooden.huge",
    "sign.wooden.large",
    "sign.wooden.large",
    "sign.wooden.medium",
    "simplelight",
    "sirenlight",
    "smart.alarm",
    "smart.switch",
    "soundlight",
    "spinner",
    "stocking.small",
    "switch",
    "timer",
    "torchholder",
    "tunalight",
    "wantedposter",
    "wall_single_shallow_shelves",
    "weaponrack_single1.deployed",
    "weaponrack_single2.deployed",
    "weaponrack_single3.deployed",
    "weaponrack_horizontal.deployed",
    "weaponrack_tall.deployed",
    "weaponrack_wide.deployed",
    "woodframe.standing",
    "woodframe.large",
    "woodframe.small",
    "woodframe.medium",
    "xmas.lightstring",
    "xmas.advanced.lights.deployed"
  ],
  "Deployables Allowed On Ceilings (partial match)": [
    "ceilinglight",
    "chandelier",
    "chineselantern",
    "chineselanternwhite",
    "discoball",
    "electric.andswitch",
    "electric.blocker",
    "electric.bulbstringlights",
    "electrical.branch",
    "electric.chandelier",
    "electric.fairylights",
    "electric.flasherlight",
    "electric.fluorescentlight",
    "electric.fluorescentlight.ceiling",
    "electric.hbhfsensor",
    "electric.igniter",
    "electric.laserdetector",
    "electric.orswitch",
    "electrical.random.switch.deployed",
    "electric.sprinkler",
    "electric.sirenlight",
    "electric.spotlight",
    "electric.xorswitch",
    "electrical.combiner",
    "electrical.memorycell",
    "fluid.combiner",
    "fluid.splitter",
    "fluid.switch",
    "frontiermirror.large",
    "frontiermirror.medium",
    "frontiermirror.small",
    "frontiermirror.standing",
    "guntrap.deployed",
    "goldframe.large",
    "goldframe.medium",
    "goldframe.small",
    "goldframe.standing",
    "goldmirror.landscape",
    "goldmirror.large",
    "goldmirror.medium",
    "goldmirror.small",
    "goldmirror.standing",
    "hbhf",
    "industrial",
    "laser",
    "lightstring",
    "lightupframe",
    "lightupframe.large",
    "lightupframe.medium",
    "lightupframe.small",
    "lightupframe.standing",
    "lightupmirror.large",
    "lightupmirror.medium",
    "lightupmirror.small",
    "lightupmirror.standing",
    "neonsigntr.deployed",
    "picture",
    "pinata.deployed",
    "photoframe.large",
    "photoframe.portrait",
    "photoframe.landscape",
    "ptz_cctv_deployed",
    "rug",
    "rug.bear",
    "scrapframe.large",
    "scrapframe.small",
    "scrapframe.medium",
    "scrapframe.standing",
    "simplelight",
    "sign.neon.125x125",
    "sign.neon.125x215",
    "sign.neon.xl",
    "sign.neon.125x215.animated",
    "sign.neon.xl.animated",
    "sign.hanging",
    "sign.hanging.banner.large",
    "sign.hanging.ornate",
    "sign.neon.xl.animated",
    "sign.pictureframe",
    "sign.pictureframe.landscape",
    "sign.pole.banner.large",
    "sign.wooden.huge",
    "sign.wooden.large",
    "sign.wooden.large",
    "sign.wooden.medium",
    "splitter",
    "soundlight",
    "teslacoil.deployed",
    "woodframe.standing",
    "woodframe.large",
    "woodframe.small",
    "woodframe.medium",
    "xmas.lightstring",
    "xmas.advanced.lights.deployed"
  ]
}

They all work great, really. The counter is the only one that can be placed with the wrong rotation.
The original prefab path would be this one:
assets/prefabs/deployable/playerioents/counter/counter.prefab

And I saved it as “counter” (quite high up in the list).
 
By the way, just a quick note after looking at your config, you don't need to add every prefab individually if they share the base name

For example, instead of:
JSON:
"scrapframe.large",
"scrapframe.small",
"scrapframe.medium",
"scrapframe.standing"
You can just add:
JSON:
"scrapframe"
That will match all prefabs containing that keyword. Just mentioning it in case you didn't know, makes the config a bit easier to manage
 
By the way, just a quick note after looking at your config, you don't need to add every prefab individually if they share the base name

For example, instead of:
JSON:
"scrapframe.large",
"scrapframe.small",
"scrapframe.medium",
"scrapframe.standing"
You can just add:
JSON:
"scrapframe"
That will match all prefabs containing that keyword. Just mentioning it in case you didn't know, makes the config a bit easier to manage
Oooh, thanks! I didn't know that.
 
Back
Top
Chat commands start with a /, while console commands can be entered directly in the F1 console or server console. Use find <keyword> in console to search for available commands related to the plugin. Parameters in < > are required, while [ ] are optional.
This plugin uses Oxide's permission system. Grant or revoke permissions using oxide.grant and oxide.revoke. You can assign them to individual players or groups using their Steam id or group name.
Settings are stored in the config file found under the config/ directory. You can edit this file manually, then reload the plugin to apply your changes.
Persistent data is saved in the data/ directory. This includes things like saved settings, usage stats, or player progress depending on the plugin. Deleting a data file will reset stored progress or customizations.
Language files are located in the lang/ folder. To translate messages, copy the en.json file into your target language folder (e.g. fr, de) and edit the values. Reload the plugin after changes to apply new messages.
This section lists public methods exposed by the plugin for use in other plugins. You can call these via the CallHook method. Ensure the plugin is loaded before calling its API to avoid null reference errors.
These are custom hooks that other plugins can listen for. Simply define a method with the same name and expected parameters in your plugin to handle the event. Hooks are triggered at key moments and are useful for extending or reacting to plugin behavior.
These hooks are injected into the game's code using Harmony. They let the plugin run code at key points in the game's internal logic. You can return values to block or modify behavior. Use with caution — these are powerful and can affect core mechanics.
Cart