#plugins-dev-chat
1 messages ยท Page 86 of 1
im going to kill windows
xdd
just as life intended
Bump

If I want to change Max Ammo and Bullet Inaccuracy for a weapon, what's the best way to do it?
||Player::Jump() works while airborne double jump plugin when??||
public static Attachment GetAttachmentByName(this Firearm firearm, AttachmentName name)
{
foreach (Attachment attachment in firearm.Attachments)
{
if (attachment.Name == name)
return attachment;
}
return null;
}
public static bool TryApplyAttachment(this Firearm firearm, AttachmentName name)
{
Attachment targetAttachment = firearm.GetAttachmentByName(name);
if (targetAttachment == null)
return false;
uint newCode = firearm.GetCurrentAttachmentsCode();
for (int i = 0; i < firearm.Attachments.Length; i++)
{
Attachment attachment = firearm.Attachments[i];
if (attachment.Slot == targetAttachment.Slot)
{
uint bitToRemove = 1u << i;
newCode &= ~bitToRemove;
}
}
for (int i = 0; i < firearm.Attachments.Length; i++)
{
if (firearm.Attachments[i] == targetAttachment)
{
uint bitToAdd = 1u << i;
newCode |= bitToAdd;
break;
}
}
firearm.ApplyAttachmentsCode(newCode, true);
firearm.ServerResendAttachmentCode();
return true;
}
Jetpack joyride plugin when?
Not my goal here but I appreciate it
Whats your goal?

I've been told attachments would sync that with the client but
^
Yeah there is no check if your grounded or nah
I specifically made it like that XD
good
So you can do N jumps plugins
flappy bird
Flappy Task Force
you know i would enjoy marryhing you
๐
firearm.Attachments = [..firearm.Attachments, firearm.AddComponent<CustomAttachment>()]


why the assembly csharp not in nuget
Also why the fuck did Rider suddenly stop looking at Assembly-Csharp
this very foolish
I never get it in the compiled list of items anymore
I can't find usages accurately anymore
I'm gonna crash out extreme
So would this be the best course of action for changing max ammo and bullet inaccuracy?
talk properly to my man.
what is collection id used for since it was specifically mentioned that we got an example of it
thats better.
Please help me I'm so upset
"Added a CollectionId property to settings that saves values on the client side. Settings with the same CollectionId are shared between servers with the same AccountID."
I don't know what's happening
v1.1.1 is for which game ver
have u restarted your rider and cleared cache ๐ข
Yes
And factory reset all settings
lmao
probably
send ur csproj (make sure you dont have your real name in it lol)
oh so you can have multiple settings on the same id but have them seperated as different settings?
which one for normal people
1.1.0?
wait. i have an idea. i will go look at release notes
ya
Sure
did you maybe update your scpsl server
Yes
you were referencing a publicized assembly csharp
Yes
is it still there
Sure is
in the publicized folder
Yepp
go to file... invalidate caches
he did
As I understand it
multiple servers
shared SSS preferences
eg keybinds
I guess
SSFieldDemo has example
so if you go to %USERPROFILE%\Desktop\SL Server\steamcmd\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Publicized\
its 100% there
๐ฅ
SSFieldsDemoExample
Still nothing ๐ญ
and it stays on server B
I'm crashing out
if you have the exact same SSS ID and colleciton id
tldr i need to set the collection id for this to work
yes
you are a very interesting critter
you know that right
I just want to be able to find usages correctly :(
^
Yes
The problem is I use FindUsages on an item
And it doesn't look into Assembly-CSharp
So like I look for usages of some event args and only get my own plugin and LabAPI
But I can't find where it's called in the assembly
huh
when u ctrl + click SendBroadacst in ev.Player.SendBroadcast
it decompiles the assembly?
if u right click broadcastflags and do find usages here it finds them?

Dope
u removed and readded the dep right
im thinking u have some strange perproject setting
I have no fucking clue
is your resharper laced
Probably
rename assembly csharp publicized to smth and try that
Same issue
Try finding usages for PlayerIdlingTeslaEventArgs
I wanna see if it's just me
Or if it's like
Use visual studio 
It doesn't show up
Rider gives me better code suggestions
my find usages doesnt work like yours does
Fuck
WHAT
this is what i got after ctrl + click then find usages
Broooo so it just
Yeah, maybe you should consider my offer 
Isn't in the assembly?
Cause it's doing the same thing for you
wait nvm i have the same thing
Yeah
let me dnspy
What are you trying to do
My original goal was to view the code around the PlayerHurtingEventArgs so I could know how the game handles it
The problem is that find usages for the event args is showing 0 results from the assembly
Idk why so many people around here use rider
Good code suggestions
It is like specific to this community x)
because it's not visual studio
Rider > VS
definitely not
๐
I used to use VS exclusively
and then you broke free
linux
more lightweight also
public bool DealDamage(DamageHandlerBase handler)
{
if (this._hub.characterClassManager.GodMode)
{
return false;
}
SpawnProtected spawnProtected;
if (this._hub.playerEffectsController.TryGetEffect<SpawnProtected>(out spawnProtected) && spawnProtected.IsEnabled)
{
return false;
}
IDamageHandlerProcessingRole damageHandlerProcessingRole = this._hub.roleManager.CurrentRole as IDamageHandlerProcessingRole;
if (damageHandlerProcessingRole != null)
{
handler = damageHandlerProcessingRole.ProcessDamageHandler(handler);
}
ReferenceHub attacker = null;
AttackerDamageHandler attackerDamageHandler = handler as AttackerDamageHandler;
if (attackerDamageHandler != null)
{
attacker = attackerDamageHandler.Attacker.Hub;
}
PlayerHurtingEventArgs playerHurtingEventArgs = new PlayerHurtingEventArgs(attacker, this._hub, handler);
PlayerEvents.OnHurting(playerHurtingEventArgs);
if (!playerHurtingEventArgs.IsAllowed)
{
return false;
}
DamageHandlerBase.HandlerOutput handlerOutput = handler.ApplyDamage(this._hub);
PlayerEvents.OnHurt(new PlayerHurtEventArgs(attacker, this._hub, handler));
if (handlerOutput == DamageHandlerBase.HandlerOutput.Nothing)
{
return false;
}
Action<ReferenceHub, DamageHandlerBase> onAnyPlayerDamaged = PlayerStats.OnAnyPlayerDamaged;
if (onAnyPlayerDamaged != null)
{
onAnyPlayerDamaged(this._hub, handler);
}
Action<DamageHandlerBase> onThisPlayerDamaged = this.OnThisPlayerDamaged;
if (onThisPlayerDamaged != null)
{
onThisPlayerDamaged(handler);
}
if (handlerOutput == DamageHandlerBase.HandlerOutput.Death)
{
PlayerDyingEventArgs playerDyingEventArgs = new PlayerDyingEventArgs(this._hub, attacker, handler);
PlayerEvents.OnDying(playerDyingEventArgs);
if (!playerDyingEventArgs.IsAllowed)
{
return false;
}
RoleTypeId roleId = this._hub.GetRoleId();
Vector3 position = this._hub.GetPosition();
Vector3 velocity = this._hub.GetVelocity();
Quaternion rotation = this._hub.PlayerCameraReference.rotation;
Action<ReferenceHub, DamageHandlerBase> onAnyPlayerDied = PlayerStats.OnAnyPlayerDied;
if (onAnyPlayerDied != null)
{
onAnyPlayerDied(this._hub, handler);
}
Action<DamageHandlerBase> onThisPlayerDied = this.OnThisPlayerDied;
if (onThisPlayerDied != null)
{
onThisPlayerDied(handler);
}
this.KillPlayer(handler);
PlayerEvents.OnDeath(new PlayerDeathEventArgs(this._hub, attacker, handler, roleId, position, velocity, rotation));
}
return true;
}
my eyes
wall of text
Visual studio is also on linux
this is what you are looking for
what since hwen
since when bruh ๐ญ
How did you find it
are you running it on wine
no even with wine u cant
dnSpy
idk what hes talking about
do you mean visual studio code
?
lmfao
Crazy that dotpeek didn't work
i hope so
did you update your labapi reference
"the top pick for java and web developers"
Maybe its visual studio code
How can
yeah
Yes
OHHH
Fuck
That's why isn't it
I know an another dev community, and except for one person, all of them use visual studio
vs is the most common ide
Yeah
"visual studio, visual studio code... same thing, just like java and javascript"
that's one
Omg
this is build tools
Yeah
Yes
yes
thanks
So did Find Usages break because I updated LabAPI?
when i discovered intellij after using eclipse
did it fix?
ECLIPSE PEAK
Real developers use notepad anyways 
i had to use ts for work
*neovim

I ended up as last person in whole class
using eclipse
when we did java
and where did I get?
best programmer
correlation?
switched to C#.
I think so
because they all dropped out 
- game dev
- we did either way the next year
i genuinely just use vsc for everything
i will not fall for your install 10000 jetbrains ide propaganda
at least you're not one of those people who bitch about not having JS intellisense despite refusing to install extensions
Rider can do python and web anyway
JavaScript?
yea
I sleep
xd
I hate python, but at school, we used to learn python on a unknown ide "edupython" ๐
HUH
didnt even go to school or anyhting just chose it out of their own volition
how about you write your own lang
do you hate css
then don't frontend 
no i have the creativity
i make the layout myself
i just hate making it
its repetitive and annoying work
x)
I haven't reverted it to the old version cause I made changes requiring the new version
My guess is that because Assembly-Csharp was built with the older LabAPI, find usages breaks when using the new LabAPI in my plugin
Oh damn
So
Using the new LabAPI do I have to add it to my server dependencies or something?
I've noticed that my server is stalling on startup since updating my plugin's LabAPI
๐ญ ๐ข ๐
Oh shit
I realize now
I have no idea how to change that
Or if you are using steam
Properties, beta
when u want to go back to default u dont remove the arg but change it to -beta public
I've just never had to do it before ๐ญ
Thank you
The help is 100% appreciated haha
dw dont be ashamed gangy
Crazy that I learned how to casually do shit like reflection and yet I still need to ask help relating to adding a a bit to the command line
Lmao
are you gonna study in cs
Nah my experience with CS in school sucked
I'm entirely self-taught
With SSS changing what will i need to change within existing things to make sure they work still?
nothing
set CollectionId if you need to use the feature, otherwise dont do anything
That's hype as shit
I learned HTML and CSS, then Python, then C#
ok cool ty :)
Somewhere in there I learned Assembly
And ig by extension I learned a good bit of IL
break your head
i dont know whats the proper way to say this in english
lmao this sounds like a threat wait
like complicate your life is what i mean
I always am trying to learn new things
as in set it between 0 and 20 IF you need between server share
idk if i worded it right first time
yesss
like make a plugin that has a web panel
realworld stuff ๐ฅ
FARM job experience
Actually planning on this
Create beautiful link nodes for your online presence
I got flamed for the idea by other devs in here but I'm gonna do it anyways lmao
is ts tuff
if youre making it to accomplish smth it dont matter
I'm doing it anyways cause my dopamine receptors activate when I delete a dependency
Having the know-how to do everything you want to and not relying on other people is kinda tuff
Now that I've updated Assembly-Csharp to the new public beta I've got my find usages back :)
You like my patch?
It prevents PlayerHurting events from running for 079
ah ok
Fun fact: if you run ev.IsAllowed = false; for the RecontainmentDamageHandler in OnPlayerHurting, 079 becomes invincible 
So if you, for instance, have a custom item that isn't supposed to do damage
You get fucked over
For real dude
I hope you know I immediately reposted that in another channel as if I was the one who found it
tuff

What's even funnier is I just posted that in an announcements channel on like an 800 player server
Lmao
The funny thing is I have a handful of debug commands that do this type of shit
I made dummies and gave them aimbot
tuff
I like this @gilded thicket guy
๐ฅฐ
Lemme check this
firearm doesn't have AddComponent :(
You also can't set attachments
Luckily though all this means is I have to figure out how to add a subcomponent
what r u trying to do
Make my own Custom Attachment to do my own shit with
I dont think thats how sl works
Wdym
i dont think you can do that
Why not :(
well idk what they made possible in the latest update
With firearms
but ik theres not a lot yoi could do before
is that even a feature
Yeah lmao
And if it is.. why attachment
You can change it on attachments already
Oh they made it server sided?
I have never said it syncs.....
Well like
It doesn't matter where the client thinks the bullet went
I'll kill the client
Patch it or smth idk
How 
can you make it all sync

Remove basegame shots and make it entirely server sided
If basegame would shoot then do your own raycast thing!!
Does it really matter where the client thinks the bullet went
Because afaik shot trajectory, damage, bullet holes, and all that stuff is handled by the server anyways
The worst that happens is they like see a hitmarker when they shouldn't afaik
Max ammo
[HarmonyPatch(typeof(MagazineModule), nameof(MagazineModule.AmmoMax), MethodType.Getter)]
internal static class MaxAmmoPatch
{
[HarmonyPrefix]
public static bool Prefix(MagazineModule __instance, ref int __result)
{
if (!Utilities.TryGetSummonedCustomItem(__instance.Firearm.ItemSerial, out var customItem))
return true;
if (customItem.CustomItem.CustomItemType is CustomItemType.Weapon)
{
WeaponData weaponData = customItem.CustomItem.CustomData as WeaponData;
__result = weaponData.MaxMagazineAmmo;
__instance.ServerResyncData();
}
return false;
}
}
lag compensation is hard to do if you do server only ans dont adjust based on client responses
But idk if client needs to be correct
I already have max ammo
Thank you mr baguette
What I care about is inaccuracy
HitscanHitregModule::BaseBulletInaccuracy
Lag on what?
I don't wanna modify it for all weapons
Unless HitscanHitregModule is per weapon
Thats not all
@slate flume
that
What needs to be compensated for with lag
Sucks that these patches don't even work for revolver
@hearty shard
I had to make 2 extra patches just to get revolver max ammo working

Did you try this?
// TODO: Test this.
[HarmonyPatch(typeof(CylinderAmmoModule), nameof(CylinderAmmoModule.AmmoMax), MethodType.Getter)]
internal static class RevolverCylinderPatch
{
[HarmonyPrefix]
public static bool Prefix(CylinderAmmoModule __instance, ref int __result)
{
if (!Utilities.TryGetSummonedCustomItem(__instance.Firearm.ItemSerial, out var customItem))
return true;
if (customItem.CustomItem.CustomItemType is not CustomItemType.Weapon)
return true;
IWeaponData weaponData = customItem.CustomItem.CustomData as IWeaponData;
__result = weaponData.MaxMagazineAmmo;
__instance.ServerResync();
return false;
}
}
I have a working max ammo module
Its validated by server afaik
client says what it expects, server validates
its what most games do afaik
Reflection....
Wait why did
I even
Do reflection for OnAmmoInserted
I forget my motivation for that
idk
if its event u can only call event from same class its created
But still
Yucky
So how would one access the hitreg module for a firearm
I should be clear about my goal
What I want is to increase the spread of a shotgun
foreach (ModuleBase module in firearm.Base.Modules)
{
switch (module)
{
case HitscanHitregModuleBase hitscan when hitscanHitregModule == null:
hitscanHitregModule = hitscan;
break;
}
}
internal HitscanHitregModuleBase hitscanHitregModule { get; set; }
copied it from exiled ยฏ_(ใ)_/ยฏ
Oh that's wild
also theres more in it that i removed
what patches are you refering too
Position cacheing
that was implemented aswell
guh
it was apart of the waypoint refactor
Really?
yes
Guh
fun fact, that was implemented before i told anyone about it
was curious how much of a performance impact it had so told cyn about it since he was interested about server tps
That's fire
Riptide you're the ๐
Okay wait
So I just updated LabAPI for my plugin and the server
So I could test stuff
I try to go on my server and I need to change it to the beta so I can get on
You cant join
So I change to labapi-beta
There is no client beta
Thats the old beta for labapi before 1.0
you gotta wait
Yeah I found that out

Using the new RoleSyncEvent stuff for spoofing roles and I saw the changelog said this:
... we recommend subscribing to FpcServerPositionDistributor.RoleSyncEvent ... returning null will make it follow base-game behaviour
The event itself returns a non nullable RoleTypeId, then creates a new nullable RoleTypeId? with that value, then checks if that value is null, which it never will be.
Func<ReferenceHub, ReferenceHub, RoleTypeId, RoleTypeId> roleSyncEvent = FpcServerPositionDistributor._roleSyncEvent;
RoleTypeId? roleTypeId2 = ((roleSyncEvent != null) ? new RoleTypeId?(roleSyncEvent(referenceHub, receiver, roleTypeId)) : null);
if (roleTypeId2 != null)
{
roleTypeId = roleTypeId2.Value;
}
So then how do we return null in the subscribed event as instructed by the changelog?
What
If there's something you're confused about or something I've made unclear, a question would be better than just saying "what"
Oh
That was a really round-about way of saying you can't return null in the RoleSyncEvent
I wouldn't say it was a round-about way of saying that at all, I'm just providing enough detail and context
Don't listen to the changelogs
The reason it checks if the roleSyncEvent is null is to see if it can run an action on it
Yea exactly, I'm pointing out the inconsistency in the change log
Oh so you don't need help figuring out what to actually do
Got it
If you purely have a bug report add it to the LabAPI issues
I'm looking for clarification, either the change log is wrong or I'm misunderstanding something here
The change log is wrong 
It's telling you to return null
You can't return null
Thanks for the recap
Np
Welcome to SCP: SL
They say it works one way but it doesn't
That's why there's like 100 open issues on the LabAPI github
No offense to anyone at NW I know they do their best I'm just pointing out the fact of the matter
Hi @worthy rune :)
a dedicated labapi event will be added as an alternative hopefully next update, reason it wasnt added this update was that code was a last second addition
Got it, thanks for the clarification
GameObject.AddComponent
And set the backing field for attachments
Why would you foreach-switch this 
.OfType<T>().First()
It's exiled code 
Wait so
Attachments only has getter for getting all subcomponents
So I just need to AddComponent?
Returning with delegates is a death wish
There's a backing field
You've decompiled attachments
Yepper
You can see what the getter does
Yessir
OH
Wait
Nvm
I see
I forgot about _attachments
I'll just set _attachments to null and update the Attachments by calling it
๐
Why would...
Then you also need to update AllSubcomponents
You can just use a collection expression for _attachments
๐
Maybe?
Idk I'll test if it even syncs tomorrow once I can run a server with the new update
Make git issue
It surely is something I would like to do
but not sure how to approach it
Because final properties are combination of like 3 others
should I add another one to the mix?
Should I let you override one of them?
Should it override the final number?
hello how are you doing?
eepy
so sad
is there no way to get keycard information out of pickup?
yes
that's fucked how am I supposed to get that information then for saving pickups?
As of now, you will have to deserialize KeycardDetailSynchronizer.Database
yea
i was searching the class
david do you know if i can fake a player spinning like the player spins for everyone except himself
Send the rotation message to specific players?
i mean i could send it to auth
i mean couldn't this create problems
Depends what you want to do
Just make a player spin for everyone else
but he doesn't see it
Yeah and then what happens
it shouldnt cause any problems tbh
just try it and see
ig i could try
I have no clue how to deserialize it, it's in bytes. The ushort is serial?
Key is serial number
private static void ClientApplyDetails(ArraySegment<byte> payload, KeycardItem template, KeycardGfx target)
{
using (PayloadReader = NetworkReaderPool.Get(payload))
{
DetailBase[] details = template.Details;
foreach (DetailBase detailBase in details)
{
try
{
detailBase.ApplyDetail(target, template);
}
catch (Exception exception)
{
string arg = string.Concat(detailBase.GetType(), '@', template.name);
Debug.LogError($"Error applying detail: '{arg}' Payload: {PayloadReader}");
Debug.LogException(exception);
}
}
}
target.OnAllDetailsApplied();
}
This is how the client does it
I would probably cache them in some struct during KeycardDetailSynchronizer.ServerProcessPickup(pickup)
Not entirely sure how does this all work
i know how because i spent alot of time
and then figured out
oh wait i can use serial
im dumb
(all of this for custom items)
I don't have keycarditem or keycard gfx though
bruh
that's apply detail though
bruh
brain moment
this is how the client deserialize it
just copy how it does it
and boom
you can have info
Crazy i know
no I get what you mean I can use this to deserialize just spoke too quick
oh lol
don't worry
the payload reader is it some dependency I must add? I don't understand why they didn't use var PayloadReader = X?
Nah its mirror
PayloadReader is a variable
in what namespace is this located?
wait the client does it?
InventorySystem.Items.Keycards.InventorySystem.Items.Keycards.ClientApplyDetails
Yes but you can take inspiration
because you just read as david said from the database
in this same class
and then deserialize it like how the client does
how did you get the client code of this?
Its not stripped
its not stripped
same for keycard details
so sad
you can just look at what it does
stripped? Like it was not removed from source
Mhm
yes, when they compile server side, they have 2 version headless (server) and non headless client
and sometimes client code can be left
because its not critical
i don't think someone will ever exploit fucking keycards
(and i don't think there will be ever an exploit like that)
I hope
wtf are they going to exploit
for what does NW use the target and template inside the method though?
there is nothing to exploit
keycard saying skibid toiler?
you just receive data
^
You dont want them? ok
you don't care about that
you know what
tell me what you need to find?
the pickups information on keycard so I can delete it and recreate the exact replica
but like it's saved inside file and can be restored after restart
Save then the payload
to the file
and read it back with the network reader
At that point just save what you create
you dont need to save the created payload afterwards
yea but idk depends
idk what he wants to do
like if he is creating it
I'm
@spare zodiac What exactly are you doing
saving all items on map and then next like soft restart big restart no data left in the .dll want to recreate each item without loosing data of the items
I still have no clue where the DetailBase[] information got cretated
david moment
idk why is this so complicated its like 3 hours the same thing
.
do what this does
only into the server
you don't need to apply
just read
Okay so
Save the byte array
Add it back to the database on start
As the database is for both items and pickups
But the problem is the Serial aren't the same
Then force them to be the same
ig
If he uses the same seed
there will be the same amount of items and such
(I think?)
same everything then it works
what happens when I get existing keycard's serial and in the database load different bytes into the serial?
i think yes because being deterministic SL yea
midnights knows where stands are so i think yea
If your using the same seed then this wont happen
Or you can just create the item/pickup
and then apply the data based on the new serial
Create item/pickup -> get the new serial -> set the database entry based on the new serial
oh the database is readonly
Property itself is readonly
you can still add /remove entries
that means you cannot do Database = new ()
you can, however, still do Database.Add(serial, payload)
ofc
then I can remove the serial and load it with my data changing some keycard
or just rewrite it
yea
KeycardDetailSynchronizer.Database[5] = [];
this is really nice though didn't know this can be done, thank you
Seems that that was missed in implementation of the event itself
Easiest solution is to just return the RoleTypeId that the event passes to you if you do not wish to modify it
Or patch FpcServerPositionDistributor::GetVisibleRole as that controls what it wants to fakesync people as
So, how CollectionId works?
Multiple servers with same IP
collection id stays the same
if they have same SSS
no need to redo SSS on client on each server
oh, got it, basically I put one number everywhere
ty
i need to understand how it works
do i set a number on each SSS for each server that is the same or what?
each SSSS needs to have a collection id to save to
it does not matter if it is a duplicate
0-20
anything else will default to how it works rn (no saving across server)
Lets make an example
i have a dropdown
and i set it to 0
then i go to the other server and i set the same dropdown to 0
this will sync?
if I set all the settings (buttons, dropdowns and etc) to one number, it will sync?
or each setting should have uniq collectionId
What is that?
stuff like fog, screen stuff
Guys UPDATE IN AN HOUR
OH MY GAWD
WHAT IS SLEEP
you can break whats already broken?
Obv

I want to break everything
want to break free from the ads?
i cannot say how i did that already
but something spicy helped me
Okkkkkk
I hate updates
why
Constantly have to update plugins ๐ญ
"constantly" but then its every 2 months
and usually thats small changes that u dont rly need to update plugin for
would love to actually have a client build so can test actually
A HOUR
we have it
im going to update everything instantly
idc
and how would i use the FpcServerPositionDistributor.SendRole 
what for
Yes, but these updates come out exactly on the day when in another city, or in another country
did you figure it out, or still no?
Nah, there's no modded or community servers that help retain the games playerbase that'd be a waste of time

no
๐ญ
Hello
I mean it would be helpful for alot of servers
yep
I wonder if there's stats that show how many players play on official servers versus unofficial servers
mine for example top 10 changes
Learning to make plugins for this game has truly been an experience
Tonight IS GOING TO BE ALL TESTING
Cullable parent

I mean it works you just have to fix the scale
and that error message spam
rn im playing to pass the time, a gamemode that is a mix of valorant with guns and some movement, gun system of csgo and gambling, omnimovement from bo6 and some guns from bo3
that was fixed already
You said that 50 times when we were testing it
it was fixed don't you remember
No it kept spamming silly
btw
@unique crane for the size problem i think i need to set the size of the cullable to 1,1,1
and that should fix it
Yes
or do the opposite
set the cullable to the size
and the prim to 1,1,1
btw when sl will have omnimovement
great addition to the game
What
Omnimovement
๐ COD Black Ops 6: Omni-Movement Explained โ Master the New Mechanics! ๐
Attention, operators! In today's video, we're diving deep into the innovative Omni-Movement system in Call of Duty Black Ops 6. Get ready to elevate your gameplay with this revolutionary feature that redefines how you navigate and engage in the battlefield.
๐ซ I...
its max payne system copied
AHAHAHAHHA
(crazy concept)
Guys we are adding new movement system
We are calling it
Capymovement
Its new innovation
Calling a good movement system "Omnimovement" and acting like it's the next big thing is absolutely an Activision thing
"Once you experience Omni-Movement there's no going back"
crazy client side waypoints
lets see how much i can break the game
You cant have client side only waypoints
you stupid
Waypoints are server side too
i know ;(
Explain
but i want to see if i can break the game
Elevators
What about them?
You can now make smooth elevators using WaypointToy
Oh dope
Or rotating platforms
.
what
Like a black hole
no?
No thats not how it works
its not like that
Yeah
waypoints hook you onto them and then you become relative to them
so when you move left and right you're moving left and right relative to the eg box
Yeah
yea its for relative positioning
So why not have a platform underneath a player
And move them
you cannot create like big asf
whatt
because of float percision the futher you go out the more bugged it becomes
well if you're moving relative to world time not on the box youll just get thrown off
The player doesn't spin with it or move at all
its just like you stand on it
without any type of physics applied to it
(this system is used by elevators and was done literally for them)
with side effect of less network usage
and some downsides too yea..
Huh?
I'm watching players spinning and moving with it rn
Yes cause that has the waypoint toy
this is with the new toy
Yes
on it
I'm saying why not use that
but without it, it wouldnt work
I'm saying "Oh so I should use waypoints to sync players with like moving platforms to move them smoothly towards something"
which are used in that example
And you're saying "Oh if you don't use waypoints it won't work"
I'M SAYING I WANT TO TRY USING WAYPOINTS WDYM ๐ญ
you started that talk about blackhole
Yes
I have a black hole item
But players don't move smoothly towards it because it requires on server updates
So to sync better put them on a platform and move them towards it
And you're telling me that won't work?
You can put them in air and set gravity towards it
How far to they have to be off the ground to be "in the air"
Because I don't want it to be noticeable to them that they're off the ground
There sphere collision check for it
Yeah well no
that wont work then
So why won't this work?
It could
Then why was I being told this ๐ญ
I'm getting mixed messages bro
Gravity towards it????
Zero was talking about platform without the waypoint toy
I was talking about platform with waypoints
im stupid
You havent noticed that player.Gravity is Vector3?
well he wasnt
anyways
No im stupid
Thats AMAZING
I will kiss riptide
for this update
I'm gonna create little platforms for players and move them towards a black hole :)
because now i can sleep at night knowing that QA don't fall for spinners and complain that spinners aren't spinning the player
So waypoints are just the servers way of lerping shit smoothly
no done by the client
all of that
Smartest QA
its like the elevator
I like it when the client handles shit
Most of the QA is like don't know anything technical
and they just talk
well its client + server
both client and server are getting the position relative to




