Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.
Fluffiest Floofers edited this page Nov 24, 2022 · 7 revisions

Custom Content

Note for those who want to create addons for Lambda Players, it is prefered you add [LambdaPlayers] as the first thing in your addon name just so it's easy to search for addons that add stuff to Lambda Players.

Profile Pictures

Custom Profile Pictures can be added by putting .png and .jpg images in this folder, DRIVE:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\materials\lambdaplayers\custom_profilepictures or DRIVE:\Program Files (x86)\Steam\steamapps\common\GarrysMod\sourceengine\materials\lambdaplayers\custom_profilepictures Note that you can create sub folders in custom_profilepictures containing images to be able to organize your image files.

Addons that add profile pictures should have this file path: ADDONNAME/materials/lambdaplayers/custom_profilepictures/( Any .png/.jpg image files)

Remember to Update Lambda Data after any changes!

Names

Custom names can be added in the in game Name Panel found in the Spawnmenu at Lambda Players>Panels. The panel allows you to export your names to share with others. The panel is also capable of importing nameexport.json files full of names or txt files full of names formatted like

  • Garry
  • Sora
  • Breen

Files you want to import should go in, C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\data\lambdaplayers\nameimport

alt text

Addons that add custom names should have this file path: ADDONNAME/materials/lambdaplayers/data/customnames/( Any exported nameexport.json or .txt files here)

Remember to Update Lambda Data after any changes!

Custom Voice lines

Custom Voice lines can be used by simply defining a directory relative to GarrysMod/sourceengine/sound folder in Directories in Voice Options as shown below.

For example, if I wanted to use voicelines from C:/Program Files (x86)/Steam/steamapps/common/GarrysMod/sourceengine/sound/somefolder/vo/(Imagine sounds files here) as idle lines, I would input somefolder/vo in Idle Directory. Any folders after the directory you inputted will be included so try it out for organization of your sound files.

alt text

Addons that add voice lines should have this file path: ADDONNAME/sound/lambdaplayers/vo/custom/(possible folders are, death, taunt, idle, kill, laugh)/( Any sound files here. Preferably MP3 for storage reasons)

See Voice Profiles to see a explanation of each voice line type

Voice Profiles

Similar to Voice Packs for Zeta Players, Voice Profiles is a pack of voice lines that a individual Lambda can use. Think of it as a way of making specific voices instead of a massive mix of random voicelines. Unlike Custom Voice Lines, Voice Profiles will not be added to the list of Voice Lines.

Voice Profiles can be added by creating folders here C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\sourceengine\sound\lambdaplayers\voiceprofiles\( Names of the Voice Profiles )

Inside your Custom Voice Profile, you can add the following folders relating to a Voice Type

  • idle | Voice lines that are used randomly
  • death | Voice lines that are used when the Lambda Player is killed
  • kill | Voice lines that are used when the Lambda Player kills someone
  • taunt | Voice lines that are used when a Lambda Player is about to attack someone
  • laugh | Voice lines that are used when a Lambda Player laughs at someone

Example of a Voice Profile: image

To use Voice Profiles in-game, either turn up the VP Use Chance or manually select a Voice Profile.

image image

Addons that add Voice Profiles follow the same general process but will have this file path: ADDONNAME/sound/lambdaplayers/voiceprofiles/( Voice Profiles )

Lambda Profiles

Specific Lambda Players can be made through the Profile Panel. For example, you create a Profile that will use the name Breen and have that Profile use the Breen model, have a certain personality, a certain voice, ect.

To start making a profile, go to Panels and press Open Profile Panel

image

You should see something like this

image

Let's start with navigating the panel before doing any profile creations. First, Put your cursor to the bottom right corner of the panel and resize if you want. Second, the panel will have arrows on each bottom corner which will scroll left or right.

image

Third, each pillar of settings will have a scroll bar as well that will scroll vertically. That's pretty much it for navigating this panel. Let's begin to create a Profile. For this guide I will make a Profile named Eve.

image

Normally this is the name that a Lambda Player has to spawn with in order to use this profile but Profile Use Chance in Lambda Server Settings can force a Profile Lambda to spawn.

image

For Eve, I think I will use the Female Metro Cop model by simply scrolling through the list of playermodels

image

You can scroll to the far right to find the Bodygroups and Skins section. However since our model doesn't have skins nor bodygroups we will not worry about that.

image

Next I need to give "her" a profile picture. If you don't know how to add Profile Pictures, please scroll up to the Profile Picture section. I'm gonna look through the Profile Pictures and find one that I want to use

image

image

In my case, I already have a Profile Picture ready for use. Since Profile Pictures are relative to the lambdaplayers/custom_profilepictures folder, I can input this file path.

image

Notice that there is now a image under the text box. This means we inputted the path correctly

The rest in this pillar of settings is pretty much self explanatory

image

Next, let's tweak the personality settings. These are the default personality sliders.

image

Eve to me isn't the type that would really fight people so I'll make her favor building and stuff over combat

image

After that, let's move onto the colors. I want the colors to sorta match the colors in the Profile Picture so I'll choose them according to that. In regards of the use check boxes, turning those off make whichever color to be random

image

Notice the Playermodel Preview changes as you change the playermodel color

image

And that's it! That's all you really have to do to make a profile. Now what's left is to save it. To the right of the panel, you will see a List Panel and 3 buttons.

The list will show all your saved profiles which you can load by double clicking them or remove them by right clicking them. The panel will ask you if you are sure you want to delete whatever profile as added security. At the top of the list is a search bar where you can search for specific profiles.

image

Anyway, there are two buttons we want to look at. Save Profile and Save To Server. What's the difference? For singleplayer, both buttons will save your profile to your computer, however, in multiplayer, the Save To Server will save the Profile to the Server's files only if you are the host or are a Super Admin. This would be your files if you are the host of the multiplayer server. Save Profile will always save the profile to your own Profiles.

For the last button, Request Server Profiles will send a request to the Server to send its Profiles to you so you can edit it. This will only work for Super Admins that are not the host because the host already has the Server's Profiles

I will now press Save Profile and there it is! It is now saved

image

Now this is important! You must Update Lambda Data for any changes to take effect!

image

My Profile Chance is to 100% so this means profiles will always spawn as long as they don't already exist. Here we can see Eve in game now. That's all you have to do. Happy Profile Making!

image

Sprays

Sprays make a return from Zeta Players with minor changes to how they are loaded. .VTFs, .PNGs, and .JPGs are put in this folder: C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\sourceengine\materials\lambdaplayers\sprays. Remember you have to create the folders as they are not automatically created for you. Note you can add sub folders in the sprays folder if you want to organize your sprays

Addons that add sprays should have this file path: ADDONNAME/materials/lambdaplayers/sprays/(Any .VTF, .PNG, .JPG image files here)

Remember to Update Lambda Data after any changes!

Hooks

These are all the hooks you can use in hook.Add() to extend upon Lambda's features

LambdaOnConvarsCreated

Must be Shared!

Called when all default convars have been created. Use this hook if you want use the CreateLambdaConvar() function to create custom convars for Lambda Players externally. See lambdaplayers/autorun_includes/shared/convars.lua

LambdaOnConCommandsCreated

Must be Shared!

Called when all default console commands have been created. Use this hook if you want use the CreateLambdaConsoleCommand() function to create custom console commands for Lambda Players externally See lambdaplayers/autorun_includes/shared/d_consolecommands.lua

LambdaOnProfilePanelLoaded

Client-Side/Shared

Called when the Profile Panel has been loaded. Use this hook if you want to add more settings to the Profile Panel using LambdaCreateProfileSetting() See lambdaplayers/autorun_includes/shared/z_z_lambda_profilepanelextras.lua

LambdaCanTarget( Entity Lambda, Entity Target )

Server-Side

Called when a Lambda Player wants to know if they can attack someone. Return true to make them not attack the target

LambdaOnLoadPickupFuncs

Server-Side

Pickup functions are the functions called when a Lambda Player wants to "pickup" a entity. For example, healing with a medkit and gaining armor by armor battery

Called when all default pickup functions have been loaded. Use this hook if you want to add pickup support for a specific entity using LambdaPlayers_AddItemPickup() See lambdaplayers/autorun_includes/server/globals.lua

LambdaOnVoiceTypesRegistered

Must be Shared!

Called when all default voice types ( idle, kill, death, ect ) have been registered and before the file system has loaded them. Use this hook if you want to create custom voice types using LambdaRegisterVoiceType(). See lambdaplayers/autorun_includes/shared/d_registervoicetypes.lua

LambdaOnProfileApplied( Entity lambda, Table profileinfo )

Server-Side

Called when a Lambda Profile is applied onto a Lambda Player. See function :ExportLambdaInfo() for profileinfo table structure

Lambda Player Addon Hooks

The hooks below can be used to add onto certain features of the lambdas

LambdaOnUAloaded

Server-Side

Universal Actions or UActions are functions that randomly get called during a Lambda's life. Example of a UAction being weapon switching.

Called when all default UActions have been made. Use this hook if you want add a function to the UActions with AddUActionToLambdaUA() See lambdaplayers/lambda/sv_x_universalactions.lua

LambdaOnToolsLoaded

Must be Shared!

Called when all default tools are loaded. Use this hook if you want to add custom tools with AddToolFunctionToLambdaTools() See lambdaplayers/autorun_includes/shared/lambda_toolguntools.lua

LambdaOnEntLimitsCreated

Must be Shared!

Entity limits can help limit a certain type of entity or range of entities. This should be used in conjunction with Tool gun tools that spawn entities or Build functions that spawn untracked entities

Called when all default Entity Limits have been created. Use this hook if you want to make custom entity limits with CreateLambdaEntLimit() See lambdaplayers/autorun_includes/shared/lambda_entitylimits AND lambdaplayers/lambda/sv_entitylimits.lua

LambdaOnBuildFunctionsLoaded

Must be Shared!

Build functions are functions that are called when a lambda player wants to build/spawn something. For example, prop spawning is used by this

Called when all default Building Functions have been loaded. Use this hook if you want to add custom building functions with AddBuildFunctionToLambdaBuildingFunctions() See lambdaplayers/autorun_includes/shared/lambda_x_buildingfunctions.lua

LambdaOnPersonalitiesLoaded

Must be Shared!

"Personalities" are functions that have chances ordered from highest to lowest applied to them. When a Lambda Player is in the idle state, each chance will be tested and if it succeeds, the function will run. Personalities are responsible for the decisions on building stuff or fighting

Called when all default Personality types have been loaded. Use this hook if you want to create custom personality types with LambdaCreatePersonalityType() See lambdaplayers/autorun_includes/shared/lambda_personalityfuncs.lua

LambdaOnKilled( Entity lambda, CTakeDamageInfo info )

Server-Side

Called when a Lambda Player is killed. This hook can be used to add onto the ENT:OnKilled() hook each Lambda Player has

LambdaOnInjured( Entity lambda, CTakeDamageInfo info )

Server-Side

Called when a Lambda Player takes damage. This hook can be used to add onto the ENT:OnInjured() hook each Lambda Player has

LambdaOnOtherKilled( Entity lambda, Entity victim, CTakeDamageInfo info )

Server-Side

Called when a someone that is not the Lambda Player dies. This hook can be used to add onto the ENT:OnOtherKilled() hook each Lambda Player has

LambdaOnThink( Entity lambda, Entity lambdaWeaponEntity )

Server and Client

Called when a Lambda's ENT:Think() hook runs. This hook can be used to add onto the ENT:Think() hook each Lambda Player has

LambdaOnInitialize( Entity lambda, Entity lambdaWeaponEntity )

Server and Client

Called when a Lambda Player initializes. This hook can be used to add onto the ENT:Initialize() hook each Lambda Player has

LambdaOnStuck( Entity lambda, Number stucktimes )

Server-Side

stucktimes is a variable that holds how many times the Lambda Player got stuck within the last 10 seconds + now

Called when a Lambda Player gets stuck. This hook can be used to make a custom unstuck function. Return "stop" to make the Lambda Player give up in their path or return "continue" to make the Lambda Player continue down their path

LambdaOnNoclip( Entity lambda, Bool DesiredState )

Server-Side

Called when a Lambda Player wants to change their NoClip state. If DesiredState = true, the Lambda Player wants to noclip. If false, the Lambda Player wants to exit noclip. Return true to completely block the event

LambdaOnRemove( Entity lambda )

Server and Client

Called when a Lambda Player is removed from the game.

Clone this wiki locally