Page 1 of 1

How can I get the "index" of the current character in "script. On_init"

Posted: Mon May 23, 2022 1:13 am
by sdgmlj
This is included in multiplayer games. How can I get it? thank you

Re: How can I get the "index" of the current character in "script. On_init"

Posted: Mon May 23, 2022 1:25 am
by robot256
Mod scripts run at the game level, and execute the same code on every player's machine. They can access every player's data all the time.

To find every player's characters, use:

Code: Select all

for index, player in pairs(game.players) do
  local character = player.character
  if character ~= nil then
    -- Do stuff with character
  end
end

Re: How can I get the "index" of the current character in "script. On_init"

Posted: Mon May 23, 2022 2:56 am
by sdgmlj
robot256 wrote:
Mon May 23, 2022 1:25 am
Mod scripts run at the game level, and execute the same code on every player's machine. They can access every player's data all the time.

To find every player's characters, use:

Code: Select all

for index, player in pairs(game.players) do
  local character = player.character
  if character ~= nil then
    -- Do stuff with character
  end
end
Sorry, I don't quite understand. I just want to find my own "index". How should I write it?
For example, there are five people in the game, and I just want to know my own "index"

Re: How can I get the "index" of the current character in "script. On_init"

Posted: Mon May 23, 2022 3:29 am
by robot256
The mod doesn't know whose computer it is running on--it runs on everyone's simultaneously. There is no "me", there is only player 1, player 2, etc. The mod can receive events every time any player does something like open a GUI or press a key, with a link to the player that did it. There are also "runtime per player" mod settings, which the player changes in the mod settings window and the mod can read for each player.

Typically, mods that need to do something different for a particular player keep a table in global with the unique data for each player. This includes settings, handles to custom GUIs, etc. Then whenever a particular player triggers an action, the mod can decide what to do, where to pick up where it left off for that player, etc.

What do you need to do once you find the character you want?

You will need to have a control of some sort to tell your mod that "this player" wants something done. That is how it will know which player is "me". You will have to write it so that it could be any player, or all of them at once.

Re: How can I get the "index" of the current character in "script. On_init"

Posted: Mon May 23, 2022 3:41 am
by sdgmlj
robot256 wrote:
Mon May 23, 2022 3:29 am
The mod doesn't know whose computer it is running on--it runs on everyone's simultaneously. There is no "me", there is only player 1, player 2, etc. The mod can receive events every time any player does something like open a GUI or press a key, with a link to the player that did it. There are also "runtime per player" mod settings, which the player changes in the mod settings window and the mod can read for each player.

Typically, mods that need to do something different for a particular player keep a table in global with the unique data for each player. This includes settings, handles to custom GUIs, etc. Then whenever a particular player triggers an action, the mod can decide what to do, where to pick up where it left off for that player, etc.

What do you need to do once you find the character you want?

You will need to have a control of some sort to tell your mod that "this player" wants something done. That is how it will know which player is "me". You will have to write it so that it could be any player, or all of them at once.
Thank you. I seem to suddenly understand that I just want to name some variables related to index, such as global Mods [player_index], I think it would be more appropriate for me to add it to "on_player_created". Thank you, I finally understand