Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send GameOptionData and player customization (Name, Color, etc...) to a specific player #338

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Minorusama
Copy link
Contributor

Allow to desync GameOptionData and player customization.
Things you can do :

  • Set the name, color, hat, skin and pet of a player to be only visible by them or another player
  • Change the GameOptionData for one player

Gameplay ideas :

  • Give information during gameplay to a player by changing their name only to them
  • When comms are sabotaged, all crewmate see everyone with the same color/skin and no name, but impostors are not affected
  • Change the vision range of a player based on their completed task

@js6pak
Copy link
Member

js6pak commented Mar 14, 2021

This is a big design choice, imo base plugin api shouldn't be able to cause desyncs, but it should be possible to make them by sending rpcs yourself.

@Minorusama
Copy link
Contributor Author

This is a big design choice, imo base plugin api shouldn't be able to cause desyncs, but it should be possible to make them by sending rpcs yourself.

Can you explain why you think so ?

Personally, I think allowing desyncs is a requested feature and opens a lot of possibilities for plugins. I know you could do it with custom rpc, but this way is so much simpler.

@IrishBruse
Copy link

IrishBruse commented Apr 13, 2021

its not difficult to make a custom class to handle this stuff but why not add them as extension methods and have them in a
using Imposter.experimental.rpcDesyncs that way you have to specificaly want to desync clients and it also shows which file causes the desyncs by looking at the usings

@js6pak
Copy link
Member

js6pak commented Apr 13, 2021

I agree, but it could very well be a plugin

@Galster-dev
Copy link
Contributor

I agree, but it could very well be a plugin

But plugin dependencies are not implemented, are they?

@IrishBruse
Copy link

You dont actually need that for you to use other plugins i have a plugin that uses another one for chat commands

@HarmHoog
Copy link
Contributor

@Galster-dev Not if you're plugin needs to use dependencies at startup. I actually created an API plugin that adds some desync extension methods to the player class (https://github.com/HarmHoog/ExtraPlayerFunctions); as long as you don't call any methods too early it will work fine as a dependency.

@IrishBruse
Copy link

I made something similar to that but mine is just a plain dll and i pass it the writer provider in a constructor

@js6pak js6pak added api Stuff about the plugin api wontfix This will not be worked on labels Apr 13, 2021
@Fluffy728

This comment was marked as duplicate.

@Fluffy728

This comment was marked as duplicate.

@Fluffy728

This comment was marked as spam.

@Fluffy728

This comment was marked as off-topic.

@Fluffy728

This comment was marked as outdated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api Stuff about the plugin api wontfix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants