Check out Half-Life Re-imagined competition results!
Check out Skewing textures in Hammer, our newest tutorial!
Say hello to Yu2673, our newest member!


Site Stuff






Feeling Blue

What's your favourite shade of blue?














16 mins


33 mins


36 mins


43 mins

Instant Mix

44 mins


44 mins


50 mins



A gaming and technology blog by TWHL admins Penguinboy and Ant. A music blog by TWHL users Ant and Hugh.

Multi_manager Looping Made Easy

Page: 1 [2]

Tutorials > Half-Life > Intermediate > Multi_manager Looping Made Easy


By Stojke (More from this user)
1st April, 2012
looping with multi managers bug free
star star star star star (3 votes)


example map

File Info: ZIP, 8.96KB
Contents: RMF, BSP with sprite loop example

Multi_manager Looping Made Easy - Page 2

V. Additional information

You can see in the file archive how i made my sprites loop, with a bit of bugs thou, but nothing a little editing cant fix.

What id like to do here is write how i plan my loops. Since they can not be controlled fully (as far as i know), aka can not be stopped each round, i always use this only when i want to make something that will always loop.

First thing before we start planning, we need to know what desired effect do we want to achieve and we need to know some information about the sprites and sounds we use.

Some sprites are looped and you can hardly notice when do they start and when do they end, such sprite is, for example, "fire.spr". Others do not loop like that and you can clearly see when they are starting and when they are ending, example of such sprite is "blast.spr".
When it comes to sprites that are looped and we cant notice much difference between start and end, we don't have to worry about the time value we will use. But, when it comes to sprites that are clearly noticeable we need to calculate and set a time value for realism.

When we take a look at the blast.spr sprite file with out handy sprite explorer we can see that it has a total 13 frames from beginning to end. This means, by using the default 10 frames per second value in Env_sprite entity, it will take 1.3 seconds for this sprite to complete its cycle. When making our entity set up we must take this value into count, because we want it to look as realistic as possible, we cant have our sprite ending too early. So, when setting up our time line we will take these 1.3 seconds into count.

Second, sounds. Some sounds are looped, some aren't. Most atmospheric sounds are, and ending them at any time usually isn't noticeable. Here its really about sync-in the sound and sprite time value.

Once we know what are we dealing with, and that we prepared everything, we need to plan out our sequence. I will demonstrate a simple sequence of sprite and sound:

Lets say we have a machine that bursts steam and a steam sound.
We will call the spots where steam appears A and B.
I have decided this to be the pattern:

1 0
0 1
1 1
0 1

Where we have 1, steam and sound will play, where we have 0 nothing will happen.

So, i named them:


And i have planned them to fire for 2 seconds, and wait for 1.5 seconds:


Sound1 0.1 //Starting value of 0.1 so we avoid bugs
Sprite1 0.1
Sound1#1 2.1 //Ending after 2 seconds of being activated
Sprite#1 2.1
WAIT //1.5 seconds wait time
Sprite2 3.6
Sound2 3.6
Sprite2#1 5.6
Sound2#1 5.6
Sound1#2 8.1
Sprite1#2 8.1
Sound2#2 8.1
Sprite2#2 8.1
GO TO //Since we reached the maximum for one multi manager, we go to 2nd one
Mmanager2 10 //Call manager 2 after which manager 1 finished its function


Sound1 0.1 // We continue in manager 2, since we waited 2 seconds to call manager 2, we can start this ones functions at 0.1 again
Sprite1 0.1
Sound2 0.1
Sprite2 0.1
Sprite2#1 1.6
Sound2#1 1.6
Sprite2#2 3.6
Sound2#2 3.6
GO TO // Managers did their purpose, time to call them again
Activator // Activates manager 1


That was an example of how to plan everything out and input it correctly.
Times will usually be in pattern, making your job easier, so just stay focused and work it out all with understanding and don't rush.

Hope this helped, and happy mapping!


avatar xzec says: star star star star star 1st April 2012, 14:11 PM
Great stuff! I've yet to only read through it, but when I eventually get the itch to map again, I will definetly take notes from this tutorial.

Regarding to reset each round for CS. If you can trigger it to reset or start through spawns; where everyone spawns outside the map in some box which triggers the multi_manager, then gets teleported to their original spawn points.
That's at least what I do to trigger stuff each round.

avatar Captain Terror says: star star star star star 1st April 2012, 23:57 PM
awesome stuff sir! if i was stuck on a desert island with a pc, i could spend the rest of my days working on complex enitity setups and be happy ;)

food for thought: maybe you guys ought to include a copy of the tutorial(in pdf or html or whatev) with the download, so we can archive it neatly/completely in our "tutorials" folder ;)
avatar Captain Terror says: 1st April 2012, 23:59 PM
p.s. i love your graphic font what is it? =)
avatar Stojke says: 2nd April 2012, 07:46 AM
@ Xzec

Hmm... Since a second entity controls the whole thing, maybe a way to stop it on each round... I know it can be timed... I will have to think about this one, or if our genius Captain Terror thinks of something :P

@ Captain T

Thanks! Haha, id make sand castles xD
Also i agree we should make a PDF out of tutorials, that would be nice. Big Book of Mapping, remember that? :D

Also, the font is Nice Sega Sonic Font:
avatar xzec says: 3rd April 2012, 06:18 AM
@ Stojke:
Yeah, I didn't manage to make it work. Though what I tried to do was:
1.) Put info_player_start inside trigger_multiple brush.
2.) The trigger_multiple targets func_button* with info_player_start as master.
3.) A trigger_teleport around the info_player_start targeted to info_teleport_destination.

But without any luck.

* Tried the first multi_manager aswell.
avatar Captain Terror says: 5th April 2012, 09:04 AM
thanks sir! i was guessing return of the jedi and i'd never have guessed sega! =)

(and of course, i too would make some sand castles);)
avatar Stojke says: 10th April 2012, 07:23 AM
Maybe is the whole loop was controlled by a well timed env_beam... So once i want it stopped i just trigger its toggle function...

Have to test!

Also no problem T man, just ask :P
avatar Dr.Turbografix says: 6th December 2014, 12:19 PM
The setup with the env_beam didn't work for me, so I used an env_laser in the end. The 2nd multi_manager triggers two times the env_laser to switch it on and off to trigger the func_button which triggers the first multi_manager again.

an env_explosion works too triggering the button, but you always hear the explosionsound.

The "trigger-rythm" is much cleaner that way imo.
avatar ZPhugeFan says: star star star star star 2nd January 2016, 11:57 AM
I've been having trouble making a MM of mine loop without using the flag option. I will try this and see what comes of it.
avatar ZPhugeFan says: 2nd January 2016, 13:02 PM
Didn't work for me either. I will try what Dr Turbografix has offered instead.
You must be logged in to comment.