There are some of mails betwen me and FiDo, translated to english for everyone, who wants modify, create etc. new levels ;) --------------------------------------------------------------------- BTW: are you noticed that Enforce loading samples from disk on the RUN? If you don't like that, let's search on beginning of pkf file for all WAV files and into Script write before PlayMap() commands CacheObject(sound/xxxx.wav) for all samples and these will be loaded before game. Is not it beautifull? ;) If you write CacheObject("maps/pokus.map") then it also load that before start and PlayMap("maps/pokus.map") will be executed immediatelly... [hicolor rendering] Textures are still 8bit only. but these are paletized. This means for Enforce that is can have any nunber of paletes and free references texture->palete. Render is hicolor, when shading tables are hicolor ones. In result, there will be "only" 2560 colors (10 paletes) but it get's thousads shades of each during shading textures. ["EnforceData/" directory] > weird switch game = Enforce Exactly ;)))) Describing all Things (buttons, lights, elevators...) is into script and can be created new one, without changes to engine! [p96 support] > bug describing I allocate bitmap AllocBitMap(), as friend bitmap i get that, what already have the already OPENED screen, then i alocate memory for RastPort, followed allocated BitMap into RastPort, do InitRastPort() and then ClearScreen and crash come... On AA and CGX this works right... Atached script - its sensitive to syntax, write same as existing code. For command LET respect spaces betwen all parts and write alwyas only simple, 2/3 operands instructions let a = b let a = b + c and instead of let a = - a write let a = 0 - a Interesting spot to modification its function newframe(), what is called each once for every frame - there its writen light animations. Next tip: You can modify any Thing for example you are create a global variable (somewhere at beginning of source) declare string nextmap let nextmap = "maps/pokus.map" and into fci main() instead of first PlayMap() let's be PlayMap("maps/base.map") and instead of second write here PlayMap(nextmap) and for example into class button, function exception() if event & EV_TOUCH let nextmap = "maps/base.map" endif and into class portalsource, function exception() if event & EV_TOUCH QuitMap() endif And then after you go to teleport, you get into another map, in case if you press anything already... For modify only one button you need also souce for map and then rename any Thing at, for example button666 and into script for it you write a special program... Simply let's play as you want ;)))) Don't forget create a directory EnforceData and in that place copy it, then it will be executed instead of standard one...