Hey guys, since AG made that topic on ODF editing, I figured I might as well go through an LUA file with you.
In case you don't know, whenever a map is loaded, its LUA script is run. The job of the LUA is to load the map data and make sure there is enough memory available for the map. For most maps, there are 2 or 3 LUA files. 1 to load the game in each era, and 1 to add the map to the list of maps.
FYI this is a WIP so not every part of the LUA will be explained
Note: any time you see ***, replace it with your map id
First of all, you will find the LUA scripts in BFBuilder\Data***\Common\Scripts\***
***a.lua or ***i.lua are the GCW scripts. ***c.lua or ***r.lua are the CW scripts. There is also an addme.lua which eventually becomes addme.script, but I'm not going to go through that right now.
Now, I will explain a normal mod map LUA file line by line.
NOTE: This is the CW file. The GCW one is the same in terms of concept.
--start header -- This is a comment. Does not have any impact on the final script
function ScriptInit() -- tells the game that this is where the map loader begins
local CIS = 1 -- Script constants. Best not to touch these
local REP = 2
local ATT = 1
local DEF = 2
--end header
--start objectives
AddMissionObjective(REP,"red", "level.rya1.objectives.1"); -- The map objectives shown on the select unit screen. REP means it is shown to the Clones, red doesn't really mean anything, and "level.rya1..." is the language key displayed. (Don't ask about language keys in this topic)
AddMissionObjective(REP,"orange", "level.rya1.objectives.2");
AddMissionObjective(REP,"orange", "level.rya1.objectives.3");
AddMissionObjective(CIS,"red", "level.rya1.objectives.1");
AddMissionObjective(CIS,"orange", "level.rya1.objectives.2");
AddMissionObjective(CIS,"orange","level.rya1.objectives.3");
--end objectives
--start soundlvl
ReadDataFile("sound\\tat.lvl;tat1cw"); -- loads the map-specific sound files. Unless you plan on recording a whole new sound set, this should work just fine for you
--end soundlvl
-- Start sidelvls
ReadDataFile("SIDE\\cis.lvl", -- load the data file for the droids
"cis_inf_basic", -- the main 4 troopers
"cis_inf_countdooku", -- plus the jedi
"cis_inf_droideka"); -- plus the 5th trooper
ReadDataFile("SIDE\\rep.lvl", -- same as above but for clones
"rep_inf_basic",
"rep_inf_macewindu",
"rep_inf_jet_trooper");
--end sidelvls
--start loadouts
SetTeamName(CIS, "CIS") -- Sets the name of the team
SetTeamIcon(CIS, "cis_icon") -- Sets the icon used for the team
AddUnitClass(CIS, "cis_inf_battledroid",10) -- Adds the unit to the troop options. CIS means it's a droid, "cis_inf..." is which unit it is, and the number is how many of them are on the field as AI
AddUnitClass(CIS, "cis_inf_assault",1)
AddUnitClass(CIS, "cis_inf_pilotdroid",2)
AddUnitClass(CIS, "cis_inf_assassindroid",2)
AddUnitClass(CIS, "cis_inf_droideka",1)
SetHeroClass(CIS, "cis_inf_countdooku") -- Adds the jedi unit. Basically same as above
SetTeamName(REP, "Republic") -- See above but for clones
SetTeamIcon(REP, "rep_icon")
AddUnitClass(REP, "rep_inf_clone_trooper",10)
AddUnitClass(REP, "rep_inf_arc_trooper",1)
AddUnitClass(REP, "rep_inf_clone_pilot",2)
AddUnitClass(REP, "rep_inf_clone_sharpshooter",2)
AddUnitClass(REP, "rep_inf_jet_trooper",1)
SetHeroClass(REP, "rep_inf_macewindu")
--end loadouts
--start teamstats
SetUnitCount(ATT, 16) -- Number of AI on the field at once in SP. Ignored in MP
SetReinforcementCount(ATT, 200) -- Number of reinforcements
SetUnitCount(DEF, 16) -- See above
SetReinforcementCount(DEF, 200)
--end teamstats
--start alliances
SetTeamAsFriend(ATT, 1) -- AI stuff. No need to change unless adding natives
SetTeamAsEnemy(ATT, 2)
SetTeamAsFriend(DEF, 2)
SetTeamAsEnemy(DEF, 1)
SetAttackingTeam(ATT);
--end alliances
--start memorypools
ClearWalkers() -- Reset defaults on memory
AddWalkerType(0, 4)-- special -> droidekas -- Allocates the memory for a walker (AT-TE etc). First number is pairs of legs. 0 means droideka. Second number MUST be equal to number on the field at any one time. Not sure if it is adjusted when humans use dekas
AddWalkerType(1, 4)-- 1x2 (1 pair of legs) -- see above
AddWalkerType(2, 0)-- 2x2 (2 pairs of legs)
AddWalkerType(3, 0)-- 3x2 (3 pairs of legs)
SetMemoryPoolSize("PowerupItem", 60) -- Allocates the memory for other items. Not making a full list of options. First is entity type, second is max on the field at once
SetMemoryPoolSize("EntityMine", 40)
--end memorypools
--start worldlvl
ReadDataFile("dc:rya1\\rya1.lvl") -- Read in the actual map.
--end worldlvl
--start spawndelay
SetSpawnDelay(10.0, 0.25) -- Max and Min spawn delay, respectively
--end spawndelay
--start flyheight
--end flyheight
--start ainotify
--end ainotify
--start stayinturrets
--end stayinturrets
--start denseenvironment
SetDenseEnvironment("false") -- Changes some rendering options. Set to true on maps like endor
--end denseenvironment
--start birdsandfish
--end birdsandfish
--start deathregions
AddDeathRegion("deathregion") -- added this to the file because of importance. Any region you add in Zeroeditor that you want people to die in upon entry must have a copy of this
--end deathregions
--start soundconfig
OpenAudioStream("sound\\tat.lvl","tatcw_music"); -- Load the audio from an LVL file. first argument is the path to the file, second is the audio stream in the file
OpenAudioStream("sound\\tat.lvl","tat1");
OpenAudioStream("sound\\tat.lvl","tat1");
OpenAudioStream("sound\\cw.lvl","cw_vo");
OpenAudioStream("sound\\cw.lvl","cw_tac_vo");
OpenAudioStream("sound\\tat.lvl","tat1_emt");
SetBleedingVoiceOver(CIS,CIS,"cis_off_com_report_us_overwhelmed",1); -- Sound to play when a team has 2 CPs or less. First argument is the team to play it for, second is what team must have the low CP count, 3rd is the name of the audio entry in one of the streams listed above, and I need help with the 4th
SetBleedingVoiceOver(CIS,REP,"cis_off_com_report_enemy_losing",1);
SetBleedingVoiceOver(REP,CIS,"rep_off_com_report_enemy_losing",1);
SetBleedingVoiceOver(REP,REP,"rep_off_com_report_us_overwhelmed",1);
SetLowReinforcementsVoiceOver(CIS, CIS, "cis_off_defeat_im", .1,1);-- Same format as above, plays when there are less than 20 reinforcements left for a team
SetLowReinforcementsVoiceOver(CIS, REP, "cis_off_victory_im", .1,1);
SetLowReinforcementsVoiceOver(REP, REP, "rep_off_defeat_im", .1,1);
SetLowReinforcementsVoiceOver(REP, CIS, "rep_off_victory_im", .1,1);
SetOutOfBoundsVoiceOver(2,"Allleaving"); -- Sound to play when a player goes out of bounds. First is the team ID, second is the audio name
SetOutOfBoundsVoiceOver(1,"Impleaving");
SetAmbientMusic(CIS,1.0,"cis_tat_amb_start",0,1);-- Backround music to be played throughout the game. First is the team to play it for, second is the percentage of reinforcements remaining to start the music, 3rd is the audio name, and 4th and 5th I don't know
SetAmbientMusic(CIS,0.99,"cis_tat_amb_middle",1,1);
SetAmbientMusic(CIS,0.1,"cis_tat_amb_end",2,1);
SetAmbientMusic(REP,1.0,"rep_tat_amb_start",0,1);
SetAmbientMusic(REP,0.99,"rep_tat_amb_middle",1,1);
SetAmbientMusic(REP,0.1,"rep_tat_amb_end",2,1);
SetVictoryMusic(CIS,"cis_tat_amb_victory");-- Music to play on Victory/Defeat. You should know the format by now
SetDefeatMusic (CIS,"cis_tat_amb_defeat");
SetVictoryMusic(REP,"rep_tat_amb_victory");
SetDefeatMusic (REP,"rep_tat_amb_defeat");
SetSoundEffect("ScopeDisplayZoomIn","binocularzoomin");-- Sets up a sound effect. First is the event for the effect, second is the audio name
SetSoundEffect("ScopeDisplayZoomOut","binocularzoomout");
SetSoundEffect("SpawnDisplayUnitChange","shell_select_unit");
SetSoundEffect("SpawnDisplayUnitAccept","shell_menu_enter");
SetSoundEffect("SpawnDisplaySpawnPointChange","shell_select_change");
SetSoundEffect("SpawnDisplaySpawnPointAccept","shell_menu_enter");
SetSoundEffect("SpawnDisplayBack","shell_menu_exit");
SetPlanetaryBonusVoiceOver(REP,REP,0,"rep_bonus_rep_medical");-- Sound to play when a planetary bonus is activated in Galactic Conquest. First is the team to play it for, second is the team who got the bonus, 3rd is the bonus id, and 4th is the audio name
SetPlanetaryBonusVoiceOver(REP,CIS,0,"rep_bonus_cis_medical");
SetPlanetaryBonusVoiceOver(REP,REP,1,"");
SetPlanetaryBonusVoiceOver(REP,CIS,1,"");
SetPlanetaryBonusVoiceOver(REP,REP,2,"rep_bonus_rep_sensors");
SetPlanetaryBonusVoiceOver(REP,CIS,2,"rep_bonus_cis_sensors");
SetPlanetaryBonusVoiceOver(REP,REP,3,"rep_bonus_rep_hero");
SetPlanetaryBonusVoiceOver(REP,CIS,3,"rep_bonus_cis_hero");
SetPlanetaryBonusVoiceOver(REP,REP,4,"rep_bonus_rep_reserves");
SetPlanetaryBonusVoiceOver(REP,CIS,4,"rep_bonus_cis_reserves");
SetPlanetaryBonusVoiceOver(REP,REP,5,"rep_bonus_rep_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(REP,CIS,5,"rep_bonus_cis_sabotage");
SetPlanetaryBonusVoiceOver(REP,REP,6,"");
SetPlanetaryBonusVoiceOver(REP,CIS,6,"");
SetPlanetaryBonusVoiceOver(REP,REP,7,"rep_bonus_rep_training");--advanced training
SetPlanetaryBonusVoiceOver(REP,CIS,7,"rep_bonus_cis_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS,CIS,0,"cis_bonus_cis_medical");
SetPlanetaryBonusVoiceOver(CIS,REP,0,"cis_bonus_rep_medical");
SetPlanetaryBonusVoiceOver(CIS,CIS,1,"");
SetPlanetaryBonusVoiceOver(CIS,REP,1,"");
SetPlanetaryBonusVoiceOver(CIS,CIS,2,"cis_bonus_cis_sensors");
SetPlanetaryBonusVoiceOver(CIS,REP,2,"cis_bonus_rep_sensors");
SetPlanetaryBonusVoiceOver(CIS,CIS,3,"cis_bonus_cis_hero");
SetPlanetaryBonusVoiceOver(CIS,REP,3,"cis_bonus_rep_hero");
SetPlanetaryBonusVoiceOver(CIS,CIS,4,"cis_bonus_cis_reserves");
SetPlanetaryBonusVoiceOver(CIS,REP,4,"cis_bonus_rep_reserves");
SetPlanetaryBonusVoiceOver(CIS,CIS,5,"cis_bonus_cis_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(CIS,REP,5,"cis_bonus_rep_sabotage");
SetPlanetaryBonusVoiceOver(CIS,CIS,6,"");
SetPlanetaryBonusVoiceOver(CIS,REP,6,"");
SetPlanetaryBonusVoiceOver(CIS,CIS,7,"cis_bonus_cis_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS,REP,7,"cis_bonus_rep_training");--advanced training
--end soundconfig
--start activebonus
--end activebonus
--start camerashots
AddCameraShot(-0.404895, 0.000992, -0.914360, -0.002240, -85.539894, 20.536297, 141.699493);-- Adds a camera location to see during the spawn timer. freecam in SPTest can tell you the values for this (use fake console to get camera coordinates)
AddCameraShot(0.040922, 0.004049, -0.994299, 0.098381, -139.729523, 17.546598, -34.360893);
AddCameraShot(-0.312360, 0.016223, -0.948547, -0.049263, -217.381485, 20.150953, 54.514324);
--end camerashots
--start footer
end -- Pass control back to the main game
--end footer
A few important notes:
ALL paths to files MUST use double slashes!!!! The game will go wacky if you don't use them
To access files specific to your mod, prefix the path to an lvl with "dc:". Without that, it will go to the main _lvl_pc folder under GameData
Advanced LUA coming soon!
Quotelocal CIS = 1 -- Script constants. Best not to touch these
local REP = 2
local ATT = 1
local DEF = 2
If I am not mistaken, 1 represents the attacking team, 2 represents the defending team. With that said, don't touch them.
Yeah, 1 attack, 1 defend. I never really understood why LA made that distinction. I don't think it affects the AI that much. Perhaps it decides which team gets the odd player in MP games :P
Perhaps for who spawns in which CP. (They could have made a last minute switch of CPs.)
Yeah, but why would they have had both ATK and DEF as well as REP and CIS?
Because of the way CPs and scripting is handled.
Some functions require you to specify either the attacking team or the defending team. That whole thing there is telling the game which side is ATK and DEF so that scripting functions can be handled.
At least, that's my understanding.
Right, but my point is since ATK and CIS mean the same thing, why do the scipters make 2 variables. It would be much simpler if they just did something like "SetAttackingTeam(CIS)" instead of using ATK.
I always use ATK and DEF and change them around, it's useful if you seet up all your CP's, but you set them up for the wrong team, instead of going into ZE and manually change every single CP team, just go into the LUA's and change some numbers.
Rawr.
(Only suggestion is to spend a huge amount of time maybe making the formatting a bit like ag's one, would be a nice bit of continuity.)
[mod]Stickied[/mod]
Sure thing. I just didn't have time to do that when writing this :)
guide finished and colored!
Haha, the color scheme is the same as the ODF Guide.
Nice job on the LUA guide Pi.
As I suggested ag, nice to have a bit of continuity ;)
I have yet to make certain but the executeable seems to contain all known LUA function names.
Okay, here's everything I turned up out of the executeable with regards to the LUA coding in BF1. Please be aware these are mostly untested, and I think some are not even LUA, but because of the ordering of the exe they have been included between LUA codes.
SetDefeatMovie
SetVictoryMovie
ScriptCB_SetHistoricalRulesOn
ScriptCB_AreHistoricalRulesOn
ScriptCB_SetAIDifficulty
ScriptCB_SetCanSwitchSides
ScriptCB_SetMetagameRulesOn
ScriptCB_AreMetagameRulesOn
ScriptCB_MetagameSetBonus
ScriptCB_DeleteSavedMetagameState
ScriptCB_SetLastBattleVictoryValid
ScriptCB_GetLastBattleVictory
ScriptCB_DoesMetagameExistOnCardSplitScreen
ScriptCB_GetSavedMetagameListSplitScreen
ScriptCB_DoesMetagameExistOnCard
ScriptCB_StartNewMetagame
ScriptCB_GetSavedMetagameList
ScriptCB_SetMetagameTeams
ScriptCB_SetSPProgress
ScriptCB_GetSPProgress
ScriptCB_SaveSPState
ScriptCB_IsSPStateSaved
ScriptCB_IsMetagameStateSaved
ScriptCB_LoadMetagameState
ScriptCB_SaveMetagameState
ScriptCB_UnlockUnlockable
ScriptCB_UnlockableState
GetMultisamplingModeDescription
GetNumMultisamplingQualityModes
GetMaxMultisamplingModeForScreenSize
GetMaxScreenSizeForMultisamplingMode
IsMultisamplingModeSupported
IsMultisamplingModeForcedFromDriver
IsVideoModeSupported
ScriptCB_SetProfileJoinIP
ScriptCB_GetProfileJoinIP
ScriptCB_IsPCVideoFixedFunction
ScriptCB_SetPCBrightnessContrast
ScriptCB_SetPCVideoOptions
ScriptCB_GetAutodetectPCVideoOptions
ScriptCB_GetPCVideoOptions
ScriptCB_GetIdealResolution
ScriptCB_SetResolution
ScriptCB_FillMultisampleTable
ScriptCB_FillResolutionTable
ScriptCB_SetJoystickEnabled
ScriptCB_IsJoystickEnabled
ScriptCB_SetMouseSensitivity
ScriptCB_GetJoySensitivity
ScriptCB_GetMouseSensitivity
ScriptCB_SetMetaAllMapsOn
ScriptCB_IsMetaAllMapsOn
ScriptCB_GetControlMode
ScriptCB_SetControlMode
ScriptCB_ResetToolTips
ScriptCB_PrevToolTipState
ScriptCB_NextToolTipState
ScriptCB_IsToolTipAuto
ScriptCB_IsToolTipOn
ScriptCB_SetHeroesOn
ScriptCB_AreHeroesOn
ScriptCB_SetFriendlyFire
ScriptCB_GetFriendlyFire
ScriptCB_SetAutoAimOn
ScriptCB_IsAutoAimOn
ScriptCB_SetRumbleOn
ScriptCB_IsRumbleOn
ScriptCB_SetHorizontalSplitScreen
ScriptCB_IsHorizontalSplitScreen
ScriptCB_SetFirstPersonView
ScriptCB_IsFirstPersonView
ScriptCB_ResetSoundToDefault
ScriptCB_ResetGameOptionsToDefault
ScriptCB_ResetControlsToDefault
ScriptCB_SetControlScale
ScriptCB_GetControlScale
ScriptCB_SetYAxisFlip
ScriptCB_GetYAxisFlip
ScriptCB_SetFunctionIdForAnalogId
ScriptCB_GetFunctionIdForAnalogId
ScriptCB_SetFunctionIdForButtonId
ScriptCB_GetFunctionIdForButtonId
ScriptCB_UpdateScreen
ScriptCB_GetBuildStr
ScriptCB_GetTeamName
ScriptCB_PersonalStatsSetTitles
ScriptCB_TeamStatsSetTitles
ScriptCB_TeamStatsGetTeamColor
ScriptCB_TeamStatsGetTeam1
ScriptCB_TeamStatsValidatePos
ScriptCB_GetAwardStats
ScriptCB_GetPersonalStats
ScriptCB_SetTeamStatsSortMode
ScriptCB_GetTeamstats
ScriptCB_ClientGotStats
ScriptCB_Freecamera
ScriptCB_GetMissionTime
ScriptCB_CheckPlayerListDone
ScriptCB_ResetSkipToPlayerList
ScriptCB_SkipToPlayerList
ScriptCB_Unpause
ScriptCB_QuitFromStats
ScriptCB_QuitToWindows
ScriptCB_QuitToShell
ScriptCB_Reboot
ScriptCB_GetPausingViewport
ScriptCB_RestartMission
ScriptCB_LaunchDemo
ScriptCB_EnterMission
ScriptCB_CheckMouseMark
ScriptCB_ResetMouseMark
ScriptCB_SetMouseMark
ScriptCB_HideDownloadableContent
ScriptCB_SetDCMap
ScriptCB_GetDifficulty
ScriptCB_SetDifficulty
ScriptCB_SetPlayerSide
ScriptCB_IsUniqueLoginName
ScriptCB_GetUniqueLoginName
ScriptCB_TrimLoginName
ScriptCB_Logout
ScriptCB_GetProfileName
ScriptCB_GetCurrentProfileName
ScriptCB_GetCurrentProfileNetName
ScriptCB_IsPlayerLoggedIn
ScriptCB_SwapActiveProfileSlots
ScriptCB_AddProfile
ScriptCB_GetLoginList
ScriptCB_CheckIfOkToExitMemoryMode
ScriptCB_SetMemoryProfileMode
ScriptCB_InMemoryProfileMode
ScriptCB_DoesProfileExistOnCard
ScriptCB_StartDeleteMetagameSplitScreen
ScriptCB_StartSaveMetagameSplitScreen
ScriptCB_StartLoadMetagameSplitScreen
ScriptCB_CheckMemoryCardMark
ScriptCB_MarkMemoryCard
ScriptCB_StartDeleteMetagame
ScriptCB_IsCurrentMetagame
ScriptCB_StartSaveMetagame
ScriptCB_StartLoadMetagame
ScriptCB_StartSaveProfile
ScriptCB_StartDeleteProfile
ScriptCB_ReloadMarkedProfile
ScriptCB_MarkCurrentProfile
ScriptCB_StartLoadProfile
ScriptCB_StartPreOp
ScriptCB_StartInitialMemcardCheck
ScriptCB_DoInitialMemcardCheck
ScriptCB_ShowMultipageText
ScriptCB_IndexMultipageText
ScriptCB_DoneCheckPatch
ScriptCB_ShouldCheckPatch
ScriptCB_SetHasSeenDNASEULA
ScriptCB_HasSeenDNASEULA
ScriptCB_DoneCheckDNAS
ScriptCB_ShouldCheckDNAS
ScriptCB_LoadSavePopupResult
ScriptCB_SetProfileNotDirty
ScriptCB_IsProfileDirty
ScriptCB_IsCurProfileDirty
ScriptCB_ShouldShowDemoPostscreen
ScriptCB_ShouldShowLegal
ScriptCB_GetQuitPlayer
ScriptCB_SetQuitPlayer
ScriptCB_WasSplitscreen
ScriptCB_IsSplitscreen
ScriptCB_SetSplitscreen
ScriptCB_GetAutoNetScript
ScriptCB_SetupAutoNetIsLan
ScriptCB_SetupAutoNetMissions
ScriptCB_GetAutoGetPlayerCount
ScriptCB_GetAutoNetGameName
ScriptCB_GetAutoNetIsDedicated
ScriptCB_ReadLeftstick
ScriptCB_GetNumControllers
ScriptCB_SetIgnoreControllerRemoval
ScriptCB_UnbindController
ScriptCB_ReadAllControllers
ScriptCB_SetAutoAcquireControllers
ScriptCB_GetShellActive
ScriptCB_GetDateStr
ScriptCB_random
ScriptCB_srand
ScriptCB_ustrupper
ScriptCB_usprintf
ScriptCB_getlocalizestr
ScriptCB_UnicodeStrCat
ScriptCB_ununicode
ScriptCB_tounicode
ScriptCB_GetMaxMissionQueue
ScriptCB_SetMissionNames
ScriptCB_SetTeamNames
ScriptCB_IsLegalGamespyString
ScriptCB_GetVKeyboardCharacter
ScriptCB_FormatTimeString
ScriptCB_GetLanguage
ScriptCB_GetPlatform
ScriptCB_DoFile Team2
Team1
Side
Map
Attract
mode
fs_opt_pcvideo_reslistbox_contents
ifs_opt_pcvideo_fsaalistbox_contents
memslot
showstr
ifs_saveop_InitialMemcardCheckDone
ifs_saveop_PreOpDone
ifs_saveop_LoadProfileDone
ifs_saveop_DeleteProfileDone
ifs_saveop_SaveProfileDone
ifs_saveop_LoadMetagameDone
ifs_saveop_SaveMetagameDone
ifs_saveop_DeleteMetagameDone
isCurrent
datestr
filename
namestr contentsstr
labelustr
contentsustr
ColorB
ColorG
ColorR
val3str
val2str
val1str
fix MP stats
teamstats_listbox_contentsR
teamstats_listbox_contentsL
com_icon_CIS
com_icon_imperial
com_icon_alliance
com_icon_republic
ifs_teamstats.RightModel
ifs_teamstats.LeftModel
ifs_teamstats.RightList.Title
ifs_teamstats.LeftList.Title
ifs_personalstats.IconModel
stats_listbox_contents
ifs_awardstats_seticonstartside
ifs_awardstats.IconModels.%d.model
ScriptCB_EnableCursor
ScriptCB_ResetControl
ScriptCB_SetBinding
ScriptCB_GetKeyBoardCmds
ScriptCB_DoConsoleCmd
ScriptCB_GetConsoleCmds
ScriptCB_IFModel_SetLighting
ScriptCB_SetSunlight
ScriptCB_ResetLeaderBoardPlayerData
ScriptCB_CancelLeaderBoardPlayerData
ScriptCB_DownloadLeaderBoardData
ScriptCB_LeaderBoardDownloadDone
ScriptCB_GetLeaderBoardPlayerData
ScriptCB_GetSafeScreenInfo
ScriptCB_GetScreenInfo
ScriptCB_GetErrorLevel
ScriptCB_CloseErrorBox
ScriptCB_OpenErrorBox
ScriptCB_IsPropertyPlayingNow
ScriptCB_SetMovieAudioBus
ScriptCB_StopMovie
ScriptCB_AreMoviePropertiesPlaying
ScriptCB_IsMoviePlaying
ScriptCB_PlayMovie
ScriptCB_CloseMovie
ScriptCB_OpenMovie
ScriptCB_SetIgnoreInputs
ScriptCB_IsPopupOpen
ScriptCB_IsErrorBoxOpen
ScriptCB_ClosePopup
ScriptCB_OpenPopup
ScriptCB_PopScreen
ScriptCB_PushScreen
ScriptCB_SetIFScreen
ScriptCB_IFObj_SetUseSafezone
ScriptCB_IFObj_SetScreenPosition
ScriptCB_IFModel_SetOmegaY
ScriptCB_IFModel_GetDepth
ScriptCB_IFModel_SetDepth
ScriptCB_IFModel_GetTranslation
ScriptCB_IFModel_SetTranslation
ScriptCB_IFModel_GetRotation
ScriptCB_IFModel_SetRotation
ScriptCB_IFModel_GetScale
ScriptCB_IFModel_SetScale
ScriptCB_IFModel_SetAnimation
ScriptCB_IFModel_SetModel
ScriptCB_IFMaskImage_GetMaskTexCoords
ScriptCB_IFMaskImage_SetMaskTexCoords
ScriptCB_IFMaskImage_SetMaskTexture
ScriptCB_IFImage_SetTexCoords
ScriptCB_IFImage_GetTexCoords
ScriptCB_IFImage_SetRect
ScriptCB_IFImage_GetRect
ScriptCB_IFImage_SetTexture
ScriptCB_IFFlashyText_StartFlashiness
ScriptCB_IFFlashyText_SetBackgroundRightJustify
ScriptCB_IFFlashyText_SetBackgroundSize
ScriptCB_IFFlashyText_SetBackground
ScriptCB_IFFlashyText_SetTextColor
ScriptCB_IFFlashyText_Setup
ScriptCB_IFText_GetLeading
ScriptCB_IFText_SetLeading
ScriptCB_IFText_SetTextStyle
ScriptCB_IFText_GetDisplayRect
ScriptCB_IFText_GetTextExtent
ScriptCB_IFText_GetTextScaleY
ScriptCB_IFText_GetTextScaleX
ScriptCB_IFText_SetTextScale
ScriptCB_IFText_SetTextBreak
ScriptCB_IFText_SetJustify
ScriptCB_IFText_GetTextBox
ScriptCB_IFText_SetTextBox
ScriptCB_IFText_GetIntercharacterSpacing
ScriptCB_IFText_SetIntercharacterSpacing
ScriptCB_IFText_SetFont
ScriptCB_IFText_SetTextPosition
ScriptCB_IFText_SetUString
ScriptCB_IFText_SetString
ScriptCB_GetFontHeight
ScriptCB_IFObj_RemoveHotSpot
ScriptCB_IFObj_CreateHotSpot
ScriptCB_IFObj_TestHotSpot
ScriptCB_IFObj_MouseOver
ScriptCB_IFObj_IsGroup
ScriptCB_IFObj_IsEnabled
ScriptCB_IFObj_Enable
ScriptCB_IFObj_SendToBack
ScriptCB_IFObj_BringToFront
ScriptCB_IFObj_GetPosition
ScriptCB_IFObj_GetWidthHeight
ScriptCB_IFObj_GetVis
ScriptCB_IFObj_GetZOrder
ScriptCB_IFObj_GetColor
ScriptCB_IFObj_GetAlpha
ScriptCB_IFObj_GetPos
ScriptCB_IFObj_SetRotation
ScriptCB_IFObj_SetRelativeRotation
ScriptCB_IFObj_SetBasicRotation
ScriptCB_IFObj_SetPosition
ScriptCB_IFObj_SetWidthHeight
ScriptCB_IFObj_SetVis
ScriptCB_IFObj_SetZOrder
ScriptCB_IFObj_SetColor
ScriptCB_IFObj_SetAlpha
ScriptCB_IFObj_SetPos
ScriptCB_IFObj_GetCPointer
ScriptCB_IsFileExist
ScriptCB_IsPAL
ScriptCB_EndIFScreen
ScriptCB_SetIFScreenViewport
ScriptCB_AddIFScreen
ScriptCB_EndIFObj
ScriptCB_AddIFContainer
ScriptCB_AddIFModel
ScriptCB_AddIFMaskImage
ScriptCB_AddIFImage
ScriptCB_AddIFFlashyText
ScriptCB_AddIFText
ScriptCB_PlayerSuicide
AddMissionObjective
SetAIVehicleNotifyRadius
SetAIFormationRadius
AddWalkerType
ClearWalkers
AddDeathRegion
SetFishType
SetNumFishTypes
SetBirdFlockMinHeight
SetBirdType
SetNumBirdTypes
SetMemoryPoolSize
SetLevelModelMem
SetEnemyTeamDifficultyHard
SetEnemyTeamDifficultyMedium
SetEnemyTeamDifficultyEasy
SetEnemyTeamDifficulty
SetPlayerTeamDifficultyHard
SetPlayerTeamDifficultyMedium
SetPlayerTeamDifficultyEasy
SetPlayerTeamDifficulty
SetStayInTurrets
SetDefenderSnipeRange
SetAttackerSnipeRange
SetDenseEnvironment
SetUrbanEnvironment
SetSpawnDelay
SetCarrierClass AddBleedThreshold
ActivateBonus
SetHeroClass
AddUnitClass
SetReinforcementCount
SetUnitCount SetTeamAsFriend
SetTeamAsNeutral
SetTeamAsEnemy
SetTeamIcon
SetStationaryWaitTime
SetAllowBlindJetJumps SetMaxPlayerFlyHeight
SetMinPlayerFlyHeight
SetMaxFlyHeight
SetMinFlyHeight
SetTeamAggressiveness SetTeamName
SetHistorical
SetState
SetCameraPosition
SetCameraRotation
AddCameraShot
SetModelMemory ReadDataFileInGame
ReadDataFile
false
true
EntityLight EntityDroideka WalkerBlendUnit
WalkerBlend
WalkerLegPair
EntityWalker
ScriptCB_CanClientLeaveStats ScriptCB_SetVoiceLocalEchoEnable
ScriptCB_GetLobbyPlayerCount
ScriptCB_ResetSkipToNTGUI ScriptCB_GetSkipToNTGUIProfileName
ScriptCB_SkipToNTGUI
ScriptCB_GetFriendListIcon ScriptCB_DoFriendAction
ScriptCB_GetFriendActions
ScriptCB_GetFriendStateStr
ScriptCB_UpdateFriends ScriptCB_CancelFriends
ScriptCB_BeginFriends
ScriptCB_CheckForPatch
ScriptCB_AllowSkipDNAS ScriptCB_GetIPAddr
ScriptCB_SetNoticeNoCable
ScriptCB_IsNetCableIn
ScriptCB_IsNetHWPresent ScriptCB_IsLeaveDone
ScriptCB_CancelLeave
ScriptCB_LaunchLeave
ScriptCB_UpdateLeave ScriptCB_BeginLeave
ScriptCB_IsJoinDone
ScriptCB_CancelJoin
ScriptCB_LaunchJoin
ScriptCB_UpdateJoin ScriptCB_BeginJoin
ScriptCB_CanSupportMaxPlayers
ScriptCB_IsBadNetworkConnection
ScriptCB_IsQuickmatchDone ScriptCB_CancelQuickmatch
ScriptCB_LaunchQuickmatch
ScriptCB_UpdateQuickmatch
ScriptCB_BeginJoinSpecial ScriptCB_BeginJoinIP
ScriptCB_BeginQuickmatch
ScriptCB_GetCmdlineLogin ScriptCB_IsCmdlineJoinPending
ScriptCB_IsSpecialJoinPending
ScriptCB_GetDSSessionList ScriptCB_CancelDSSessionList
ScriptCB_LaunchDSSessionList
ScriptCB_UpdateDSSessionList ScriptCB_BeginDSSessionList
ScriptCB_PreviousHost
ScriptCB_NextHost
ScriptCB_SetSortOrder ScriptCB_GetSortOrder
ScriptCB_SetSessionSortMode
ScriptCB_GetSessionSortMode
ScriptCB_ApplyFilters ScriptCB_GetExtraSessionInfo
ScriptCB_GetSessionListPercent
ScriptCB_IsSessionReady ScriptCB_GetSessionList
ScriptCB_PauseSessionList
ScriptCB_CancelSessionList
ScriptCB_LaunchSessionList ScriptCB_UpdateSessionList
ScriptCB_BeginSessionList
ScriptCB_ClearPrevSessionId
ScriptCB_VoteOrNominate ScriptCB_VoteKick
ScriptCB_LobbyAction
ScriptCB_CancelLobby
ScriptCB_LaunchLobby ScriptCB_HasServerLaunched
ScriptCB_UpdateLobby
ScriptCB_BeginLobby
ScriptCB_TrackLoginErrors ScriptCB_CancelLogin
ScriptCB_StartLoginDedicatedServer
ScriptCB_StartLogin
ScriptCB_IsLoginDone ScriptCB_SetGSProfileInfo
ScriptCB_GetGSProfileInfo
ScriptCB_UpdateMPMetagame
ScriptCB_BeginMPMetagame ScriptCB_ClearError
ScriptCB_GetError
ScriptCB_GetLatestError
ScriptCB_DownloadJournals ScriptCB_EnablePlayback
ScriptCB_UploadJournals
ScriptCB_EnableJournal
ScriptCB_GetConnectType ScriptCB_SetConnectType
ScriptCB_GetOnlineOpts
ScriptCB_SetOnlineOpts
ScriptCB_GetAutoAssignTeams ScriptCB_SetNetGameDefaults
ScriptCB_GetNetGameDefaults
ScriptCB_IsBootInvitePending
ScriptCB_CloseNetShell ScriptCB_IsNetworkOn
ScriptCB_OpenNetShell
ScriptCB_GetAutoNetMode
ScriptCB_EndAutoNet ScriptCB_IsAutoNet
ScriptCB_IsInShell
ScriptCB_IsDedicated
ScriptCB_SetDedicated
ScriptCB_NetWasClient ScriptCB_NetWasDedicatedQuit
ScriptCB_NetWasDedicated
ScriptCB_NetWasHost
ScriptCB_InNetSession ScriptCB_InMultiplayer
ScriptCB_SetInNetGame
ScriptCB_InNetGame
ScriptCB_GetLobbyPlayerFlags ScriptCB_GetLobbyPlayerlist
ScriptCB_GetGameName
ScriptCB_SetNumBots
ScriptCB_SetGameName ScriptCB_SetHostLimit
ScriptCB_GetAmHost
ScriptCB_SetAmHost
ScriptCB_SetNetLoginName ScriptCB_GetOnlineService
ScriptCB_AutoNetJoin
friends_listbox_contents
ClearListbox
mp_joinds_listbox_contents
indexstr
–Cgsfriends_listbox_layout
StateIcon
VoiceIcon
launchflag
fnFindReady
ListManager_fnMoveCursor(ifs_mp_sessionlist.listbox,mpsessionlist_listbox_layout)
FirstShownIdx
ifs_mp_joinds
ScriptCB_GetVoiceEnable
ScriptCB_VoiceEnable
ScriptCB_SoundDisable
ScriptCB_SoundEnable
ScriptCB_ShellPlayDelayedStream
ScriptCB_IsShellMusicPlaying
ScriptCB_SetShellMusicInterval
ScriptCB_SetShellMusic
ScriptCB_PlayAuditionEffect
ScriptCB_GetBassManagement
ScriptCB_SetBassManagement
ScriptCB_GetMixConfigChanged
ScriptCB_GetEAXVersion
ScriptCB_NextMixConfig
ScriptCB_PreviousMixConfig
ScriptCB_GetMixConfig
ScriptCB_NextOutputMode
ScriptCB_PreviousOutputMode
ScriptCB_GetOutputMode
ScriptCB_HWSupport
ScriptCB_ToggleEffects
ScriptCB_EffectsEnabled
ScriptCB_SetVolumes
ScriptCB_GetVolumes
ScaleSoundParameter
SetOutOfBoundsVoiceOver
SetDefeatMusic
SetVictoryMusic
SetAttackingTeam
SetAmbientMusic
SetSoundEffect
SetLowReinforcementsVoiceOver
ScriptCB_SetBleedingRepeatTime
SetBleedingVoiceOver
SetReservesVO
SetPlanetaryBonusVoiceOver
AudioStreamAppendSegments
AudioStreamComplete
CloseAudioStream
OpenAudioStream
StopAudioStream
PlayAudioStreamUsingProperties
PlayAudioStream
ScriptCB_SndPlaySound
ScriptCB_SndBusFadeAAdvancedTraining
Regeneration
Reinforcements
SensorJam
SneakAttack
Hero
Sabotage
endor
hoth
kamino
geonosis
naboo
kashyyyk
rhenvar
yavin
tatooine
bespin
bSetsBlockade
aicontrol
lastattack
char
icon
shortname
teamname2
teamname
Bonus2Votes
Bonus1Votes
SecretBaseVotes
AttackVotes
bBlockaded
activatedthisturn
destroyed
pickorder
charge
owner2
owner1
mJoystickTeams
mIsSplitscreen
metagame_state_local
mWonMaps3
mWonMaps2
mWonMaps1
mWonMaps0
teamsAreBackwards
team2_charged
team1_charged
applyingbonus
charge_meter_team2
charge_meter_team1
TimePerTurn
bSneakAttack
pickplanet
pickteam
era
MaxTime
MaxTurn
CurTime
ShowedTurn1Intro
ShowedTurn0Intro
planets
team2
team1
metagame_state
gBonus2
gBonus1
gBonusPlanet
gAttackPlanet
metagame_host_state
gBonus2Vote
gBonus1Vote
gBonusPlanetVote
gAttackPlanetVote
metagame_vote_state mEra
classic new cw
ifs_meta_opts
Cool, ggctuk
How would you work those in the LUA istelf though? Paste them in or?
Well, as I said, I have no idea how a lot of these work, but yeah, they'd ust be entered into an LUA file.
thank you all for this.
Ok, well maybe later I'm thinking of maybe plugging some of these script thingies into a test LUA and see what happens lol
I have an incling that "Playmovie" can be used at the beginning of a map? Not sure. I think it's used in the BF2 campaign.