Addons Serveur
Ce guide fournit un accès restreint aux protocoles de configuration des systèmes de serveur personnalisé SCP: Roleplay.
Environnement de Script
Les Addons tournent sur une version isolée de Lua 5. De nombreuses fonctions Roblox et Luau moderne ne sont pas disponibles.
Info: Info : Accédez aux instances via workspace, mais utilisez f(Instance) pour en ajouter de nouvelles.
Attention: Attention : Les messages sont filtrés et exigent la présence de l'hôte du serveur.
Attention: Attention : Les exécutions 'Run Once' sont limitées à 10 secondes.
Utilisez F3X pour obtenir des positions précises pour vos zones de déclenchement.
Référence API
Fonctions de carte
| Commande | Description |
|---|---|
f(name : string / instance) | Retourne la première Instance dans la carte correspondant au nom donné. Si une Instance est passée, elle sera attachée à la carte. |
getTagged(tag) | Retourne toutes les Instances avec le tag spécifié. |
tween(instance : instance, tweenInfo : tweeninfo, propertyTable : table) | Crée et joue une transition (tween). |
raycast(origin : Vector3, direction : Vector3, params : RaycastParams) | Effectue un raycast et retourne le résultat. |
Fonctions Joueur
| Commande | Description |
|---|---|
kill(name : string) | Élimine le joueur spécifié. |
damage(name : string, amount : number) | Inflige un montant spécifique de dégâts à un utilisateur. |
heal(name : string) | Restaure les points de vie maximum de l'utilisateur. |
getPlayers() | Retourne la liste des noms des joueurs. |
getPlayerHealth(name : string) | Retourne la santé actuelle (-1 si non spawn). |
setPlayerHealth(name : string, amount : number) | Définit la santé du joueur. |
getPlayerMaxHealth(name : string) | Retourne la santé max du joueur. |
setPlayerMaxHealth(name : string, amount : number) | Définit la santé max du joueur. |
getPlayerScore(name : string) | Retourne le score du joueur. |
setPlayerScore(name : string, score : number (default: 0)) | Définit le score du joueur. |
getPlayerPosition(name : string) | Retourne la position (Vector3/CFrame). |
setPlayerPosition(name : string, position : Vector3) | Définit la position du joueur. |
getPlayerKeycard(name : string) | Retourne le niveau de carte (ex: 'L4'). |
getTools(name : string) | Retourne les outils dans l'inventaire. |
giveTool(name : string, tool : string) | Donne un outil au joueur (supporte les Instances). |
removeTool(name : string, tool : string) | Retire un outil spécifique de l'inventaire d'un utilisateur. |
getUserId(name : string) | Retourne l'ID utilisateur du joueur. |
ownsGamepass(name : string, id : number) | Vérifie si le joueur possède un gamepass. |
ownsAsset(name : string, id : number) | Vérifie si un utilisateur possède un asset spécifique. |
playEmote(target : string / Instance, id : number, loop : bool (default: false)) | Joue une emote. Retourne fonctions stop/vitesse. |
hasTool(name : string, tool : string) | Vérifie si le joueur possède un outil. |
getPlayerCurrentTool(name : string) | Retourne le nom de l'outil tenu. |
getPlayerIsInGroup(name : string, id : number) | Vérifie si le joueur est dans un groupe. |
getPlayerRankInGroup(name : string, id : number) | Retourne le rang (0-255). |
getPlayerRoleInGroup(name : string, id : number) | Retourne le nom du rôle. |
gunMagSize(name : string) | Retourne la taille du chargeur. |
gunAddBullets(player : string, gun : string, amount : number) | Ajoute des munitions à une arme. |
gunAmmo(player : string, gun : string, mag : bool (default: false)) | Retourne les munitions totales ou du chargeur. |
isGun(name : string) | Vérifie si c'est une arme, retourne le type. |
Fonctions d'équipe
| Commande | Description |
|---|---|
getTeams() | Retourne toutes les équipes {nom, couleur}. |
getTeamMembers(team : string / BrickColor) | Retourne les membres d'une équipe. |
getTeam(name : string) | Retourne le nom d'équipe et la couleur du joueur. |
setTeam(name : string, team : string / BrickColor) | Définit l'équipe du joueur. |
Fonctions d'affichage et d'interface
| Commande | Description |
|---|---|
announce(message : string, blue : bool (default: false)) | Affiche un message à tous ou à un joueur. |
title(message : string, color : color3 (default: color3.new(1, 1, 1)), gradientColor : color3 (default: nil)) | Affiche un titre à tous ou à un joueur. |
subtitle(message : string, color : color3 (default: color3.new(1, 1, 1)), gradientColor : color3 (default: nil)) | Affiche un sous-titre à tous ou à un joueur. |
sideinfo(message : string, color : color3 (default: color3.new(1, 1, 1)), gradientColor : color3 (default: nil)) | Affiche info latérale à tous ou à un joueur. |
subsideinfo(message : string, color : color3 (default: color3.new(1, 1, 1)), gradientColor : color3 (default: nil)) | Affiche sous-info latérale à tous ou à un joueur. |
rigSay(name : string, message : string) | Affiche une bulle de chat pour les rigs. |
Fonctions du monde
| Commande | Description |
|---|---|
playSound(sound : sound, player : string, attach : bool (default: false)) | Joue un son (global ou attaché). |
resetLights() | Réinitialise les lumières de la carte. |
colorLights(r, g, b : number) | Colore les lumières via RGB. |
disableLights(amount : number) | Désactive les lumières successivement. |
blackoutLights(enabled : bool, emergencyPower : bool) | Définit l'état de blackout (option secours). |
getClockTime() | Retourne l'heure mondiale. |
setClockTime(time : number, updateAtmosphere : bool (default: true)) | Modifie l'heure mondiale. |
setSignText(name : string, text : string) | Modifie le texte du premier TextLabel trouvé. |
tweenGetValue(alpha : number, easingStyle : Enum.EasingStyle, easingDirection : Enum.EasingDirection) | Calcule l'alpha pour l'interpolation. |
tweenSmoothDamp(current : any, target : any, velocity : any, smoothTime : number, maxSpeed : number, dt : number) | Simule un ressort amorti. |
Fonctions Serveur et Utilitaires
| Commande | Description |
|---|---|
getHost() | Retourne l'ID de l'hôte du serveur. |
runCommand(cmd : string) | Exécute une commande serveur. |
http(url : string, method : string (default: "get"), headers : table (default: nil), body : string (default: nil), compress : enum.httpcompression (default: enum.httpcompression.none)) | Effectue une requête HTTP. |
jsonEncode(content : table) | Encode une table en chaîne JSON. |
jsonDecode(json : string) | Décode une chaîne JSON en table. |
Événements
Les modules complémentaires du serveur vous permettent d'écouter des événements spécifiques se produisant sur le serveur.
Pour simplifier, utilisez la fonction spéciale event() :
event("joined", function(data)local When = data.Whenlocal Value = data.Value-- Value contains the player's nameend)Événements Disponibles
| Nom de l'Événement | Type de Données / Description |
|---|---|
joined | string (player : string) - Se déclenche quand un joueur rejoint. |
left | string (player : string) - Se déclenche quand un joueur quitte. |
chatted | table (player : string, message : string) - Se déclenche lors d'um message chat. |
spawned | string (player : string) - Se déclenche au spawn d'um joueur. |
interaction | table (player : string, name : string) - Se déclenche lors d'une interaction personnalisée. |
lightswitch | table (player : string, room : string, state : bool) - Se déclenche via un interrupteur. |
death | string (player : string) - Se déclenche à la mort d'un joueur. |
kill | table (killer : string, victim : string) - Se déclenche quand un joueur en tue un autre. |
Exemples de Code
Exemple : Pièce mortelle
Récupère 'Part' et élimine tout joueur qui la touche.
f("Part").Touched:Connect(function(Player)if Player thenkill(Player)endend)Exemple : Jouer un son lors d'une interaction
Joue un son globalement lors d'une interaction.
event("interaction", function(Data)local Player = Data.Value[1]local Interaction = Data.Value[2]if Interaction == "SoundPart" thenlocal Sound = Instance.new("Sound") Sound.SoundId = "rbxassetid://157636218"playSound(Sound)endend)Exemple d'outil personnalisé
Crée un outil simple et le donne au premier joueur.
local function GiveTool(Player)local Tool = Instance.new("Tool") Tool.CanBeDropped = falseTool.Name = "Custom Tool"local Part = Instance.new("Part") Part.Name = "Handle"Part.Anchored = truePart.CanCollide = falsePart.CFrame = CFrame.new(999, 9999, 999) f(Tool) Part.Parent = Tool giveTool(Player, Tool)endGiveTool(getPlayers()[1])