#labapi-logs

1 messages · Page 1 of 1 (latest)

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

Pages

Allow the ability to send settings as pages to client, this will handle everything on the client side rather than server side - This means settings dont need to be handled janky with keybinds since client will know the page exists

Permission Handling

Ability to only send a setting to players when they meet a specific condition

More Controlled Settings Sync

Rather than always sending all settings at once, add ability to send one at a time, or a page at a...

lilac obsidianBOT
#

Goal Description

1. Custom Role API

Currently, roles are hardcoded (Class-D, Scientist, SCPs, MTF, Chaos). A CustomRole system would allow developers to add new roles with unique behaviors.

Proposal:

*Add a CustomRole base class with properties like name, team, spawn location, abilities.

Allow plugins to register and assign these roles dynamically.

Code Example:*

{
    public override string Name => "Ninja";
    public override Team Te...
lilac obsidianBOT
#

Goal Description

Make custom keycard server side and updatable in real time as of right now its complicated and hard enough to be not an easy system not a total rework but just make them more server side to allow atleast to see the content of that keycard and their details

Notes

Providing SyncVars or any other type of way to sync this keycards in a way that makes them easy to edit from the server or atleast their content be visible or being able to edit those variable and then resync

lilac obsidianBOT
#

Prior to submitting a suggestion to the repository, please ensure you have reviewed all previously closed suggestions.

Our current procedure entails transferring valid suggestions to an internal tracking system and subsequently closing the corresponding issue. This helps us to manage and implement suggestions efficiently.

In the event that your suggestion is closed, kindly consult the provided close reason.

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.3

Description

In mentioned method, Priority is squared, thus the sign of Priority is irrelevant

To Reproduce

Try to create a waypoint that your client doesn't want to use by setting high negative priority, then still get caught by the waypoint.

Expected Behavior

sign of priority should make wayp...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.2

Description

When you use the event "OnPlayerCuffed" is not called. That means that no plugin that uses "OnPlayerCuffed" will work.

To Reproduce

For example, in EventHandler you put the event and you want when the person is arrested to receive a hint, it doesn't work.

Expected Behavior

When the...

lilac obsidianBOT
#

Goal Description

Goal Description

The addition of 8 total new events for the events of entering, entered, leaving and left waypoints for both Players and Pickup objects:
PlayerEvents.EnteringWaypoint (Player, WaypointToy, IsAllowed)
PlayerEvents.EnteredWaypoint (Player, WaypointToy)
PlayerEvents.LeavingWaypoint (Player, WaypointToy, IsAllowed)
PlayerEvents.LeftWaypoint (Player, WaypointToy)
ServerEvents.PickupEnteringWaypoint (Pickup, WaypointToy, IsAllowed)
ServerEvents.PickupEntere...

lilac obsidianBOT
#

Goal Description

Currently, there's not really a good, intuitive way to change the items that come out of SCP-914 item process
Like if I wanted to change the output of a COM-15 on very fine to always be a COM-45, I'd have to ev.IsAllowed=false; the event and then spawn the COM-45 at ev.NewPosition
The problem with this method is that it won't run the Processed events afterwards
The second method I was able to find (which I haven't tested yet) is changing the Scp914ItemProcessor com...

lilac obsidianBOT
#

Goal Description

I did think a while… Yeah, people can use plugins to port maps or create their own. But what if — the game itself, or LabAPI itself, had these capabilities natively? Wouldn’t that be much better?

I mean, instead of relying on third-party plugins or external editors, imagine if the game had a built-in map manipulation and customization system — fully integrated into its logic and generation structure.
Not just a simple map editor, but a dynamic world generator that could...

lilac obsidianBOT
#

Goal Description

This already exists for like half the SCP abilities and it pmo that as plugin devs we have no ability to do something like fully allowing friendly fire between SCPs
In the context of patching HitboxIdentity.IsEnemy:
939's claw attack works perfectly, lunge doesn't
106 can't even do attacks
3114's slap works, but the strangle doesn't
049's attack works but targeting doesn't
096 fully works
173's observing works, but the blink doesn't kill
It's so odd that half the shit is...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

In current state WaypointToys allows us to implement custom elevators, and if desired, very complex ones - and not only elevators, this is just the first idea that comes to people's minds.

However, both existing and new elevators have the problem of properly parenting PrimitiveToy and, consequently, schematics to elevators.

When they are SetParent'ed, most often PrimitiveToy (depending on the SyncValue set) simply fly up when the elevator goes down, and only return to...

lilac obsidianBOT
#

Goal Description

Once update were released I saw this objective and thought - OH YEAH, I COULD MAKE CUSTOM OBJECTIVES.

But, when I tried it on server, it crushed, when i checked logs the answer was really simple - client has certain checks for objectives, so, because of different type, client just couldn't process it.

I found this a little silly, because the only thing where client checks are needed is message completing text, that appears on the top side of the screen, and i wasn't c...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.2

Description

If you spawn a grenade using the LabAPI wrapper TimedGrenadeProjectile and use the SpawnActive function to do so, it'll instantly explode.

To Reproduce

Spawn a grenade without specifying a timeOverride

Expected Behavior

The grenade should not be instantly exploding, it should h...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

Add an event under player called OnBadgeReceived OR OnBadgeUpdated that gets called whenever a person has a badge applied.

ideally it will contain

Player player
String badge name
String badge color (In hex or as type 'Color' )

Notes

Will need to work properly so that Northwood staff remain unaffected to avoid any trouble.
If the tag is hidden it may need extra consideration but unsure how you would handle it

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.3

Description

If a player's ReferenceHub is created, assigned a role, and destroyed within the same frame, a stale FirstPersonMovementModule remains active. This module continues running UpdateMovement, throwing NREs every frame and blocking movement updates for all players on the server.

To Repr...

lilac obsidianBOT
#

Goal Description

Certain servers like to have pets as a patreon reward and right now with the addition of horror stingers and themes the pets get really annoying when they stack up.

The idea is that you are able to mute any sound from an SCP so that you can have them as a display. This also may help in certain gamemodes or custom events where you want silent SCP’s.

Notes

No response

lilac obsidianBOT
#

Goal Description

Since equipping a FlashlightItem automatically turns on the light, it should trigger the TogglingFlashlightEvent/ToggledFlashlightEvent events so its not necessary to also have to check every time an item is equipped

Notes

This might also apply to the ToggledWeaponFlashlightEvent and the NewState field would be set to whether the weapon's flashlight was enabled or not when it was unequipped.

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

Trying to use SetParent() with a LightSourceToy causes it to be permamently stuck at zero coordinates. Can confirm that this bug works if you try to set light's parent to either a player or a pickup

To Reproduce

This lines of code will trigger the bug:

var newLight = LightSourceToy.Crea...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

https://youtu.be/gTnWS6eJ7Js

https://youtu.be/j43ST8uojyk

Video as a better description.

Currently I saw multiple times when RippleTriggers appearing even if Player staying still or moving on C.

Second video 0:35 and after.

To Reproduce

Bug appeas not often, so the best method to rep...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

Game doesn't respect arguments variable in RemoteAdmin.CommandProcessor::ProcessQuery and GameCore.Console::TypeCommand when executing the command.

To Reproduce

In CommandExecuting event try to modify Arguments property, the code will only work with RA commands executed through...

lilac obsidianBOT
#

Goal Description

We need a triangle prefab because it's the fundamental building block of 3D games. Every mesh in the engine is already triangles under the hood. Quads? Triangulated. N-gons? Triangulated. The GPU literally won't draw anything else. Pretending triangles don't matter is pretending the renderer doesn't exist.

Why it matters as a prefab:

Debugging tool: lets us visualize core geometry and collision at the lowest level.

Prototyping: great for testing shading, UVs, normals,...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

After you cancel the PlayerDying event, players killed by SCP1509 will not die, and a new player will be generated immediately

To Reproduce

  1. Set IsAllowed for PlayerDying event to false
  2. Use SCP1509 that allows Resurrection to kill a player
  3. Particle effects will appear a...
lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

The LabAPI Wrapper for SetDestination() has the parameter force which is documented as choosing whether the destination should be changed even if the elevator is not ready. However, the base ElevatorChamber method has the parameter allowQueuing which is the opposite of forcing the elev...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

In this method the player is not being set the OwnerHub of the ragdoll so it causes unwated issues like not being usable by 3114 or 049 ressurection.

Ragdoll.SpawnRagdoll(Player, DamageHandler)

To Reproduce

    public override void OnPlayerSpawningRagdoll(PlayerSpawningRagdollEv...
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

Despite SubDoors' arrays not being empty, none of them contains any existing door from Door.List.

To Reproduce

public void OnMapGenerated(MapGeneratedEventArgs _)
{
    var subdoors = Door.List.Where(d => CheckpointDoor.List.SelectMany(c => c.SubDoors).Contains(d));
    Log.Debug($"s...
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4

Description

Player.Host is null when the Plugin is enabled
When enabled, creating examples requires the use of host.

To Reproduce

Detect the value of Player.Host when enabled

Expected Behavior

No response

Additional Information

I'm not sure if this counts as a bug.
Perhaps there ...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.0.2

Description

Calling Room.Get(RoomName.HczCheckpointToEntranceZone) will include the two long straight hallways after the HCZ -> EZ Checkpoint gate as separate rooms. If these hallways are separate rooms, they should not use the same enum name as the actual checkpoints.

To Reproduce

Call `Room.Get(...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

game version 14.2.3

Description

Spawning an active grenade through TimedGrenadeProjectile.SpawnActive and setting timeOverride to -1 makes the grenade use default fuse time.

To Reproduce

TimedGrenadeProjectile.SpawnActive(player.position, ItemType.GrenadeHE, timeOverride: -1);

Expected Behavior

Th...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

Current Website Version as of 8. January 2026

Description

When accessing a plugin's page on the website directly through a link like for example: https://plugins.scpslgame.com/plugin/louis1706/EXILED
you will not be allowed to upvote, even if you're logged in.

To Reproduce...

lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

I need to spawn an item/pickup with a specific ushort serial and convert it then to a LabApi item/pickup for easier use. Right now I'm just copy-pasting code from the LabApi implementation for creating pickups which seems like it has a good chance of breaking in the future.

I would just appreciate an overload to the Player::AddItem, Pickup::Create methods which would allow the specification of a ushort serial.

Notes

No response

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Changelogs:

  • Added support to .nupkg files which can be stored inside plugins/dependencies folder.

When .nupkg file is loaded it will check if it has installed dependencies for example you can make plugin and just have it as .nupkg file if you set there dependencies like Newtonsoft.Json it will download it automatically if its missing on server.

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

14.2.5-deploy-366a5e86

Description

Above the image show than DealDamage returning false do not cancel the count of a new victime

https://cdn.discordapp.com/attachments/1274617943258566726/1464698619910160465/image.png?ex=69766a63&is=697518e3&hm=ab8dbea451a68d29a99f98d51437a97a65b4d3c2b7b411e6cc9664fde3d86bce&...

lilac obsidianBOT
#

Goal Description

SpeakerToys currently always fall under the "Sound Effects" setting for clients when handling volume.
This can cause discrepancies when using SpeakerToys for player communications, as many players separately adjust their voice chat and effects settings (see below).

Notes

Personally, some months ago (when 106 was causing players to disconnect with conventional SCP prox chat plugins), I completely revamped my server's SCP prox chat system to use SpeakerToys. Since t...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Prior to submitting a suggestion to the repository, please ensure you have checked all previously closed suggestions, as they were closed and added into the internal backlog before.

Our current way of handling suggestions is to mark them as imported, and keep them open on the public repo while we handle things internally on our GitLab. We do not guarantee providing any information on how the suggestion is being processed. However, we will inform you when it's confirmed to be in the nex...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

14.2.5-deploy-366a5e86

Description

Scp939 and Scp106 have unespected behaviours

To Reproduce

set multiple time Scp939 or Scp106

Expected Behavior

no bug actually Scp939 being set multiple time make it Camera when crouching go under ground

Scp106 can't go through door if it's has been set 2 time

...

#

Goal Description

For DeathTranslations.Unknown there two possible Disconect or kill by kill command on Admin i thinks using Unknown shouldn't be used for that as it's unknown

and for DeathTranslations.Crushed

  • BulkDoor
  • PitDeath (that can Used Player Position to know how they died exactly
  • ChaosVan (the Car)
  • Hcz106
  • Hcz939
  • HczWaterRoom
  • HczIncinerator
  • LczGateA
  • ElevatorCrushed in HczServerRoom or HczNukeRoom

i thinks we should know what PitDeath exactly killed them...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.4.2

Description

RoleExtensions.TryGetRandomSpawnPoint may throw a NullReferenceException for certain roles that implement IFpcRole.

The method assumes that all IFpcRole implementations have a non-null SpawnpointHandler, but in practice this is not always true (e.g. Scp0492).

To Reproduce

`RoleTypeId....

lilac obsidianBOT
#

Goal Description

Add the Attacker interface to events or change Player to Target.
Since there's no interface, I can't subscribe to multiple events with the same method.

Example:
//PlayerEvents.DeathEventArgs and Scp106Events.TeleportedEventArgs

    private void HealScpOnAttck(T ev) where T : IAttackerEvent
    {
        if (ev.Attacker != null && Plugin.ScpHeal.TryGetValue(ev.Attacker.Role, out ushort heal))
            ev.Attacker.Heal(heal);
    }

Notes...

lilac obsidianBOT
#

Goal Description

The way this would work is when you set a role you could also set their color, any color you don't specify with revert back to its normal color the code would look like
Player.setrole(roletype.NTFPrivate.color.suit = blue)
The colors you could change would be different for different classes
Class-d: jump suit, skin
Scientist: coat, pants, skin
Facility Guard: shirt, pants, skin
CI: trenchcoat, helmet/gas mask, backpack
MTF: suit, helmet
A way that this could actually b...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

I would like the DrawableLineMessage next update to be serialized using a Vector3[][] instead of a Vector3[] that way many different segments can be sent in a single line message rather than multiple (you can technically accomplish this by inserting a bad vector (new Vector3(float.NaN, float.NaN, float.NaN)) into the array but it's a crude solution)

This change makes more sense as it would reduce network overhead for complex line objects at a minimal cost (even if you l...

lilac obsidianBOT
#

Goal Description

Having a reliable effect to lock the camera of the player where they are looking so to make sure that you can do stuff like menus etc...

Notes

Just locking the camera where the player was looking so we can do for example

SendFpcRotationOverrideMessage to 0,0 and then apply the effect

or maybe having a field on MouseLook

lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

Some time ago, it was suggested that plugins be given access to client-sided mutes.
That idea was tossed out the window in favor of giving SpeakerToys an additional player variable to block communications.

This means every other communication plugin implementing any form of text-based communication has no way to respect local mutes. Please add something so we can fix our communication plugins.

Notes

Are we just going to be cooked forever because of the whims of so...

lilac obsidianBOT
lilac obsidianBOT
#

This PR adds IsReloading, IsUnloading and IsReloadingOrUnloading getters to the LabApi FirearmItem wrapper.

It also adds a second change ensuring that CanReload will only return true if the firearm isn't in use (reload/unload) since base game would deny this reload.
If this change is not wanted, I think CanReload should have it's description (or also the name) changed since it doesn't reflect what it does as it only checks if the Owner of the firearm has enough ammo t...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.5

Description

So when you cause a very niche situation of causing a player to be parented to a rotating waypoint, whilst faking the bounds of that waypoint to 0 to all other clients, the person being rotated by the waypoint will see anyone else as rotating slightly before snapping back to their normal rotat...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

game:14.2.5 labapi:1.1.4.2

Description

When applying certain effects via code or the RA panel (such as Scp1344, Poisoned, or Invisibility), once the effect expires, the player is unable to receive the same effect again through the corresponding in-game item.

Observed behavior:

  • After the effect duratio...
lilac obsidianBOT
#

Notice to Plugin Developers

Not a breaking change, but developers that have not explicitly set canBePrinted to true in their Logger.Debug calls will not see [DEBUG] message in the Console until debug is set true in configs/{PORT}/{Plugin}/properties.yml. Existing custom Debug configs will still work if prefered.

Changes

  • Adds bool debug to plugins' properties.yml to control default Debug log behaviour.
    • Logger.Debug(object) will check for this Debug value bef...
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Description

CullingSubcontroller.LateUpdate
RoleTranslations.ReloadNames
RoleHelpMenu.Update
Scp079Camera.Update

This methods run on the server but pretty much useless except for probably Translation because sometimes they are used by developers.

Notes

This are actually client side only but never stripped from the server so because they are attached to the Player prefab they will load and call methods that pratically are useless for the server, with more than 1 player this ...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Small change for consideration.

Usually a plugin is made for the LabAPI version it's built with. This can be found in the LabAPI plugin example as well https://github.com/northwood-studios/LabAPI/wiki/Writing-Your-First-Plugin.

Proposed change is to set the Plugin#RequiredApiVersion using LabApiProperties.CompiledVersion in the base class and change the member from abstract to virtual. This will still allow developers to change the version if they prefer, but will not be a requi...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

It would be useful to introduce a PlayerEvents.Leaving event that triggers before a player fully disconnects from the server.

Currently, PlayerEvents.Left is fired after the player has already left, which limits access to important player data at the time of disconnection. This makes it difficult or impossible to reliably retrieve or process certain information (inventory, role state, custom data).

This would avoid the usage of OnDestroy or any alternative.

Notes

...

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

Right now Teams and Factions are enums, which makes them pretty limiting to work with - especially for plugins.

It would be really nice if these were class-based instead, so they can be extended dynamically. That way plugin devs could create their own teams/factions and have them properly handled by the base game instead of hacking around the existing ones.

At the moment, if you want custom roles or groups, you’re basically forced to reuse existing Teams/Factions or do...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6, this is specifically a base game bug for the 14.2.6 beta

Description

When you use an event like PlayerLeft and then construct a footprint from that event, your code will now throw an error despite it still working last update. This happens due to (see title)

To Reproduce

subscribe to PlayerLeft eve...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

I know some devs already know about this bug, and Exiled even patches it out right now, but the issue still exists on the client. If you do some weird shenanigans sometimes, you can make players straight up disconnect to the main menu without a kick message

To Reproduce

make primitive th...

lilac obsidianBOT
#

Goal Description

During plugin deployment, users may find compatibility issues between plugins that developer needs to adress. But when should the incompatibility be resolved?

  • MapGenerated or WatitingForPlayers? - What if changes need to be made before these events are fired?
  • Relay on plugin's LoadPriority? - Not reliable, can be changed anytime
  • Coroutine on plugin's Enable method? - Not reliable, will lead to unexpected bugs
  • Some other basegame event? - Not everyone has...
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

14.2.6

Description

To be honest, I don't understand where this chain of bugs came from. I used the latest version of AutoEvents by MedveMarci and recompiled the plugin using the latest library versions, but the problem persists. When launching certain mini-games, there’s a chance you’ll get kicked from the serv...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

Players standing at any coordinates without a RoomIdentifier (ProjectMER schematics outside the facility grid) get their client completely frozen inventory dead, ESC doesn't work, can't switch/drop/equip items, camera pipeline breaks. The moment you teleport them back to a valid room everyth...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

14.2.6

Description

After CreateAhpProcess grants an AHP to a player, if the player has the Anti207 effect, the player's AHP will not be consumed, but will still reduce damage

To Reproduce

  1. Give the player a CreateAhpProcess with amount/limit = 75
  2. Apply the AntiScp207 effect to the player
  3. Wait unt...
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

Painkillers can be used while not waiting through the whole animation by equipping another item as the animation is about to finish.
This has the effect of still consuming the painkiller (the item disappears and you get the HP regen) while UsedItem does not fire.

To Reproduce

  • Use a plu...
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

  1. QueryProcessor::OnDestroy() method throws an NRE, which causes the normal destroying of other component like ReferenceHub, ReferenceHub::OnDestroy() won't run because of other component's NRE.
  2. ReferenceHub.OnPlayerRemove event won't trigger.
  3. LabAPI won't remove the Reference...
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

Introduce a new item with no visible appearance (similar to the hand, but with a serial id), intended strictly for development purposes. This item would act as an interaction layer rather than a visual element ;)

Features

  • Detect multiple input interactions
    • Left mouse click (hold / release)
    • Right mouse click (hold / release)
    • Mouse wheel scroll (up / down)
  • Customizable name and description in inventory (similar to CustomKeycard)

Why ?

From a develop...

lilac obsidianBOT
#

Goal Description

I finally tried to use TextToys for something more than displaying a simple label and I hit a wall.
At the moment TextToys (through the use of TMP tags) allow us to align text in 5 ways.. but that's not enough for a sane developer. I'm talking about missing Vertical Alignment options (Top, Bottom) and also Overflow Modes (Truncate).

Notes

Of course with the addition of VerticalAlignment syncvar, there would also be a need for HorizontalAlignment s...

lilac obsidianBOT
tall tree
#

For anyone wondering - we are just syncing what we have open internally and on GitHub, since they were simply closed and imported previously 👍

lilac obsidianBOT
lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

When calling Player::Kill() or it's overloads, the player doesn't die if they have SpawnProtection with the default config.

To Reproduce

  1. Give the SpawnProtected effect to the player.
  2. Run player.Kill() from plugin (or just deal damage using an universal damage handler)
  3. Player in ...
lilac obsidianBOT
#

Goal Description

Add events that are fired when player dies while holding an active grenade. These events should allow cancellation of the "throw" or modification of the resulting projectile’s properties.
The relevant logic resides in InventorySystem.Items.ThrowableProjectiles.ThrowableItem::OnRemoved() method.

Cancellation of -ing event should prevent both creation of the ThrownProjectile and destruction of the Pickup.

Notes

PlayerDroppingLiveGrenadeEventArgs should imp...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

If you remove the base map (therefore default camera) then try to spawn SCP-079, it'll disconnect the player with a invalid data client error.

To Reproduce

Disable base game map spawning in configs
Spawn the player as SCP-079

Expected Behavior

It should either :

  • Spawn SCP-079 wit...
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

When an exception occurs inside an event handler, EventManager.InvokeEvent catches it and logs an error using FormatErrorMessage(eventHandler, e). However, because eventHandler is a MulticastDelegate, accessing its .Method and .Target properties returns the information of the **las...

#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

In LabApi\Events\EventManager.cs, the methods InvokeEvent and InvokeEvent iterate over subscribers using foreach (Delegate sub in eventHandler.GetInvocationList()).

In C#, MulticastDelegate.GetInvocationList() allocates and returns a **new array on the heap every single time it is ...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

In LabApi\Features\Wrappers\Facility\Map.cs, multiple methods responsible for getting random objects (e.g., GetRandomRoom, GetRandomDoor, GetRandomLight, GetRandomCamera, GetRandomRagdoll) suffer from a severe double-iteration performance issue and unnecessary GC allocations due to...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

In the ThrowableItem wrapper, the FullThrowRelativePosition property incorrectly gets and sets the StartTorque value of the FullThrowSettings instead of the RelativePosition. This breaks the physics and spawn position logic for full throws of grenades and other throwable items.

...

#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

The ParticleDisruptorItem class overrides the ChamberMax, ChamberedAmmo, and Cocked properties but only provides a get accessor for them. Because the base class (FirearmItem) has both get and set for these properties, attempting to set any of them on a ParticleDisruptorItem f...

lilac obsidianBOT
#

Goal Description

Developers might want to keep track of these events, such as creating special cases of keycards where possibly having a "power throw" where you have anime protagonist powers of throwing the keycard hard enough to open silo warhead with a janitor card.
In my usecase I want to keep track of these events in a more granual way of knowing if it was a direct, held in hand interraction or a thrown keycard verison.

Notes

Ideally would be a carbon-copy of the DoorInteracted...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6.1

Description

When attacking a player as 106, if they're the last alive they'll instantly die but the OnScp106TeleportedPlayer will still run anyway, even if they aren't teleported.

To Reproduce

Make yourself SCP-106 and spawn in a dummy as a human class, kill the dummy and the event will run even t...

lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

1.1.6

Description

Despite setting 0 in Badge flag in PlayerInfoArea enum on player, badge is still visible in game.

To Reproduce

  1. Grant user a UserGroup
  2. Set flag Badge to 0 on InfoArea

Expected Behavior

User's bagde should be hidden in game

Additional Information

Even after setting info...

lilac obsidianBOT
lilac obsidianBOT
#

Before You Report

  • [x] I have searched for existing reports of this bug, and this bug report is unique.

Version

14.2.6

Description

PlayerSpawningEventArgs.UseSpawnPoint is currently initialized using:

fpcRole.SpawnpointHandler.TryGetSpawnpoint(out spawnLocation, out horizontalRotation)

However, the returned bool only indicates whether the role has a spawnpoint available, not whether this spawn should actual...

lilac obsidianBOT
lilac obsidianBOT
#

Goal Description

Custom mesh primitive toy would allow the map makers to make more optimized / better looking maps. Right now they are limited strictly to unity's quads cubs etc.

How could they be sent through the network?
The meshes would only need an Vector3[] Verticies and int[] triangles which could be made in a struct

Wouldn't just triangles be better / lighter?

No and here is proof https://www.desmos.com/calculator/5alqon...

lilac obsidianBOT
lilac obsidianBOT