<-[[cw3:creeper_world_3|CW3 Home]]<- [[crpl:start|CRPL Home]]\\ ====== CRPL Cheat Sheet ====== For those who want to use CRPL heavily, this ultra condensed reference puts everything you need to know in a single page. For learning the language, refer to the other CRPL pages. For enhanced rapid access, every command and constant is organized into a story, with stuff that is needed in multiple stories going into basics and stuff that fits no story going into leftovers. Commands will be in the first appropriate story. *special* indicates that this command works differently than a normal one. Pay close attention to usage and examples. *special* may also indicate a constant that does not start with CONST_ and does not work with GetUnitAttribute or SetUnitAttribute. The full name will be listed. *bugs* indicates known bugs may affect the functioning of this command. Argument types: i=integer, f=float, n=integer or float, s=string, u=unit ID, x=integer x coordinate, y=integer y coordinate, z=integer z coordinate, b=TRUE or FALSE (1 or 0), *=any, l=list, {u}=bunch of unit IDs, CONST_= one of the normal constants. Default values or legal values in (). ==== Basics ==== ^ Commands ^^^^ | *special* [[crpl:docs:comment|#]] || *special* [[crpl:docs:define|$VARNAME:DEF_VAL]] || | *special* [[crpl:docs:read|<-VARNAME]] *(0) || *special* * [[crpl:docs:write|->VARNAME]] || | ??? [[crpl:docs:call|@FUNC_NAME]] ??? || *special* [[crpl:docs:func|:FUNC_NAME]] || | n n [[crpl:docs:gt]] b | n n [[crpl:docs:gte]] b | n n [[crpl:docs:lt]] b | n n [[crpl:docs:lte]] b | | n n [[crpl:docs:eq]] b | n n [[crpl:docs:neq]] b | n [[crpl:docs:eq0]] b | n [[crpl:docs:neq0]] b | | b b [[crpl:docs:and]] b | b b [[crpl:docs:or]] b | b [[crpl:docs:not]] b || | * * [[crpl:docs:swap]] * * | * [[crpl:docs:dup]] * * | * * [[crpl:docs:dup2]] * * * * || | n n [[ crpl:docs:add]] n | n n [[ crpl:docs:sub]] n | n n [[ crpl:docs:mul]] n | *special* n n [[ crpl:docs:div]] n | | n [[ crpl:docs:max]] n | n [[ crpl:docs:min]] n | n n [[ crpl:docs:mod]] n || | * [[ crpl:docs:asfloat]] f | * [[ crpl:docs:asint]] i | n [[ crpl:docs:neg]] n | n [[ crpl:docs:sqrt]] f | | *special* [[crpl:docs:once]] [[crpl:docs:endonce]] || *special* b [[crpl:docs:if]] [[crpl:docs:else]] [[crpl:docs:endif]] || | *special* n n [[crpl:docs:do]] [[crpl:docs:loop]] || *special* [[crpl:docs:while]] b [[crpl:docs:repeat]] [[crpl:docs:endwhile]] || | *special* [[crpl:docs:break]] | *special* [[crpl:docs:return]] | *special* [[crpl:docs:delay]] || | *special* u CONST_ [[crpl:docs:GetUnitAttribute]] ??? || *special* u CONST_ ??? [[crpl:docs:SetUnitAttribute]] || | [[crpl:docs:CurrentCoords]] x y | [[crpl:docs:RandFloat]] f[0,1) | i i [[crpl:docs:RandInt]] i || | x y [[crpl:docs:CellToPixel]] x y || x y [[crpl:docs:PixelToCell]] x y || | b [[crpl:docs:OperateWhilePaused]] *bugs* |||| | * * [[crpl:docs:Concat]] s || s [[crpl:docs:SetPopupText]] || ^ Builtin Functions ^^^ | [[crpl:docs:func_destroyed|:destroyed]] | [[crpl:docs:func_awake|:awake]] | [[crpl:docs:func_GameLoaded|:GameLoaded]] | ^ CONSTANTS ^^^^ | *special* [[crpl:docs:Self]] u | *special* [[crpl:docs:TRUE]] b | *special* [[crpl:docs:FALSE]] b || | *special* [[crpl:docs:I]] i | *special* [[crpl:docs:J]] i | *special* [[crpl:docs:K]] i || | *special* [[crpl:docs:MapHeight]] y(84) || *special* [[crpl:docs:MapWidth]] x(128) || | IsDestroyed b(FALSE) | Health f(1) | MaxHealth f(1) || | CoordX i | CoordY i | DestroyMode i(-1) || ==== Stationary Enemy ==== ^ Commands ^^^ | u s [[crpl:docs:AddScriptToUnit]] | u s s [[crpl:docs:GetScriptVar]] * | u s s * [[crpl:docs:SetScriptVar]] | | s * [[crpl:docs:GetCoresWithVar]] {u} i ||| | x y [[crpl:docs:GetDigitalis]] f | x y f [[crpl:docs:SetDigitalis]] || | x y [[crpl:docs:GetDigitalisRaw]] i | x y i [[crpl:docs:SetDigitalisRaw]] || | x y n [[crpl:docs:GetUnitCountInRange]] i ||| | x y n [[crpl:docs:GetUnitsInRange]] {u} i | x y n b [[crpl:docs:GetAllUnitsInRange]] {u} i || | x y f [[crpl:docs:RandCoordsInRange]] x y | [[crpl:docs:RandUnitCoords]] x y | [[crpl:docs:RandCoords]] x y | | s x y [[crpl:docs:CreateUnit]] u | u f [[crpl:docs:Damage]] | u i(none,flash,BOOM,quiet) [[crpl:docs:Destroy]] | | x y [[crpl:docs:GetUnitAt]] | u [[crpl:docs:GetUnitType]] || | x y z i i i [[crpl:docs:CreateMist]] | i x y z f f f [[crpl:docs:CreateEffect]] | i x y z f f f i [[crpl:docs:CreateEffectClipped]] | | f i i f b [[crpl:docs:EnableTowerField]] *bugs* | [[crpl:docs:DisableTowerField]] || | [[crpl:docs:AscendToOrbit]] | x y [[crpl:docs:DropFromOrbit]] || | u s s [[crpl:docs:SetImage]] | u s x y z [[crpl:docs:SetImagePosition]] | u s f f [[crpl:docs:SetImageScale]] | | u s f [[crpl:docs:SetImageRotation]] | u s i i i i [[crpl:docs:SetImageColor]] | u [[crpl:docs:RemoveImages]] | | s [[crpl:docs:PlaySound]] ||| | x y i [[crpl:docs:AddCreeper]] | x y i f i i b [[crpl:docs:DamageCreeper]] || | x y i [[crpl:docs:SetCreeperNoLower]] | x y i [[crpl:docs:SetCreeper]] | x y [[crpl:docs:GetCreeper]] i | | i f [[crpl:docs:MakeRain]] | x y x y f(1) f(20) [[crpl:docs:CreateSpore]] | x y f(2) f(10) f(5) [[crpl:docs:CreateRunner]] | | [[crpl:docs:GetRunnerCount]] i | [[crpl:docs:GetGlobalRunnerCount]] i || ^ Constants ^^^ | CellHeight i(3) | CellWidth i(3) | ThorTarget b(FALSE) | | NullifierDamageAmt f(0) | HealRate f(0.001) | DestroyOnDamage b(TRUE) | | ShowAmmoACBar b(?) | ShowAmmoBar b(?) | ShowHealthBar b(?) | Unit type names: (not case sensitive) CommandNode, Collector, Relay, Reactor, OreMine, Siphon, Terp, Guppy, PulseCannon, Mortar, Strafer, Bomber, Sprayer, Nullifier, Shield, Beam, Sniper, Forge, Bertha, PowerZone, OreDeposit, ResourcePack, ShieldKey, TechArtifact, MessageArtifact, AOO, Thor, CRPLCore, ResourcePack, Totem, Emitter, SporeTower, RunnerNest, AETower, Inhibitor. Extended unit type names: (Cannot be directly created) GuppyAir, StraferAir, BomberAir, Runner. Effects: 0=ShotExplosion, 1=MortarShellExplosion, 2=BerthaShellExplosion, 3=RunnerExplosion, 4=SporeExplosion, 5=TotemExplosion, 6=CreeperAAShellExplosion, 7=UnitExplosion, 8=MoveTrail, 9=ShortTrail, 10=SporeTrail, 11=SmokeRingEffect, 12=ParticleBeamDamage, 13=PulseCannonShellEffect, 14=StunnedEffect, 15=TerraModCell, 16=TotemFiring. Script 0 vars: Emitter(STARTTIME, FINISHTIME, PRODUCTIONINTERVAL, PRODUCTIONAMT), SporeTower(STARTTIME, WAVEINTERVAL, WAVECOUNT, SPOREPAYLOAD), AETower(RANGE), RunnerNest(SPAWNINTERVAL, MAXPOPULATION, MOVESPEED, RUNNERMAXHEALTH, CREEPERPAYLOAD), Inhibitor(STARTTIME, PRODUCTIONINTERVAL, PRODUCTIONAMT, RANGE), ResourcePack(AMT, MAXAMT, RESOURCETYPE{ENERGY, ORE, AETHER}), Guppy(MODE{PACKET,ORE,AC}), AOO(TYPE{FREEZE, MASS, CONVERT}), TechArtifact(COUNT). ==== Flying Enemy ==== ^ Commands ^^^ | f f [[ crpl:docs:atan2]] f | f [[ crpl:docs:cos]] f | f [[ crpl:docs:sin]] f | | f [[ crpl:docs:ShortestAngle]] f ||| | x y f [[crpl:docs:QueueMove]] | [[crpl:docs:AbortMove]] | i [[crpl:docs:SuspendMove]] | | [[crpl:docs:GetQueuedMoveCount]] i || [[crpl:docs:ClearQueuedMoves]] | | x [[crpl:docs:SetTargetOffsetX]] | y [[crpl:docs:SetTargetOffsetY]] || | [[crpl:docs:CurrentPixelCoords]] x y ||| | u s y [[crpl:docs:SetImagePositionY]] || x y x y [[crpl:docs:Distance]] f | ^ CONSTANTS ^^^ | *special* [[ crpl:docs:PI]] f ||| | BeamTarget b(FALSE) | SniperTarget b(FALSE) | SniperIgnoreLOS b(FALSE) | | NullifierDamages b(TRUE) | IsLanded b(TRUE) | TakeMapSpace b(TRUE) | | PixelCoordX i | PixelCoordY i | ==== Ally ==== ^ Commands ^^^ | [[crpl:docs:GetMousePosition]] x y || [[crpl:docs:GetMouseCell]] x y | | i [[crpl:docs:GetMouseButton]] b | i [[crpl:docs:GetMouseButtonDown]] b | i [[crpl:docs:GetMouseButtonUp]] b | | u [[crpl:docs:GetUnitTargetOffsetX]] x | u [[crpl:docs:GetUnitTargetOffsetY]] y || | x y n [[crpl:docs:GetEnemyUnitsInRange]] {u} i || x y x y [[crpl:docs:IsTerrainLOS]] b *bugs* | | x y i i b b i [[crpl:docs:FloodFillTerrain]] l | x y n b b b b [[crpl:docs:GetNearestGroundEnemy]] x y || | x y f i b b b [[crpl:docs:IsCreeperInRange]] b ||| | s [[crpl:docs:GetTechLimit]] i | s i [[crpl:docs:SetTechLimit]] | s i [[crpl:docs:SetBuildLimit]] (use unit names) | | s(Freeze,Mass,Convert) x y [[crpl:docs:FireAoo]] || u s [[crpl:docs:SetTechArtifactType]] | | [[crpl:docs:GetDeepestCreeperCell]] x y ||| ^ Constants ^^^ | Ammo f(0) | MaxAmmo f(0) | PacketRequestDelay i(15) | | AmmoAC f(0) | MaxAmmoAC f(0) | ACPacketRequestDelay i(15) | | CanRequestAmmo b(FALSE) | RequestPackets b(FALSE) || | BuildCost f(0) | IsBuilding b(FALSE) || | Connectable b(FALSE) ||| | CountsForVictory b(TRUE) | CreatePZ b(TRUE) | SupportsDigitalis b(TRUE) | Tech limit names: (not case sensitive) EnergyStorage, ACStorage, PacketSpeed, EnergyEfficiency, OreEfficiency, BuildSpeed, MoveSpeed, FireRate, FireRange. ==== User Interface ==== key codes: http://docs.unity3d.com/Documentation/ScriptReference/KeyCode.html ^ Commands ^^^ | [[crpl:docs:GetMouseScreenPixelPosition]] x y || [[crpl:docs:GetMouseScreenPosition]] x y | | s [[crpl:docs:GetKey]] b | s [[crpl:docs:GetKeyDown]] b | s [[crpl:docs:GetKeyUp]] b | | b [[crpl:docs:EnableAlternateControlMode]] ||| | b [[crpl:docs:EnableNormalMouse]] | b [[crpl:docs:EnableNormalKeyInput]] | b [[crpl:docs:EnableNormalZoomControl]] | | [[crpl:docs:GetCurrentBuildTab]] s ||| | s x y [[crpl:docs:CreateIndicatorArrow]] | s [[crpl:docs:DestroyIndicatorArrow]] || | s s s s x y [[crpl:docs:ShowGameEventTag]] ||| | s x y [[crpl:docs:ShowMessage]] | s x y [[crpl:docs:ShowMessageDismissible]] | [[crpl:docs:WasMessageDismissed]] b | | [[crpl:docs:ScreenHeight]] y | [[crpl:docs:ScreenWidth]] x || | b [[crpl:docs:SetScreenMode]] | x y [[crpl:docs:SetScreenCoords]] | x y [[crpl:docs:SetScreenPixelCoords]] | | [[crpl:docs:GetCameraPosition]] x y | x y [[crpl:docs:SetCameraPosition]] || | [[crpl:docs:GetCameraZoom]] i | i(4) [[crpl:docs:SetCameraZoom]] || | s [[crpl:docs:SetText]] | iORs [[crpl:docs:SetTextAnchor]] | i i i i [[crpl:docs:SetTextColor]] | | f(1) [[crpl:docs:SetTextSize]] | x [[crpl:docs:SetTextX]] | y [[crpl:docs:SetTextY]] | ^ Builtin Functions ^ | [[crpl:docs:func_UserCancelAction|:UserCancelAction]] | Build tabs: STRUCTURE, WEAPONS, TITANS, ORBITAL. Text Anchors: 0=UpperLeft, 1=UpperCenter, 2=UpperRight, 3=MiddleLeft, 4=MiddleCenter, 5=MiddleRight, 6=LowerLeft, 7=LowerCenter, 8=LowerRight. ==== Plot and Script ==== ^ Commands ^^^ | [[crpl:docs:GetScore]] i | i [[crpl:docs:SetAdditionalScore]] || | [[crpl:docs:GetAdditionalScore]] i | i [[crpl:docs:AddAdditionalScore]] || | *special* s [[crpl:docs:ArtifactCollected]] b ||| | u b [[crpl:docs:SetUnitSelectableOverride]] ||| | i s [[crpl:docs:AddConversationMessage]] | [[crpl:docs:ShowConversation]] | [[crpl:docs:ClearConversation]] | | [[crpl:docs:ResetGameTime]] | f [[crpl:docs:SetGameTime]] || | [[crpl:docs:GetGameTimeFrames]] i | i [[crpl:docs:SetGameTimeFrames]] || | [[crpl:docs:FailMission]] | [[crpl:docs:DestroyAllEnemyUnits]] || | [[crpl:docs:PauseGame]] | [[crpl:docs:UnpauseGame]] | [[crpl:docs:IsPaused]] b | | s s s [[crpl:docs:ShowMessageDialog]] | [[crpl:docs:IsMessageDialogShowing]] b || ^ Builtin Functions ^ | [[crpl:docs:func_ShowMessageDialogCallback|:ShowMessageDialogCallback]] | Speakers: 0=Skarsgard Abraxis, 1=Lia, 2=Loki Hive, 3=Abrax… Imper…???, 4=Loki Imperator, 5=Aliana, 6=(nameless man with red background), 7=(nameless man with green background). ==== Modify Map ==== ^ Commands ^^^ | [[crpl:docs:CreateList]] l | i [[crpl:docs:CreateListStartingSize]] l || | l [[crpl:docs:GetListCount]] i | l i [[crpl:docs:GetListElement]] * | l i * [[crpl:docs:SetListElement]] | | l i * [[crpl:docs:InsertListElement]] | l i [[crpl:docs:RemoveListElement]] || | l * [[crpl:docs:AppendToList]] | l * [[crpl:docs:PrependToList]] || | x y [[crpl:docs:GetTerrain]] i | x y i [[crpl:docs:SetTerrain]] || | x y [[crpl:docs:GetTerrainOverride]] i | x y i [[crpl:docs:SetTerrainOverride]] || | x y [[crpl:docs:GetWall]] f | x y f [[crpl:docs:SetWall]] || | x y [[crpl:docs:GetVoid]] b | x y b [[crpl:docs:SetVoid]] || | x y [[crpl:docs:GetDigitalisGrowth]] b | x y b [[crpl:docs:SetDigitalisGrowth]] || | x y [[crpl:docs:GetCellOccupiedCount]] i | x y i [[crpl:docs:SetCellOccupiedCount]] || | f(.2) [[crpl:docs:SetCreeperFlowRate]] | f(1) [[crpl:docs:SetCreeperFlowRateOnDigitalis]] || | f [[crpl:docs:SetCreeperFlowRateRL]] | f [[crpl:docs:SetCreeperFlowRateOnDigitalisRL]] || | f [[crpl:docs:SetCreeperFlowRateUD]] | f [[crpl:docs:SetCreeperFlowRateOnDigitalisUD]] || | i i [[crpl:docs:SetWind]] | i(1000) [[crpl:docs:SetCreeperEvaporationLimit]] || | i(0) [[crpl:docs:SetCreeperMax]] | i(0) [[crpl:docs:SetAntiCreeperMax]] || | x y [[crpl:docs:GetPinFieldCell]] b b | x y b b [[crpl:docs:SetPinFieldCell]] || | x y i i i i [[crpl:docs:SetFieldCell]] | x y [[crpl:docs:GetFieldCell]] i i i i || ==== Testing and Debugging ==== ^ Commands ^^^ | [[crpl:docs:ClearStack]] | [[crpl:docs:StackSize]] i || | * [[crpl:docs:Trace]] | * * [[crpl:docs:Trace2]] | * * * [[crpl:docs:Trace3]] | | * * * * [[crpl:docs:Trace4]] | * * * * * [[crpl:docs:Trace5]] | [[crpl:docs:TraceStack]] | | [[crpl:docs:ShowTraceLog]] | [[crpl:docs:ClearTraceLog]] | [[crpl:docs:HideTraceLog]] | | [[crpl:docs:GetUpdateCount]] i | [[crpl:docs:ElapsedTime]] f || | b [[crpl:docs:PersistCore]] | s [[crpl:docs:NotPersist]] | [[crpl:docs:InvocationCount]] i | | [[crpl:docs:IsEditMode]] b | ==== Leftovers ==== ^ Commands ^^^^ | [[crpl:docs:ClearLocals]] |||| | *special* [[crpl:docs:delete|--VARNAME]] || *special* [[crpl:docs:exists|-?VARNAME]] b || | *special* s [[crpl:docs:refread|<-!]] * | *special* * s [[crpl:docs:refwrite|->!]] | *special* s [[crpl:docs:refexists|-?!]] b | *special* s [[crpl:docs:refdelete|--?]] | | * [[crpl:docs:pop]] |||| | n n [[crpl:docs:xor]] b || f f [[ crpl:docs:approximately]] b || | f [[ crpl:docs:tan]] f | f [[ crpl:docs:acos]] f | f [[ crpl:docs:asin]] f | f [[ crpl:docs:atan]] f | | f i [[ crpl:docs:round]] f | n [[ crpl:docs:ceil]] n | n [[ crpl:docs:floor]] n || | n [[ crpl:docs:ln]] f | n n [[ crpl:docs:log]] f | n [[ crpl:docs:log10]] f || | f [[ crpl:docs:Deg2Rad]] f | f [[ crpl:docs:Rad2Deg]] f ||| | n [[ crpl:docs:abs]] n | n n [[ crpl:docs:pow]] n ||| | [[crpl:docs:GetTimer0]] n | [[crpl:docs:GetTimer1]] n | [[crpl:docs:GetTimer2]] n | [[crpl:docs:GetTimer3]] n | | n [[crpl:docs:SetTimer0]] | n [[crpl:docs:SetTimer1]] | n [[crpl:docs:SetTimer2]] | n [[crpl:docs:SetTimer3]] | | s i i [[crpl:docs:Substring]] s | s s [[crpl:docs:StartsWith]] b | s s [[crpl:docs:EndsWith]] b | s [[crpl:docs:StringLength]] i | | s s [[crpl:docs:Split]] l | s [[crpl:docs:StringToList]] l ||| | s [[crpl:docs:ToUpper]] s | s [[crpl:docs:ToLower]] s | s s s [[crpl:docs:StringReplace]] s || | *special* ??? l [[crpl:docs:AppendStackToList]] || *special* ??? l [[crpl:docs:PrependStackToList]] || | l [[crpl:docs:CopyList]] l | l [[crpl:docs:DeepCopyList]] l ||| | [[crpl:docs:GetTargetOffsetX]] x || [[crpl:docs:GetTargetOffsetY]] y || | u x [[crpl:docs:SetUnitTargetOffsetX]] || u y [[crpl:docs:SetUnitTargetOffsetY]] || | x y x y i i b b [[crpl:docs:PathFindTerrain]] l |||| | x y [[crpl:docs:IsDigitalisConnected]] b |||| | [[crpl:docs:CurrentX]] x | [[crpl:docs:CurrentY]] y ||| | x y [[crpl:docs:SetCurrentCoords]] || x [[crpl:docs:SetCurrentX]] | y [[crpl:docs:SetCurrentY]] | | [[crpl:docs:GetCommandNodeCount]] |||| | [[crpl:docs:GetUnitTransformPosition]] x y z |||| | u [[crpl:docs:GetTechArtifactType]] s |||| | u s x [[crpl:docs:SetImagePositionX]] || u s z [[crpl:docs:SetImagePositionZ]] || | u s f [[crpl:docs:SetImageScaleX]] || u s f [[crpl:docs:SetImageScaleY]] || | u s [[crpl:docs:GetImagePosition]] x y z || u s [[crpl:docs:GetImagePositionX]] x || | u s [[crpl:docs:GetImagePositionY]] y || u s [[crpl:docs:GetImagePositionZ]] z || | u s [[crpl:docs:GetImageScale]] f f |||| | u s [[crpl:docs:GetImageScaleX]] f || u s [[crpl:docs:GetImageScaleY]] f || | u s [[crpl:docs:GetImageRotation]] f || u s [[crpl:docs:GetImageColor]] i i i i || | i i i i i i [[crpl:docs:SetCreeperColors]] || [[crpl:docs:GetCreeperColors]] i i i i i i || | [[crpl:docs:DestroyConversation]] *bugs* || [[crpl:docs:ConversationShowing]] b || | [[crpl:docs:ShowOpeningConversation]] || [[crpl:docs:CloseOpeningConversation]] || | [[crpl:docs:RandXCoord]] x | [[crpl:docs:RandYCoord]] y ||| | b [[crpl:docs:SetSystemInhibited]] |||| | [[crpl:docs:SetScreenCoordX]] x || [[crpl:docs:SetScreenCoordY]] y || | [[crpl:docs:SetScreenPixelCoordX]] x || [[crpl:docs:SetScreenPixelCoordY]] y || | b [[crpl:docs:SetPopupTextAlwaysVisible]] |||| | x [[crpl:docs:SetPopupTextX]] || y [[crpl:docs:SetPopupTextY]] || ^ CONSTANTS ^^ | *special* [[crpl:docs:E]] f | |